Koskamo

Dojazdomat MCP

A community MCP server that returns commute times, rent medians, and neighborhood rankings for Warsaw. It allows AI assistants to query door-to-door transit times, median rental costs, and ranked lists of neighborhoods based on value, speed, or cost for a given workplace location.

Endpoint and access

No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.

Dojazdomat MCP logo, by Mikołaj SapkaCommunity listingStreamable HTTPNo sign-inEndpoint checked 2026-11-01Published by Mikołaj Sapka
MCP endpoint (Streamable HTTP)
https://dojazdomat.pl/mcp
Vendor documentation

What you can do with it

  • Calculate door-to-door commute times from a neighborhood to a workplace
  • Retrieve median rent statistics for specific locations in Warsaw
  • Rank neighborhoods by value, commute speed, or rent cost
  • Find geographic coordinates for stops or neighborhoods

Source and maintenance

Community listingRegistry 1.0.1

Protocol and capabilities

Server
dojazdomat 1.30.0
MCP protocol
2025-06-18
Tools
5 advertised
Resources
0 advertised
Resource templates
0 advertised
Prompts
0 advertised
Server-advertised capabilities
{
  "tools": {
    "listChanged": false
  },
  "prompts": {
    "listChanged": false
  },
  "resources": {
    "subscribe": false,
    "listChanged": false
  },
  "experimental": {}
}

Server-provided instructions

Untrusted server output shown for inspection. It is not Koskamo guidance and is excluded from knowledge search.

Dojazdomat (Dojazd x Czynsz, Warszawa) combines public-transport commute times with asking rents from Polish rental portals, so you can find where in Warsaw rent is low for a given commute. Dojazdomat laczy czas dojazdu komunikacja miejska z cenami ofertowymi wynajmu w Warszawie. Suggested workflow: 1) find_place to turn a workplace/stop/neighborhood name into lat/lon; 2) rank_neighborhoods with that office location (optionally max_commute_min, max_rent, rooms) to see neighborhoods by value, commute and Pareto flag; 3) rent_stats around a chosen point for the median and quartiles; commute_time for any door-to-door check. dataset_info lists sources, dates and caveats. Only aggregates (median, p25, p75, counts from >= 5 listings) are returned, never individual listings. Rents are monthly asking prices in PLN (incl. czynsz administracyjny where stated). Area: Warsaw only, lat 51.98-52.48, lon 20.62-21.48. Commute is weekday morning transit + walking, not driving.

Tools

5 advertised

find_place
Advertised by the server during the last successful anonymous check.

Find transit stop groups and neighborhoods by name and get their lat/lon (znajdz przystanek lub osiedle po nazwie). Use the coordinates as input for the other tools.

find_place input schema
{
  "type": "object",
  "title": "find_placeArguments",
  "required": [
    "query"
  ],
  "properties": {
    "limit": {
      "type": "integer",
      "title": "Limit",
      "default": 10,
      "maximum": 25,
      "minimum": 1
    },
    "query": {
      "type": "string",
      "title": "Query",
      "maxLength": 60,
      "minLength": 2,
      "description": "Name fragment, e.g. 'Kabaty', 'Rondo ONZ', 'Mokotow'. Diacritics optional."
    }
  }
}
find_place output schema
{
  "type": "object",
  "title": "find_placeDictOutput",
  "additionalProperties": true
}
commute_time
Advertised by the server during the last successful anonymous check.

Door-to-door minutes by public transport plus walking, weekday morning 7-9 average, same model as the Dojazdomat map (czas dojazdu komunikacja miejska + pieszo, usredniony dla dni roboczych 7-9). Also lists nearest stops at both ends. minutes is null when the destination is unreachable (over ~2 h).

commute_time input schema
{
  "type": "object",
  "title": "commute_timeArguments",
  "required": [
    "from_lat",
    "from_lon",
    "to_lat",
    "to_lon"
  ],
  "properties": {
    "to_lat": {
      "type": "number",
      "title": "To Lat",
      "maximum": 52.48,
      "minimum": 51.98,
      "description": "Latitude, WGS84, 51.98-52.48 (Warszawa and commuter belt)"
    },
    "to_lon": {
      "type": "number",
      "title": "To Lon",
      "maximum": 21.48,
      "minimum": 20.62,
      "description": "Longitude, WGS84, 20.62-21.48 (Warszawa and commuter belt)"
    },
    "from_lat": {
      "type": "number",
      "title": "From Lat",
      "maximum": 52.48,
      "minimum": 51.98,
      "description": "Latitude, WGS84, 51.98-52.48 (Warszawa and commuter belt)"
    },
    "from_lon": {
      "type": "number",
      "title": "From Lon",
      "maximum": 21.48,
      "minimum": 20.62,
      "description": "Longitude, WGS84, 20.62-21.48 (Warszawa and commuter belt)"
    }
  }
}
commute_time output schema
{
  "type": "object",
  "title": "commute_timeDictOutput",
  "additionalProperties": true
}
rent_stats
Advertised by the server during the last successful anonymous check.

Asking-rent statistics (n, median, p25, p75) of rental ads within radius_m of a point (statystyki cen najmu w promieniu). Aggregates only; if fewer than 20 ads match, the result is suppressed (widen radius or relax filters). Radius is snapped to a fixed step (see radius_m) so queries cannot be differenced to single ads.

rent_stats input schema
{
  "type": "object",
  "title": "rent_statsArguments",
  "required": [
    "lat",
    "lon"
  ],
  "properties": {
    "lat": {
      "type": "number",
      "title": "Lat",
      "maximum": 52.48,
      "minimum": 51.98,
      "description": "Latitude, WGS84, 51.98-52.48 (Warszawa and commuter belt)"
    },
    "lon": {
      "type": "number",
      "title": "Lon",
      "maximum": 21.48,
      "minimum": 20.62,
      "description": "Longitude, WGS84, 20.62-21.48 (Warszawa and commuter belt)"
    },
    "rooms": {
      "anyOf": [
        {
          "type": "integer",
          "maximum": 4,
          "minimum": 1
        },
        {
          "type": "null"
        }
      ],
      "title": "Rooms",
      "default": null,
      "description": "Rooms 1-4 (4 = 4+); omit for any / liczba pokoi"
    },
    "measure": {
      "enum": [
        "total",
        "per_m2"
      ],
      "type": "string",
      "title": "Measure",
      "default": "total",
      "description": "'total' PLN/month or 'per_m2' PLN/m2/month"
    },
    "max_area": {
      "anyOf": [
        {
          "type": "integer",
          "maximum": 1000,
          "minimum": 0
        },
        {
          "type": "null"
        }
      ],
      "title": "Max Area",
      "default": null,
      "description": "Max area m2"
    },
    "min_area": {
      "anyOf": [
        {
          "type": "integer",
          "maximum": 1000,
          "minimum": 0
        },
        {
          "type": "null"
        }
      ],
      "title": "Min Area",
      "default": null,
      "description": "Min area m2"
    },
    "radius_m": {
      "type": "integer",
      "title": "Radius M",
      "default": 800,
      "maximum": 5000,
      "minimum": 200,
      "description": "Radius in metres, 200-5000; snapped to the nearest of 300, 500, 750, 1000, 1500, 2000, 3000, 5000 (the answer states the radius used)"
    }
  }
}
rent_stats output schema
{
  "type": "object",
  "title": "rent_statsDictOutput",
  "additionalProperties": true
}
rank_neighborhoods
Advertised by the server during the last successful anonymous check.

Rank Warsaw neighborhoods for a workplace: median rent, commute minutes, value score (rent vs typical rent in the same commute band, like the map), monthly_cost (rent + commute valued at the minimum wage) and Pareto flag (no neighborhood both faster and cheaper) (ranking osiedli: czynsz, dojazd, wartosc, front Pareto). Same data and rules as the map: neighborhoods with fewer than 20 ads are skipped. Sorted by best (rent + commute cost, the map's order) unless sort is given.

rank_neighborhoods input schema
{
  "type": "object",
  "title": "rank_neighborhoodsArguments",
  "required": [
    "office_lat",
    "office_lon"
  ],
  "properties": {
    "sort": {
      "enum": [
        "value",
        "best",
        "commute",
        "rent"
      ],
      "type": "string",
      "title": "Sort",
      "default": "best",
      "description": "best = rent + commute valued at the minimum wage (default, the map's order, total measure only); value = score vs typical rent in the same commute band; commute = fastest first; rent = cheapest first"
    },
    "limit": {
      "type": "integer",
      "title": "Limit",
      "default": 10,
      "maximum": 50,
      "minimum": 1
    },
    "rooms": {
      "anyOf": [
        {
          "type": "integer",
          "maximum": 4,
          "minimum": 1
        },
        {
          "type": "null"
        }
      ],
      "title": "Rooms",
      "default": null,
      "description": "Rooms 1-4 (4 = 4+); omit for any / liczba pokoi"
    },
    "measure": {
      "enum": [
        "total",
        "per_m2"
      ],
      "type": "string",
      "title": "Measure",
      "default": "total",
      "description": "'total' PLN/month or 'per_m2' PLN/m2/month"
    },
    "max_rent": {
      "anyOf": [
        {
          "type": "number",
          "exclusiveMinimum": 0
        },
        {
          "type": "null"
        }
      ],
      "title": "Max Rent",
      "default": null,
      "description": "Max neighborhood median rent (PLN, or PLN/m2 if measure=per_m2)"
    },
    "office_lat": {
      "type": "number",
      "title": "Office Lat",
      "maximum": 52.48,
      "minimum": 51.98,
      "description": "Latitude, WGS84, 51.98-52.48 (Warszawa and commuter belt)"
    },
    "office_lon": {
      "type": "number",
      "title": "Office Lon",
      "maximum": 21.48,
      "minimum": 20.62,
      "description": "Longitude, WGS84, 20.62-21.48 (Warszawa and commuter belt)"
    },
    "max_commute_min": {
      "anyOf": [
        {
          "type": "integer",
          "maximum": 120,
          "minimum": 1
        },
        {
          "type": "null"
        }
      ],
      "title": "Max Commute Min",
      "default": null,
      "description": "Max commute minutes"
    }
  }
}
rank_neighborhoods output schema
{
  "type": "object",
  "title": "rank_neighborhoodsDictOutput",
  "additionalProperties": true
}
dataset_info
Advertised by the server during the last successful anonymous check.

Data dates, sources, listing counts per portal, method notes and caveats (zrodla, daty, ograniczenia danych).

dataset_info input schema
{
  "type": "object",
  "title": "dataset_infoArguments",
  "properties": {}
}
dataset_info output schema
{
  "type": "object",
  "title": "dataset_infoDictOutput",
  "additionalProperties": true
}

Prompts

0 advertised

No prompt definitions available.

Resources

0 advertised

No resource definitions available.

30-day availability

Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.

Successful checks
1 of 1 (100%)
Average latency
3360 ms
95th percentile latency
3360 ms

Maintenance history

Public check and source-refresh events. Editorial and ownership records remain private.

  • · probe · passed · 3360 ms · metadata changed · 5 tool(s), 0 resource(s), 0 resource template(s), 0 prompt(s)

Connect from your client

Each snippet registers the same endpoint; pick the client you use.

This server is operated by the named third party. Listing and endpoint checks are not an endorsement or a security audit. Review the operator's permissions, terms, and data handling before connecting. How listings are checked and corrected.

Claude Code

Run this once in a terminal. It registers the remote server. Use --scope project to write .mcp.json for the repo.
Claude Code configuration
claude mcp add --transport http dojazdomat-mcp https://dojazdomat.pl/mcp

Codex

Run this once. Codex stores MCP servers in ~/.codex/config.toml (or .codex/config.toml in a trusted project).
Codex configuration
codex mcp add dojazdomat-mcp --url https://dojazdomat.pl/mcp

Cursor

Merge this server into .cursor/mcp.json in your project, then enable dojazdomat-mcp in your MCP settings.
Cursor configuration
{
  "mcpServers": {
    "dojazdomat-mcp": {
      "url": "https://dojazdomat.pl/mcp"
    }
  }
}

Cline

Merge this into cline_mcp_settings.json (Cline → MCP Servers → Configure).
Cline configuration
{
  "mcpServers": {
    "dojazdomat-mcp": {
      "type": "streamableHttp",
      "url": "https://dojazdomat.pl/mcp",
      "disabled": false
    }
  }
}

VS Code

Merge this server into .vscode/mcp.json. Use MCP: List Servers to start dojazdomat-mcp and inspect its tools.
VS Code configuration
{
  "servers": {
    "dojazdomat-mcp": {
      "type": "http",
      "url": "https://dojazdomat.pl/mcp"
    }
  }
}

Gemini CLI

Run this once. It writes .gemini/settings.json in the current project; pass --scope user for ~/.gemini/settings.json.
Gemini CLI configuration
gemini mcp add --transport http dojazdomat-mcp https://dojazdomat.pl/mcp

Claude Desktop

Merge this into claude_desktop_config.json (macOS: ~/Library/Application Support/Claude/, Windows: %APPDATA%\Claude\), then restart Claude Desktop.
Claude Desktop configuration
{
  "mcpServers": {
    "dojazdomat-mcp": {
      "url": "https://dojazdomat.pl/mcp"
    }
  }
}

Windsurf

Merge this into ~/.codeium/windsurf/mcp_config.json, then refresh MCP in Cascade. Windsurf remote servers use serverUrl, not url.
Windsurf configuration
{
  "mcpServers": {
    "dojazdomat-mcp": {
      "serverUrl": "https://dojazdomat.pl/mcp"
    }
  }
}

Let your agent find its tools

Find servers like Dojazdomat MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.