Prototype · Preview: every server in the official registry, synced every 30 minutes. Reviews and accounts come in a later step.
PopNx MCPMCP servers for people who use AI · explained in plain words

Cenogram - Polish Real Estate Prices & Parcel Data

by cenogramversion 0.6.0i★ –iComputer or cloud
Registry namepl.cenogram/mcp-server

Install

Overview

Description from the maker (original English)

Polish real estate for AI: 8M+ deed transaction prices (RCN) + per-parcel context by cadastral ID

PopNx MCP’s three pillars

These three are never merged into one score: opinions, measurements and popularity are different things.

What you can do with it

We have not written a plain-language summary for this one yet. Below are the facts we read from the registry.

Install

Pick the AI app you use, then copy the settings.

Before you install

  • Basic checks: 1 of 1 passed
  • Runs on the maker’s server: what you ask it goes through their server.
  • You fill in yourself: CENOGRAM_API_KEY

You need

  • Runs in the cloudNothing to install; it connects over the internet
  • npmNode.js installed (for the npx command)

Which app do you use?

Pick your app above. We remember it, so next time the button says “Install in …”.

Works in Claude on the web, desktop and mobile:

  1. Open Settings → Connectors
  2. Press Add custom connector
  3. Paste the address below and press Add
  4. If it asks you to sign in, sign in with the maker
SettingsConnectors1+ Add2https://…3
https://mcp.cenogram.pl/mcp

Or run it on your computer

Open Claude Desktop → Settings → Developer → Edit Config, and paste this into claude_desktop_config.json

{
  "mcpServers": {
    "cenogram": {
      "command": "npx",
      "args": [
        "-y",
        "@cenogram/mcp-server"
      ],
      "env": {
        "CENOGRAM_API_KEY": "your-value"
      }
    }
  }
}

Run this in your terminal

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

Or run it on your computer

claude mcp add cenogram --env CENOGRAM_API_KEY=your-value -- npx -y @cenogram/mcp-server

Fill in the empty values before running it.

Open in Cursor

Or copy the settings yourself

Paste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json

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

Or run it on your computer

Open in Cursor

Or copy the settings yourself

Paste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json

{
  "mcpServers": {
    "cenogram": {
      "command": "npx",
      "args": [
        "-y",
        "@cenogram/mcp-server"
      ],
      "env": {
        "CENOGRAM_API_KEY": "your-value"
      }
    }
  }
}

Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.

Open in VS Code

Or copy the settings yourself

Paste into .vscode/mcp.json in your project

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

Or run it on your computer

Open in VS Code

Or copy the settings yourself

Paste into .vscode/mcp.json in your project

{
  "servers": {
    "cenogram": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "@cenogram/mcp-server"
      ],
      "env": {
        "CENOGRAM_API_KEY": "your-value"
      }
    }
  }
}

Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.

ChatGPT connects only to servers on the internet:

  1. Open ChatGPT on the web → Settings → Connectors (Apps)
  2. Press Create or Add (some plans need Developer mode under Advanced first)
  3. Paste the address below, give it a name and save
  4. If it asks you to sign in, sign in with the maker
SettingsConnectors1+ Create2https://…3
https://mcp.cenogram.pl/mcp

Menu names can differ slightly by plan and over time.

Your choice stays on this device in a cookie; no account needed.

Values you fill in

  • CENOGRAM_API_KEY env
    API key from cenogram.pl/api (free, email registration)

These settings are generated from the maker’s registry entry. If the README says otherwise, follow the README.

What it can do

We have not read this server’s tool list yet; we check endpoints in rotation.

Basic checksi

We check information anyone can see; we have not read the code. Checks that do not apply are left out of the count. · Checked Nov 6, 2026

  • ✓ Pass

    Maker matches the repo

    The registry name was verified against the domain cenogram.pl (the registry checks domain ownership)

  • … Not checked yet

    Still maintained

    We have not read this repo from GitHub yet

  • … Not checked yet

    Has a licence

    We have not read this repo from GitHub yet

  • … Not checked yet

    Endpoint responds

    Not checked yet; we check endpoints in rotation

  • … Not checked yet

    Sign-in with OAuth

    Not checked yet; we check endpoints in rotation

  • … Not checked yet

    No hidden instructions in tool descriptions

    Not checked yet; we read the tool list when we check the endpoint

Compared with others in Otheri

  • More stars than 0% of the other 32476 servers in this category
  • Published to the registry more recently than 21% of the other 32476 servers in this category
  • Basic checks equal to or better than 100% of the other 32476 servers in this category

Compared with every active server in this category in the registry. Stars count only when the publisher owns the repo.

Common questions

Is Cenogram - Polish Real Estate Prices & Parcel Data safe?

It passed 1 of 1 applicable basic checks. We have not read the code. Before adding a key or token, see what access the server asks for and use a key with only the permissions you need.

What keys or codes does it need?

The registry does not list a required key, though some servers ask you to sign in on first use.

Does it run on my computer or in the cloud?

Either way works: install it on your computer or connect to the cloud version.

Is it still maintained?

The GitHub repo last changed –, and the latest version (0.6.0) reached the registry 3 months ago.

Which apps can use it?

Apps that support MCP, such as Claude Desktop, Claude Code, Cursor and VS Code. It connects by URL, so apps that accept remote MCP servers work too, such as ChatGPT in developer mode.

What can I use instead?

In the same category: Spec Driven Development, Remote Desktop Commander, zanadir

Alternatives

Servers in the same category from other makers, sorted by stars.

Reading a card:★ GitHub starsiThree pillars: reviews · checks · usageiUpdated = latest version published to the registryi

Spec Driven Development

by formulahendry

MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.

Runs on your computer★ 440MITUpdated 14 months ago
Install

Remote Desktop Commander

by desktop-commander

Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.

Runs in the cloud★ 211Updated yesterday
Install

zanadir

by MustacheCase

Find what a repository's CI is missing, and which security checks cannot fail the build.

Runs on your computerUpdated today
Install

README from the maker

Open the README

Copied from the maker’s repo as written. PopNx MCP has not reviewed or endorsed it. HTML, images and scripts are removed. Links lead off this site.

Cenogram MCP Server

Polish Real Estate Transaction & Parcel Data for AI

MCP server for Polish real estate data. Access 8M+ real estate transactions from the national Registry of Prices and Values (Rejestr Cen Nieruchomosci, RCN) - prices from notarial deeds, not listings - directly from Claude, Cursor, ChatGPT, Grok, or any MCP-compatible AI assistant. Beyond transaction prices, the server resolves cadastral parcels and adds per-parcel context: zoning, flood and landslide risk, heritage register, building permits and construction activity, public transport access, agricultural land classification, surrounding land use, nature - nearby forest and overlapping protected areas - what lies underground (mining terrains and major groundwater reservoirs), the land-use and soil-quality classification, and road access.

Data source: Polish national RCN registry (Rejestr Cen Nieruchomosci) | Platform: cenogram.pl

Get your API key

  1. Go to cenogram.pl/api
  2. Enter your email
  3. You'll receive your cngrm_... API key by email

Manage your keys at cenogram.pl/ustawienia.

Free tier

New accounts start with 1,000 tokens and a 14-day trial of the Standard plan. After that the key keeps working on 50 tokens a week - the balance is restored to 50 every 7 days rather than accumulating - with no expiry date and no card.

A call costs 1 token for statistics, reference data, parcel identity and municipal context; 3 for a transaction search (the list plus its summary; 1 with summaryOnly); 2 for a price histogram or a list of the parcels in an area; 4 for one context layer of a parcel or transaction; 5 for spatial search, parcel outlines, valuation and a multi-district comparison; 45 for get_parcel_report, which returns every layer at once. Location catalogues are free. Paid plans raise the allowance - see cenogram.pl/api.

Installation

Pick your client. All options below use the hosted server - no local install needed (except npx/stdio).

Claude Code

One command - zero config files:

claude mcp add cenogram https://mcp.cenogram.pl/mcp \

-t http -H "Authorization: Bearer YOUR_API_KEY"

Codex CLI

API key. Add to ~/.codex/config.toml:

[mcp_servers.cenogram]

url = "https://mcp.cenogram.pl/mcp" bearer_token_env_var = "CENOGRAM_API_KEY"

Then export the key in the shell that starts Codex:

export CENOGRAM_API_KEY=cngrm_...

OAuth. Use the same block without bearer_token_env_var, then sign in:

[mcp_servers.cenogram]

url = "https://mcp.cenogram.pl/mcp"

codex mcp login cenogram

Without an API key or an OAuth login the server answers 401. Configuration keys differ between Codex versions, so check the Codex documentation for your version; this section does not guarantee that a particular version connects.

Cursor

Add to .cursor/mcp.json in your project:

{

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

Claude Desktop

Add to your config file:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\Claude\claude_desktop_config.json

npx (stdio):

{

"mcpServers": { "cenogram": { "command": "npx", "args": ["-y", "@cenogram/mcp-server@latest"], "env": { "CENOGRAM_API_KEY": "YOUR_API_KEY" } } } }

VS Code / GitHub Copilot

Add to .vscode/mcp.json in your workspace:

{

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

Windsurf

Add to ~/.codeium/windsurf/mcp_config.json:

HTTP remote:

{

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

If HTTP doesn't work, use the npx (stdio) option below instead.

Cline

In VS Code: Settings > Cline > MCP Servers. Add:

{

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

npx (stdio) - local/offline

Requires Node.js >= 18. Use this if you want to run the server locally instead of connecting to the hosted one.

{

"mcpServers": { "cenogram": { "command": "npx", "args": ["-y", "@cenogram/mcp-server@latest"], "env": { "CENOGRAM_API_KEY": "YOUR_API_KEY" } } } }

ClientConfig file
Cursor.cursor/mcp.json
Claude Code.mcp.json in your project
Claude Desktop~/Library/Application Support/Claude/claude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json
ClineVS Code settings > Cline > MCP Servers

Configuration

Env VariableRequiredDefaultDescription
CENOGRAM_API_KEYYes (stdio)-API key from cenogram.pl/api
CENOGRAM_API_URLNohttps://cenogram.plAPI base URL
MCP_TRANSPORTNostdioSet to http for Streamable HTTP mode
MCP_PORTNo3002HTTP server port (HTTP mode only)
CENOGRAM_CLIENT_IDNoauto-generatedPersistent client identifier

You can also use the --http CLI flag instead of MCP_TRANSPORT=http.

Tips

  • Model selection: For best results, use Claude Opus. It makes more sequential tool calls and produces richer analysis. You can switch the model in the dropdown at the bottom of the chat window.

Example Prompts

Polish:

  • "Jaka jest mediana cen mieszkan w Krakowie w 2025?"
  • "Pokaz transakcje z ulicy Pulawskiej 15 na Mokotowie"
  • "Znajdz transakcje na dzialce 126104_9.0015.201"
  • "Sprawdz plan miejscowy i ryzyko powodziowe dla dzialki 126104_9.0015.201"
  • "Znajdz transakcje gruntow w promieniu 5km od centrum Wroclawia powyzej 500 000 PLN"
  • "Porownaj ceny mieszkan na Mokotowie i Woli"
  • "Pokaz rozklad cen nieruchomosci w Polsce"

English:

  • "What's the median apartment price in Krakow in 2025?"
  • "Show transactions at Pulawska 15 in Mokotow"
  • "Find all transactions on parcel 126104_9.0015.201 and then search nearby"
  • "Check the zoning and flood risk for parcel 126104_9.0015.201"
  • "Find land transactions within 5km of Wroclaw center above 500,000 PLN"
  • "Compare apartment prices in Mokotow and Wola districts"
  • "Show the price distribution of real estate in Poland"

Tools

ToolDescriptionKey Parameters
search_transactionsSearch transactions with filterslocation, street, buildingNumber, parcelId, propertyType, marketType, price/date/area range
get_price_statisticsPrice/m2 stats by location (residential only); last 24 months by default, the answer states the periodlocation (optional), period (24m\all), dateFrom/dateTo
get_price_distributionPrice histogrambins, maxPrice
search_by_areaSearch transactions by geographic radiuslatitude, longitude, radiusKm
get_market_overviewDatabase overview and stats(none)
list_locationsList available locationssearch (optional)
search_parcelsSearch parcels by cadastral ID prefixq (parcel ID prefix, min 3 chars)
list_parcels_in_areaList the cadastral parcels in an area - light list or full outlinesteryt, location, bbox, lat + lng + radiusKm, or polygon; includeGeometry, minArea/maxArea, street/buildingNumber, cursor
search_by_polygonSearch transactions within a GeoJSON polygonpolygon, propertyType, dateFrom/dateTo
compare_locationsCompare stats across 2-5 districtsdistricts (comma-separated), propertyType
get_building_breakdownPer-building breakdown for one transaction (footprint, storeys, est. floor area)transaction_id (UUID from a search result)
get_parcel_reportComposite dossier for one parcel: core, 13 enrichment layers, transaction history, local price context (median zł/m² per property type for the county and the gmina), municipal context and a parcel-shape section (bounding rectangle, widest inscribed circle, shape class, area away from the boundaries - geometry of the outline only)parcelId (cadastral id or UUID)
resolve_parcelResolve a parcel to its cadastral identityparcelId, q (full cadastral id or 'locality + parcel number' - not a street address), or lat + lng
get_demographicsPopulation and demographic context for a locationlocation or teryt, year (or yearFrom/yearTo), category
get_infrastructure_signalsMunicipal infrastructure signals (tenders, utilities, capital spending)location or teryt
estimate_valueComparable-sales value estimate for an apartmentarea, plus lat + lng or parcelId; rooms, market
estimate_land_valueComparable-sales value estimate for undeveloped land (building plot or farmland), per m² and per hectarelat + lng (area required) or parcelId (area from the cadastre); landType, mpzpDesignation
get_transaction_floodFlood risk for the property in a transactiontransaction_id (UUID from a search result)
get_transaction_heritageHeritage-register status for the propertytransaction_id
get_transaction_landslideLandslide risk for the propertytransaction_id
get_transaction_surroundingsNuisance and land-use context around the propertytransaction_id
get_transaction_transitPublic transport accessibility for the propertytransaction_id
get_transaction_permitsBuilding permits recorded for the propertytransaction_id
get_permits_in_areaBuilding permits and works notifications registered since 2016 around a point (issued decisions only), as a list plus a year × category aggregatelat + lng; radiusKm (max 2), dateFrom, dateTo, intent, categories, excludeCategories, worksType, limit, cursor, aggregateOnly
get_transaction_planningLocal zoning and planning status for the propertytransaction_id
get_transaction_farmlandAgricultural land-use classification for the propertytransaction_id
get_transaction_natureNearby forest and overlapping protected natural areas for the propertytransaction_id
get_transaction_subsurfaceMining terrains and major groundwater reservoirs under the propertytransaction_id
get_transaction_roadsGeometric evidence of road access for the property (distances, road class, access indicator)transaction_id
Location naming
  • Most cities: use the city name directly (e.g., "Gdansk", "Lublin")
  • Warsaw: "Warszawa" covers all 18 districts at once; name one ("Mokotow", "Srodmiescie", "Wola") to narrow it down
  • Krakow and Lodz work the same way: the city name covers every sub-district, or name one ("Krakow-Podgorze")
  • Neighbourhood names are not admi

Only the beginning is shown; read the rest in the repo

Ask PopNx