UNPKG

@physihan/deepwiki-mcp

Version:

DeepWiki MCP server implementation

184 lines (138 loc) 3.66 kB
# DeepWiki MCP Server 一个使用 FastMCP 库实现的 TypeScript Model Context Protocol (MCP) 服务器,用于 DeepWiki 集成。 ## MCP工具配置说明 你可以将此工具添加到Claude、GPT等大模型的MCP工具配置中,实现对DeepWiki仓库的搜索和问答功能。 ### 在Cursor中配置 在Cursor的~/.config/cursor/mcprc.json中添加以下配置: ```json { "mcpServers": { "deepwiki": { "command": "npx", "args": ["-y", "@physihan/deepwiki-mcp@latest"] } } } ``` ### 在其他MCP客户端中配置 你可以根据不同MCP客户端的配置方式,添加相应的配置,通常需要指定: 1. 服务名称:`deepwiki` 2. 启动命令:`npx -y @physihan/deepwiki-mcp@latest` ### 使用方法 配置完成后,你的大模型将获得两个新工具: 1. **search_deepwiki**: 搜索DeepWiki仓库 - 参数:`keyword` - 搜索关键词 - 示例提示词:`搜索TypeScript相关的仓库` 2. **ask_repository**: 向仓库提问 - 参数:`repo` - 仓库名称,`question` - 问题内容 - 示例提示词:`请查询expressjs/express仓库,并问它的主要功能是什么?` 示例与大模型的交互: ``` 用户: 请帮我搜索关于React的仓库 大模型: 我会帮你搜索关于React的仓库。 [使用search_deepwiki工具搜索] 结果: facebook/react, vercel/next.js, remix-run/remix... 用户: 请问vercel/next.js这个项目是干什么用的? 大模型: 我会查询vercel/next.js仓库的信息。 [使用ask_repository工具查询] Next.js是一个用于React应用的框架,提供了服务器渲染、静态网站生成、路由等功能... ``` ## 功能特点 - **搜索 DeepWiki**:根据关键词检索 DeepWiki 仓库信息 - **提问功能**:向 DeepWiki 仓库发送问题并获取回答 - **模拟响应**:当真实 API 不可用时使用模拟数据提供响应 ## 先决条件 - Node.js (v16 或更高版本) - npm 或 yarn ## 安装与开发 1. 克隆仓库并安装依赖: ```bash git clone https://github.com/physihan/deepwiki-mcp.git cd deepwiki-mcp npm install ``` 2. 启动开发服务器: ```bash npm run dev ``` 3. 构建生产版本: ```bash npm run build ``` 4. 启动服务: ```bash npm start ``` ## 测试 运行测试: ```bash npm test ``` 运行监视模式测试: ```bash npm run test:watch ``` 生成测试覆盖率报告: ```bash npm run test:coverage ``` ## 代码质量 检查代码: ```bash npm run check ``` 格式化代码: ```bash npm run format ``` 修复代码问题: ```bash npm run lint ``` ## 工具功能详细说明 ### 搜索 DeepWiki 工具名称: `search_deepwiki` 参数: - `keyword` (string): 要搜索的关键词 示例: ```json { "jsonrpc": "2.0", "method": "search_deepwiki", "params": { "keyword": "python" }, "id": "1" } ``` 特点: - 搜索公开的DeepWiki仓库 - 返回匹配的仓库列表 - 记录搜索过程日志 ### 向仓库提问 工具名称: `ask_repository` 参数: - `repo` (string): 仓库的名称,如 "expressjs/express" - `question` (string, 可选): 要提问的问题内容 示例: ```json { "jsonrpc": "2.0", "method": "ask_repository", "params": { "repo": "expressjs/express", "question": "这个仓库的主要功能是什么?" }, "id": "2" } ``` 特点: - 向指定仓库提问并获取回答 - 显示回答生成进度 - 记录问答过程日志 ## 技术实现 - **FastMCP**: 提供 Model Context Protocol 的主要实现 - **TypeScript**: 提供类型安全和开发体验提升 - **Zod**: 用于参数验证 - **Vitest**: 用于单元测试 - **Biome**: 用于代码格式化和检查