deepseek-agent-mcp
MCP server that packages DeepSeek agents as callable tools, offering a bare model for quick Q&A and a full agent capable of executing real coding and file-modifying tasks in a workspace.
README
deepseek-agent-mcp
把 DeepSeek 智能体打包成 MCP Server,让别的 Agent(Claude Desktop、Cursor、DSH 自身、或任何 MCP 客户端)把它当工具调用。提供两个工具:
| 工具 | 能力 | 适用场景 |
|---|---|---|
delegate_task |
裸模型 deepseek-v4-pro(无工具、无工作区) |
快速问答、分析、写作 |
run_agent_task |
完整 DSH agent:shell + 文件读写/编辑 + subagent + workflow + todo + 持久化,能真实改工作区 | 写代码、改文件、跑测试等真实任务 |
传输:stdio。运行时依赖:@modelcontextprotocol/sdk + zod(Node ≥ 20)。
1. 安装与启动
cd deepseek-agent-mcp
npm install # 会顺便执行 prepare -> 编译出 dist/
npm run build # 手动编译
npm start # 运行 stdio MCP server(node dist/index.js)
凭据(API Key)
按顺序读取,命中即用:
- 环境变量
DEEPSEEK_API_KEY - DSH 自己的凭据文件
~/.dsh/.credentials.yaml
第 2 条对 DSH 特别有用:DSH 的 stdio MCP 启动器会清除环境里看起来像凭据的变量,但凭据文件不受影响。
环境变量
| 变量 | 默认 | 说明 |
|---|---|---|
DEEPSEEK_API_KEY |
从 ~/.dsh/.credentials.yaml 回退 |
DeepSeek API Key |
DEEPSEEK_BASE_URL |
https://api.deepseek.com |
API 端点 |
DEEPSEEK_MCP_MODEL |
deepseek-v4-pro |
delegate_task 默认模型 |
DEEPSEEK_HARNESS_ROOT |
— | run_agent_task 用的 deepseek-harness checkout 路径(run_agent_task 的 harness_root 参数优先) |
2. 工具说明
2.1 delegate_task —— 裸模型
把任务交给 DeepSeek 模型,返回回答。无状态、无工具、不碰文件。
| 参数 | 类型 | 必填 | 默认 | 说明 |
|---|---|---|---|---|
task |
string | ✅ | — | 任务/问题 |
system |
string | — | — | 可选系统提示 |
model |
enum | — | deepseek-v4-pro |
deepseek-v4-pro / deepseek-v4-flash |
reasoning_effort |
enum | — | high |
off / high / max |
max_tokens |
int | — | 8192 |
输出上限(≤256000) |
2.2 run_agent_task —— 完整 agent
启动一次 dsh --profile headless "<task>",跑完整 DSH 编码 agent(shell、文件读写/编辑、subagent、workflow、todo、JSONL 持久化),在指定工作区里真实执行并修改文件,返回最终回答。
| 参数 | 类型 | 必填 | 默认 | 说明 |
|---|---|---|---|---|
task |
string | ✅ | — | 任务(目标、涉及文件、验收标准) |
workspace |
string | — | server 进程 cwd | agent 操作的工作区目录 |
harness_root |
string | — | $DEEPSEEK_HARNESS_ROOT |
deepseek-harness checkout 路径 |
profile |
enum | — | headless |
目前只支持 headless |
timeout_ms |
int | — | 600000 |
超时杀掉(默认 10 分钟) |
前置条件:本机要有一个已构建(pnpm install 过)的 deepseek-harness checkout,其 apps/cli/lib/bin.js 存在。首次运行 dsh --profile headless 会在 ~/.dsh/profiles/headless/ 自动初始化 profile(写几个小文件),属正常行为。
返回内容块:最终回答 → [agent] ok=... exit=... 状态 → 出错时带 [stderr] 诊断。退出码非 0 时 isError=true。
3. 接入不同的 Agent
3.1 接入 DSH(本机)
插到 cordis.yml(或作为 --config overlay),DSH 里的工具名会是 mcp__deepseek__delegate_task 和 mcp__deepseek__run_agent_task:
- insert:
- id: deepseek-agent-mcp
name: '@deepseek-ai/dsh-mcp-client'
config:
serverName: deepseek
transport: stdio
command: node
args: ['D:/dsh/deepseek-agent-mcp/dist/index.js']
cwd: D:/dsh/deepseek-agent-mcp
env:
DEEPSEEK_HARNESS_ROOT: 'D:/deepseek-harness'
# 完整 agent + 思考型任务可能很久,放宽超时
toolCallTimeoutMs: 900000
DSH 的 stdio 启动器会清掉
DSH_*和凭据类环境变量,但config.env里显式写的变量会在清洗之后合并进去,所以上面显式写DEEPSEEK_HARNESS_ROOT是安全的;DEEPSEEK_API_KEY不必写,server 会从~/.dsh/.credentials.yaml读。
3.2 接入 Claude Desktop
claude_desktop_config.json(macOS ~/Library/Application Support/Claude/claude_desktop_config.json,Windows %APPDATA%\Claude\claude_desktop_config.json):
{
"mcpServers": {
"deepseek": {
"command": "node",
"args": ["D:/dsh/deepseek-agent-mcp/dist/index.js"],
"env": {
"DEEPSEEK_API_KEY": "sk-...",
"DEEPSEEK_HARNESS_ROOT": "D:/deepseek-harness"
}
}
}
}
3.3 接入 Cursor / 其它 mcp.json 客户端
.cursor/mcp.json(或通用 .mcp.json):
{
"mcpServers": {
"deepseek": {
"command": "node",
"args": ["D:/dsh/deepseek-agent-mcp/dist/index.js"],
"env": {
"DEEPSEEK_API_KEY": "sk-...",
"DEEPSEEK_HARNESS_ROOT": "D:/deepseek-harness"
}
}
}
}
4. 验证
npm run build # 编译
npm run test:api # 直接打 DeepSeek API,验证 key/端点/模型/思考参数
npm run test:mcp # 进程内 MCP 往返:listTools + delegate_task 真实调用 + run_agent_task 冒烟
npm run smoke # (真实环境)通过 MCP stdio 起子进程,listTools + 一次真实 delegate_task
test:mcp用 SDK 的InMemoryTransport做完整 MCP 握手,不依赖子进程管道,因此也能在禁止 named-pipe 的沙箱里跑;run_agent_task的完整 agent 冒烟需要真实环境(见下)。
5. 安全与边界(重要)
run_agent_task会真实执行:调用方等于把任务交给一个能跑 shell、能改文件的编码 agent。谁调用它,就等于授权它在workspace里做这些事——务必限制调用来源和工作区范围。- API Key 不回传:key 只在 server 进程内存里、且只作为 HTTPS 请求头发给
DEEPSEEK_BASE_URL(默认官方端点)。工具返回、schema、日志都不含 key。详见上一轮说明。 delegate_task是无状态的裸模型,不带会话、工具、工作区。run_agent_task每次调用是独立的一次性会话(新 session),不跨调用共享上下文。- 模型/思考参数由
~/.dsh/settings.yaml(agent-default-model)决定,run_agent_task走 DSH 的默认模型选择。
6. 可移植替代方案(Python SDK)
如果不想依赖一个本机 checkout,官方更「可携带」的入口是 Python SDK deepseek-harness-sdk,它捆绑运行时并复用同一套完整 agent 组合:
from deepseek_harness import DeepSeekHarness
with DeepSeekHarness(
provider="deepseek-official",
model="deepseek-v4-pro",
cwd="/path/to/workspace", # agent 可修改的工作区
session_root="/path/to/.dsh-sessions",
) as harness:
result = harness.run("fix the failing test")
print(result.final_response, result.finish_reason)
它返回结构化 RunResult(final_response、finish_reason、session_id),且运行时子进程可跨调用复用。参考 examples/jsonrpc-agent/minimal.py 与 python/sdk/README.md。把这段包进一个 Python MCP server(mcp 包)即可得到同样效果、且自带运行时的版本;本仓库当前用 CLI 方案是因为它无需额外 pip install 和运行时构建。
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。