Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Description from the maker (original English)
Polish real estate for AI: 8M+ deed transaction prices (RCN) + per-parcel context by cadastral ID
These three are never merged into one score: opinions, measurements and popularity are different things.
We have not written a plain-language summary for this one yet. Below are the facts we read from the registry.
Pick the AI app you use, then copy the settings.
CENOGRAM_API_KEYYou need
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:
https://mcp.cenogram.pl/mcpOpen 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/mcpclaude mcp add cenogram --env CENOGRAM_API_KEY=your-value -- npx -y @cenogram/mcp-serverFill in the empty values before running it.
Paste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json
{
"mcpServers": {
"cenogram": {
"url": "https://mcp.cenogram.pl/mcp"
}
}
}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.
Paste into .vscode/mcp.json in your project
{
"servers": {
"cenogram": {
"type": "http",
"url": "https://mcp.cenogram.pl/mcp"
}
}
}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:
https://mcp.cenogram.pl/mcpMenu names can differ slightly by plan and over time.
Your choice stays on this device in a cookie; no account needed.
CENOGRAM_API_KEY envThese settings are generated from the maker’s registry entry. If the README says otherwise, follow the README.
We have not read this server’s tool list yet; we check endpoints in rotation.
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
The registry name was verified against the domain cenogram.pl (the registry checks domain ownership)
We have not read this repo from GitHub yet
We have not read this repo from GitHub yet
Not checked yet; we check endpoints in rotation
Not checked yet; we check endpoints in rotation
Not checked yet; we read the tool list when we check the endpoint
Compared with every active server in this category in the registry. Stars count only when the publisher owns the repo.
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.
The registry does not list a required key, though some servers ask you to sign in on first use.
Either way works: install it on your computer or connect to the cloud version.
The GitHub repo last changed –, and the latest version (0.6.0) reached the registry 3 months ago.
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.
In the same category: Spec Driven Development, Remote Desktop Commander, zanadir
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
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.
Find what a repository's CI is missing, and which security checks cannot fail the build.
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.
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
cngrm_... API key by emailManage your keys at cenogram.pl/ustawienia.
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.
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:
~/Library/Application Support/Claude/claude_desktop_config.json%APPDATA%\Claude\claude_desktop_config.jsonnpx (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 |
| 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.
Polish:
English:
| 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); last 24 months by default, the answer states the period | location (optional), period (24m\ | all), dateFrom/dateTo |
get_price_distribution | Price histogram | bins, maxPrice | |
search_by_area | Search transactions 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) | |
list_parcels_in_area | List the cadastral parcels in an area - light list or full outlines | teryt, location, bbox, lat + lng + radiusKm, or polygon; includeGeometry, minArea/maxArea, street/buildingNumber, cursor | |
search_by_polygon | Search transactions within a GeoJSON polygon | polygon, propertyType, dateFrom/dateTo | |
compare_locations | Compare stats across 2-5 districts | districts (comma-separated), propertyType | |
get_building_breakdown | Per-building breakdown for one transaction (footprint, storeys, est. floor area) | transaction_id (UUID from a search result) | |
get_parcel_report | Composite 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_parcel | Resolve a parcel to its cadastral identity | parcelId, q (full cadastral id or 'locality + parcel number' - not a street address), or lat + lng | |
get_demographics | Population and demographic context for a location | location or teryt, year (or yearFrom/yearTo), category | |
get_infrastructure_signals | Municipal infrastructure signals (tenders, utilities, capital spending) | location or teryt | |
estimate_value | Comparable-sales value estimate for an apartment | area, plus lat + lng or parcelId; rooms, market | |
estimate_land_value | Comparable-sales value estimate for undeveloped land (building plot or farmland), per m² and per hectare | lat + lng (area required) or parcelId (area from the cadastre); landType, mpzpDesignation | |
get_transaction_flood | Flood risk for the property in a transaction | transaction_id (UUID from a search result) | |
get_transaction_heritage | Heritage-register status for the property | transaction_id | |
get_transaction_landslide | Landslide risk for the property | transaction_id | |
get_transaction_surroundings | Nuisance and land-use context around the property | transaction_id | |
get_transaction_transit | Public transport accessibility for the property | transaction_id | |
get_transaction_permits | Building permits recorded for the property | transaction_id | |
get_permits_in_area | Building permits and works notifications registered since 2016 around a point (issued decisions only), as a list plus a year × category aggregate | lat + lng; radiusKm (max 2), dateFrom, dateTo, intent, categories, excludeCategories, worksType, limit, cursor, aggregateOnly | |
get_transaction_planning | Local zoning and planning status for the property | transaction_id | |
get_transaction_farmland | Agricultural land-use classification for the property | transaction_id | |
get_transaction_nature | Nearby forest and overlapping protected natural areas for the property | transaction_id | |
get_transaction_subsurface | Mining terrains and major groundwater reservoirs under the property | transaction_id | |
get_transaction_roads | Geometric evidence of road access for the property (distances, road class, access indicator) | transaction_id |
Only the beginning is shown; read the rest in the repo