返回 MCP 目录
public公开dns本地运行

SOON Blockchain

一个连接Claude AI与SOON区块链的MCP服务器,提供余额查询、交易记录和代币持仓功能

article

README

🚀 SVM - MCP:SOON 模型上下文协议服务器

SVM - MCP 是一个集成了 Claude AI 与 SOON 及其他基于 SVM 的区块链的模型上下文协议(MCP)服务器。它提供了丰富的工具,可用于检查余额、获取最近交易以及查看代币持有量,适用于 SOON 的测试网和主网,涵盖了账户余额、交易和代币持有量等方面的查询。

🚀 快速开始

此 MCP 服务器的主要目标是连接 Claude 与 SOON 生态系统,让用户能够进行以下操作:

  • 查询测试网和主网的钱包余额
  • 获取指定地址的最新交易
  • 检查任意账户的代币持有量

目前,该服务器使用了 SOON 的 RPC 端点,不过可以轻松进行修改,以适配任何 Solana 兼容区块链或其他不同的区块链。

✨ 主要特性

  • 余额检查:用户只需提供一个地址,服务器就能返回该地址在测试网和主网上的余额。
  • 最新交易:提供一个地址,服务器会返回该地址的最近交易记录。
  • 代币持有量:输入一个地址,服务器将返回该地址持有的所有代币及其详细信息。

📦 安装指南

先决条件

  • Node.js:需要安装 Node.js 和 npm(版本 14 或更高)。
  • Yarn:也可以使用 Yarn 包管理器。
  • SOON 网络知识:了解如何与 Solana 网络交互。

安装步骤

  1. 克隆此仓库:
    git clone https://github.com/yourusername/svm-mcp.git
    cd svm-mcp
    
  2. 安装依赖项:
    npm install
    # 或者使用 yarn
    yarn install
    
  3. 启动服务器:
    • 编译项目:
      npm run build
      # 或者使用 yarn
      yarn build
      
    • 运行构建后的文件:
      node build/index.js
      

📚 详细文档

项目结构

  • src/index.ts:项目的主入口,负责初始化服务器和连接。
  • src/tools/:包含与区块链交互的工具函数。
  • build/:编译生成的输出目录。

工具实现

余额检查工具

async function getBalance(address: string, connection: Connection) {
  try {
    const balance = await connection.getBalance(new PublicKey(address));
    return `${balance} SOL`;
  } catch (error) {
    throw new Error(`无法获取余额:${error.message}`);
  }
}

最新交易工具

async function getRecentTransactions(address: string, connection: Connection) {
  try {
    const transactions = await connection.getSignaturesForAddress([new PublicKey(address)]);
    return transactions;
  } catch (error) {
    throw new Error(`无法获取交易:${error.message}`);
  }
}

代币持有量工具

async function getToken Holdings(address: string, connection: Connection) {
  try {
    const tokenAccounts = await connection.getTokenAccountsByOwner(new PublicKey(address), {
      programId: new PublicKey("TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"),
    });
    return tokenAccounts;
  } catch (error) {
    throw new Error(`无法获取代币持有量:${error.message}`);
  }
}

服务器初始化

async function main() {
  try {
    console.log("启动 MCP 服务器...");
    const transport = new StdioServerTransport();
    console.log("传输已初始化,正在连接到服务器...");
    await server.connect(transport);
    console.log("服务器连接成功");
    // 服务器将保持在此状态运行
  } catch (error) {
    console.error("连接服务器时出错:", error);
    process.exit(1);
  }
}

main().catch((err) => {
  console.error("启动服务器时出错:", err);
  process.exit(1);
});

配置

Claude Desktop 配置

要在 Claude Desktop 中使用此 MCP 服务器,将以下内容添加到 claude_desktop_config.json 文件中:

{
  "mcpServers": {
    "svm-mcp": {
      "command": "bun",
      "args": ["/path/to/svm-mcp/build/index.js"]
    }
  }
}

自定义 RPC 端点

要使用不同的 RPC 端点或连接到其他区块链,编辑 src/index.ts 中的端点 URL:

const connectionTestnet = new Connection("YOUR_TESTNET_RPC_URL");
const connectionMainnet = new Connection("YOUR_MAINNET_RPC_URL");

使用方法与 Claude

一旦 MCP 服务器运行并连接到 Claude,您可以使用以下命令:

检查地址余额

你能检查这个 SOON 测试网地址的余额吗:<address>

获取最近交易

<address> 在 SOON 测试网上做的最近一笔交易是什么?

查看代币持有量

<address> 在 SOON 主网上持有的有哪些代币?

致谢

help

运行方式说明

cloud

托管运行

托管运行通常表示这个 MCP Server 由服务方环境承载,用户一般按页面提供的连接方式或授权流程接入,不需要在本地长期启动一个 MCP 进程

  1. 打开服务方连接页
  2. 完成授权或复制端点
  3. 在 MCP 客户端中连接
terminal

本地运行 / 其它方式

本地运行通常需要用户在自己的电脑或服务器上安装依赖,把 server_config 复制到 MCP 客户端,并按 env_schema 补齐环境变量、密钥或其它配置

  1. 复制 server_config
  2. 安装所需依赖
  3. 补齐环境变量后重启客户端