Skip to content

通用 MCP 客户端

任何兼容 Model Context Protocol Streamable HTTP transport 的客户端都可以接入 Sigil。本篇讲通用配置模板与一些已知的客户端范例。

通用配置模板

绝大多数 MCP 客户端用以下结构之一:

格式 A:URL + headers

json
{
  "mcpServers": {
    "sigil": {
      "url": "http://127.0.0.1:8421/mcp",
      "headers": {
        "Authorization": "Bearer sk_sigil_xxxxxxxxxx"
      }
    }
  }
}

适用:Cursor、Cline、Zed 等。

格式 B:type + url + headers

json
{
  "mcpServers": {
    "sigil": {
      "type": "http",
      "url": "http://127.0.0.1:8421/mcp",
      "headers": {
        "Authorization": "Bearer sk_sigil_xxxxxxxxxx"
      }
    }
  }
}

适用:Claude Code。

格式 C:transport + url + headers

json
{
  "mcpServers": {
    "sigil": {
      "transport": "http",
      "url": "http://127.0.0.1:8421/mcp",
      "headers": {
        "Authorization": "Bearer sk_sigil_xxxxxxxxxx"
      }
    }
  }
}

适用:部分较早版本 Cline、自研客户端。

差别只是字段名——核心三要素:urlheaders.Authorization、HTTP transport。

已知兼容客户端

客户端状态配置位置
Claude Code~/.claude/claude.json
Cursor~/.cursor/mcp.json
ClineVSCode 插件 MCP 设置
Zed~/.config/zed/settings.json
Continue~/.continue/config.json
Codex CLI⚠️部分支持,需较新版本
自研客户端按 MCP 规范实现

没看到你用的客户端?

只要它支持 MCP 的 Streamable HTTP transport,按上面任一格式都能接入。如果你不确定,去客户端文档搜 "MCP" + "HTTP" 关键词。

Zed 配置范例

~/.config/zed/settings.json

json
{
  "context_servers": {
    "sigil": {
      "command": null,
      "url": "http://127.0.0.1:8421/mcp",
      "headers": {
        "Authorization": "Bearer sk_sigil_xxxxxxxxxx"
      }
    }
  }
}

Zed 把 MCP 叫 "Context Server"。重启 Zed 即可。

Continue 配置范例

~/.continue/config.jsontools 段加:

json
{
  "tools": [
    {
      "name": "sigil",
      "type": "mcp",
      "url": "http://127.0.0.1:8421/mcp",
      "headers": {
        "Authorization": "Bearer sk_sigil_xxxxxxxxxx"
      }
    }
  ]
}

自研客户端

如果你自己用某个语言/SDK 写 MCP 客户端,关键 API 路径:

初始化握手

http
POST http://127.0.0.1:8421/mcp HTTP/1.1
Authorization: Bearer sk_sigil_xxxxxxxxxx
Content-Type: application/json

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "initialize",
  "params": {
    "protocolVersion": "2025-03-26",
    "capabilities": {},
    "clientInfo": {
      "name": "my-custom-client",
      "version": "1.0.0"
    }
  }
}

列工具

http
POST http://127.0.0.1:8421/mcp HTTP/1.1
Authorization: Bearer sk_sigil_xxxxxxxxxx
Content-Type: application/json

{
  "jsonrpc": "2.0",
  "id": 2,
  "method": "tools/list"
}

调用能力

http
POST http://127.0.0.1:8421/mcp HTTP/1.1
Authorization: Bearer sk_sigil_xxxxxxxxxx
Content-Type: application/json

{
  "jsonrpc": "2.0",
  "id": 3,
  "method": "tools/call",
  "params": {
    "name": "http_request",
    "arguments": {
      "method": "GET",
      "url": "https://api.github.com/user"
    }
  }
}

返回的 JSON 已经经过脱敏。如有 [REDACTED:xxx] 占位是正常现象——见 脱敏与拦截

鉴权失败的错误形式

Bearer Token 错误或缺失时,Sigil 返回:

json
{
  "jsonrpc": "2.0",
  "id": null,
  "error": {
    "code": -32001,
    "message": "unauthorized",
    "data": {
      "reason": "missing_or_invalid_bearer_token"
    }
  }
}

HTTP 状态码同时为 401

测试连通性

最简单的 curl 测试:

bash
curl -X POST http://127.0.0.1:8421/mcp \
  -H "Authorization: Bearer sk_sigil_xxxxxxxxxx" \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'

预期响应:JSON-RPC 格式的工具列表。如果返回 401 / 403,检查 Token;如果连接被拒绝,检查 Sigil 是否在跑 + 端口对不对。

安全提示

  • 不要把 Bearer Token 提交进 git 仓库:如果配置文件可能进版本控制,把 Token 抽到 .env 或单独的 secrets.json
  • 每个客户端独立 Token:撤销时不影响其他
  • 生产凭据用窄范围 Token:Sigil → MCP → 客户端管理 → 范围 → 白名单
  • 远程网关谨慎:默认 127.0.0.1 不对外暴露。需要让局域网客户端访问时再开"远程网关",并配反向代理 TLS

下一步

让 AI 帮你干活,但永远拿不到你的密钥