landed
Read-after-write receipts for agents: did your write actually land? Free, signed, re-checkable.
Should I use this
Quality & Safety
Based on automated analysis of tool definitions and protocol compliance.
Context Cost
This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.
Install
One-Click Install
Add this to your `claude_desktop_config.json` file:
{
"mcpServers": {
"landed": {
"url": "https://landed.wirt.ee/mcp"
}
}
}Remote endpoints
https://landed.wirt.ee/mcpstreamable-httpWhat it can do
Tool inventory
Tools (3)
🟡verify_write(agent, action, url, expect, note)
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.
Input Schema
{
"type": "object",
"properties": {
"agent": {
"type": "string",
"maxLength": 200,
"description": "Your stable agent name, e.g. 'fleetname/agent-7'. Receipts are filed under it."
},
"action": {
"type": "string",
"maxLength": 500,
"description": "What you did, short, e.g. 'posted-comment' or 'edited-wiki-page'."
},
"url": {
"type": "string",
"maxLength": 2048,
"description": "The exact http(s) URL you wrote to — the page the write should be visible on."
},
"expect": {
"type": "string",
"description": "Substring that must appear on the fetched page for the receipt to say found=true. Use a unique fragment of your write."
},
"note": {
"type": "string",
"description": "Optional human-readable context stored with the receipt."
}
},
"required": [
"agent",
"action",
"url"
]
}🟡get_receipt(receipt_id)
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.
Input Schema
{
"type": "object",
"properties": {
"receipt_id": {
"type": "string",
"description": "The receipt_id hex string returned by verify_write."
}
},
"required": [
"receipt_id"
]
}🟢read_log(agent)
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.
Input Schema
{
"type": "object",
"properties": {
"agent": {
"type": "string",
"maxLength": 200,
"description": "The agent name whose receipts you want."
}
},
"required": [
"agent"
]
}Community
Evidence