# llvm-mcp-server **Repository Path**: jiwangreal/llvm-mcp-server ## Basic Information - **Project Name**: llvm-mcp-server - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-12-08 - **Last Updated**: 2025-12-08 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # LLVM 开发手册 MCP 服务 这是一个基于 Model Context Protocol (MCP) 的 LLVM 开发手册服务器,提供 LLVM API 文档搜索、参考查询和代码示例等功能。 ## 功能特性 - 🔍 **API 搜索**: 从 LLVM Doxygen 和官方文档中搜索相关的 API、类、函数等 - 📚 **API 参考**: 获取特定 LLVM API 的详细文档,包括方法、属性等信息 - 💻 **代码示例**: 提供 LLVM 相关主题的代码示例和最佳实践 - 📖 **资源访问**: 通过 URI 访问预定义的 LLVM API 文档和开发指南 - ⚡ **智能缓存**: 内置缓存机制,避免重复请求,提高响应速度 ## 安装 ### 前置要求 - Node.js 18+ - npm 或 yarn ### 安装步骤 1. 克隆或下载项目到本地 2. 安装依赖: ```bash cd llvm-mcp-server npm install ``` 3. 构建项目: ```bash npm run build ``` ## 使用方法 ### 作为 MCP 服务器运行 #### 方式 1: 使用 npx(推荐) ```bash npx llvm-mcp-server ``` #### 方式 2: 直接运行编译后的文件 ```bash npm run build node dist/index.js ``` #### 方式 3: 全局安装后运行 ```bash npm link llvm-mcp-server ``` ### 在 Cursor/Claude Desktop 中配置 1. 打开 MCP 服务器配置 2. 添加新的服务器配置: ```json { "mcpServers": { "llvm-mcp-server": { "command": "node", "args": ["/path/to/llvm-mcp-server/dist/index.js"] } } } ``` 或者使用 npx: ```json { "mcpServers": { "llvm-mcp-server": { "command": "npx", "args": ["-y", "llvm-mcp-server"] } } } ``` ## 可用工具 ### 1. search_llvm_api 搜索 LLVM API 文档。 **参数:** - `query` (必需): 搜索关键词,例如 "Function", "BasicBlock", "IR generation" 等 - `category` (可选): 类别过滤:API, Class, Struct, Namespace, Guide, Reference **示例:** ``` search_llvm_api(query: "Function", category: "Class") ``` ### 2. get_llvm_api_reference 获取特定 LLVM API 的详细参考文档。 **参数:** - `api_name` (必需): API 名称,例如 "Function", "BasicBlock", "Instruction", "Module" 等 **示例:** ``` get_llvm_api_reference(api_name: "Function") ``` ### 3. get_llvm_code_example 获取 LLVM 相关主题的代码示例和最佳实践。 **参数:** - `topic` (必需): 主题,例如 "IR generation", "pass writing", "instruction", "optimization" 等 **示例:** ``` get_llvm_code_example(topic: "IR generation") ``` ## 可用资源 服务器提供以下预定义资源: - `llvm://api/Function` - Function API 文档 - `llvm://api/BasicBlock` - BasicBlock API 文档 - `llvm://api/Instruction` - Instruction API 文档 - `llvm://api/Module` - Module API 文档 - `llvm://guide/programmers-manual` - LLVM 程序员手册 ## 开发 ### 项目结构 ``` llvm-mcp-server/ ├── src/ │ ├── index.ts # 主服务器文件 │ └── llvm-fetcher.ts # LLVM 文档获取和解析逻辑 ├── dist/ # 编译输出目录 ├── package.json ├── tsconfig.json └── README.md ``` ### 开发模式 使用 watch 模式自动重新编译: ```bash npm run watch ``` ### 技术栈 - **TypeScript**: 类型安全的开发 - **@modelcontextprotocol/sdk**: MCP SDK - **zod**: 参数验证 - **node-fetch**: HTTP 请求 - **cheerio**: HTML 解析 ## 配置 服务器支持通过环境变量进行配置(未来版本): - `CACHE_TTL`: 缓存生存时间(毫秒),默认 1 小时 - `REQUEST_TIMEOUT`: 请求超时时间(毫秒) ## 数据源 - **LLVM Doxygen**: https://llvm.org/doxygen/ - **LLVM 官方文档**: https://llvm.org/docs/ ## 注意事项 1. 首次使用可能需要一些时间来获取和缓存文档 2. 网络请求可能会受到 LLVM 官网访问速度的影响 3. 缓存机制可以减少重复请求,提高响应速度 4. 如果搜索不到结果,服务器会提供常见 API 的备用建议 ## 故障排除 ### 问题:npm install 失败 **解决方案:** - 确保 Node.js 版本 >= 18 - 尝试清除 npm 缓存:`npm cache clean --force` - 使用 yarn:`yarn install` ### 问题:构建失败 **解决方案:** - 检查 TypeScript 版本:`npx tsc --version` - 确保所有依赖已正确安装 ### 问题:无法连接到 LLVM 官网 **解决方案:** - 检查网络连接 - 确认可以访问 https://llvm.org - 服务器会提供备用结果,即使无法访问官网 ## 许可证 MIT ## 贡献 欢迎提交 Issue 和 Pull Request! ## 相关链接 - [LLVM 官网](https://llvm.org/) - [LLVM Doxygen 文档](https://llvm.org/doxygen/) - [LLVM 程序员手册](https://llvm.org/docs/ProgrammersManual.html) - [Model Context Protocol](https://modelcontextprotocol.io/)