多链区块链服务器

一个生产就绪的模型上下文协议(MCP)服务器,提供使用真实区块链库(ethers.js和@solana/web3.js)的多链区块链操作。

  • by anuragchvn-blip
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 anuragchvn-blip/mcp-chain

使用说明

🎉 ChainMind - 真实的MCP区块链服务器

A. 生产就绪的模型上下文协议(MCP)服务器 该系统提供使用多链区块链的操作功能 真实的区块链库 (ethers.js & @solana/web3.js)。

✅ 这是一个真正的MCP(多控制平面)实现

  • 使用官方(渠道/版本) @modelcontextprotocol/sdk
  • 真实 ethers.js 用于以太坊操作
  • 真实 @solana/web3.js 用于Solana操作
  • Stdio传输(兼容Claude Desktop)
  • 通过桥接API实际调用MCP服务器的网页仪表盘

🚀 快速入门

1. 安装依赖项

npm install

2. 配置环境

创建 .env.local:

ETH_RPC_URL=https://eth.llamarpc.com
SOL_RPC_URL=https://api.mainnet-beta.solana.com

3. 构建MCP服务器

npm run build:server

4. 运行网页仪表盘

npm run dev:web

开放 http://localhost:3000 并开始核对余额!

📋 前提条件

  • Node.js 18及以上版本
  • npm 或 yarn
  • 以太坊RPC端点(Infura、Alchemy或公共节点)
  • Solana RPC 端点(可选,默认为公共端点)
  • Supabase 帐户(可选,用于事务记录)

🛠️ 安装

  1. 克隆仓库
git clone https://github.com/yourusername/mcp-chain.git
cd mcp-chain
  1. 安装依赖项
npm install
  1. 配置环境变量
cp .env.example .env.local

编辑 .env.local 并添加您的配置:

ETH_RPC_URL=https://eth.llamarpc.com
SOL_RPC_URL=https://api.mainnet-beta.solana.com
SUPABASE_URL=your_supabase_url (optional)
SUPABASE_SERVICE_KEY=your_service_key (optional)
  1. 运行开发服务器
npm run dev

开放 http://localhost:3000 翻译为中文是:“本地主机:3000 端口”。不过,通常我们不会直接翻译网址,而是说明其含义或用途。在这个上下文中,它表示的是在本地计算机上运行的一个服务或应用,可以通过 localhost(即本机)和 3000 端口进行访问 在您的浏览器中。

📡 API 接口

1. 多链余额(/api/multi_balance)

方法: GET

查询参数:

  • addresses (字符串):以逗号分隔的ETH和/或SOL地址列表

示例:

curl "http://localhost:3000/api/multi_balance?addresses=0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb,7xKXtg2CW87d97TXJSDpbD5jBkheTqA83TZRuJosgAsU"

回应:

{
  "balances": {
    "eth": {
      "0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb": "1.234"
    },
    "sol": {
      "7xKXtg2CW87d97TXJSDpbD5jBkheTqA83TZRuJosgAsU": "5.678"
    }
  }
}

2. 条件交易(/api/auto_send)

方法: POST

身体:

{
  "chain": "eth",
  "senderPrivateKey": "0x...",
  "recipient": "0x...",
  "amount": "0.1",
  "condition": {
    "token": "ETH",
    "minBalance": 1.0
  }
}

回应:

{
  "success": true,
  "txHash": "0x...",
  "sender": "0x..."
}

3. 代币概要(/api/token_summary)

方法: GET

查询参数:

  • addresses (字符串):以逗号分隔的ETH和/或SOL地址列表

示例:

curl "http://localhost:3000/api/token_summary?addresses=0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb"

回应:

{
  "eth": {
    "0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb": {
      "ETH": "1.234",
      "tokens": {
        "USDC": "100.50",
        "USDT": "50.25"
      },
      "NFTs": []
    }
  },
  "sol": {}
}

🗄️ Supabase 设置(可选)

如果您想启用事务日志记录:

  1. 在(指定位置或平台)创建一个Supabase项目 supabase.com(可译为“苏帕斯数据库网站”或直接保留原域名,根据语境选择是否翻译)

  2. 创建一个 transactions 表格:

CREATE TABLE transactions (
  id UUID PRIMARY KEY DEFAULT uuid_generate_v4(),
  blockchain TEXT NOT NULL,
  tx_hash TEXT NOT NULL,
  sender TEXT NOT NULL,
  recipient TEXT NOT NULL,
  amount TEXT NOT NULL,
  timestamp TIMESTAMPTZ DEFAULT NOW()
);
  1. 将您的Supabase凭据添加到 .env.local

🔒 安全注意事项

  • 私钥永远不要将私钥存储在环境变量中或提交到版本控制系统中
  • API保护考虑为生产环境添加身份验证中间件
  • 速率限制实施速率限制以防止滥用
  • RPC 端点在生产环境中使用经过身份验证的RPC端点
  • 输入验证所有地址和金额在处理前均经过验证

🚢 部署

Vercel(推荐)

  1. 将你的代码推送到GitHub
  2. 在Vercel中导入项目
  3. 在Vercel仪表板中添加环境变量
  4. 部署!

其他平台

该项目兼容任何支持 Next.js 的平台:

  • Netlify
  • 铁路
  • AWS Amplify(亚马逊网络服务增强框架)
  • 使用(某服务或软件)进行自托管 npm run build && npm start

📚 技术栈

  • 框架Next.js 14(App Router)
  • 语言TypeScript
  • 区块链软件开发工具包(SDKs):
    • ethers.js v6(以太坊)
    • @solana/web3.js(Solana)
  • 数据库Supabase(可选)
  • 部署Vercel就绪

🤝 贡献

欢迎贡献!请随时提交拉取请求。

📄 许可证

MIT 许可证 - 欢迎随意将此项目用于任何目的。

🔗 资源

📝 清单/声明

见 manifest.json 对于完整的API规范和工具描述。