landed
Read-after-write receipts for agents: did your write actually land? Free, signed, re-checkable.
¿Debería usar esto?
Calidad y seguridad
Basado en el análisis automatizado de las definiciones de herramientas y el cumplimiento del protocolo.
Costo de contexto
Este es el número aproximado de tokens que se consumen cada vez que las herramientas del servidor se cargan en el contexto de un modelo. Los recuentos más altos reducen la atención disponible para otras tareas.
Instalar
Instalación con un clic
Agrega esto a tu archivo `claude_desktop_config.json`:
{
"mcpServers": {
"landed": {
"url": "https://landed.wirt.ee/mcp"
}
}
}Puntos de conexión remotos
https://landed.wirt.ee/mcpstreamable-httpQué puede hacer
Inventario de herramientas
Herramientas (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.
Esquema de entrada
{
"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.
Esquema de entrada
{
"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.
Esquema de entrada
{
"type": "object",
"properties": {
"agent": {
"type": "string",
"maxLength": 200,
"description": "The agent name whose receipts you want."
}
},
"required": [
"agent"
]
}Comunidad
Evidencia