README
🚀 Neo N3 MCP 服务器与 HTTP 服务器文档
Neo N3 MCP 服务器基于 Model Context Protocol (MCP) 协议实现,为区块链应用提供强大的功能支持。同时,该软件包配备的 HTTP 服务器,通过 RESTful API 接口将 Neo N3 功能对外暴露,极大地方便了开发者的使用。
🚀 快速开始
安装依赖
npm install neo-mcp-server http-restify
初始化项目
创建 server.js 文件:
const MCP = require('neo-mcp-server');
const restify = require('http-restify');
// 初始化 MCP 服务器
const mcpServer = new MCP.Server({
network: 'test',
contextPath: '/context'
});
// 初始化 HTTP 服务器
const httpServer = restify.createServer();
// 挂载 MCP 相关路由
mcpServer.applyRoutes(httpServer);
// 启动服务器
httpServer.listen(3000, () => {
console.log('服务器已启动,监听地址:http://localhost:3000');
});
运行应用
node server.js
✨ 主要特性
- MCP 协议支持:遵循 Model Context Protocol 标准,实现跨链数据交换和智能合约交互。
- HTTP REST API:提供一系列 RESTful API 接口,方便开发者集成区块链功能到应用中。
- 钱包管理:支持创建、导入和管理多种格式的钱包文件。
- 智能合约操作:包括部署、调用和查询智能合约的功能。
- 网络模式切换:支持主网和测试网的无缝切换。
📚 详细文档
MCP 协议
功能概述
MCP 协议允许应用通过订阅特定区块链事件,实现实时数据获取功能。其主要特点包括:
- 事件订阅:开发者可以通过发布感兴趣的事件类型,实时接收链上发生的相关数据。
- 状态变更通知:当区块链上的某个地址或合约发生状态变化时,系统会自动推送通知到订阅端。
- 异步处理:所有事件处理都是异步进行的,确保高并发场景下的性能稳定。
MCP 服务器
初始化与配置
// 创建 MCP 实例并设置配置
const mcp = new MCP({
network: 'test', // 网络环境:main 或 test
contextPath: '/context' // 上下文路径,默认为 /context
});
// 启动服务器
await mcp.start();
事件处理示例
// 订阅某个地址的余额变更事件
mcp.subscribe('address-balance-changed', (event) => {
console.log(`Address ${event.address} 的余额发生了变化,当前余额为 ${event.balance}`);
});
// 处理智能合约调用事件
mcp.on('contract-invoked', async (event) => {
try {
const result = await event.execute();
console.log(`Contract ${event.contract} 调用成功,返回结果:${result}`);
} catch (error) {
console.error(`Contract ${event.contract} 调用失败,错误信息:${error.message}`);
}
});
HTTP 服务器
功能概述
HTTP 服务器通过 RESTful API 提供以下功能:
- 区块链信息查询:获取链上基本信息、区块详情和交易记录。
- 钱包管理:创建新钱包、导入现有钱包以及查看钱包信息。
- 智能合约操作:部署新合约、调用已部署的合约并查询合约状态。
- 网络模式切换:在主网和测试网之间进行切换。
HTTP 端点
| 端点 | 方法 | 描述 |
|----------------------|------|--------------------------|
| /api/context/current | GET | 获取当前 MCP 上下文信息 |
| /api/chains/main/info | GET | 获取主链基本信息 |
| /api/blocks/height | GET | 查询当前网络高度 |
| /api/transactions/hash| GET | 根据哈希获取交易详情 |
使用示例
# 获取区块链信息
curl http://localhost:3000/api/context/current
# 部署智能合约
curl -X POST http://localhost:3000/api/contracts \
-H "Content-Type: application/json" \
-d '{"contractName": "MyContract", "code":"..."}'
# 调用智能合约
curl -X POST http://localhost:3000/api/contracts/MyContract/call \
-H "Content-Type: application/json" \
-d '{"method":"balanceOf","params":["userAddress"]}'
💡 使用说明
- 日志监控:建议在生产环境中启用详细日志记录,便于排查问题。
- 性能调优:根据实际需求调整服务器配置参数,如连接数和超时设置。
- 版本升级:定期检查依赖库的更新,确保系统安全性和稳定性。
⚠️ 安全注意事项
- 钱包密钥保护:确保所有钱包私钥的安全性,避免明文存储或传输。
- 网络隔离:在测试环境中进行充分的测试,防止误操作影响主网。
- 访问控制:建议在生产环境启用身份认证和权限管理功能。
🛠️ 技术支持
如有任何问题或建议,请联系我们的技术支持团队:support@neonetwork.org
Scan to join WeChat group