mcpField
L
landed

landed

Remote
landed.wirt.eeDeveloper Tools1Updated 2w ago

About landed

landed independently re-fetches a public URL after an agent writes to the web and returns a signed, timestamped receipt showing whether expected content is present. It is for agents and others who need a verifiable record of a post, comment, or filing.

Key features

  1. 01Independent URL re-fetch
  2. 02Signed, timestamped receipts
  3. 03Ed25519 receipt verification
  4. 04Fresh receipt re-checks
  5. 05Recent receipt log

Use cases

  1. 01Confirming a published post is visible
  2. 02Checking that a submitted comment landed
  3. 03Verifying a web filing after submission

MCP support

The MCP endpoint exposes `verify_write`, `get_receipt`, and `read_log` to MCP clients without authentication.

Configuration

Remote servers need no local install. Pick your client, then copy the config or install in one click.

Endpointhttps://landed.wirt.ee/mcp
Copy install command
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

Run commands in a terminal; paste JSON into the client’s MCP config and restart. Servers that need sign-in will prompt on first connect.

Tools

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

Details

From the project README

landed — did your write actually land?

read-after-write receipts for software agents. You post, publish, comment, or file something on the web. The moment after, the doubt: did it actually land, or die quietly? landed re-fetches your URL independently, right now, and returns a signed, timestamped receipt stating whether the content you expected is really there.

Live (free, no accounts, no keys): https://landed.wirt.ee Machine-readable docs for agents: https://landed.wirt.ee/llms.txt MCP endpoint (one paste, no auth): https://landed.wirt.ee/mcp — gives any MCP-capable agent (Claude, Cursor, frameworks) a native verify_write tool, plus get_receipt and read_log. See MCP_README.md for client setup.

curl -s -X POST https://landed.wirt.ee/v1/verify \
  -H 'Content-Type: application/json' \
  -d '{"agent":"your-name","action":"posted fix comment",
       "url":"https://example.com/your-post",
       "expect":"the exact substring you wrote"}'

returns

{"ok": true, "found": true, "checked_at": "...",
 "receipt_id": "...", "digest": "sha256 of the fetched bytes",
 "sig": "hmac-sha256 (operator-verifiable)",
 "sig_ed25519": "ed25519 — verify it yourself with GET /v1/pubkey"}
  • GET /v1/pubkey — the Ed25519 public key: anyone can verify a receipt's sig_ed25519 themselves; the canonical form is documented with the key. (sig is HMAC and proves the operator signed — nothing more, nothing less.)
  • digest commits to the bytes the service observed at checked_at, so a reader can tell "landed at t0" apart from "still visible at t1".
  • GET /v1/receipt/<id> — the stored receipt plus a fresh re-verification right now (independent re-fetch), persisted as a timestamped RECHECKED event: later checks append, they never rewrite the first observation
  • GET /v1/log/<agent-name> — last 100 receipts for that name, each re-checkable against the live web

Why trust it

You don't have to. Every claim in a receipt is about a public object — anyone can fetch the URL themselves and compare. The service only supplies what a notary supplies: an independent look and a timestamp. Verifiability replaces trust; a fabricated receipt is exposed by the first person who re-checks it.

Limits: 60 verifications per agent name per hour. Targets are fetched politely (honest User-Agent, robots.txt respected, 10s timeout, 256KB cap, ≤3 redirects). Private/localhost addresses are refused. Requester IPs are never stored.

This very README

The service's first public announcement (an agent message board, 2026-10-12) carries a receipt issued by the service itself — the ad proves the product:

https://landed.wirt.ee/v1/receipt/c0c9b52345f0a78c

Self-hosting

One file of Python stdlib, one SQLite database, no dependencies. See DEPLOY.md (systemd recipe, hardening notes, Cloudflare-tunnel steps). Tests: python3 test_receipts.py (32 checks, fully offline, includes deliberately hostile SSRF attempts that must be refused).

Status & disclaimer

Operated by wirt.ee — named, not anonymous. This is an early experiment in mapping demand for agent infrastructure; the public API may change or vanish. Free tier only for now; nothing is sold.

MIT license — see LICENSE.

Comments

Markdown supported

New to MCP?

From what the protocol is to installing your first server, these answers cover most first questions.

An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.