通用 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、自研客户端。
差别只是字段名——核心三要素:url、headers.Authorization、HTTP transport。
已知兼容客户端
| 客户端 | 状态 | 配置位置 |
|---|---|---|
| Claude Code | ✅ | ~/.claude/claude.json |
| Cursor | ✅ | ~/.cursor/mcp.json |
| Cline | ✅ | VSCode 插件 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.json 的 tools 段加:
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
下一步
- 看 Sigil 协议方法详细:MCP Server →
- 看怎么细化客户端权限:凭据金库 → Scope Policy
- 看 AI 协作的边界:AI 使用边界 →
