关于 DeepSeek MCP Server
DeepSeek MCP Server 是一个用 Go 编写的服务,可将问题和代码文件发送给 DeepSeek 模型。它支持代码审查、JSON 格式响应和 API 账户查询。
主要功能
- 01查询 DeepSeek 模型
- 02结合文件上下文审查代码
- 03请求 JSON 格式响应
- 04列出模型并查询余额
- 05估算 Token 用量
适用场景
- 01审查本地源代码文件
- 02使用 DeepSeek 提出技术问题
- 03为自动化生成 JSON
- 04查询 API 余额和 Token 估算
MCP 相关
它向 MCP 客户端提供查询 DeepSeek、列出模型、查询 API 余额和估算 Token 的工具。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
DeepSeek MCP 服务
一个生产级 MCP 服务,与 DeepSeek API 集成,具备高级代码审查能力、高效的文件管理功能和 API 账户管理功能。
功能
- 多模型支持:可选择多种 DeepSeek 模型,包括 DeepSeek Chat 和 DeepSeek Coder
- 专注代码审查:内置系统提示词,可进行详细的代码分析并以 Markdown 格式输出
- 自动文件处理:内置文件管理功能,支持直接集成文件路径
- API 账户管理:查询余额并估算 Token 用量
- JSON 模式支持:请求结构化 JSON 响应,便于解析
- 高级错误处理:发生错误时优雅降级,并进行结构化错误日志记录
- 改进的重试逻辑:API 调用失败时自动重试,并支持配置指数退避
- 安全性:可配置的文件类型限制和大小上限
- 性能监控:内置指标收集功能,用于监控请求延迟和吞吐量
先决条件
- Go 1.21+
- DeepSeek API 密钥
- MCP 协议基础知识
安装与快速开始
# Clone and build
git clone https://github.com/your-username/DeepseekMCP
cd DeepseekMCP
go build -o bin/mcp-deepseek
# Start server with environment variables
export DEEPSEEK_API_KEY=your_api_key
export DEEPSEEK_MODEL=deepseek-chat
./bin/mcp-deepseek
配置
Claude Desktop
{
"mcpServers": {
"deepseek": {
"command": "/Your/project/path/bin/mcp-deepseek",
"env": {
"DEEPSEEK_API_KEY": "YOUR_API_KEY",
"DEEPSEEK_MODEL": "deepseek-chat"
}
}
}
}
环境变量
| 变量 | 描述 | 默认值 |
|---|---|---|
DEEPSEEK_API_KEY | DeepSeek API 密钥 | 必需 |
DEEPSEEK_MODEL | 可用模型中的模型 ID | deepseek-chat |
DEEPSEEK_SYSTEM_PROMPT | 用于代码审查的系统提示词 | 默认代码审查提示词 |
DEEPSEEK_SYSTEM_PROMPT_FILE | 包含系统提示词的文件路径 | 空 |
DEEPSEEK_MAX_FILE_SIZE | 最大上传大小(字节) | 10485760(10MB) |
DEEPSEEK_ALLOWED_FILE_TYPES | 以逗号分隔的 MIME 类型 | [常见文本/代码类型] |
DEEPSEEK_TIMEOUT | API 超时时间(秒) | 90 |
DEEPSEEK_MAX_RETRIES | API 最大重试次数 | 2 |
DEEPSEEK_INITIAL_BACKOFF | 初始退避时间(秒) | 1 |
DEEPSEEK_MAX_BACKOFF | 最大退避时间(秒) | 10 |
DEEPSEEK_TEMPERATURE | 模型温度(0.0-1.0) | 0.4 |
.env 示例:
DEEPSEEK_API_KEY=your_api_key
DEEPSEEK_MODEL=deepseek-chat
DEEPSEEK_SYSTEM_PROMPT="Your custom code review prompt here"
# Alternative: load system prompt from file
# DEEPSEEK_SYSTEM_PROMPT_FILE=/path/to/prompt.txt
DEEPSEEK_MAX_FILE_SIZE=5242880 # 5MB
DEEPSEEK_ALLOWED_FILE_TYPES=text/x-go,text/markdown
DEEPSEEK_TEMPERATURE=0.7
核心 API 工具
目前,该服务提供以下工具:
deepseek_ask
用于代码分析、审查和一般查询,也可选择包含文件路径。
{
"name": "deepseek_ask",
"arguments": {
"query": "Review this Go code for concurrency issues...",
"model": "deepseek-chat",
"systemPrompt": "Optional custom review instructions",
"file_paths": ["main.go", "config.go"],
"json_mode": false
}
}
deepseek_models
列出所有可用的 DeepSeek 模型及其功能。
{
"name": "deepseek_models",
"arguments": {}
}
deepseek_balance
查询 DeepSeek API 账户余额和可用状态。
{
"name": "deepseek_balance",
"arguments": {}
}
deepseek_token_estimate
估算文本或文件的 Token 数量,以便管理配额。
{
"name": "deepseek_token_estimate",
"arguments": {
"text": "Your text to estimate...",
"file_path": "path/to/your/file.go"
}
}
支持的模型
默认支持以下 DeepSeek 模型:
| 模型 ID | 描述 |
|---|---|
deepseek-chat | 通用聊天模型,兼顾性能和效率 |
deepseek-coder | 专为编码和技术任务设计的模型 |
deepseek-reasoner | 针对推理和问题解决任务优化的模型 |
注意:实际可用的模型可能因 API 访问权限级别而异。该服务会自动发现并开放你可通过 DeepSeek API 访问的所有模型。
支持的文件类型
| 扩展名 | MIME 类型 |
|---|---|
| .go | text/x-go |
| .py | text/x-python |
| .js | text/javascript |
| .md | text/markdown |
| .java | text/x-java |
| .c/.h | text/x-c |
| .cpp/.hpp | text/x-c++ |
| 25+ more | (参见 deepseek.go 中的 getMimeTypeFromPath) |
运维说明
- 降级模式:初始化出错时自动进入安全模式
- 审计日志:记录所有操作的时间戳和元数据
- 安全性:处理前根据 MIME 类型和大小验证文件内容
文件处理
服务器直接通过 deepseek_ask 工具处理文件:
- 在
file_paths数组参数中指定本地文件路径 - 服务器会自动:
- 从提供的路径读取文件
- 根据文件扩展名确定正确的 MIME 类型
- 将文件内容上传到 DeepSeek API
- 将文件用作查询的上下文
这种直接处理文件的方式,无需单独的文件上传或管理端点。
JSON 模式支持
对于需要结构化数据输出的集成,服务器支持 JSON 模式:
- 结构化响应:请求 DeepSeek 模型返回格式正确的 JSON 响应
- 便于解析:非常适合 CI/CD 流水线和自动化系统
- 易于集成:只需在请求中设置
json_mode: true
JSON 模式示例:
{
"name": "deepseek_ask",
"arguments": {
"query": "Analyze this code and return a JSON object with: issues_found (array of strings), complexity_score (number 1-10), and recommendations (array of strings)",
"model": "deepseek-chat",
"json_mode": true,
"file_paths": ["main.go", "config.go"]
}
}
这会返回格式良好的 JSON 响应,应用程序可以直接解析。
开发
命令行选项
服务器支持以下命令行选项,用于覆盖环境变量:
# Override the DeepSeek model to use
./bin/mcp-deepseek -deepseek-model=deepseek-coder
# Override the system prompt
./bin/mcp-deepseek -deepseek-system-prompt="Your custom prompt here"
# Override the temperature setting (0.0-1.0)
./bin/mcp-deepseek -deepseek-temperature=0.8
运行测试
运行测试:
go test -v ./...
运行代码检查工具
golangci-lint run
格式化代码
gofmt -w .
许可证
贡献
欢迎贡献!欢迎提交 Pull Request。
- Fork 此项目
- 创建功能分支(
git checkout -b feature/amazing-feature) - 提交更改(
git commit -m 'Add some amazing feature') - 推送到分支(
git push origin feature/amazing-feature) - 创建 Pull Request
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。