mcp身份验证助手
一个独立的CLI工具,用于与使用OAuth客户端分配列表的远程MCP服务器进行身份验证(例如Figma MCP)。一旦通过身份验证,令牌将保存到 ~/.local/share/opencode/mcp-auth.json 使用vanilla OpenCode——不需要fork。
问题
一些MCP服务器(如Figma)只允许已知的OAuth客户端注册。OpenCode注册为“OpenCode”并被拒绝,因为它不在列表中。此工具注册为“Codex”(位于allowlist上),并以OpenCode期望的格式保存令牌。
安装
git clone https://github.com/sdaoudi/mcp-auth-helper.git
cd mcp-auth-helper
npm install
npm run build用法
Figma MCP
node dist/index.js auth figma --url https://mcp.figma.com/mcp这将:
- 从Figma MCP服务器发现OAuth端点
- 注册为“Codex”OAuth客户端(位于Figma的allowlist上)
- 打开浏览器进行授权
- 将令牌保存到
~/.local/share/opencode/mcp-auth.json
验证后,确保Figma MCP服务器已在您的 opencode.json OpenCode将自动提取保存的令牌:
{
"mcp": {
"figma": {
"type": "remote",
"url": "https://mcp.figma.com/mcp",
"enabled": true
}
}
}选项
--url MCP server URL (required)
--client-name OAuth client name (default: "Codex")
--callback-port
Local callback port (default: 19876)
--output
Token output path (default: ~/.local/share/opencode/mcp-auth.json)多个服务器
您可以通过多个MCP服务器进行身份验证。每个条目都保存为单独的条目 mcp-auth.json:
node dist/index.js auth figma --url https://mcp.figma.com/mcp
node dist/index.js auth another --url https://another-mcp.example.com/mcp运作原理
- 通过RFC 8414发现服务器的OAuth端点(
/.well-known/oauth-authorization-server) - 注册一个名为“Codex”的动态OAuth客户端(可配置)
- 使用PKCE启动OAuth授权代码流(S256)
- 启动本地HTTP服务器以接收回调
- 交换访问/刷新令牌的授权码
- 将所有内容保存到
~/.local/share/opencode/mcp-auth.json采用OpenCode的预期格式
需求
- Node.js 18+
学分
相关问题:
- sst/opencode#5636 --MCP OAuth允许列表支持
- sst/opencode#5583 --Figma MCP认证
许可证
麻省理工学院
