Skip to main content
Glama
ScopeBlind

verify-mcp

by ScopeBlind

@scopeblind/verify-mcp

MCP server for offline verification of ScopeBlind and Veritas Acta artifacts.

It is deliberately narrow:

  • verify a single signed receipt or artifact

  • verify an audit bundle offline

  • explain a signed artifact in normalized form

  • run a packaged self-test so clients can prove the verifier works

This is the registry-worthy MCP surface for the verification lane. It is not a gateway, not a builder, and not a hosted verification service.

Install

npm install -g @scopeblind/verify-mcp

Related MCP server: protect-mcp

Claude Desktop / MCP config

{
  "mcpServers": {
    "scopeblind-verify": {
      "command": "npx",
      "args": ["-y", "@scopeblind/verify-mcp"]
    }
  }
}

Tools

self_test

Runs packaged sample verification.

Returns:

  • sample receipt valid / invalid

  • sample bundle valid / invalid

  • total receipts in the sample bundle

verify_receipt

Inputs:

  • artifact_json or path

  • optional public_key_hex

Returns:

  • valid / invalid

  • type

  • format

  • issuer

  • kid

  • canonical hash

verify_bundle

Inputs:

  • bundle_json or path

Returns:

  • valid / invalid

  • total receipts

  • passed

  • failed

explain_artifact

Inputs:

  • artifact_json or path

Returns a normalized summary of:

  • type

  • format

  • issuer

  • kid

  • issued_at / timestamp

  • payload keys

Notes

  • No ScopeBlind servers are contacted.

  • This server verifies local JSON artifacts only.

  • protect-mcp remains the local policy gateway.

  • @scopeblind/passport remains the local pack builder.

  • @scopeblind/red-team remains the local benchmark runner.

License

Apache 2.0 (see LICENSE).

Available Tools

4 tools
explain_artifactA
Read-onlyIdempotent

Inspect a signed artifact WITHOUT verifying it: reports what the artifact claims to be so you can choose the right verification tool and key. Requires no key; read-only and offline. Provide raw JSON (artifact_json) or a local file path (path). Returns JSON { type, format ('v1'|'v2'|'passport'), issuer, kid, issued_at, payload_keys (sorted, signature excluded) }. It performs no signature check, so a well-formed forgery will explain cleanly; use verify_receipt to check authenticity.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathNoPath to a local JSON artifact file.
artifact_jsonNoRaw JSON artifact string.

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already provide readOnlyHint=true, idempotentHint=true, destructiveHint=false. The description adds valuable context: it is offline, requires no key, describes the return JSON structure in detail, and warns that forgeries will explain cleanly. This goes beyond annotations to inform the agent of important 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?

The description is a single paragraph that is well-structured and front-loaded: it states the core purpose first, then usage hints, parameter choices, return format, and a warning. Every sentence adds value with no redundancy.

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 that there is no output schema, the description fully documents the return JSON structure including fields like type, format, issuer, kid, issued_at, and payload_keys. It also covers the two parameter alternatives and warns about forgeries. The tool is relatively simple, and the description is complete.

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% since both parameters are documented in the input schema. The description briefly restates the two input options (artifact_json or path) but adds no additional semantic meaning or constraints beyond what the schema provides. Baseline 3 is appropriate.

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 purpose: inspecting a signed artifact without verifying it. It uses specific verbs ('inspect') and identifies the resource ('signed artifact'), and distinguishes from sibling tools like verify_receipt by emphasizing no verification.

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?

The description explicitly states when to use the tool (before verification to choose the right tool/key) and what it does not do (no signature check). It mentions that verification is done by verify_receipt, providing a clear alternative. It also notes that no key is required and it is read-only and offline.

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

self_testA
Read-onlyIdempotent

Run the packaged offline self-test: verifies a known-good sample receipt and sample audit bundle shipped with the server. Read-only and deterministic; no network calls and no ScopeBlind servers are contacted. Returns JSON { ok: boolean, receipt: { valid, type, format, kid, issuer, hash }, bundle: { valid, total, passed, failed }, note }. If the packaged samples cannot be read it returns { ok: false, error }. Call this first to prove the verifier works before verifying your own artifacts.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.9/5.0
Behavior5/5

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

Discloses read-only, deterministic behavior, no network calls, and not contacting ScopeBlind servers, going beyond annotations (readOnlyHint, idempotentHint) with specific operational details and return format.

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 efficiently convey purpose, constraints, and call order; front-loaded with action and directly useful for agent decision-making.

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 zero parameters, rich annotations, and detailed description covering behavior, output shape, and recommended usage order, it is fully complete for correct 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?

No parameters present, so baseline 4 applies; description adds no extra parameter info as none exist.

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?

Clearly states the tool runs a packaged offline self-test that verifies a known-good sample receipt and bundle, distinguishing from siblings like verify_receipt and verify_bundle by being a self-contained trust check.

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?

Explicitly advises 'Call this first to prove the verifier works before verifying your own artifacts', providing clear when-to-use guidance and implying it's a prerequisite for sibling tools.

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

verify_bundleA
Read-onlyIdempotent

Verify every receipt in a ScopeBlind audit bundle offline, using the bundle's embedded verification keys (the JWK set at verification.signing_keys, matched to each receipt by kid). Read-only; no network calls. Provide the bundle as raw JSON (bundle_json) or a local file path (path). Returns JSON { valid: boolean (true only if every receipt verifies), total, passed, failed, receipts: [{ index, type, kid, valid, error }] }. A document without a receipts array returns { ok: false, error }. For a single artifact, or to supply an external key, use verify_receipt instead.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathNoPath to a local JSON bundle file.
bundle_jsonNoRaw JSON bundle string.

TDQS

A4.7/5.0
Behavior5/5

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

Beyond the annotations (readOnlyHint, idempotentHint, destructiveHint), the description adds valuable behavioral details: 'Read-only; no network calls', specifies the use of embedded keys, describes the return JSON structure including error handling, and states it works offline. This fully informs the agent of what to expect.

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 three sentences that efficiently convey purpose, input options, output format, and alternative tool usage. Every sentence adds value, with no redundancy or filler. It is well-structured and 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 tool has no output schema, the description fully documents the return value structure and error case. Parameters are completely covered by schema. Annotations cover safety. Sibling tool context is provided. The description is comprehensive and leaves no ambiguity.

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 already has 100% coverage with descriptions for both parameters (path and bundle_json). The description merely restates that the bundle can be provided as raw JSON or a file path, adding no new meaning beyond the schema. Baseline score of 3 is appropriate.

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 verb 'verify' and the resource 'every receipt in a ScopeBlind audit bundle'. It specifies offline verification using embedded keys, and it distinguishes itself from the sibling tool 'verify_receipt' by noting when to use each.

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?

The description explicitly tells the agent when to use this tool (for bundles with multiple receipts) and when to use the alternative 'verify_receipt' (for single artifacts or external keys). It also notes that no network calls are needed, guiding appropriate usage.

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

verify_receiptA
Read-onlyIdempotent

Verify the Ed25519 signature of a single signed artifact (decision receipt, restraint receipt, passport envelope, or other Veritas Acta artifact; v1, v2, and passport formats are auto-detected). Read-only and fully offline. Provide the artifact as raw JSON (artifact_json) or a local file path (path); artifact_json wins if both are given. Verification uses public_key_hex when provided, otherwise a key embedded in the artifact payload; if neither exists it returns valid: false with error 'no_public_key' rather than guessing. Returns JSON { valid: boolean, error: string|null (e.g. 'invalid_signature', 'no_public_key'), type, format ('v1'|'v2'|'passport'), kid, issuer, hash (SHA-256 over the canonical unsigned bytes) }. Unparseable input returns { ok: false, error }.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathNoPath to a local JSON artifact file.
artifact_jsonNoRaw JSON artifact string.
public_key_hexNoOptional Ed25519 public key hex (64 bytes as hex).

TDQS

A4.7/5.0
Behavior5/5

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

Annotations already include readOnlyHint, idempotentHint, destructiveHint. Description adds details: auto-detects formats, offline operation, specific error strings (invalid_signature, no_public_key), and key resolution logic. No contradiction.

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

Conciseness4/5

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

Description is dense but each sentence adds value. Slightly verbose with full return JSON structure, but front-loaded with purpose. Could be slightly more concise without losing clarity.

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?

No output schema, but description fully specifies return JSON fields (valid, error, type, format, kid, issuer, hash) and error conditions. Covers edge cases like unparseable input. Complete for this tool's complexity.

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?

Schema coverage is 100%, but description adds value by explaining precedence between artifact_json and path, and clarifying that public_key_hex is optional with fallback behavior. This goes beyond 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 explicitly states 'Verify the Ed25519 signature of a single signed artifact' and lists specific artifact types. It clearly distinguishes from siblings like verify_bundle and explain_artifact.

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 guidance on when to use artifact_json vs path, explains optional public_key_hex, and describes behavior when no key is available. However, it does not explicitly mention when to use alternatives like verify_bundle for multiple artifacts.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 4 tool updatesv0.1.0
    • First observedexplain_artifact
    • First observedself_test
    • First observedverify_bundle
    • First observedverify_receipt

TDQS

A4.6/5.0
Disambiguation5/5

Each tool has a clearly distinct purpose: explain_artifact inspects without verifying, self_test runs a built-in test, verify_bundle checks multiple receipts, and verify_receipt checks a single artifact. No functional overlap.

Naming Consistency4/5

Three tools follow a clear verb_noun pattern (explain_artifact, verify_bundle, verify_receipt), while self_test deviates as a noun-based name. This minor inconsistency is acceptable given the tool's special role.

Tool Count5/5

With only 4 tools, the server is well-scoped for its verification purpose. Each tool serves a necessary function without redundancy, making the set efficient and focused.

Completeness4/5

The tool set covers core verification workflows: pre-verification inspection, self-test, single artifact verification, and bundle verification. A minor gap is the lack of a tool to verify multiple individual receipts without forming a bundle, but this is covered by verify_bundle assuming bundles are the primary use case.

Maintenance

ActivitySlowing
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    B
    quality
    C
    maintenance
    Security gateway that wraps any MCP server with per-tool policies, approval gates, and optional Ed25519-signed decision receipts. Shadow mode logs every tool call without blocking; enforce mode applies block, rate-limit, and minimum-tier rules. Receipts are independently verifiable offline with no accounts needed.
    5
    693
    10
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Security gateway for MCP servers. Wraps any MCP server with per-tool policies (Cedar + JSON), Ed25519-signed decision receipts, human approval gates, and trust tiers. Shadow mode by default — logs everything, blocks nothing.
    693
    9
    MIT
  • A
    license
    A
    quality
    C
    maintenance
    Open-source MCP server that exposes Signet cryptographic tools over stdio. It provides tools to generate Ed25519 keypairs, sign MCP actions, verify Signet receipts, and compute canonical content hashes for AI agent audit and accountability workflows.
    4
    38
    Apache 2.0
  • A
    license
    Not graded
    quality
    C
    maintenance
    A sovereign, MIT-licensed MCP server for professional-service workflows, providing offline-capable, Ed25519-signed tools for autonomous agents and human developers.
    MIT

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/ScopeBlind/verify-mcp'

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