// =============================================================================
// AtomCode MCP 配置模板(JSONC:允许 // 与 /* */ 注释,便于阅读)
//
// 重要:复制为项目根目录的 `.mcp.json` 时,必须先删掉本文件里所有注释行,
//       再保存。AtomCode 使用标准 JSON 解析,带 // 的 `.mcp.json` 会解析失败。
//
// 简要原理
//   · MCP(Model Context Protocol):把外部程序或 HTTP 服务提供的「工具」
//     接到 AtomCode,像内置工具一样调用(通常需审批)。
//   · 顶层键为 mcpServers(与 Cursor 等工具一致;旧键 servers 仍被程序接受)。
//   · 本文件内含两套完整示例:「stdio」与「HTTP」各一。实际用时通常只保留
//     其一,或把键名改成你喜欢的名字;同一 server 不可同时写 command 与 url。
//   · 配置来源:项目根 `.mcp.json` 与用户目录 `~/.atomcode/mcp.json` 可都有;
//     同名 server 以项目级为准(覆盖用户级)。
//   · 字符串里可写 ${环境变量名} 或 ${名:-默认值},启动时由程序展开。
// =============================================================================

{
  "mcpServers": {
    // -------------------------------------------------------------------------
    // 模板 A — stdio:启动本地子进程,经标准输入输出走 MCP(不要写 url)
    // server 键名会出现在工具名里:mcp__<键名>__<远端工具名>
    //
    // 注意:stdio 传输的所有请求是串行的(MCP 协议限制,单通道通信)。
    // 如果某个工具调用耗时较长(如代码分析),其他工具调用会排队等待。
    // 对于耗时操作,建议使用 HTTP 传输(模板 B)以获得更好的并发性能。
    // -------------------------------------------------------------------------
    "test-echo": {
      "command": "cargo",
      "args": ["run", "--release", "--bin", "mcp-test-server", "--manifest-path", "."],
      "disabled": true
      // 启用前改为 false,并把 manifest-path 指到正确 Cargo.toml(如本仓库
      // crates/atomcode-core/Cargo.toml),否则从错误目录执行会找不到包。
      //
      // 常用可选(与 command 同级,按需取消注释;不要尾逗号):
      // "env": { "KEY": "value" },
      // "timeout_ms": 30000
    },

    // -------------------------------------------------------------------------
    // 模板 B — HTTP:连接远程 MCP 端点(不要写 command / args)
    // url / headers 里同样支持 ${VAR};令牌勿写死,用环境变量。
    // -------------------------------------------------------------------------
    "example-http": {
      "url": "https://your-mcp-host.example/mcp",
      "headers": {
        "Authorization": "Bearer ${YOUR_TOKEN}"
      },
      "timeout_ms": 30000,
      "disabled": true
      // 把 url 换成真实端点;不需要鉴权时可删掉整个 headers 对象。
      // 启用前改为 false。
    },

    // -------------------------------------------------------------------------
    // 模板 C — GitHub remote MCP + OAuth:无需把 PAT 写进配置。
    // 先注册配置:
    //   atomcode mcp add-github-oauth --global
    // 再完成登录:
    //   ATOMCODE_GITHUB_MCP_CLIENT_ID=<client_id> atomcode mcp login github
    // 或在 TUI 中设置环境变量后运行:
    //   /mcp login github
    // -------------------------------------------------------------------------
    "github": {
      "url": "https://api.githubcopilot.com/mcp/",
      "auth": {
        "type": "oauth",
        "provider": "github"
      },
      "disabled": true
    }
  }
}