AgentStack
Browse Sign in
Browse Why AgentStack Sell Docs
Sign in
MCP verified MIT Self-run

Cenogram Mcp Server

mcp-cenogram-mcp-server · by cenogram

MCP server for Polish real estate data. 8+ milion transactions from government open data (RCN)

No reviews yet
0 installs
27 views
0.0% view→install

Install

$ agentstack add mcp-cenogram-mcp-server

✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.

Security review

✓ Passed

No issues found. Passed automated security review. · v0.1.0 How review works →

  • Prompt-injection patterns
  • Secret / credential exfiltration
  • Dangerous shell & filesystem operations
  • Untrusted network calls
  • Known-malicious package signatures

What it can access

  • Network access No
  • Filesystem access No
  • Shell / process execution No
  • Environment & secrets No
  • Dynamic code execution No

From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.

View the full security report →

Verified badge

Passed review? Show it. Paste this badge into your README, it links to the public security report.

AgentStack Verified badge Links to your public security report.
[![AgentStack Verified](https://agentstack.voostack.com/badges/verified.svg)](https://agentstack.voostack.com/security/report/mcp-cenogram-mcp-server)

Reliability & compatibility

Security review passed
0 installs to date
no reviews yet
4mo ago

Declared compatibility

Claude CodeClaude DesktopCursorWindsurf

Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.

Preview Execution monitoring

We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.

How agent discovery & health will work →
Are you the author of Cenogram Mcp Server? Claim this listing to set pricing, connect Stripe payouts, and keep 70% of every sale.
Sign up to claim

About

Cenogram MCP Server

[](https://www.npmjs.com/package/@cenogram/mcp-server) [](https://nodejs.org) [](LICENSE)

Polish Real Estate Transaction 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) directly from Claude, Cursor, or any MCP-compatible AI assistant.

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.

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"

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"
      }
    }
  }
}

| Client | Config 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 | | Cline | VS Code settings > Cline > MCP Servers |

Configuration

| Env Variable | Required | Default | Description | |---|---|---|---| | CENOGRAM_API_KEY | Yes (stdio) | - | API key from cenogram.pl/api | | CENOGRAM_API_URL | No | https://cenogram.pl | API base URL | | MCP_TRANSPORT | No | stdio | Set to http for Streamable HTTP mode | | MCP_PORT | No | 3002 | HTTP server port (HTTP mode only) | | CENOGRAM_CLIENT_ID | No | auto-generated | Persistent client identifier |

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

Example Prompts

Polish:

  • "Jaka jest mediana cen mieszkan w Krakowie w 2025?"
  • "Pokaz transakcje z ulicy Pulawskiej 15 na Mokotowie"
  • "Znajdz transakcje na dzialce 146518_8.0108.27"
  • "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 146502_8.0901.12 and then search nearby"
  • "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

| Tool | Description | Key Parameters | |---|---|---| | search_transactions | Search transactions with filters | location, street, buildingNumber, parcelId, propertyType, marketType, price/date/area range | | get_price_statistics | Price/m2 stats by location (residential only) | location (optional) | | get_price_distribution | Price histogram | bins, maxPrice | | search_by_area | Search by geographic radius | latitude, longitude, radiusKm | | get_market_overview | Database overview and stats | (none) | | list_locations | List available locations | search (optional) | | search_parcels | Search parcels by cadastral ID prefix | q (parcel ID prefix, min 3 chars) | | search_by_polygon | Search within a GeoJSON polygon | polygon, propertyType, dateFrom/dateTo | | compare_locations | Compare stats across 2-5 districts | districts (comma-separated), propertyType |

Location naming

  • Most cities: use the city name directly (e.g., "Gdansk", "Lublin")
  • Warsaw: use district names ("Mokotow", "Srodmiescie", "Wola") -- "Warszawa" won't match
  • Krakow: use sub-districts ("Krakow-Podgorze", "Krakow-Srodmiescie") - plain "Krakow" won't match
  • Use list_locations to find valid names

Property types

| Value | Polish | English | |---|---|---| | land | Grunt | Land plot | | building | Budynek | Building | | developed_land | Grunt zabudowany | Developed land | | unit | Lokal | Apartment/unit |

Workflows

Results include parcel IDs and GPS coordinates, enabling multi-step research:

1. Search by address    -> search_transactions(location="Mokotow", street="Pulawska", buildingNumber="15")
2. Note parcel_id and coordinates from results
3. Search nearby        -> search_by_area(lat=52.19, lng=21.01, radiusKm=2, propertyType="unit")
4. Compare prices       -> get_price_statistics(location="Mokotow")

This mimics how a property appraiser finds comparable transactions for valuation reports.

Data

  • 8M+ transactions from all of Poland (380 counties)
  • Date range: 2003 - present
  • Source: Polish national RCN registry (Rejestr Cen Nieruchomosci)
  • Refresh: periodic updates from RCN

Troubleshooting

"Error: CENOGRAMAPIKEY is required" - This only applies to stdio mode. Make sure CENOGRAM_API_KEY is set in the env block of your MCP config. For HTTP remote, the key goes in the Authorization header instead.

npx hangs or fails - Check your Node.js version with node -v. The stdio mode requires Node.js >= 18. If you're on an older version, use the HTTP remote option instead (no Node.js needed).

"Warszawa" returns 0 results - Warsaw uses district names (Mokotow, Wola, Srodmiescie, Bemowo, etc.). Use list_locations(search="warsz") to find valid names. Same applies to Krakow (use "Krakow-Podgorze", "Krakow-Srodmiescie", etc.).

401 Unauthorized (HTTP mode) - The Authorization header must be Bearer cngrm_... (with the Bearer prefix). Double-check that the full API key is included, not just the prefix.

Development

git clone https://github.com/cenogram/mcp-server.git
cd mcp-server
npm install
npm test
npm run build

License

MIT

Source & license

This open-source MCP server is cataloged on AgentStack and links to its original source — we do not rehost the code.

Install and usage instructions live in the source repository linked above.

Reviews

No reviews yet, be the first.

Versions

  • v0.1.0 Imported from the upstream source.