返回市场
深度探索MCP

深度探索MCP

作者:chew-z2 星标更新:2025-08-09

项目介绍

DeepSeek MCP Server

一款生产级别的MCP服务器,集成DeepSeek的API,具备高级代码审查功能、高效的文件管理和API账户管理。

功能

  • 多模型支持:从多种DeepSeek模型中选择,包括DeepSeek Chat和DeepSeek Coder
  • 代码审查重点:内置系统提示进行详细的代码分析,并以markdown格式输出
  • 自动文件处理:内置文件管理,直接路径集成
  • API账户管理:检查余额并估算token使用情况
  • JSON模式支持:请求结构化的JSON响应,便于解析
  • 高级错误处理:优雅降级,结构化错误日志记录
  • 改进的重试逻辑:API调用自动重试,可配置指数退避
  • 安全性:可配置的文件类型限制和大小限制
  • 性能监控:内置指标收集,用于请求延迟和吞吐量

预备条件

  • Go 1.21+
  • DeepSeek API密钥
  • 对MCP协议的基本理解

安装与快速开始

# 克隆并构建
git clone https://github.com/your-username/DeepseekMCP
cd DeepseekMCP
go build -o bin/mcp-deepseek

# 使用环境变量启动服务器
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_KEYDeepSeek API密钥必填
DEEPSEEK_MODEL可用模型中的模型IDdeepseek-chat
DEEPSEEK_SYSTEM_PROMPT代码审查的系统提示默认代码审查提示
DEEPSEEK_SYSTEM_PROMPT_FILE包含系统提示的文件路径
DEEPSEEK_MAX_FILE_SIZE最大上传大小(字节)10485760(10MB)
DEEPSEEK_ALLOWED_FILE_TYPES逗号分隔的MIME类型[常见的文本/代码类型]
DEEPSEEK_TIMEOUTAPI超时时间(秒)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="您的自定义代码审查提示"
# 或者:从文件加载系统提示
# 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": "审查这段Go代码中的并发问题...",
    "model": "deepseek-chat",
    "systemPrompt": "可选的自定义审查指令",
    "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": "要估计的文本...",
    "file_path": "path/to/your/file.go"
  }
}

支持的模型

默认情况下,支持以下DeepSeek模型:

模型ID描述
deepseek-chat平衡性能和效率的一般用途聊天模型
deepseek-coder专门用于编码和技术任务的模型
deepseek-reasoner优化用于推理和解决问题任务的模型

注意:实际可用的模型可能因您的API访问级别而异。服务器会自动发现并通过DeepSeek API为您提供所有可访问的模型。

支持的文件类型

扩展名MIME类型
.gotext/x-go
.pytext/x-python
.jstext/javascript
.mdtext/markdown
.javatext/x-java
.c/.htext/x-c
.cpp/.hpptext/x-c++
25+更多(参见getMimeTypeFromPath在deepseek.go中)

运行注意事项

  • 降级模式:初始化错误时自动进入安全模式
  • 审计日志:所有操作带有时间戳和元数据的日志记录
  • 安全性:在处理前通过MIME类型和大小验证文件内容

文件处理

服务器通过deepseek_ask工具直接处理文件:

  1. file_paths数组参数中指定本地文件路径
  2. 服务器自动:
    • 从提供的路径读取文件
    • 根据文件扩展名确定正确的MIME类型
    • 将文件内容上传到DeepSeek API
    • 将文件作为查询上下文使用

这种直接文件处理方法消除了需要单独文件上传/管理端点的需求。

JSON模式支持

对于需要结构化数据输出的集成,服务器支持JSON模式:

  • 结构化响应:从DeepSeek模型请求正确格式化的JSON响应
  • 易于解析:适用于CI/CD管道和自动化系统
  • 简单集成:只需在请求中设置json_mode: true

JSON模式示例:

{
  "name": "deepseek_ask",
  "arguments": {
    "query": "分析此代码并返回一个JSON对象,包含:issues_found(字符串数组),complexity_score(1-10的数字),和recommendations(字符串数组)",
    "model": "deepseek-chat",
    "json_mode": true,
    "file_paths": ["main.go", "config.go"]
  }
}

这将返回一个可以由应用程序直接解析的格式良好的JSON响应。

开发

命令行选项

服务器支持这些命令行选项来覆盖环境变量:

# 覆盖使用的DeepSeek模型
./bin/mcp-deepseek -deepseek-model=deepseek-coder

# 覆盖系统提示
./bin/mcp-deepseek -deepseek-system-prompt="您的自定义提示"

# 覆盖温度设置(0.0-1.0)
./bin/mcp-deepseek -deepseek-temperature=0.8

运行测试

运行测试:

go test -v ./...

运行代码检查器

golangci-lint run

格式化代码

gofmt -w .

许可证

MIT许可证

贡献

欢迎贡献!请随意提交Pull Request。

  1. 分叉项目
  2. 创建您的功能分支(git checkout -b feature/amazing-feature
  3. 提交更改(git commit -m '添加一些惊人的功能'
  4. 推送到分支(git push origin feature/amazing-feature
  5. 打开Pull Request