项目简介

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交互的个性化和上下文保持能力。

安装步骤

  1. 克隆仓库:
    git clone https://github.com/BranchManager69/dexter-mcp.git
    cd dexter-mcp
  2. 安装依赖:
    npm install
  3. 配置环境变量: 复制 '.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认证至关重要。

基本使用方法

  1. 启动HTTP传输模式(默认端口3930):
    npm start
    这将启动一个支持OAuth2/OIDC、Bearer token和SSE流的HTTPS服务器。 您可以通过以下命令验证HTTP传输是否正常运行:
    curl -sS http://localhost:3930/mcp/health | jq
    如果您的MCP服务器通过公共代理暴露,您也可以使用认证Token进行查询:
    curl -H "Authorization: Bearer <您的TOKEN_AI_MCP_TOKEN>" \
         https://mcp.dexter.cash/mcp/health
  2. 启动Stdio传输模式(用于本地代理和Codex):
    node server.mjs --tools=wallet
    这会启动一个基于Stdio的服务器,并加载 'wallet' 工具集。

信息

分类

AI与计算