Nexus MCP服务器是一个桥梁,它使AI代理能够通过模型上下文协议(MCP)直接与Nexus区块链进行交互。它将区块链功能暴露为MCP工具,这些工具可以被任何兼容MCP的AI系统访问,包括Claude和其他领先的LLMs。
👉 阅读完整的博客文章 了解Nexus如何构建适用于AI时代的区块链,从MCP集成开始。
| 工具名称 | 描述 | 参数 |
|---|---|---|
getNetworkInfo | 获取Nexus区块链网络信息 | 无 |
getBalance | 获取地址余额 | address: 字符串 |
getTransaction | 根据哈希获取交易详情 | txHash: 字符串 |
getBlock | 根据编号获取区块详情 | blockNumber: 字符串, fullTransactions: 布尔值(可选) |
callContract | 调用智能合约方法(只读) | to: 字符串, data: 字符串 |
getLogs | 从区块链获取事件日志 | filterObject: 对象 |
sendRawTransaction | 提交签名的交易到网络 | signedTx: 字符串 |
# 克隆仓库
git clone https://github.com/nexus/mcp-for-nexus
cd mcp-for-nexus
# 安装依赖
npm install
# 配置环境
cp .env.example .env
# 启动服务器
npm run dev
一旦服务器运行起来,你可以使用包含的测试客户端连接到它:
# 使用测试客户端(需要Redis用于SSE传输)
node scripts/test-nexus-client.mjs http://localhost:3000
对于本地开发,请确保已安装并运行Redis:
# 安装Redis(macOS)
brew install redis
# 启动Redis
brew services start redis
# 验证Redis是否正在运行
redis-cli ping # 应该响应"PONG"
// 示例:从应用程序中调用区块链工具
import { Client } from "@modelcontextprotocol/sdk/client/index.js";
import { SSEClientTransport } from "@modelcontextprotocol/sdk/client/sse.js";
const transport = new SSEClientTransport(new URL(`http://localhost:3000/sse`));
const client = new Client(
{ name: "my-app", version: "1.0.0" },
{ capabilities: { prompts: {}, resources: {}, tools: {} } }
);
await client.connect(transport);
// 获取区块链信息
const networkInfo = await client.callTool({
name: "getNetworkInfo",
arguments: {}
});
// 查询账户余额
const balance = await client.callTool({
name: "getBalance",
arguments: { address: "0x1234567890abcdef1234567890abcdef12345678" }
});
// 获取区块信息
const blockData = await client.callTool({
name: "getBlock",
arguments: {
blockNumber: "latest",
fullTransactions: true
}
});
// 示例:与Claude集成
import { Client } from "@modelcontextprotocol/sdk/client/index.js";
import { SSEClientTransport } from "@modelcontextprotocol/sdk/client/sse.js";
import Anthropic from "@anthropic-ai/sdk";
// 设置MCP客户端
const mcpClient = new Client(...);
await mcpClient.connect(transport);
// 获取可用工具
const tools = await mcpClient.listTools();
const toolDefinitions = tools.map(tool => ({
name: tool.name,
description: tool.description,
input_schema: tool.inputSchema
}));
// 设置Claude客户端
const anthropic = new Anthropic({
apiKey: process.env.ANTHROPIC_API_KEY,
});
// 创建带有工具的消息
const message = await anthropic.messages.create({
model: "claude-3-5-sonnet-20241022",
max_tokens: 1000,
messages: [{ role: "user", content: "Nexus上的最新区块是什么?" }],
tools: toolDefinitions
});
// 处理来自Claude的工具调用
for (const content of message.content) {
if (content.type === 'tool_use') {
const result = await mcpClient.callTool({
name: content.name,
arguments: content.input
});
// 将工具结果发送回Claude
// ...
}
}
服务器可以用于本地开发目的,这对于测试与Nexus区块链的集成非常理想。
对于生产用途,服务器可以在Vercel上部署:
配置Redis(SSE传输所需):
REDIS_URL环境变量指向你的托管Redis实例启用Fluid Compute以支持长时间运行的操作
我们欢迎对Nexus MCP服务器的改进贡献!请参阅我们的贡献指南以获取更多信息。
本项目根据MIT许可证授权。