Cenogram
PL
MCP server · Polish price registry (RCN)

A ready-made MCP server for Polish transaction prices

Cenogram gives an AI assistant access to 8M+ transactions from Poland's national price registry (RCN) - prices recorded in notarial deeds, not asking prices from listings. You connect over one endpoint with OAuth 2.1 and get more than 20 tools. You plug in a ready server instead of building your own.

Connect in 2 minutes
MCP endpoint https://mcp.cenogram.pl/mcp
8M+
transactions
since 2003
price history
380
counties
OAuth 2.1
or API key
20+
tools
10+
parcel layers

An MCP connector for Polish real estate prices

The agent picks the tool from your question. The most used ones:

Search

  • search_transactions - search by location, property type, price, date and area
  • search_by_area - radius search around lat/lng coordinates
  • search_by_polygon - search inside an arbitrary GeoJSON polygon

Statistics and market

  • get_price_statistics - price per m² statistics by location
  • get_market_overview - overview: total count, date range, breakdowns
  • compare_locations - side-by-side price comparison across locations

Parcel

  • resolve_parcel - resolve a cadastral parcel identifier
  • get_parcel_report - full parcel report in one call
  • estimate_value - comparable-sales value estimate [Beta]

The agent has 20+ tools, including parcel context layers (flood, zoning, permits, buildings) and location context. Full list in the docs →

Ask in plain language, get deed-recorded data

An appraiser asks:

"What is the median price of ~55 m2 apartments in Toruń on the secondary market since April 2024?"

Assistant with the Cenogram MCP server
→ search_transactions(district="Toruń", propertyType=4, marketType=2, minArea=45, maxArea=65, dateFrom="2024-04-01")

1,378 comparable transactions, median PLN 8,340/m² - computed on notarial-deed prices, not listings. Each transaction carries the date, area, market segment and parcel identifier.

Figures illustrative - the registry is refreshed roughly every two weeks.

Parcel context inside an AI assistant

The same server gives the agent cadastral parcel data: the local zoning plan (MPZP) and general plan for a parcel, a parcel's flood risk, plus the register of monuments, landslides, building permits, transit access and agricultural use.

An analyst asks:

"Check the details of parcel 126104_9.0015.201 and its surroundings"

Assistant with the Cenogram MCP server
→ resolve_parcel(parcelId="126104_9.0015.201")
→ search_transactions(parcelId="126104_9.0015.201")
→ get_parcel_report(parcelId="126104_9.0015.201")

The agent resolves the parcel, pulls the notarial-deed history for that same identifier and adds context: the zoning plan, the flood hazard zone, building permits and the surroundings. One tool - get_parcel_report - assembles the full report.

Want a parcel report for an AI agent? That is one call instead of ten queries to separate sources.

Connect in two ways

Your MCP client supports one of two modes. Both are shown below.

Remote server (HTTP + OAuth)

For Claude, ChatGPT and Grok - you sign in, no key in the config

{
  "mcpServers": {
    "cenogram": {
      "type": "http",
      "url": "https://mcp.cenogram.pl/mcp"
    }
  }
}

OAuth 2.1 with dynamic client registration

Local server (stdio + npm)

For Cursor, VS Code and Claude Code - API key cngrm_…

{
  "mcpServers": {
    "cenogram": {
      "command": "npx",
      "args": ["@cenogram/mcp-server"],
      "env": {
        "CENOGRAM_API_KEY": "cngrm_…"
      }
    }
  }
}

The same key works in the REST API and the MCP server

Claude works on a free Cenogram account. ChatGPT needs a Plus plan (developer mode) and Grok a paid plan with connectors. A free ChatGPT account has no MCP connectors.

Step by step for your app

The walkthrough video runs about 2 minutes - that is the whole setup

C

Claude with a Cenogram account

Sign in with your Cenogram account and start right away

  1. Open claude.ai → Settings → Connectors
  2. Click Add custom connector:
    Name: Cenogram
    URL: https://mcp.cenogram.pl/mcp
  3. Click Authorize - sign in with your Cenogram account
  4. Pick the latest Opus model in the menu at the bottom of the chat window

Works on claude.ai, Claude Desktop and the mobile app. Requires a free Cenogram account.

GPT

ChatGPT with a Cenogram account

Connect through developer mode and ask about RCN data in the chat

  1. In Settings → Security and login enable Developer mode
  2. Go to Settings → Plugins → Browse plugins and click Create app
  3. In the New Plugin dialog enter the name Cenogram and the address:
    MCP Server URL: https://mcp.cenogram.pl/mcp
  4. Leave Authentication on OAuth, check the consent box and click Create
  5. Sign in with your Cenogram account (OAuth)

Requires ChatGPT Plus (Developer mode). A free ChatGPT account has no MCP connectors.

Grok

Grok with a Cenogram account

Add a custom connector and ask about RCN data in the chat

  1. In a new chat click +Add connector
  2. In the dialog pick Custom
  3. Enter the name Cenogram and the Server URL:
    https://mcp.cenogram.pl/mcp
  4. Sign in with your Cenogram account (OAuth)
  5. In the conversation ask Grok to use Cenogram

Requires a paid Grok account (custom connectors). Works in the web and mobile apps.

Claude Code

One command in the terminal

claude mcp add cenogram \
  https://mcp.cenogram.pl/mcp \
  -t http \
  -H "Authorization: Bearer YOUR_API_KEY"

Requires an API key

Cursor / VS Code

JSON config with an API key

{
  "mcpServers": {
    "cenogram": {
      "type": "http",
      "url": "https://mcp.cenogram.pl/mcp",
      "headers": {
        "Authorization": "Bearer YOUR_API_KEY"
      }
    }
  }
}

Requires an API key

Use a ready server or build your own?

Transaction prices are public. But a raw registry is not the same as data an agent can use.

Raw public registry Your own server Cenogram
Access single records, no API you build and host it yourself REST and MCP, one endpoint
Aggregation you compute it yourself you code it yourself statistics, medians, comparisons
Coverage 380 counties of varying quality, each one separate as much as you collect yourself unified and normalized, since 2003
Parcel context - you integrate it yourself flood, zoning, permits, buildings - one tool
Authentication - you do it yourself OAuth 2.1 or API key
Maintenance yours ingest, updates, hosting - yours on us, registry every ~2 weeks

What a transaction holds, and what a parcel layer holds

The agent picks the tool itself. Here is which layer answers what.

Layer What you get Tool
Transactions deed prices, area, date, market segment search_transactions, get_price_statistics
Spatial search radius around a point, GeoJSON polygon search_by_area, search_by_polygon
Parcel resolve by identifier, deed history resolve_parcel
Zoning and buildings local zoning plan, general plan, storeys get_parcel_report
Risks and surroundings flood, landslides, monuments, permits, transit get_parcel_report

A ready server, open code

The server is in the official MCP registry and on npm, and the stdio client code is open on GitHub. Give your assistant prices straight from notarial deeds.

Official MCP registry

Listed in registry.modelcontextprotocol.io and mirror catalogs

npm package

@cenogram/mcp-server - real monthly downloads, counter on the package page

Open code

The stdio server is open on GitHub - you see what you connect to your assistant

Price analysis - Wolska St., Warsaw

Scatter plot, east-west price gradient

Street comparison - Gdynia

Myśliwska and Lipowa, trend 2021-2026

Supported clients: Claude (web, Desktop, mobile), ChatGPT, Grok, Cursor, VS Code, Claude Code.

Prefer REST?

You get the same data over the API - JSON endpoints, spatial search, statistics and parcel context.

See the REST API →

Questions and answers

Cenogram is a ready-made MCP server with prices from Poland's real estate price registry (RCN) - recorded in notarial deeds, not listings. It gives an AI assistant access to 8M+ transactions across 380 counties, from 2003 onward, over a single endpoint with OAuth 2.1 authentication. You connect it to Claude, ChatGPT or Cursor with no code and without building your own server.

Yes - Cenogram. Beyond transaction prices from the real estate price registry, it gives an AI assistant cadastral parcel context: the local zoning plan (MPZP) and general plan, flood risk, the register of monuments, landslides, building permits, transit access and agricultural use. You connect it to Claude, ChatGPT or Cursor without building your own server.

Connect the Cenogram MCP server and ask about a parcel by its cadastral identifier. The agent calls get_parcel_report and returns the local zoning plan (MPZP) and general plan for that parcel, together with its transaction history from notarial deeds.

Yes. The Cenogram MCP server gives the assistant flood hazard zones for a parcel, alongside landslides, the register of monuments, building permits and transit access. All through a single get_parcel_report tool.

You can connect Claude on a free Cenogram account (OAuth), including on claude.ai and Claude Desktop. ChatGPT requires a Plus plan (developer mode) and Grok a paid plan with connectors - a free ChatGPT account has no MCP connectors. Cursor, VS Code and Claude Code connect with an API key.

You start free: 400 tokens for 14 days, no card required. Then Starter at PLN 99 net per month (2,000 tokens), Pro at PLN 299 (10,000) and Business at PLN 1,499 (60,000). The same key works in the API and the MCP server.

The price registry is refreshed roughly every two weeks. The data goes back to 2003 and covers all 380 Polish counties.

The public registry is single records across 380 counties of varying quality, with no API, no aggregation and no consistent history. Cenogram serves the same data - normalized, over REST and MCP, with statistics, spatial search and parcel context. An AI agent uses it right away.

Connect Cenogram to your AI

400 tokens for 14 days. Account in 30 seconds, no card.