Hosted MCP coming soon. v1 data: mazowieckie.Join the waitlist

Use with Claude

Ask Claude about
a Polish parcel.

Add landfeed as a remote MCP server. Claude then answers parcel questions with one tool call, and quotes the source and as-of date of every fact.

Coming soon. The hosted server is not live yet. https://mcp.landfeed.pl/mcp is the planned address; join the waitlist to hear when it opens.

Claude app and Claude Desktop

landfeed is a remote MCP server reached over Streamable HTTP. In Claude it is added as a custom connector.

  1. Open Settings, then Connectors.
  2. Choose Add custom connector.
  3. Name it landfeed and paste the server URL:
    https://mcp.landfeed.pl/mcp
  4. Choose Add, and sign in when Claude asks.
  5. In a chat, open the tools menu and make sure landfeed is on.

Menu names are Claude's, as of October 2026, and may change. On Team and Enterprise plans an owner may need to add the connector for the organisation first.

Claude Code

One command adds the server for your user or project:

claude mcp add --transport http landfeed https://mcp.landfeed.pl/mcp

Then run /mcp inside Claude Code to see the server, its six tools and its sign-in state.

Building your own agent instead? The same six tools are plain REST endpoints; see API and docs.

Sign-in

The plan is OAuth 2.1 for the hosted server at release, so Claude can sign you in without pasting a key. REST calls use an X-Api-Key header. Neither is open yet.

Example prompts

Type the parcel the way people do. The tools accept free text, an EGiB id in slash or dash form, or a point.

In English

  • Can I build a house on parcel 25/18 in Lesznowola?Claude calls check: a verdict, named checks with sources, and the parcel record.
  • Is 141803_2.0006.25/18 in a flood zone?Claude calls layer with flood: Q10, Q100 and Q500 flags with their coverage, note and map source.
  • What do the plans say for Lesnowola 25/18?Claude calls layer with planning. The misspelt locality is matched fuzzily, with lowered confidence and the assumption stated.
  • Has anything changed on this parcel since 1 October?Claude calls events. History starts with the first precompute run in October 2026.

In Polish

  • pogorzelec dziłaka 284/5, da się tam budować? English: "Pogorzelec, plot 284/5, can you build there?" Claude calls check with the text as typed.
  • PL pendingEnglish gloss: "Can I build a house on plot 25/18 in Lesznowola?" Claude calls check.
  • PL pendingEnglish gloss: "Is plot 25/18 in Lesznowola in a flood zone?" Claude calls layer with flood.
  • PL pendingEnglish gloss: "Does this plot have a plan ogólny in force, and which zone is it in?" Claude calls layer with planning.

What Claude gets back

Every tool returns the REST envelope as structured JSON, so Claude reads fields, not prose.

tool result · structured content
{
  "status": "ok",            // or "ambiguous" with candidates, "not_found", "not_covered"
  "query": { "input": { "q": "Lesnowola 25/18" },
             "resolved": { "method": "text_parcel_fuzzy", "note": "…", … } },
  "result": { /* the answer; every layer has coverage, value, note, source, as_of */ },
  "candidates": [],
  "needs_obreb": false,
  "sources": [ /* title, attribution, licence, as_of */ ],
  "billing": { "cost": 1, "charged": 1, "refunded": 0, "rule": "charged" },
  "error": null,
  "meta": { "calls": 1, "excluded": [ /* never served */ ], … }
}
shape from envelope.json · values elided

When the text matches several parcels, status is ambiguous and Claude shows you the candidates or asks which obręb (needs_obreb); it never picks one silently.

Rules Claude follows

The server's instructions travel with the tools. They tell the agent to:

  • quote each layer's note and cite source.attribution and as_of;
  • say "the state does not publish this here" for not_covered, and not guess;
  • never call a parcel "safe", and never say "no plan" without naming which plan, its status and the source;
  • not expect land registry (KW) numbers or owner data: landfeed never returns them.