第 6 卷
"api-server": { "type": "sse", "url": "https://api.example.com/mcp/sse", "headers": { "Authorization": "Bearer your-token", "X-API-Version": "v1"
}, "description": "远程 API 服务"
} } }
Node.js 本地服务器
json
{ "mcpServers": { "node-server": { "type": "stdio", "command": "node", "args": ["./mcp-server.js"], "env": { "NODE_ENV": "production"
}, "description": "Node.js MCP 服务器"
} } }
扩展开发
创建自定义MCP服务器
1.选择实现语言: Python、Node.js、Go 等
2.实现 MCP协议:使用官方 SDK 或自行实现
3.定义工具接口:描述工具功能和参数
4.处理请求:接收和处理来自 CodeBuddy 的请求
5.返回结果:按 MCP 格式返回执行结果
SDK和库
Python: FastMCP
TypeScript/JavaScript: @modelcontextprotocol/sdk
其他语言:参考官方文档实现
配置示例
TAPD
bash
codebuddy mcp add --scope user --transport http --header "X-Tapd-Access-Token:
Chrome Devtools
bash
codebuddy mcp add --scope user chrome-devtools -- npx -y chrome-devtools-mcp@la
iWiki
bash
codebuddy mcp add --scope user iwiki -- npx -y mcp-remote@latest https://prod.m
超大响应处理
当 MCP 工具返回的内容超过 MAX_MCP_OUTPUT_TOKENS(默认 20000 tokens,约 80KB 字符
数)时,CodeBuddy 会自动处理以避免占用过多上下文:
默认行为(落盘):把完整响应保存到当前会话的 ~/.codebuddy/projects/<projecthash>/<session-id>/tool-results/mcp-<server>-<tool>-<timestamp>-<rand>.txt,返回给模型一段读取指引(包含文件路径、格式说明、分段读取要求)。模型可以通过 Read工具按 offset / limit 参数分段读取完整内容,或用 jq 对 JSON 结构做结构化查询。
截断降级:以下场景会直接截断内容到 MAX_MCP_OUTPUT_TOKENS * 4 字符上限,而不落盘:
响应包含图片块(避免 base64 payload写入 .txt 文件丢失图片渲染)
当前无会话上下文(避免产生孤儿文件)
落盘失败(目录不可写、磁盘满等)
设置了环境变量 CODEBUDDY_DISABLE_MCP_LARGE_OUTPUT_FILES=1
截断时会在内容尾部追加 [OUTPUT TRUNCATED - exceeded N token limit] 标记,并告知模型
哪些类型的块被丢弃(例如 [Dropped 2 audio blocks due to size limit]),方便模型改
用分页或过滤参数重试。
相关链接
MCP官方文档
MCP GitHub 仓库
CodeBuddy 官方文档
最后更新: 6/11/26, 5:42 PM
上一页下一页
开发容器MCP Apps 接入指南