项目简介
Dexter MCP 是一个为Dexter生态系统设计的模型上下文协议(MCP)服务器。它作为大型语言模型(LLM)客户端(如Claude、ChatGPT连接器、本地代理和Codex)与Dexter后端服务之间的桥梁。Dexter MCP通过标准化的方式(JSON-RPC over Stdio/HTTPS)向LLM提供上下文信息和可调用的功能(工具),例如钱包解析、诊断和会话覆盖等,支持OAuth2/OIDC认证,确保安全和可扩展性。
主要功能点
- 多传输协议支持: 提供生产级的HTTP(支持SSE流、OAuth2/OIDC认证)和Stdio(用于本地代理和Codex)传输方式。
- 丰富的工具集: 预置并可扩展钱包相关的工具,例如 'resolve_wallet' (解析钱包)、'list_my_wallets' (列出我的钱包)、'auth_info' (获取认证信息) 和 'set_session_wallet_override' (设置会话钱包覆盖)。
- 可组合的工具注册表: 灵活地添加、启用和管理新的工具包,支持通过环境变量、命令行参数或HTTP查询参数进行选择。
- Supabase原生认证: 集成Dexter API/Supabase进行用户身份验证和访问控制,支持Bearer token,并提供连接器发现所需的OAuth元数据端点。
- 会话管理: 支持会话级别的钱包覆盖和其他配置,提升LLM交互的个性化和上下文保持能力。
安装步骤
- 克隆仓库:
git clone https://github.com/BranchManager69/dexter-mcp.git cd dexter-mcp - 安装依赖:
npm install - 配置环境变量:
复制 '.env.example' 文件为 '.env',并根据您的Dexter和Supabase环境配置必要的变量。
您需要配置至少以下变量:cp .env.example .env- 'SUPABASE_URL', 'SUPABASE_ANON_KEY', 'SUPABASE_JWT_SECRET': 用于钱包解析功能的Supabase项目凭证。
- 'DEXTER_API_BASE_URL': Dexter API的基础URL,例如 'https://api.dexter.cash'。
- 'TOKEN_AI_MCP_PUBLIC_URL', 'TOKEN_AI_MCP_PORT': MCP服务器的公共HTTPS URL和绑定端口。
- 'TOKEN_AI_OIDC_*': 如果使用OAuth2/OIDC认证,需要配置外部身份提供者(IdP)的端点信息。
- 'TOKEN_AI_MCP_TOKEN': 可选的静态Bearer Token,用于服务间访问。
- 'TOKEN_AI_MCP_TOOLSETS': 逗号分隔的工具集列表,默认加载所有已注册的工具集。
- 'TOKEN_AI_MCP_CORS': 允许HTTP传输的CORS源(默认为 '*')。
服务器配置 (面向MCP客户端)
MCP客户端需要配置MCP服务器的启动命令和参数才能建立连接。以下是一个JSON格式的配置示例,其中包含了'dexter-mcp'服务器的相关信息和注释:
{ "server_name": "Dexter MCP", "description": "Dexter平台的模型上下文协议(MCP)服务器,提供钱包、诊断等工具。", "command": "node", "args": [ "server.mjs", "--tools=wallet" ], "env": { "TOKEN_AI_MCP_PUBLIC_URL": "https://mcp.dexter.cash/mcp", "TOKEN_AI_MCP_PORT": "3930", "DEXTER_API_BASE_URL": "https://api.dexter.cash", "SUPABASE_URL": "您的Supabase项目URL", "SUPABASE_ANON_KEY": "您的Supabase匿名密钥", "SUPABASE_JWT_SECRET": "您的Supabase JWT密钥", "TOKEN_AI_MCP_TOKEN": "可选:您的静态Bearer Token,用于授权访问" }, "transport": "stdio", "startup_timeout_ms": 10000, "metadata_url": "https://mcp.dexter.cash/mcp/.well-known/oauth-authorization-server" }
配置参数说明:
- 'server_name': 服务器的名称,便于客户端识别。
- 'description': 服务器的简要功能描述。
- 'command': 启动MCP服务器的主命令,例如 'node'。
- 'args': 传递给 'command' 的命令行参数列表。例如 '["server.mjs", "--tools=wallet"]' 表示使用 'server.mjs' 脚本启动,并加载 'wallet' 工具集。
- 'env': MCP服务器运行所需的特定环境变量。请根据您的实际部署环境替换占位符。
- 'transport': 客户端与服务器通信使用的传输协议,可以是 'stdio' 或 'http'。
- 'startup_timeout_ms': 客户端等待MCP服务器启动的超时时间(毫秒)。
- 'metadata_url': 服务器的元数据或认证发现端点URL,对于OAuth/OIDC认证至关重要。
基本使用方法
- 启动HTTP传输模式(默认端口3930):
这将启动一个支持OAuth2/OIDC、Bearer token和SSE流的HTTPS服务器。 您可以通过以下命令验证HTTP传输是否正常运行:npm start
如果您的MCP服务器通过公共代理暴露,您也可以使用认证Token进行查询:curl -sS http://localhost:3930/mcp/health | jqcurl -H "Authorization: Bearer <您的TOKEN_AI_MCP_TOKEN>" \ https://mcp.dexter.cash/mcp/health - 启动Stdio传输模式(用于本地代理和Codex):
这会启动一个基于Stdio的服务器,并加载 'wallet' 工具集。node server.mjs --tools=wallet
信息
分类
AI与计算