项目简介

本项目是一个基于 Model Context Protocol (MCP) 构建的后端服务器实现,旨在为大型语言模型 (LLM) 客户端提供与 Solana 区块链交互以及获取丰富的加密货币相关数据和分析能力。它将复杂的链上操作和数据查询封装成标准的 MCP 工具,方便 LLM 理解和调用。

主要功能点

该服务器通过 MCP 协议提供以下核心功能:

  • 钱包管理: 支持查询指定 Solana 钱包的 SOL 余额、SPL 代币持仓详情、近期交易活动以及盈亏统计。
  • 代币分析: 能够获取代币的详细信息、实时价格、热门代币排行榜(支持多种过滤和排序条件)、代币持有者分布、以及对开发者钱包和项目潜在风险(如 Rug Pull 历史)进行分析。还提供获取关于特定代币的社交媒体(如 Twitter)KOL 提及信息。
  • 交易模拟与执行: 提供模拟代币互换 (Swap) 和代币/SOL 转账的功能(模拟过程不涉及链上操作,用于预估结果),同时具备执行真实的链上交易的能力(需要提供私钥),如代币转账、批量关闭空闲代币账户以回收租金、以及通过 Pump.fun 平台发布新代币。
  • 区块链数据查询: 支持查询 Solana 网络的当前交易处理速度 (TPS) 等基本性能指标。

安装步骤

本项目是使用 Node.js 开发的,你需要 Node.js 环境来运行它。

  1. 克隆仓库:
    git clone https://github.com/melythemev/NexyA2A.git
    cd NexyA2A
  2. 安装依赖:
    npm install
    # 或使用 yarn
    # yarn install
  3. 配置环境变量: 创建 '.env' 文件在项目根目录,用于存储敏感信息和配置,例如用于执行链上操作所需的 Solana 钱包私钥:
    # 你的 Solana 钱包私钥,Base58 格式。执行链上交易(如转账、发布代币)时需要。
    # 请注意安全风险,仅在可信环境中使用。
    PRIVATE_KEY=你的Base58私钥字符串
    
    # Solana RPC 节点的 URL (可选,代码中已硬编码一个默认公共节点)
    # RPC_URL=你的RPC节点URL
    请务必保护好你的私钥。
  4. 编译 TypeScript (如果需要): 项目使用 TypeScript,需要先编译为 JavaScript。
    npm run build
    # 或使用 yarn
    # yarn build
    这将生成可执行的 JavaScript 文件在 'dist' 目录下。

服务器配置 (为 MCP 客户端准备)

MCP 客户端(如某些 LLM 应用程序)需要配置如何连接并启动这个服务器进程。以下是一个示例 JSON 配置片段,你需要将其添加到你的 MCP 客户端的配置中(具体位置和格式取决于你的客户端):

{
  "mcpServers": {
    "solana-crypto": {
      // 启动服务器进程的命令
      "command": "node",
      // 传递给命令的参数。这里假设你使用Stdio协议进行通信。
      "args": [
        "path/to/your/NexyA2A/dist/index.js",
        "--stdio"
      ],
      // 传递给服务器进程的环境变量
      "env": {
        // 你的 Solana 钱包私钥 (Base58 格式)
        "PRIVATE_KEY": "你的Base58私钥字符串"
        // 如果你在 .env 中设置了 RPC_URL 并且希望通过客户端配置覆盖,也可以在这里添加:
        // "RPC_URL": "你的Solana RPC节点URL"
      }
    }
  }
}

请将 '"path/to/your/NexyA2A/dist/index.js"' 替换为你实际编译后 'index.js' 文件的路径。'--stdio' 参数告诉服务器通过标准输入输出进行通信,这是 MCP 常用的方式。如果你希望使用 HTTP 模式,可以省略 '--stdio' 参数,服务器将默认在 3333 端口启动 HTTP 服务,客户端配置也需要相应调整(例如,指定 'url' 而非 'command')。

基本使用方法

  1. 运行服务器: 按照上面的安装和配置步骤准备好环境和配置文件。然后根据你的 MCP 客户端的配置方式启动服务器。例如,如果配置为 '--stdio' 模式并由客户端启动,客户端会自动运行指定的命令。如果独立运行 HTTP 模式,你可以手动在终端中运行 'node path/to/your/NexyA2A/dist/index.js'。
  2. LLM 交互: 一旦 MCP 服务器与 LLM 客户端建立连接,LLM 就可以通过 MCP 协议发现并使用服务器提供的工具。通常,LLM 会首先发送 'ListToolsRequest' 来获取可用工具列表及其描述和参数格式。然后,LLM 可以根据用户的指令,发送 'CallToolRequest' 来调用具体的工具(例如 'get_sol_balance'、'get_trending_tokens'、'swap' 等),并提供所需的参数。
  3. 处理结果: 服务器执行工具操作后,会将结果(如查询数据、交易签名等)以 JSON-RPC 响应或通知的形式返回给 LLM 客户端,LLM 负责解析这些结果并以自然语言的方式呈现给用户。

信息

分类

网页与API