第1层数字资产MCP服务器
用于第1层数字资产API的模型上下文协议(MCP)服务器,使人工智能助手能够使用RFC 9421 HTTP消息签名进行身份验证,与区块链数字资产操作交互。
特性
此MCP服务器提供以下功能:
- 创建地址:为资产池生成新的区块链地址
- 列出交易记录:按哈希查询和过滤交易
- 检查资产池余额:获取实时余额信息
- 发送交易请求:创建交易请求以发送资金
先决条件
- Node.js 18+
- 第1层数字资产API凭据(clientId、privateKey、assetPoolId)
安装
- 克隆或下载此存储库
- 安装依赖项:
npm install- 通过复制配置环境变量
env.example向.env:
cp env.example .env- 更新
.env使用您的Layer1凭据创建文件:
LAYER1_ASSET_POOL_ID=your-asset-pool-id
LAYER1_CLIENT_ID=your-client-id
LAYER1_PRIVATE_KEY="your-private-key"用法
运行MCP服务器
在开发模式下启动服务器:
npm run dev或者在生产环境中运行:
npm start可用工具
1.创建地址
为资产池创建新的区块链地址。
参数:
network(必填):区块链网络(以太坊、BINANCE、TRON、RIPLE、POLYGON、比特币、LITECOIN、DOGECOIN、SOLANA)reference(必填):地址参考(例如,“user-id-123”、“payment-id-123“)
例子:
{
"network": "ETHEREUM",
"reference": "user-id-123"
}2.列出交易记录
列出具有可选筛选功能的资产池的交易记录。
参数:
transactionHash(可选):按特定交易哈希过滤
例子:
{
"transactionHash": "0x1234567890abcdef..."
}3.获取资产池余额
检索资产池的当前余额。
参数:
- 无需参数(使用配置中的默认资产池ID)
例子:
{}4.发送交易请求
创建交易请求以发送资金。
参数:
toAddress(必填):目的地地址amount(必填):要发送的金额(为精确起见,以字符串形式)asset(必填):资产符号(ETH、USDT、USDC、BTC、LTC、DOGE、SOL、BNB、TRX、XRP、POL)network(必填):要发送的网络(以太坊、BINANCE、TRON、RIPPLE、POLYGON、比特币、LITECOIN、DOGECOIN、SOLANA)reference(必填):交易参考
例子:
{
"toAddress": "0x742d35Cc6635C0532925a3b8D400d8DD2Dc4A4f7",
"amount": "0.001",
"asset": "ETH",
"network": "ETHEREUM",
"reference": "Payment for services"
}认证
服务器使用RFC 9421 HTTP消息签名进行身份验证,这比传统的API密钥或承载令牌提供了更强的安全性。身份验证过程:
- 签名库创建:创建HTTP请求组件的规范表示
- 加密签名:使用RSA和SHA-256对签名库进行签名
- 标题添加:添加
Signature-Input和Signature请求的标头
RFC 9421实现细节
- 算法:使用SHA-256的RSA(
rsa-v1_5-sha256) - 密钥类型:PKCS#8 PEM格式的RSA私钥
- 已签名组件:
- @method -HTTP方法 - @target-uri -完整请求URL - content-digest -请求体的SHA-256哈希(用于POST/PUT请求)
这种方法确保了消息的完整性和真实性,使攻击者无法在不使签名无效的情况下修改请求。
配置
环境变量
| 变量 | 描述 | 必填 | 默认 |
|---|---|---|---|
LAYER1_ASSET_POOL_ID | 资产池标识符 | 是 | 无 |
LAYER1_CLIENT_ID | 客户端标识符用作密钥ID | 是 | 无 |
LAYER1_PRIVATE_KEY | 用于HTTP签名签名的RSA私钥 | 是 | 无 |
API基本URL
服务器已配置为使用 https://api.sandbox.layer1.com 作为所有API请求的基本URL。
错误处理
服务器提供全面的错误处理:
- 签名错误:RSA签名和HTTP签名生成问题
- API错误:HTTP状态代码和响应体详细信息
- 网络错误:连接和超时问题
- 验证错误:参数缺失或无效
所有错误都会返回描述性消息,以帮助调试。
发展
项目结构
├── index.js # Main MCP server implementation with RFC 9421 auth
├── package.json # Node.js dependencies and scripts
├── env.example # Environment variables template
└── README.md # This documentation测试
要测试MCP服务器,您可以使用任何兼容MCP的客户端或直接运行服务器:
node index.js当服务器运行并准备接受MCP请求时,它将登录到stderr。
api参考
此MCP服务器使用RFC 9421 HTTP消息签名与第1层数字资产API集成。有关API的完整文档,请参阅:
- 第一层JavaScript SDK
- RFC 9421:HTTP消息签名
- 第1层数字资产API文档
安全说明
- 私钥安全:永远不要将实际的私钥提交给版本控制
- 环境变量:将敏感凭据存储在环境变量中
- 密钥管理:在生产环境中使用安全密钥管理
- 关键点旋转:定期轮换API证书
- 签名验证:HTTP消息签名提供请求完整性的加密证明
使用的库
@modelcontextprotocol/sdk-MCP服务器框架axios-HTTP客户端crypto-用于RSA签名的Node.js加密函数dotenv-环境变量管理
许可证
MIT许可证
支持
关于以下问题:
- MCP服务器:在此存储库中创建问题
- 第1层API:联系Layer1支持
- RFC 9421:请参阅RFC 9421规范
- MCP协议:请参阅MCP文档
