@odatano/nightgate-mcp
OfficialClick on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@@odatano/nightgate-mcpProve that the salary field is above 50000 without disclosing it"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
@odatano/nightgate-mcp
MCP server that lets AI agents use NIGHTGATE, the Midnight blockchain attestation layer: anchor documents, prove zero-knowledge predicates over hidden fields, manage disclosure grants, verify everything against live contract state, and poll async jobs. Wallet lifecycle (connect, send, deploy) is deliberately not exposed.
Requirements
Node.js >= 20
A running NIGHTGATE instance (>= 0.14.0 for the full tool set)
Related MCP server: aip-identity
Getting a NIGHTGATE instance
The fastest way is the official Docker image; no Node setup, no host app
(published from the NIGHTGATE repo on every release, details in its
docs/docker.md):
docker run -d --name nightgate -p 4004:4004 \
-e ENCRYPTION_KEY=$(openssl rand -hex 32) \
-e NIGHTGATE_HTTP_PASSWORD=change-me \
-v nightgate-data:/data \
ghcr.io/odatano/nightgate:latestThat container targets Midnight preprod by default, serves with HTTP basic
auth (nightgate / your password), persists its database in the
nightgate-data volume, and proves in-process (wasm), so no proof server
is needed to start. Point this MCP server at it with:
NIGHTGATE_BASE_URL=http://localhost:4004
NIGHTGATE_USERNAME=nightgate
NIGHTGATE_PASSWORD=change-meFor agent operation, create a scoped grant once (as the operator, e.g. via
curl against createAgentGrant) and hand the returned ngat_... token to
the agent as NIGHTGATE_TOKEN; the write tools are then limited to the
grant's allowlist, budget and pinned session.
Alternatively any CAP app using the @odatano/nightgate plugin works,
e.g. the NIGHTGATE repo itself via npm run dev.
Setup
npm install
npm run buildConfiguration is environment-driven:
Variable | Default | Purpose |
|
| NIGHTGATE host app |
| unset | Basic auth (CAP dev/mocked auth) |
| unset |
|
|
| OData service path |
|
| Per-request timeout |
Use with Claude Code
claude mcp add nightgate \
--env NIGHTGATE_BASE_URL=http://localhost:4004 \
--env NIGHTGATE_USERNAME=alice \
-- node /path/to/NIGHTGATE-MCP/dist/index.jsOr in a project .mcp.json:
{
"mcpServers": {
"nightgate": {
"command": "node",
"args": ["/path/to/NIGHTGATE-MCP/dist/index.js"],
"env": {
"NIGHTGATE_BASE_URL": "http://localhost:4004",
"NIGHTGATE_USERNAME": "alice"
}
}
}
}Tools
Tool | What it does |
| Live-state check that a payload hash is attested in an AttestationVault (crawler-free, optional content-root check, optional cross-network read) |
| Live-state check that a ZK predicate proof was recorded true on-chain, id-free (plain or field-bound) |
| Verify a server-issued predicate attestation by its row id |
| Verify an anchored document by document id + sha256 |
| Canonicalize a document into payloadHash + Merkle contentRoot + per-field proof inputs (synchronous, NIGHTGATE >= 0.14.0) |
| Anchor agent-output provenance (canonical envelope, third-party verifiable; async job, NIGHTGATE >= 0.14.0) |
| Anchor a document content hash on-chain (async job) |
| ZK proof that a hidden document field satisfies a threshold, without revealing it (async job) |
| Up to 8 field predicates on one document in ONE transaction (async job) |
| Attester-only on-chain disclosure ACL (async jobs) |
| Poll an async NIGHTGATE job until succeeded/failed |
All verification tools return verified: false as a clean negative rather
than an error when the attestation or proof is absent. Write tools require
a connected wallet session (sessionId); creating sessions stays outside
MCP by design.
Integration check
npm run integrationRuns an in-memory MCP client against the server: asserts the tool set, schemas, and argument validation. Optional live round-trip:
NIGHTGATE_LIVE=1 NIGHTGATE_BASE_URL=... NIGHTGATE_USERNAME=... \
NIGHTGATE_TEST_CONTRACT=<vault address> NIGHTGATE_TEST_PAYLOAD_HASH=<64 hex> \
npm run integrationLicense
Apache-2.0
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- Alicense-qualityFmaintenanceA lightweight, fast MCP server that provides onchain capabilities for the LLMs and Agents.Last updated383250MIT
- AlicenseAqualityDmaintenanceMCP server for AI agent identity — verify agents with Ed25519 signatures, check trust scores, sign and verify content, exchange encrypted messages. Built on the Agent Identity Protocol (AIP).Last updated8MIT
- Alicense-qualityDmaintenanceMCP Server for AI agent identity and authorization. Create, verify, and manage agent identities with trust scores and scoped authorization tokens.Last updatedMIT
- Alicense-qualityCmaintenanceMCP server for AI agent security guardrails. Provides input validation, prompt injection detection, PII redaction, output filtering, policy enforcement, rate limiting, and comprehensive audit logging.Last updated461MIT
Related MCP Connectors
Hosted AgentLux MCP server for marketplace, identity, creator, services, and social flows.
MCP server for verifying EUDI/Talao wallet data via OIDC4VP (pull) for AI agents.
MCP server connecting AI agents to non-custodial staking data across 130+ networks.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/ODATANO/NIGHTGATE-MCP'
If you have feedback or need assistance with the MCP directory API, please join our Discord server