Skip to main content
Glama

DS Claude Haha MCP

English | 简体中文

让一个主 Agent 负责规划,再把编码任务自动交给 Claude Code Haha Desktop 中配置的另一个模型执行。

典型用法:

Codex + GPT-5.6 Sol(规划、决策、代码指导)
  -> MCP: deepseek_run
Claude Code Haha Desktop + DeepSeek Flash(修改代码、运行测试)
  -> 完整结果、工具事件、文件变更审计
Codex + Sol(向用户汇报)

这不是 API 网关,也不需要安装官方 Claude CLI。执行模型的 API 地址和 Key 仍由 Haha Desktop 管理,MCP 不读取、不保存、不转发 Key。

能力边界

角色

当前支持范围

主 Agent A

任意支持本地 stdio MCP 的 Agent,例如 Codex、Claude Haha、Claude Code、Cursor 等

执行 Agent B

当前专门适配 Claude Code Haha Desktop 的本地 REST/WebSocket 会话接口

执行模型

Haha Provider 中已经配置并可用的模型,例如 deepseek-v4-flash

共享内容

同一个项目目录中的磁盘文件,以及主 Agent 传给 MCP 的任务计划

不会共享

主 Agent 的隐藏思考、完整聊天历史和未写入磁盘的状态

因此,它实现的是“不同主 Agent -> Haha 执行 Agent”的通用桥,而不是无需适配就能连接任意两个 Agent 软件。扩展其他执行 Agent 需要为其会话、模型选择和事件流实现新的适配器。

Related MCP server: mcp-relay

工作流程

flowchart LR
    U[用户的一次输入] --> A[主 Agent A]
    A -->|规划 + deepseek_run| M[DS Claude Haha MCP]
    M -->|创建同目录会话| H[Claude Code Haha Desktop]
    H --> B[执行模型 B]
    B -->|修改文件 / 运行测试| W[项目工作区]
    B -->|最终回答 + 工具事件| M
    M -->|变更审计 + 结果| A
    A --> U

主 Agent 和执行模型必须使用同一个项目根目录。例如:

主 Agent 项目目录: D:\Projects\MyApp
deepseek_run.workdir: D:\Projects\MyApp
Haha 后台会话目录: D:\Projects\MyApp

不要把整个 D:\ 当项目目录。建议把 DS_WORKER_ALLOWED_ROOTS 限制到代码目录或具体项目。

功能

  • 自动探测 Haha Desktop 本地端口 67713456

  • 安全列出 Haha Provider ID 与模型名

  • 创建独立 Haha 后台会话并选择指定 Provider/模型

  • 同步执行或异步启动、查询、等待、取消

  • 返回完整最终回答、紧凑进度、工具调用和工具结果预览

  • Git 仓库执行前后文件哈希审计

  • allowedFiles 越界修改警告

  • DS_WORKER_ALLOWED_ROOTS 工作目录白名单

  • 对回答、错误和嵌套工具结果递归脱敏

  • 仅允许连接 loopback 地址,不接受 Key、Base URL、请求头或任意环境变量作为工具参数

前提

  1. Windows 上已安装并启动 Claude Code Haha

  2. 已在 Haha 中配置执行模型的 Provider,并能正常对话。

  3. Node.js 20 或更高版本。

  4. 主 Agent 支持本地 stdio MCP。

安装

git clone https://github.com/OPFIMISS/DS-Claude-haha-MCP.git
cd DS-Claude-haha-MCP
npm install
npm run build

构建入口为:

<仓库目录>\dist\index.js

Codex 接入 Claude Haha

编辑用户级 ~/.codex/config.toml,或可信项目中的 .codex/config.toml

[mcp_servers.ds-worker]
command = "node"
args = ['D:\DS-Claude-haha-MCP\dist\index.js']
tool_timeout_sec = 1800

[mcp_servers.ds-worker.env]
HAHA_SERVER_URL = "http://127.0.0.1:6771"
DS_WORKER_MODEL_ID = "deepseek-v4-flash"
DS_WORKER_ALLOWED_ROOTS = 'D:\Projects'
DS_WORKER_PERMISSION_MODE = "acceptEdits"

重启 Codex 后,让主模型先调用 deepseek_profiles。确认能看到 Haha 中的 Provider 与 deepseek-v4-flash,再运行一个只返回固定文本的小任务。

Codex 的 MCP 配置规则以 OpenAI 官方文档 为准。

Claude Haha 作为主 Agent

在项目根目录创建 .mcp.json

{
  "mcpServers": {
    "ds-worker": {
      "type": "stdio",
      "command": "node",
      "args": ["D:\\DS-Claude-haha-MCP\\dist\\index.js"],
      "env": {
        "HAHA_SERVER_URL": "http://127.0.0.1:6771",
        "DS_WORKER_MODEL_ID": "deepseek-v4-flash",
        "DS_WORKER_ALLOWED_ROOTS": "D:\\Projects",
        "DS_WORKER_PERMISSION_MODE": "acceptEdits"
      }
    }
  }
}

重新打开项目或刷新 MCP。此时可让 Haha 当前对话中的主模型调用工具,在后台新建另一个 Haha 会话运行执行模型。

不要把包含真实 Key 的展开后配置提交到 Git。这个 MCP 本身不需要 Key。

其他主 Agent 接入

任何支持 stdio MCP 的宿主都使用同一个进程定义:

{
  "command": "node",
  "args": ["D:\\DS-Claude-haha-MCP\\dist\\index.js"],
  "env": {
    "HAHA_SERVER_URL": "http://127.0.0.1:6771",
    "DS_WORKER_MODEL_ID": "deepseek-v4-flash",
    "DS_WORKER_ALLOWED_ROOTS": "D:\\Projects"
  }
}

不同宿主可能使用 JSON、TOML、图形界面或命令行保存这三个字段。不要直接照抄不属于该宿主的配置外壳;以宿主自己的 MCP 文档为准。

完整的角色划分、项目指令和适配器说明见:不同 Agent 接入不同 Agent

让主 Agent 自动调用

MCP 是工具,不会拦截用户消息。要接近“一次输入,自动 A -> B”,请在项目的 AGENTS.mdCLAUDE.md 或宿主项目规则中加入:

## Background implementation worker

你是主策划模型。凡是涉及修改代码、创建或删除文件、运行命令或测试的任务:

1. 先分析需求并形成完整实施方案。
2. 必须调用 ds-worker 的 deepseek_run,把 objective、当前项目根目录 workdir、约束、相关文件、allowedFiles 和验收命令交给执行模型。
3. 等待执行模型完成后,检查 finalResponse、changedFiles、warnings 和测试结果。
4. 执行模型工作期间不要同时修改同一批文件。
5. 纯问答、纯分析或用户明确要求你亲自实现时可以不调用。

项目规则能显著提高自动调用概率,但最终是否调用工具仍由主 Agent 判断。百分之百硬触发需要在宿主外增加消息编排层,不属于本项目范围。

MCP 工具

工具

作用

deepseek_profiles

脱敏列出 Haha Provider 和模型

deepseek_run

同步完成创建会话、执行、等待和审计

deepseek_start

异步启动任务

deepseek_status

查询状态和增量事件

deepseek_wait

长轮询等待新事件或任务结束

deepseek_cancel

向 Haha 发送 stop_generation

工具名沿用 deepseek_*,但模型可通过 modelId 指定 Haha Provider 中的其他可用模型。

环境变量

变量

默认值

说明

HAHA_SERVER_URL

自动探测

只能是 loopback HTTP 地址

DS_WORKER_PROVIDER_ID

匹配当前激活 Provider

可用 deepseek_profiles 查询

DS_WORKER_MODEL_ID

deepseek-v4-flash

默认执行模型

DS_WORKER_PERMISSION_MODE

acceptEdits

可选 acceptEdits / bypassPermissions

DS_WORKER_ALLOWED_ROOTS

分号分隔的绝对目录白名单,强烈建议设置

DS_WORKER_TIMEOUT_SECONDS

1800

单任务默认超时

DS_WORKER_MAX_TIMEOUT_SECONDS

3600

调用方可请求的最大超时

安全说明

  • acceptEdits 是默认值;需要额外权限时会拒绝并返回警告。

  • bypassPermissions 适合完全信任的仓库,相当于允许执行 Agent 直接操作项目。

  • allowedFiles 是事后审计,不是沙箱。硬边界应使用 DS_WORKER_ALLOWED_ROOTS、独立工作树、容器或受限账户。

  • 非 Git 目录无法做完整文件变化审计,会返回明确警告。

  • 工具结果超过 12,000 字符时只返回脱敏预览,完整最终回答仍会返回。

  • 本项目只使用 Haha 的 /api/*/ws/<session-id>,不调用内部 /sdk/*

  • Haha 的本地协议可能随版本变化;升级 Haha 后请先运行测试任务。

开发与验证

npm run typecheck
npm test
npm run build

当前测试覆盖 Provider/模型选择、完整执行、立即取消、运行中取消、工作目录白名单和递归密钥脱敏。

License

MIT

Install Server
A
license - permissive license
A
quality
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • A
    license
    -
    quality
    D
    maintenance
    Connects Claude Desktop and Claude Code, enabling autonomous exchange of messages, files, and code while keeping their context windows separate.
    4
    MIT
  • F
    license
    -
    quality
    C
    maintenance
    Enables Claude to delegate coding tasks to a worker CLI, handling actual code modifications and command execution while Claude supervises and verifies results.

View all related MCP servers

Related MCP Connectors

  • Cross-agent artifact workspace with provenance across Claude Code, Codex, Cursor, LangGraph.

  • The team layer for AI coding agents: shared contracts, collision alerts, E2EE sessions.

  • Connect agents to 6DuckLearn memory, approvals, and runtime control.

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/OPFIMISS/DS-Claude-haha-MCP'

If you have feedback or need assistance with the MCP directory API, please join our Discord server