内容
AI MCP 服务器
一个只模型上下文协议(MCP)服务器,允许任何配备MCP的其公共JSON-RPC端NOVAI链。它仅暴露。在此包中,没有写入、提交或密钥处理路径。
NOVAI是一个人工智能原生的第一层区块链,具有链式BFT共识。该服务器是一个薄的、类型化的桥梁:代理通过标准MCP工具发现工具,并在不编写任何SDK代码的情况下读取链。
## 安全边界
这是版本0,按设计为只读。
- 每个工具都是一个查询,映射到公共端点上的单个读取方法。
- 包中从不持有私钥,从不签名,从不提交交易。
- 链暴露的写入方法故意不连接。
## 要求
- Node.js 18 或更新版本。
## 安装和运行
直接使用npx运行:
```
npx novai-mcp-server
```
或安装并运行二进制文件:
```
npm install novai-mcp-server
novai-mcp-server
```
服务器通过stdio使用MCP。 将您的MCP客户端指向上面的命令。
### 示例MCP客户端配置
```json
{
"Servers": {
"nov {
"command": "",
"args": ["-mcp-server"]
}
}
}
```
## 配置
- `NOVAI_RPC_URL` 覆盖JSON-RPC端点。默认为公共NOVAI URL,`https://rpc.novai.network`。不需要其他配置,不需要机密,也不需要身份验证,因为公共端点是开放且只读的。
## 工具
所有哈希和ID都是64个十六进制字符(32字节,没有 `0x` 前缀)。所有高度都是非负整数。在任何网络调用之前验证每个输入,链错误和传输失败都作为干净的工具错误返回,没有堆栈跟踪。
| 工具 | 返回值 | 必需参数 | 可选参数 |
| --- | --- | --- | --- |
| `novai_get_chain_status` | 最新提交的区块,以便您可以验证链是否在线并高度 | 无 | 无 |
| `novai_get_block` |区块 | `height` 或 `hash` 二选一 | 无 |
novai_get_transaction`确认的交易,如果未知则为 `txid` | 无 `novai_get_ai_entity` | AI实体(代理)记录,如果未知则为null | `entity_id` | 无 |
| `novai_get_balance` | 地址的余额(十)和随机数 | `address` | 无 |
| `novai_get_signals_by_height` | 在某个高度记录的信号提交 | `height` | 无 |
| `novai_get_signals_by_issuer` |在某个高度范围内 | `issuer`,`start_height`,`end_height` | 无 |
| `novai_get_signals_by_type` | 在某个高度范围内某种类型的信号 | `signal_type`,`start_height`,`end_height` | 无 |
| `novai_get_oracle_anchor` | 通过信号哈希获取预言机锚点,如果未知则为null | `signal_hash` | 无 `novai_get_oracle_anchors_by_entity` | 某个实体在某个高度范围内的预言机锚点 | `entity_id`,`start_height`,`end_height` | `ts_min`,`ts_max` |
| `novai_get_oracle_anchors_by_tag` | 某个数据标签在某个高度范围内的预言机锚点 | `data_tag`,`start_height`,`end_height` | `ts_min`,`ts_max` |
|ai_get_memory_objects` | 实体拥有的链上内存对象 | `entity_id` | 无 |
### 关于按高度查找区块的说明
端点保留了一个有界的近期区块窗口,按高度排序,因此如果高度远低于当前区块高度,可能会返回null,即使它是一个有效的区块。按哈希查找适用于节点仍索引的任何区块。首先调用 `nov_chain_status` 以了解当前的区块高度。
## 开发
```
npmnpm run build
npm test
```
`npm test` 运行离线单元测试和验证测试。要测试实时端点:
```
npm:live
```
一种端的stdio检查,启动构建的使用真正的MCP客户端驱动它:
```
npm run build scripts/smoke.mjs
```
## 许可证
MIT。文件。