Skip to main content
Glama

Vigil — an outside witness for AI agents

vigil_verify_source

Idempotent

Paid source-local verification with exact evidence and signed receipt. Does not establish absolute truth. Read price and payment requirements before authorizing; retry with the same vigil/idempotency-key metadata and payment proof.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
claimYes
optionsNo
source_urlYes

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
cacheYes
claimYes
limitsYes
sourceYes
statusYes
paymentYesUSDC uses six atomic decimals. Offline mock payments simulate USDC and move no funds. Null fees are unknown, not zero.
receiptYesPin Vigil's key independently. Verify the Ed25519 attestation, SHA256 of canonical envelope bytes, and SHA256 of the result with receipt removed. Schema validation alone does not authenticate a receipt.
evidenceYes
reachableYes
served_atYes
checked_atYes
confidenceYesNo numerical confidence is published before calibration.
request_idYes
risk_flagsYes
explanationYes
claim_supportYes
schema_versionYes
source_identityYes
assessment_scopeYes
verification_typeYes
methodology_versionYes

Schema Changelog

Changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. First observed

TDQS

A3.9/5.0
Behavior5/5

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

Beyond annotations, the description discloses the paid financial side effect, the promise of 'exact evidence and signed receipt', and the epistemic limitation 'Does not establish absolute truth'. It also documents idempotent retry behavior with payment proof, which is consistent with and extends the idempotentHint=true annotation. No contradiction with annotations exists.

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 short sentences with no filler. The core action and purpose are front-loaded, followed by the critical caveat and the essential operational retry instruction. Every sentence 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 paid tool with an output schema, the description covers the most critical operational context: pricing, payment proof, idempotent retry, and the limitation regarding absolute truth. It lacks explicit sibling routing and parameter mapping, but the presence of an output schema and the tool's focused purpose keep this from being a serious omission.

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

Parameters1/5

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

Schema description coverage is 0%, and the description does not mention source_url, claim, options, max_price_usd, or max_age_seconds by name or meaning. The only oblique hint is 'price', which gestures at cost but does not explain how to use max_price_usd or how the options affect verification behavior.

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

Purpose4/5

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

The description clearly defines the action as 'source-local verification' with 'exact evidence and signed receipt', which names the resource and expected outcome. It also adds the important caveat that it 'does not establish absolute truth', giving the tool a distinct epistemic role. It does not explicitly name sibling tools, but 'source-local' separates it from lease/receipt verification siblings.

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 gives explicit preconditions: 'Read price and payment requirements before authorizing' and instructs to retry with the same vigil/idempotency-key metadata and payment proof. This provides clear operational context. It stops short of explicitly stating when to prefer this tool over siblings like vigil_verify_lease or vigil_verify_receipt.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

TDQS

B3.3/5.0
Disambiguation4/5

The tools are organized into clear domains—receipts/notarization, leases, journals, watchdogs, and account management—and each tool has a distinct resource or action. Minor confusion is possible between vigil_anchor and vigil_anchors, or between the various verification tools, but the descriptions generally make the boundaries clear.

Naming Consistency3/5

All tools share the vigil_ prefix and use snake_case, but the verb/noun ordering is inconsistent: vigil_get_receipt and vigil_delete_watchdog use verb-first, while vigil_journal_get and vigil_journal_delete use resource-first. Several tools are also pure nouns (vigil_chain, vigil_usage, vigil_lease_status), making the overall pattern mixed but still readable.

Tool Count2/5

At 26 tools, this exceeds the 25+ threshold and feels heavy for a single MCP server, even though the tools cluster into several subsystems. Some status, info, and lease-listing tools could plausibly be consolidated without losing much capability.

Completeness4/5

The core lifecycle coverage is strong: receipts can be created, read, verified, and audited via the chain; leases have grant/renew/revoke/status/verify; journals have full CRUD; watchdogs have set/delete/status/heartbeat. Minor gaps exist, such as no direct way to update a watchdog without deleting and recreating it, but these are workable.

Resources