landed
Read-after-write receipts for agents: did your write actually land? Free, signed, re-checkable.
Sollte ich dies verwenden
Qualität und Sicherheit
Basierend auf einer automatisierten Analyse der Tool-Definitionen und der Einhaltung des Protokolls.
Kontextkosten
Dies ist die ungefähre Anzahl der Tokens, die jedes Mal verbraucht werden, wenn die Tools des Servers in den Kontext eines Modells geladen werden. Höhere Werte verringern die Aufmerksamkeit, die für andere Aufgaben verfügbar ist.
Installieren
Installation mit einem Klick
Fügen Sie dies Ihrer Datei `claude_desktop_config.json` hinzu:
{
"mcpServers": {
"landed": {
"url": "https://landed.wirt.ee/mcp"
}
}
}Remote-Endpunkte
https://landed.wirt.ee/mcpstreamable-httpWas es kann
Tool-Inventar
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.
Eingabe-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.
Eingabe-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.
Eingabe-Schema
{
"type": "object",
"properties": {
"agent": {
"type": "string",
"maxLength": 200,
"description": "The agent name whose receipts you want."
}
},
"required": [
"agent"
]
}Community
Nachweis