国内代理商mcp
MCP服务器,通过隔离的Claude Code子流程将任务分派到LLM端点,包括本地Claude(Max OAuth)和国内模型(MiniMax、GLM、DeepSeek、Qwen等)。
您的主Claude Code会话(例如Max订阅上的Opus)保持不变。当它委派工作时,此MCP服务器会生成一个单独的 claude [--bare] -p 子流程路由到所选模型,具有完整的代理功能——读/写文件、运行命令、搜索代码——成本只是其中的一小部分。
建筑
You → Claude Code (Opus, Max subscription)
→ calls run_agent MCP tool
→ spawns: claude [--bare] -p
(native mode: inherits your OAuth session)
(api mode: env ANTHROPIC_BASE_URL → model endpoint)
→ returns structured result + live progress本机与API模式
- 原生模式 (
"native": true):继承您的Claude Code Max OAuth会话。不需要API密钥。支持搜索/网络功能。使用您的最大订阅配额。 - API模式 (默认):覆盖
ANTHROPIC_BASE_URL仅在子流程上。您的主会话的OAuth连接从未被触及或泄露。
新增功能(v2.3.0)
- 基于队列的调度:任务可以输入
queued状态,并在容量释放时自动启动 - 更安全的通知:自定义shell通知是明确的选择加入
- 更可靠的生命周期:修复了取消/完成竞争条件,并改进了超时/生成失败的重试行为
- 更好的流鲁棒性:正确处理块分割JSON流行并限制stderr内存增长
- 批量调度改进:
run_agent_batch现在返回每个项目的成功/错误结果,而不是快速失败行为 - 上下文感知缓存键:缓存现在包括任务上下文(工作目录/系统提示/工具),减少了缓存命中率
特性
- 多模型调度:配置多个端点,为每个任务选择正确的模型
- 汽车型号选择:省略
modelId让服务器根据任务分析进行选择 - 健康检查:启动连接测试+按需
check_health工具(跳过本机模型) - 使用回退重试:失败的任务在具有匹配功能的另一个模型上自动重试
- 有背压的队列:当容量已满时,任务可以排队,而不是立即出现硬故障
- 结果缓存:可配置窗口中的重复任务返回缓存结果
- 成本跟踪:通过以下方式进行每种型号的代币使用和成本估算
get_stats - 丰富的进展:跟踪工具调用、文件修改、命令运行、当前阶段和实时日志
- 配置热重载:编辑配置文件而不重新启动服务器
- 工艺安全:隔离环境,1MB输出上限,硬+非活动超时,优雅关机
- 任务通知:自定义shell通知是明确的选择加入
设置
1.配置
复制 config.example.json 其中之一:
./domestic-agent.json(项目级)~/.config/domestic-agent-mcp/config.json(用户级别)
或者直接通过 DOMESTIC_AGENT_CONFIG 有人是。
API键可以是文字或 $ENV:VAR_NAME 参考文献
本机模型不需要 baseUrl 或 apiKey --set "native": true.
2.建造
npm install && npm run build3.注册
claude mcp add domestic-agent -- node /path/to/dist/server.js工具
list_models
列出配置的端点,包括功能、运行状况、负载和可用性。
run_agent
将任务分派给模型。
| 参数 | 必填 | 描述 |
|---|---|---|
task | yes | 子流程代理的提示/任务 |
mode | 是的 | "sync" (块直到完成,\<30s任务)或 "background" (返回taskId,轮询 get_task_status) |
modelId | 否 | 型号ID。自动选择时省略 |
workingDirectory | no | 子进程cwd的绝对路径 |
systemPrompt | no | 附加到代理系统提示 |
timeoutMs | 否 | 覆盖超时 |
allowedTools | 否 | 限制工具,例如。 ["Bash","Read","Write"] |
notification | 没有 | { command? } --任务完成时开火(command 需要 defaults.allowUnsafeNotificationCommand=true) |
get_task_status
轮询后台任务进度:状态、轮次、工具调用、触摸的文件、运行的命令、, 最近的日志行,并在完成时显示结果。
cancel_task
终止正在运行的任务(SIGTERM→ 西格尔)。
check_health
Ping所有API终结点。返回运行状况、延迟和错误。(跳过本机模型。)
get_stats
每个模型的使用统计数据:任务计数、成功率、令牌、估计成本。
get_config
返回当前加载的服务器配置(API密钥被编辑,除非它们是 $ENV:... 参考文献
list_tasks
列出所有任务(包括排队/正在运行/已完成/错误/已取消)及其最新进度摘要。
run_agent_batch
在一次呼叫中调度多个任务,并获得每个项目的调度结果(成功或错误)。
retry_task
通过taskId重试已完成的任务,并使用可选的覆盖(model/timeout/tools/cwd/systemPrompt/notification)。
rerun_task
使用精确的原始参数按taskId重新运行任务。
toggle_model
在运行时启用或禁用模型,而无需重新启动。
reset_stats
重置每种型号的使用统计信息。
get_dispatch_guide
阅读主代理使用的调度指南。
update_dispatch_guide
将运行时观察结果附加到指南中,或完全替换它。
配置
看 config.example.json.关键字段:
| 字段 | 描述 |
|---|---|
models[].native | 如果 true,使用父级Claude Code的OAuth会话,而不是API密钥覆盖 |
models[].capabilities | 用于过滤和自动选择的标签(coding, chinese-text, fast, reasoning, general, search, agent) |
models[].costPer1kInput/Output | 成本跟踪的美元定价 |
defaults.maxQueueSize | 新任务被拒绝前的最大排队任务数 |
defaults.cacheTtlMs | 缓存重复任务结果的时间(默认2分钟) |
defaults.enableRetry | 回退模型上的自动重试失败任务(默认为true) |
defaults.allowUnsafeNotificationCommand | 如果 true,允许 notification.command shell执行(默认 false) |
许可证
MIT。受...启发 steipete/claude代码mcp.
