@physihan/deepwiki-mcp
Version:
DeepWiki MCP server implementation
184 lines (138 loc) • 3.66 kB
Markdown
# 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**: 用于代码格式化和检查