mcpField
M
mcp-server-setup

mcp-server-setup

github.com/loxosceles-devAgent 工作流114 次安装
代码仓库

关于 mcp-server-setup

用于在 devcontainer 中维护 MCP 服务配置的指南,涵盖 Kiro CLI、Claude Code、Amazon Q、Codex 和 VS Code / Copilot。它为多个 Agent 规定共享配置源,同时说明 VS Code 的独立格式和凭据处理方式。

主要功能

  1. 01共享的 MCP 服务源文件
  2. 02分发到各 Agent 配置路径
  3. 03独立的 VS Code 配置格式
  4. 04Trello 与 GitHub 环境变量说明
  5. 05配置和故障排查步骤

适用场景

  1. 01向 devcontainer 添加 MCP 服务
  2. 02同步多个 Agent 的配置
  3. 03排查变量缺失或配置问题

MCP 相关

说明如何在 devcontainer 中配置 MCP 服务并分发给支持的 Agent,也记录格式差异以及测试和添加服务的步骤。

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/loxosceles-dev/dev-skills --skill mcp-server-setup

安装后在 Claude Code 中输入/mcp-server-setup确认已加载。

详细介绍

MCP 服务设置

这是严格的指南。 请严格遵守以下规则。

我们 devcontainer 设置中的 MCP 服务配置。post_create.sh 会将单个源文件分发给所有 Agent。


单一事实来源

MCP 服务只在 ~/.devcontainer-state/ai/mcp/servers.json 中定义(已加入 gitignore,包含凭据)。仓库中有一个已提交的模板:servers.json.template。

容器启动时,post_create.sh 会将此文件分发到:

Agent目标位置方式
Kiro CLI~/.kiro/settings/mcp.json复制
Claude Code~/.claude/settings.json将 mcpServers 合并到现有设置中
Amazon Q / Codex${WORKSPACE_ROOT}/.amazonq/mcp.json复制

VS Code / Copilot 是例外——.vscode/mcp.json 使用不同的格式(servers 键、${ENV_VAR} 引用),并已提交到仓库。请单独维护此文件。


源文件格式

{
  "mcpServers": {
    "server-name": {
      "command": "npx",
      "args": ["-y", "package-name"],
      "env": {
        "ENV_VAR": "value"
      }
    }
  }
}

Kiro、Claude 和 Amazon Q 共用此格式。


VS Code 格式

顶层键不同,使用环境变量引用,而不是原始值:

{
  "servers": {
    "server-name": {
      "command": "npx",
      "args": ["-y", "package-name"],
      "env": {
        "ENV_VAR": "${ENV_VAR}"
      }
    }
  }
}

已知服务及其环境变量

请使用此处列出的确切环境变量名称。名称不匹配是最常见的设置失败原因。

Trello(mcp-server-trello)
TRELLO_API_KEY    — from https://trello.com/app-key
TRELLO_TOKEN      — NOT "TRELLO_API_TOKEN"
TRELLO_BOARD_ID   — optional, found in board URL
GitHub(@modelcontextprotocol/server-github)
GITHUB_PERSONAL_ACCESS_TOKEN  — or GITHUB_TOKEN

添加新的 MCP 服务

1. 在容器中手动测试服务
echo '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{"name":"test","version":"1.0"}}}' \
  | ENV_VAR=value timeout 5 npx -y <package-name> 2>/dev/null

预期结果:包含 result.serverInfo 的 JSON 响应。如果出现缺少环境变量的错误,说明变量名称有误——请检查服务的源代码或 README。

2. 添加到源文件

在主机上编辑 ~/.devcontainer-state/ai/mcp/servers.json。添加服务条目,并使用测试中确认的确切环境变量名称。

3. 重建容器或重新运行 post_create.sh

容器启动时会分发配置。请重建容器,或手动运行 post_create.sh。

4. 单独更新 VS Code 配置

如果使用 Copilot,请在项目仓库的 .vscode/mcp.json 中添加该服务,采用 servers 格式并使用 ${ENV_VAR} 引用。


Devcontainer 注意事项

  • 全局 npm 软件包会在重建后保留,因为它们位于 ~/.cache/npm-global(缓存挂载点)中。
  • 凭据保存在 devcontainer-state 中(已加入 gitignore)。它们绝不会出现在项目仓库中——.amazonq/ 已加入 gitignore,VS Code 使用环境变量引用。
  • 编辑一次,适用于所有 Agent——只需修改一次 servers.json 并重建,Kiro、Claude 和 Amazon Q 都会获得更新。

故障排除

症状原因解决方法
找不到服务未安装软件包npm install -g <package>
出现“missing env var”错误环境变量名称错误检查“已知服务”部分;手动测试
服务已启动,但 Agent 无法连接配置位于错误的文件中或格式错误检查 mcpServers 与 servers 键
重建后配置丢失主机上没有 servers.json检查 ~/.devcontainer-state/ai/mcp/servers.json 是否存在
Agent 看不到配置更改会话过期重启 Agent 会话
容器启动时出现 MCP 警告尚未创建 servers.json运行 cp servers.json.template servers.json,然后填写凭据

渐进式改进

如果开发者纠正了此技能本应避免的行为,请建议对此技能进行具体修订,以防止今后再次出现同样的纠正。

评论

支持 Markdown