novai-mcp-server
NOVAI MCP server
A read-only Model Context Protocol (MCP) server that lets any MCP-equipped agent query the live NOVAI chain over its public JSON-RPC endpoint. It exposes query tools only. There is no write, sign, submit, or key-handling path anywhere in this package.
NOVAI is an AI-native layer 1 with chained-BFT consensus. This server is a thin, typed bridge: an agent discovers the tools through standard MCP tooling and reads the chain without writing any SDK code.
Safety boundary
This is version 0 and it is read-only by design.
Every tool is a query that maps to a single read method on the public endpoint.
The package never holds a private key, never signs, and never submits a transaction.
The write methods the chain exposes are deliberately not wired in.
Related MCP server: Grove Public Endpoints MCP Server
Requirements
Node.js 18 or newer.
Install and run
Run it directly with npx:
npx novai-mcp-serverOr install it and run the binary:
npm install novai-mcp-server
novai-mcp-serverThe server speaks MCP over stdio. Point your MCP client at the command above.
Example MCP client configuration
{
"mcpServers": {
"novai": {
"command": "npx",
"args": ["novai-mcp-server"]
}
}
}Configuration
NOVAI_RPC_URLoverrides the JSON-RPC endpoint. It defaults to the public NOVAI URL,https://rpc.novai.network. No other configuration, no secrets, and no auth are required, because the public endpoint is open and read-only.
Tools
All hashes and ids are 64 hex characters (32 bytes, no 0x prefix). All heights are non-negative integers. Every input is validated before any network call, and both chain errors and transport failures are returned as clean tool errors with no stack traces.
Tool | Returns | Required params | Optional params |
| The latest committed block, so you can verify the chain is live and learn the tip height | none | none |
| A single block | exactly one of | none |
| A confirmed transaction, or null if unknown |
| none |
| An AI entity (agent) record, or null if unknown |
| none |
| Balance (decimal string) and nonce for an address |
| none |
| Signal commitments recorded at a height |
| none |
| Signals issued by an entity within a height range |
| none |
| Signals of a type within a height range |
| none |
| An oracle anchor by signal hash, or null if unknown |
| none |
| Oracle anchors by issuer within a height range |
|
|
| Oracle anchors by data tag within a height range |
|
|
| On-chain memory objects owned by an entity |
| none |
A note on block lookups by height
The endpoint retains a bounded recent window of blocks by height, so a height far below the current tip can return null even though it was a valid block. Lookups by hash work for any block the node still indexes. Call novai_get_chain_status first to learn the current tip height.
Development
npm install
npm run build
npm testnpm test runs the offline unit and validation tests. To exercise the live endpoint:
npm run test:liveAn end-to-end stdio check that spawns the built server and drives it with a real MCP client is available:
npm run build && node scripts/smoke.mjsLicense
MIT. See the LICENSE file.
Maintenance
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/0x-devc/novai-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server