项目简介

SOLx402 MCP 服务器是一个功能强大的后端服务,旨在通过Model Context Protocol (MCP) 标准,为大型语言模型(LLM)客户端提供与Solana区块链和x402去中心化支付协议相关的上下文信息和操作能力。它通过注册一系列工具,允许LLM执行诸如查询钱包余额、探索x402服务、搜索文档等操作,从而扩展LLM的应用范围和智能化水平。

主要功能点

  • Solana区块链交互: 提供工具以查询Solana钱包的公共密钥和USDC代币余额。
  • x402协议服务管理: 允许列出可用的x402协议服务,并支持消费这些服务,包括处理支付响应。
  • x402文档智能搜索: 提供工具以在x402协议的官方文档中进行智能搜索,获取相关信息和代码示例。
  • Solana生态知识库: 能够接入外部Solana MCP服务器,提供Solana Anchor框架专家问答、Solana开发帮助以及Solana文档搜索等高级功能。
  • 配置灵活: 支持通过配置参数在Solana主网/开发网之间切换,设定最大支付金额,以及指定x402协调器(Facilitator)URL。
  • 符合MCP标准: 遵循Model Context Protocol,通过JSON-RPC进行通信,支持HTTP流式传输,并提供'.well-known/mcp-config'接口进行服务器能力声明和配置发现。

安装步骤

  1. 克隆仓库:
    git clone https://github.com/leandrogavidia/solx402-mcp-server.git
    cd solx402-mcp-server
  2. 安装依赖:
    npm install
    # 或者 yarn install
  3. 配置环境变量: 在 'apps/mcp-server' 目录下创建 '.env' 文件,并根据你的部署环境配置以下变量:
    HOST=127.0.0.1  # 服务器监听的IP地址,例如 0.0.0.0 允许外部访问
    PORT=8001       # 服务器监听的端口号
  4. 构建项目:
    npm run build
    # 或者 yarn build
  5. 启动服务器:
    npm start
    # 或者 yarn start
    服务器将在配置的端口上监听请求,例如 'http://127.0.0.1:8001'。

服务器配置 (MCP客户端使用)

MCP客户端可以通过两种方式与此服务器连接:作为托管进程启动或作为预运行的HTTP服务连接。

1. 作为托管进程由MCP客户端启动: 如果你的MCP客户端负责启动和管理服务器进程,它需要以下配置。请确保在运行服务器前已完成构建步骤。

{
  "server": {
    "name": "solx402-mcp-server",
    "command": "node",
    "args": [
      "dist/apps/mcp-server/src/index.js"
    ]
  },
  "config": {
    "isMainnet": {
      "type": "boolean",
      "title": "使用主网",
      "description": "设置为 true 连接 Solana 主网,false 连接开发网。",
      "default": false
    },
    "facilitatorUrl": {
      "type": "string",
      "format": "uri",
      "title": "协调器URL",
      "description": "x402协调器的URL。",
      "default": "https://facilitator.payai.network"
    },
    "maxPrice": {
      "type": "number",
      "title": "最大价格",
      "description": "支付服务最大USDC金额(例如 10000 = 0.01 USDC)。",
      "default": 0,
      "minimum": 0
    },
    "privateKey": {
      "type": "string",
      "title": "私钥",
      "description": "以Base58格式提供的Solana钱包私钥。这是一个敏感信息,请通过MCP客户端安全传输。",
      "x-secret": true,
      "required": true
    },
    "mainnetRpcUrl": {
      "type": "string",
      "format": "uri",
      "title": "主网RPC URL",
      "description": "Solana主网RPC节点的URL。",
      "required": true
    },
    "devnetRpcUrl": {
      "type": "string",
      "format": "uri",
      "title": "开发网RPC URL",
      "description": "Solana开发网RPC节点的URL。",
      "default": "https://api.devnet.solana.com"
    },
    "useSolanaMcpServer": {
      "type": "boolean",
      "title": "使用Solana MCP服务器",
      "description": "设置为 true 以启用额外的Solana MCP服务器工具。默认为 false。",
      "default": false
    }
  }
}

重要提示: 'command' 和 'args' 是MCP客户端用于启动服务器进程的命令和参数。'config' 部分描述了MCP客户端在建立会话时,可以向运行中的服务器提供的运行时配置参数。'privateKey' 和 'mainnetRpcUrl' 是必填项。

2. 作为独立的HTTP服务连接: 如果服务器已作为独立的HTTP服务运行(例如通过Docker部署或手动启动),MCP客户端可以直接连接到其HTTP端点。在这种情况下,客户端只需要服务器的URL: 'http://你的服务器IP或域名:你的端口/mcp' 例如:'http://127.0.0.1:8001/mcp' 客户端可以通过访问 'http://127.0.0.1:8001/.well-known/mcp-config' 端点获取详细的会话配置Schema。

基本使用方法

一旦MCP客户端成功连接到SOLx402 MCP服务器并提供了必要的会话配置(例如,Solana私钥和RPC URL),它就可以通过标准JSON-RPC协议调用服务器上注册的工具。LLM客户端会根据用户的意图,发送结构化的JSON请求,包含工具名称和参数,并接收包含执行结果的JSON响应。

例如,一个LLM客户端可能会:

  1. 调用 'get_wallet_usdc_balance' 工具来获取用户钱包的USDC余额。
  2. 调用 'get_x402_services' 工具来发现可用的x402服务,然后根据用户需求调用 'consume_x402_service' 来使用某个特定服务。
  3. 调用 'search_x402_documentation' 来查找有关x402协议特定主题的详细信息。
  4. 通过 'Ask_Solana_Anchor_Framework_Expert' 或 'Solana_Documentation_Search' 等工具获取Solana开发相关帮助。

信息

分类

开发者工具