Skip to main content
Glama
ODATANO

@odatano/nightgate-mcp

Official
by ODATANO

Server Quality Checklist

67%
Profile completionA complete profile improves this server's visibility in search results.
  • Latest release: v0.1.0

  • Disambiguation4/5

    Most tools have clearly distinct purposes, but the four verify-* tools (verify_predicate_attestation, verify_attestation, verify_predicate, verify_document) all perform verification with different inputs and contexts, which could cause some confusion. However, the detailed descriptions help differentiate them, so it's mostly clear.

    Naming Consistency5/5

    All tool names follow a consistent verb_noun pattern using lowercase and underscores, such as verify_predicate, anchor_document, grant_disclosure, and get_job_status. This makes the naming predictable and easy to understand.

    Tool Count5/5

    With 12 tools, the server provides a well-scoped set of operations for its domain: anchoring, proving, verifying, and disclosure management. The number is appropriate and each tool serves a distinct purpose without redundancy.

    Completeness4/5

    The tool set covers the core lifecycle: anchoring documents and agent outputs, proving predicates (single and batch), verifying various attestations, and managing disclosures. Minor gaps exist, such as no dedicated tool for proving plain (non-field-bound) predicates and no listing/querying of all attestations, but these are workaroundable.

  • Average 4.4/5 across 12 of 12 tools scored.

    See the Tool Scores section below for per-tool breakdowns.

    • No community issues in the last 6 months
    • 6 commits in the last 12 weeks
    • No stable releases found
    • No critical vulnerability alerts
    • No high-severity vulnerability alerts
    • No code scanning findings
    • CI status not available
  • This repository is licensed under Apache 2.0.

  • This repository includes a README.md file.

  • No tool usage detected in the last 30 days. Usage tracking helps demonstrate server value.

    Tip: use the "Try in Browser" feature on the server page to seed initial usage.

  • Add a glama.json file to provide metadata about your server.

  • If you are the author, simply .

    If the server belongs to an organization, first add glama.json to the root of your repository:

    {
      "$schema": "https://glama.ai/mcp/schemas/server.json",
      "maintainers": [
        "your-github-username"
      ]
    }

    Then . Browse examples.

  • Add related servers to improve discoverability.

How to sync the server with GitHub?

Servers are automatically synced at least once per day, but you can also sync manually at any time to instantly update the server profile.

To manually sync the server, click the "Sync Server" button in the MCP server admin interface.

How is the quality score calculated?

The overall quality score combines two components: Tool Definition Quality (70%) and Server Coherence (30%).

Tool Definition Quality measures how well each tool describes itself to AI agents. Every tool is scored 1–5 across six dimensions: Purpose Clarity (25%), Usage Guidelines (20%), Behavioral Transparency (20%), Parameter Semantics (15%), Conciseness & Structure (10%), and Contextual Completeness (10%). The server-level definition quality score is calculated as 60% mean TDQS + 40% minimum TDQS, so a single poorly described tool pulls the score down.

Server Coherence evaluates how well the tools work together as a set, scoring four dimensions equally: Disambiguation (can agents tell tools apart?), Naming Consistency, Tool Count Appropriateness, and Completeness (are there gaps in the tool surface?).

Tiers are derived from the overall score: A (≥3.5), B (≥3.0), C (≥2.0), D (≥1.0), F (<1.0). B and above is considered passing.

Tool Scores

  • Behavior4/5

    Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

    The description discloses key behaviors: server-side envelope construction, hashing, anchoring, immediate async response with {jobId, status}, polling requirement, and the trust model ('without trusting this server'). It omits details like fees or permission requirements, but since no annotations exist, this is a solid disclosure of core behavior.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness5/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    The description is two dense sentences that front-load the core purpose and then concisely explain the async flow. Every clause adds essential information without redundancy.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness4/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    Given the tool's complexity (12 parameters, async, no output schema), the description explains the initial response, the polling action, and the eventual deliverable (envelopeJson). It is slightly ambiguous about which response contains the envelopeJson, but overall it is sufficiently complete for an agent to use it.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters3/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    The input schema covers 100% of parameters with meaningful descriptions, so the baseline is 3. The description adds conceptual mapping (agent X, output O, input I, time T) but provides no additional parameter-level guidance beyond what the schema already offers.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose5/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description opens with a specific action: 'Anchor agent-output provenance on the Midnight chain' and elaborates with the semantic 'agent X produced output O from input I at time T'. This clearly distinguishes the tool from siblings like verify_attestation and anchor_document.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines4/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    The description provides clear context: it is async, returns a jobId/status immediately, and instructs polling get_job_status until completion. It also mentions that third parties can verify via verify_attestation. However, it does not explicitly state when not to use this tool or name alternative attestation/document tools.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

  • Behavior4/5

    Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

    With no annotations, the description carries full burden and does well: it discloses the async nature, the status enum, the recommended polling interval, that the result carries a job outcome JSON, and that chainStatus tracks on-chain finalization independently. Some details like error behavior or timeouts are omitted, so a 4 is fitting.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness5/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    Two sentences, front-loaded with purpose and statuses, followed by actionable polling guidance. No wasted words; every clause contributes necessary behavioral or workflow information.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness4/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    Given the tool's simplicity (2 fully-described parameters, no output schema, no annotations), the description covers essential aspects: why to use it, the status model, how to poll, and what the result contains. It lacks only minor details like error handling or timeout guidance, which are not critical for basic usage.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters3/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    Schema coverage is 100%, so both parameters are already described in the schema. The description adds minor context (jobId comes from submit actions, sessionId belongs to the job) but does not significantly exceed schema semantics. Baseline 3 applies.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose5/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description clearly states the tool polls the status of an async NIGHTGATE job, with a specific verb (poll) and resource (job status). It also lists all possible statuses, which unambiguously defines its scope and distinguishes it from sibling tools that verify or attest.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines4/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    It explicitly says to use this after submit actions and provides a polling loop ('Poll every few seconds until succeeded or failed'). This is clear context, though it doesn't mention when not to use it or name alternatives; none of the siblings serve a polling role, so no exclusion is needed.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

  • Behavior4/5

    Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

    With no annotations available, the description carries the full burden of behavioral disclosure. It explicitly states the on-chain effect ('removes the grantee entry'), the permission model ('Attester-only, enforced in-circuit'), and the async pattern with a clear follow-up mechanism. It stops short of detailing failure modes or response statuses, but the provided information is substantial.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness5/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    The description is two concise sentences: the first explains the action and effect, the second explains the async behavior and next step. No redundancy, information is front-loaded, and every phrase earns its place.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness4/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    For a complex async on-chain mutation with 7 parameters and no output schema, this description covers the essential contract: what it does, who can call it, and how to track completion. It does not enumerate possible failure statuses, but that is reasonably delegated to get_job_status, making it complete enough for an agent to invoke and monitor correctly.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters3/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    The input schema describes all 7 parameters with 100% coverage, so the baseline is 3. The tool description adds no param-specific meaning beyond what the schema already provides, but it does not need to compensate since the schema is complete.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose5/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description states a specific action ('Revoke a previously granted disclosure on-chain'), identifies the resource (the grantee entry), and clearly differentiates from sibling grant_disclosure by using 'previously granted' and 'removes'. The verb is specific and unambiguous.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines4/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    Provides clear operational context: 'Attester-only' establishes who can invoke it, and the async instruction to poll get_job_status gives actionable next steps. However, it does not explicitly name alternatives or when-not-to-use scenarios, though the verb 'revoke' makes the intended use case obvious.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

  • Behavior4/5

    Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

    With no annotations provided, the description discloses important behavioral traits: it reads LIVE state, returns verified:false (not an error) when absent, and optionally checks content root. This is substantive, though it does not address all possible behaviors (e.g., network handling, error conditions).

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness5/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    The description is concise, with two well-structured sentences that front-load the core purpose. No wasted words; each sentence adds value.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness4/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    Given that there is no output schema, the description explicitly clarifies the return behavior for the absent case, which is important. It also explains the key differentiators. It does not cover every nuance, but the schema fills in parameter details.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters3/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    The schema already documents all five parameters with 100% coverage, so the description adds only a little extra meaning by linking 'contentRoot' to 'anchored content root' and implying payloadHash. This matches the baseline for good schema coverage.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose5/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description clearly identifies the action (verify) and resource (LIVE Midnight contract state, AttestationVault), and specifies that it checks payload hash attestation. It also distinguishes from sibling tools like verify_predicate_attestation by highlighting 'crawler-free, no txHash needed'.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines4/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    The description provides useful context by noting it is crawler-free and does not require a txHash, which hints at appropriate use cases. However, it does not explicitly name alternatives or state when not to use this tool, so it stops short of a 5.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

  • Behavior3/5

    Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

    No annotations are provided, so the description must carry the burden of behavioral disclosure. It reveals the core verification steps and the fallback behavior, but does not mention whether the operation is read-only, potential error conditions, or the shape of the return value. It gives useful insight without full transparency.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness5/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    The description is a single front-loaded sentence that begins with the action and resource, followed by the mechanism and the fallback condition. Every phrase adds value, with no redundancy or filler.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness4/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    Given the tool's moderate complexity (4 parameters, no output schema, no annotations), the description covers the essential purpose, the mechanism, and the conditional fallback. It does not describe the return format, but for a verification tool the output is likely self-evident. The description is sufficient for correct selection and initial invocation.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters4/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    The input schema already describes all parameters, so the baseline is 3. The description adds context beyond the schema by introducing 'NIGHTGATE document id' and the fallback condition tied to contractAddress, which clarifies the domain and the conditional behavior. This adds meaningful semantics over the schema.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose5/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description uses a specific verb ('Verify') and resource ('anchored document'), identifies the primary identifier ('NIGHTGATE document id'), and explains the verification mechanism (comparing sha256 and confirming the anchoring transaction). This clearly distinguishes the tool from sibling verification tools focused on predicates or attestations.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines4/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    It states the main use case (verifying an anchored document by document id) and provides a conditional alternative ('crawler-free live-state fallback when contractAddress is supplied'). It does not explicitly say when not to use this tool versus siblings, but the focus on documents is implied. This is clear context without explicit exclusions.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

  • Behavior4/5

    Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

    With no annotations, the description carries the full burden. It discloses the on-chain execution, the in-circuit rejection for non-attesters, and the async return shape with polling instructions. This goes beyond schema content and gives useful operational context.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness5/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    Three focused sentences, front-loaded with the core purpose. No fluff; every sentence contributes a distinct piece of information (purpose, constraint, async behavior).

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness4/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    Given the tool's complexity (8 params, no output schema), the description covers the essential aspects: what it does, who can call it, and how to handle the async result. It leaves idempotency and fee sponsorship to the schema, which is acceptable given high schema coverage.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters4/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    The input schema already provides 100% parameter coverage, so the baseline is 3. The description adds value by explaining the consequence for sessionId (transaction rejected unless original attester) and reiterating level meanings, slightly enhancing the schema descriptions.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose5/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description uses a specific verb ('Grant') with a clear resource ('disclosure level for an attestation to a grantee identity') and specifies the mechanism ('on-chain via the AttestationVault'). This clearly distinguishes it from sibling tools like revoke_disclosure.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines4/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    The description explains the attester-only constraint and the async polling pattern, which tells the agent when this tool applies and how to follow up. It does not explicitly name alternatives, but the context is unambiguous enough for correct selection.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

  • Behavior5/5

    Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

    With no annotations, the description fully discloses key behaviors: compute-only, synchronous, no server-side storage, sensitivity of witness material, and the critical non-re-hashing pitfall of re-serializing with different key order. This goes well beyond a basic read/write label.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness5/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    The description is four sentences, front-loaded with the main purpose, then adding essential behavioral notes. Every sentence contributes unique, high-value information without unnecessary fluff.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness5/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    Despite lacking an output schema and annotations, the description adequately explains what the tool returns (canonical JSON, payloadHash, contentRoot, inclusion paths) and its place in the larger workflow. It covers usage caveats and output sensitivity, making it sufficiently complete for an AI agent to use correctly.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters3/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    Schema coverage is 100%, with detailed descriptions for all parameters (document, proofFields, compiledArtifactRef). The description adds contextual relationships (e.g., 'what anchor_document anchors') but doesn't materially enhance parameter semantics beyond the schema's existing clarity.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose5/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description clearly states the tool's function with a specific verb ('Turn... into'), enumerating the concrete outputs (canonical JSON, payloadHash, Merkle contentRoot, inclusion paths). It explicitly names downstream tools (anchor_document, prove_field_predicate), distinguishing it from siblings as a preparatory step.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines4/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    The description provides clear context that this is a prerequisite for proof/anchor tools, with usage guidance on preserving field order and storing canonicalDocument correctly. While it doesn't explicitly say when not to use it, the downstream references imply a specific place in the workflow.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

  • Behavior5/5

    Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

    With no annotations, the description carries full responsibility and excels: it discloses duplicate tuples dropped server-side, whole-batch abort on false predicate with zero on-chain effect, possible PARTIAL_SUCCESS subset, and async behavior returning { jobId, status } to poll via get_job_status. This is thorough and policy-relevant.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness5/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    Four dense sentences deliver the core purpose, edge cases, failure modes, and async pattern without redundancy. Every sentence adds value and the most important information is front-loaded.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness5/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    Given the batch complexity, partial-success behavior, and absence of an output schema, the description is highly complete: it covers the claim limit, duplicate handling, abort semantics, verification path, and async polling contract. Sibling tools round out the context.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters3/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    Schema description coverage is 100%, so baseline 3 applies. The description adds the 8-claim cap and the contentRoot slot trade-off, but does not otherwise enrich parameter meaning beyond what the schema already explains.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose5/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description opens with 'Batch variant of prove_field_predicate' and specifies 'prove up to 8 field-bound predicates on ONE anchored document in ONE transaction', which clearly states the tool's action, scope, and distinguishes it from the singular sibling prove_field_predicate.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines4/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    It identifies itself as a batch variant, implying use when multiple predicates are needed, and advises verifying per-claim via verify_predicate_attestation after partial success. However, it does not explicitly state when to prefer this over prove_field_predicate or exclude single-predicate cases, leaving that to inference.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

  • Behavior4/5

    Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

    With no annotations, the description covers behavioral traits: it reads live contract state, is id-free, and warns about scaling mismatch causing verified:false. This is useful caveat-level transparency, though it stops short of describing return shape or other edge-case behaviors.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness5/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    Three sentences, all front-loaded and information-dense. The primary action is stated first, followed by the id-free differentiation, then the scaling warning and fieldKey instruction. No filler or redundancy.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness4/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    The description covers the core purpose, key caveat, and param conditioning. It lacks explicit return value details (e.g., whether the response is a simple boolean or includes proof metadata), but given no output schema, it still gives enough to invoke the tool. Minor gap for a verification tool where result interpretation matters.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters5/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    Though schema coverage is 100%, the description adds critical param semantics: threshold must be the same scaled integer the circuit hashed, and fieldKey distinguishes field-bound vs plain proofs. This directly supplements the schema entries and prevents misuse.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose5/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description opens with a concrete action: verifying against LIVE Midnight contract state that a ZK predicate proof was recorded true on-chain. It clearly identifies the resource (on-chain state), the verb (verify), and the specific proof form (predicate), while the 'Id-free' distinction separates it from sibling tools like verify_predicate_attestation.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines4/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    It gives practical usage context: works for proofs NIGHTGATE never saw (id-free), and explains when to supply or omit fieldKey. It does not explicitly name alternative tools or exclusions, but the 'Id-free' note implies a differentiation from attestation-bound verifiers, making the guidance clear enough.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

  • Behavior5/5

    Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

    With no annotations, the description carries the full burden and fulfills it thoroughly: it discloses the zero-knowledge property, that the value is a witness and never persisted, that a false predicate fails locally with nothing submitted, and the immediate async return. It also adds context about scaling and contentRoot anchoring, offering a comprehensive behavioral profile.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness5/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    Every sentence earns its place: the first sentence states the primary function, subsequent sentences cover prerequisites, scaling, anchoring, failure behavior, and the async pattern. The description is tightly written with no fluff and is appropriately front-loaded.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness4/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    For a complex 14-parameter tool with no output schema, the description covers the core aspects: purpose, prerequisites, behavioral nuances, and the return format. It could further describe error scenarios or the verification flow, but the essential operational context is complete.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters4/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    Schema description coverage is 100%, so the baseline is 3. The description adds value beyond the schema by explaining the scaled integer semantics for value and threshold, the witness-only role of value, the depth-4 Merkle path requirement for siblings/dirs, and the contentRoot anchoring behavior. This enriches the parameter understanding.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose5/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description opens with a specific verb phrase 'Issue a zero-knowledge field-bound predicate proof' and precisely defines the predicate as 'value <= threshold' or 'value >= threshold' while emphasizing non-revelation. It clearly differentiates from verification siblings (verify_*) by focusing on proof generation, and the singular 'field' distinguishes it from the plural sibling 'prove_field_predicates_batch'.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines4/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    The description provides concrete usage context: it requires the depth-4 Merkle inclusion path, explains the optional contentRoot anchoring behavior, and describes the async flow with get_job_status polling. It does not explicitly name the batch alternative or state 'when not to use', but the strong contextual detail makes the intended use unambiguous.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

  • Behavior4/5

    Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

    No annotations are present, but the description discloses meaningful behavior: it confirms the proving transaction succeeded and mentions a 'crawler-free live-state fallback.' It could add return/error details, but the essentials of the read-only verification operation are conveyed.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness5/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    Two terse sentences: first states action and mechanism, second gives alternative. No filler.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness4/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    For a single-parameter verify tool without output schema, the description covers purpose, input semantics, and fallback behavior. It lacks explicit output/return shape, but the phrase 'Confirms... succeeded' implies the verification result, and complexity is low.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters4/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    Schema coverage is 100% with a standard UUID field, and the description adds the operational meaning: 'NIGHTGATE row id' and 'server-issued predicate attestation,' clarifying what to pass beyond the schema.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose5/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description opens with the specific verb 'Verify' and resource 'server-issued predicate attestation' identified by NIGHTGATE row id, and explicitly contrasts with verify_predicate for on-chain coordinates. This clearly distinguishes it from siblings.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines5/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    It explicitly names the alternative 'verify_predicate' and the condition ('when you only have on-chain coordinates'), and implicitly states when to use this tool (when you have the NIGHTGATE row id). This is strong guidance for tool selection.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

  • Behavior5/5

    Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

    With no annotations provided, the description fully carries behavioral disclosure. It reveals that only the sha256 and public metadata are committed, that the caller is responsible for storing the raw bytes, that anchoring is first-come-first-served per hash, and that the call returns immediately with a jobId while execution proceeds asynchronously. This is rich, non-obvious context beyond the schema.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness5/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    The description is four sentences with no wasted words. It front-loads the primary action, then packs essential caveats (storage responsibility, hash uniqueness, async behavior, related verification tool) into compact, high-value sentences.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness5/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    For a 10-parameter tool with no output schema, the description covers the critical user-facing contract: what is anchored, what the caller must handle, the async polling model, and the return values (jobId, status, documentId). Combined with the detailed schema, this is sufficient for an agent to select and invoke the tool correctly.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters4/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    Schema description coverage is 100%, so the schema already documents each parameter. The description adds meaningful cross-parameter context by explaining that sha256 and public metadata are the committed payload, while storageRef holds the actual bytes—clarifying the division of responsibility between these fields. It does not re-explain each parameter, which is appropriate given the schema's completeness.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose5/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description opens with a specific verb and resource: 'Anchor a document content hash on the Midnight chain via the AttestationVault attest circuit.' It clearly distinguishes this from sibling tools like verify_document and get_job_status by framing the action as anchoring and mentioning the returned documentId for later verification.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines4/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    The description provides clear workflow guidance: the caller must store the bytes at storageRef, the operation is async requiring polling get_job_status, and the returned documentId is used with verify_document. It does not explicitly name alternatives or say 'use this instead of X', but the contextual workflow is sufficiently directional.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

GitHub Badge

Glama performs regular codebase and documentation scans to:

  • Confirm that the MCP server is working as expected.
  • Confirm that there are no obvious security issues.
  • Evaluate tool definition quality.

Our badge communicates server capabilities, safety, and installation instructions.

Card Badge

NIGHTGATE-MCP MCP server

Copy to your README.md:

Score Badge

NIGHTGATE-MCP MCP server

Copy to your README.md:

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/ODATANO/NIGHTGATE-MCP'

If you have feedback or need assistance with the MCP directory API, please join our Discord server