Skip to main content
Glama

Server Details

Read-after-write receipts for agents: did your write actually land? Free, signed, re-checkable.

If you are the author of this connector, you can claim ownership by verifying the domain or GitHub account it belongs to. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Last Tested
Transport
Streamable HTTP · MCP 2025-03-26
URL
Repository
wirt-ee/landed
GitHub Stars
0

TDQS

A4.4/5.0

Scored across 3 tools

Disambiguation5/5

The three tools have clearly distinct roles: verify_write creates a receipt by fetching a URL, get_receipt rechecks a single receipt by ID with a fresh fetch, and read_log lists past receipts by agent. While both get_receipt and read_log retrieve receipts, their different identifiers (receipt_id vs agent name) and purposes prevent confusion.

Naming Consistency5/5

All names follow a consistent snake_case verb_noun pattern: verify_write, get_receipt, read_log. The verbs vary appropriately by action, but the convention is predictable throughout with no mixing of styles.

Tool Count5/5

Three tools fit the narrow scope of write verification and receipt auditing perfectly. Every tool earns its place, and the count avoids both redundancy and thinness.

Completeness4/5

The surface covers the core lifecycle: create a verification receipt, retrieve/recheck one, and list receipts by agent. Minor gaps exist—such as bulk verification or searching receipts by URL—but agents can work around these without failure.

Available Tools

3 tools
get_receiptAInspect

Fetch a receipt you (or someone) got from verify_write, plus a FRESH recheck: a new fetch of the target URL performed right now. Use it when your write was still propagating when you first verified (CDN caches, eventual consistency) and you want to confirm it landed now — or when an operator asks you to prove a past write. Receipts are public-by-id: anyone holding the receipt_id can re-check it.

ParametersJSON Schema
NameRequiredDescriptionDefault
receipt_idYesThe receipt_id hex string returned by verify_write.

TDQS

A4.1/5.0
Behavior4/5

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

With no annotations, the description carries the full burden and does disclose a non-obvious behavioral trait: the call performs a NEW live fetch of the target URL right now, not just a replay of stored data. It also discloses the access model ('public-by-id: anyone holding the receipt_id can re-check it'), which is a meaningful privacy/sharing property. It still doesn't state whether the fresh fetch can fail or cost anything, or how failures surface.

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?

Three sentences, front-loaded with the primary action and the fresh-recheck twist before the usage guidance. Every sentence contributes, though the parenthetical about CDN caches and the final sharing sentence make it slightly denser than needed.

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?

Covers purpose, triggering conditions, the live-recheck behavior, and the sharing model — good coverage for a one-parameter tool with no annotations. With no output schema, however, the description never says what a receipt actually contains or what the recheck result looks like, which an agent reasoning about the return value would want.

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% and the single parameter's format ('hex string returned by verify_write') is already documented in the schema. The description reinforces the provenance of the ID but adds no new syntax or constraint beyond it, so the baseline 3 for schema-documented params 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?

Names a specific verb and resource ('Fetch a receipt ... plus a FRESH recheck') and explains what the receipt is and where it came from (verify_write), which cleanly separates it from the sibling verify_write that produces receipts. An agent can tell the two apart without opening either schema.

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?

Gives two concrete triggering conditions — the write was still propagating (CDN caches, eventual consistency), or an operator asks for proof of a past write. It names the producing tool but never says when this is the wrong choice (e.g., no receipt exists yet, or when to just re-run verify_write instead), so the when-not side is missing.

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

read_logAInspect

Read the last receipts filed under an agent name (newest first). Use it to audit yourself before reporting success, or to review what another agent claimed it verified. Returns up to 100 signed receipts with their statuses.

ParametersJSON Schema
NameRequiredDescriptionDefault
agentYesThe agent name whose receipts you want.

TDQS

A4/5.0
Behavior4/5

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

With no annotations, the description carries the full burden and delivers meaningful traits: results are newest-first, capped at 100, and consist of signed receipts with statuses. It omits permission/auth requirements and what happens when a log is longer than 100 entries.

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 tight sentences: scope first, then use cases, then return shape. Every sentence earns its place with 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 simple one-parameter read tool with no output schema, the description covers scope, ordering, cap, and content type of the return. The remaining gap is truncation/pagination behavior beyond the 100-receipt cap.

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% for the single 'agent' parameter, so the schema already documents it. The description's 'under an agent name' only restates that, adding no new semantics such as format or matching rules.

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?

States a specific verb and resource ('read the last receipts filed under an agent name') plus ordering ('newest first'), which is far more than the name alone conveys. It is distinguishable from the singular sibling get_receipt by explicitly scoping to a list of receipts per agent, though it never names the 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?

Gives concrete usage contexts: audit yourself before reporting success, or review what another agent claimed it verified. That is clear when-to-use guidance. It stops short of naming alternatives or stating exclusions (e.g., when to prefer get_receipt instead).

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

verify_writeAInspect

Did your write actually land? You just performed a write on the web (post, comment, edit, upload, deploy) and your tool said 'success' — but success messages lie: caches, moderation queues, auth walls, failed propagation and soft-failing backends all eat writes silently. This tool fetches the URL RIGHT NOW from an independent server and returns a signed receipt with the fresh HTTP status and whether the page really contains what you wrote. Call it ONCE, after the write. Do not poll. Give 'expect' a unique substring of what you wrote — without it the receipt only proves the page loads. The receipt is public-by-id and re-checkable later with get_receipt. Limits: 60 calls per agent name per hour; the target must be public http(s); robots.txt is respected; fetches identify themselves honestly.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesThe exact http(s) URL you wrote to — the page the write should be visible on.
noteNoOptional human-readable context stored with the receipt.
agentYesYour stable agent name, e.g. 'fleetname/agent-7'. Receipts are filed under it.
actionYesWhat you did, short, e.g. 'posted-comment' or 'edited-wiki-page'.
expectNoSubstring that must appear on the fetched page for the receipt to say found=true. Use a unique fragment of your write.

TDQS

A4.8/5.0
Behavior5/5

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

With no annotations, the description carries the full behavioral burden and does so well: it discloses the independent-server fetch, signed receipt, public-by-id re-checkability, 60-calls-per-agent-per-hour rate limit, public http(s) requirement, robots.txt compliance, and honest fetch identification. It also warns that soft-failing backends, caches, and moderation queues can silently eat writes, which explains the tool's existence.

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?

The description is front-loaded with purpose and then structured into core behavior, call rules, parameter advice, receipt details, and limits. It is dense and largely earns its length, though the opening rhetorical question and dramatized success-message sentence could be trimmed slightly without losing meaning.

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 no-annotation, no-output-schema tool with five parameters, the description covers the behavior, call discipline, return semantics (signed receipt with fresh HTTP status and content match), and operational constraints thoroughly. An agent has enough information to invoke it correctly and interpret the result.

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%, so the baseline is 3, but the description adds meaningful nuance for the expect parameter: it must be a unique substring and without it the receipt only proves page loads, not that the write is present. It does not add equivalent depth for the other four parameters, but the expect guidance is operationally important.

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?

States a specific action—fetching the written URL from an independent server to verify a write actually landed—and distinguishes itself from get_receipt by positioning that sibling as the later re-check mechanism. An agent can tell what this tool does without opening the schema.

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 says to call it once after a write and not to poll, gives the intended trigger context (post, comment, edit, upload, deploy), and names get_receipt as the alternative for later re-checking. This is clear when-to-use and when-not-to-use guidance.

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.

  1. 3 tool updates
    • First observedget_receipt
    • First observedread_log
    • First observedverify_write

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    B
    maintenance
    Issue and verify signed receipts for agent actions, enabling durable, independently checkable proof of policy decisions. Supports offline verification via get_keyset and verify_receipt tools without an account.
    0
    Inno Setup
  • A
    license
    Not graded
    quality
    D
    maintenance
    Verifiable action receipts for AI agents — agents sign claims locally, an independent witness countersigns and timestamps, anyone can verify offline.
    16 npm
    MIT
  • A
    license
    A
    quality
    A
    maintenance
    The accountability layer for AI agents — a named human's signed yes before an agent does anything irreversible (payment, record change, deploy), then an offline-verifiable Trust Receipt. Apache-2.0, formally verified.
    3
    611
    Apache 2.0
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.