golemio-mcp
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@golemio-mcpwhen is the next tram from Karlovo náměstí?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Golemio MCP Server
An MCP server that exposes Prague's Golemio open data API to AI assistants. Query public transit departures, air quality, parking availability, and more.
Installation
Get an API key from https://api.golemio.cz/api-keys/
Add to your MCP configuration (e.g., ~/.mcp.json):
{
"mcpServers": {
"golemio": {
"command": "uvx",
"args": ["golemio-mcp"],
"env": {
"GOLEMIO_API_KEY": "your-api-key"
}
}
}
}Requires uv to be installed.
NixOS users:
uvxwon't work due to dynamic linking. See Development for NixOS-specific configuration.
Related MCP server: Winnipeg City MCP Server
Available Tools
Public Transit
search_stops- Find stops by name (works with or without Czech diacritics)get_departures- Real-time departure boards
City Data
get_air_quality_stations- Air quality measurementsget_parking_lots- Parking availabilityget_waste_stations- Waste container fill levelsget_bicycle_counters/get_bicycle_detections- Bike traffic data
Points of Interest
get_medical_institutions- Hospitals, clinicsget_municipal_libraries- Public librariesget_playgrounds- Playgroundsget_gardens- Public gardensget_city_districts- District boundaries
Development
Requires Python 3.12+ and uv.
# Install dependencies
uv sync
# Run tests
uv run pytest -v
# Run server
uv run golemio-mcpLocal MCP configuration
To run from a local clone instead of PyPI:
{
"mcpServers": {
"golemio": {
"command": "uv",
"args": ["--directory", "/path/to/golemio-mcp-server", "run", "golemio-mcp"],
"env": {
"GOLEMIO_API_KEY": "your-api-key"
}
}
}
}On NixOS, use system Python to avoid dynamic linking issues:
{
"mcpServers": {
"golemio": {
"command": "nix-shell",
"args": [
"-p", "uv",
"--run", "UV_PYTHON=/run/current-system/sw/bin/python3 uv --directory /path/to/golemio-mcp-server run golemio-mcp"
],
"env": {
"GOLEMIO_API_KEY": "your-api-key"
}
}
}
}Available Tools
12 toolsget_air_quality_stationsA
Get air quality monitoring stations in Prague.
Args:
latlng: Coordinates as "latitude,longitude" (e.g. "50.0890,14.4168")
range: Search radius in meters from the coordinates
districts: Filter by district codes (comma-separated)
limit: Maximum number of results (default: 10)
offset: Number of results to skip for pagination
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| range | No | ||
| latlng | No | ||
| offset | No | ||
| districts | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description is the primary source of behavioral info. It explains parameters and implies a read-only 'get' operation, but does not disclose potential side effects, authentication requirements, or return characteristics beyond what is in the output schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and well-structured: a one-line purpose followed by a clean list of parameter explanations. Every sentence adds necessary information, with no redundant or filler content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given that an output schema is present and the tool is a straightforward GET with 5 params, the description covers all parameter semantics and the core purpose. It lacks explicit notes on authentication or edge cases, but these are not critical for this simple read operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description compensates for the 0% schema coverage by providing meaningful meanings for all parameters: latlng format with example, range in meters, districts as codes, limit default, and offset pagination. This adds substantial value over the bare schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves 'air quality monitoring stations in Prague', using a specific verb and resource. This distinguishes it from sibling tools like get_bicycle_counters or get_waste_stations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context that this is for air quality stations in Prague, but does not explicitly mention when to use this tool versus alternatives. However, the domain-specific purpose implicitly differentiates it from other 'get' tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_bicycle_countersA
Get bicycle counting stations in Prague.
Args:
latlng: Coordinates as "latitude,longitude" (e.g. "50.0890,14.4168")
range: Search radius in meters from the coordinates
limit: Maximum number of results (default: 10)
offset: Number of results to skip for pagination
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| range | No | ||
| latlng | No | ||
| offset | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden for behavioral disclosure. It accurately describes a read-only operation with 'Get' but does not explain edge cases (e.g., null latlng/range) or default behavior. Return structure is covered by an output schema, but other behavioral context is sparse.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a succinct one-sentence purpose followed by a structured argument list. Every line is informative and free of redundancy, making it easy to scan.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
All parameters are documented and the output schema covers return values, but the description does not clarify how latlng and range interact (e.g., if latlng is needed for range-based search) or what happens when both are null. This leaves minor ambiguity in a straightforward tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has no descriptions (0% coverage), and the description fully compensates by explaining every parameter with concrete meaning: latlng format, range units, limit default, and offset purpose. This is essential information that the schema lacks.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Get') and resource ('bicycle counting stations in Prague'), making it easy to distinguish from sibling tools like get_bicycle_detections, which focuses on detections rather than stations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for spatial search (via latlng and range) but does not explicitly state when to use this tool versus alternatives. There is no mention of exclusions or specific scenarios where another tool would be more appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_bicycle_detectionsA
Get bicycle traffic detection data from counting stations.
Args:
id: Counter ID to get detections for
from_date: Start date in ISO format (e.g. "2024-01-01T00:00:00Z")
to_date: End date in ISO format (e.g. "2024-01-31T23:59:59Z")
aggregate: Whether to aggregate the results
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | ||
| to_date | No | ||
| aggregate | No | ||
| from_date | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It only says 'Get bicycle traffic detection data,' without stating whether it is read-only, whether aggregate changes response shape, or any side effects. Important behaviors like date inclusivity, pagination, or handling of null id are omitted.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, with a clear first sentence and a structured Args listing. Every line adds value and there is no filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has 4 optional parameters, no annotations, and an output schema. The description covers the core action and parameter basics but lacks richer context such as selecting between this and get_bicycle_counters, behavior when aggregate is true, or edge cases with null values. The existence of an output schema reduces the need to explain return values, yet the description still feels incomplete for a full understanding.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It provides short explanations for each parameter (id, from_date, to_date, aggregate) with date format examples, but these are minimal. It does not clarify optionality, what 'aggregate' actually does, or the meaning of null id, so it only partially compensates for the schema gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Get bicycle traffic detection data from counting stations,' which is a specific verb+resource. It distinguishes from sibling tools like get_bicycle_counters by focusing on detection data rather than the counters themselves.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage by listing parameters (id, from_date, to_date, aggregate) but does not explicitly state when to use this tool versus alternatives like get_bicycle_counters. There are no exclusion criteria or alternative tool references, so the guidance is only implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_city_districtsA
Get Prague city district information.
Args:
latlng: Coordinates as "latitude,longitude" (e.g. "50.0890,14.4168")
range: Search radius in meters from the coordinates
limit: Maximum number of results (default: 10)
offset: Number of results to skip for pagination
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| range | No | ||
| latlng | No | ||
| offset | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the burden of behavioral disclosure. It does not state whether the tool is read-only, any side effects, rate limits, or return format. The pagination parameters hint at behavior, but the description does not disclose what happens with results or how the search radius affects output.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and well-structured as an Args list. The purpose statement is front-loaded, and each parameter is given a brief, useful explanation without unnecessary prose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers all parameters and gives a clear purpose, and an output schema exists to describe return values. However, the lack of annotations and absence of any usage context or behavioral notes leaves some gaps about response structure and edge cases, making it minimally complete but not rich.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description is the primary source of parameter meaning. It explains latlng format, range units, and pagination semantics, adding significant value beyond the schema's titles and defaults.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Get Prague city district information' with a specific verb and resource. It is easily distinguished from sibling tools like get_bicycle_counters or get_parking_lots, which target different data types.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage through parameters like latlng and range, but does not explicitly state when to use this tool versus alternatives. No explicit context or alternative references are provided, though the intended use case is reasonably clear from the coordinates and radius parameters.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_departuresA
Get upcoming departures from a Prague public transit stop.
Args:
stop_ids: GTFS stop ID(s), comma-separated (e.g. "U693Z2P" or "U693Z1P,U693Z2P").
Use search_stops to find stop IDs by name.
limit: Maximum number of departures per stop (default: 5)
minutes_after: Show departures within this many minutes (default: 60)
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| stop_ids | Yes | ||
| minutes_after | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the transparency burden. It discloses key behaviors: limit is per stop, minutes_after restricts the time window, and stop_ids accept comma-separated values. It does not mention timezone or sorting, but for a read-only 'Get' operation this is adequate context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise: a one-sentence overview followed by a focused args list. Each parameter gets a single line with clear wording, and there is no filler. The example values embedded in stop_ids are helpful without bloating the text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (3 params, 1 required), the description covers all necessary aspects: purpose, parameter semantics, defaults, and how to obtain required IDs. An output schema exists, so return structure is handled separately. The description is complete for invoking this tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must fully explain parameters. It does so excellently: stop_ids includes format with examples and a pointer to search_stops; limit and minutes_after explain semantics ('per stop', 'within this many minutes') and defaults. This adds substantial meaning beyond the raw schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with 'Get upcoming departures from a Prague public transit stop,' which is a specific verb ('Get') and resource ('departures from a Prague public transit stop'). It clearly distinguishes from sibling tools that return bicycle counters, air quality, etc., and is unambiguous about its scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit usage guidance by stating 'Use search_stops to find stop IDs by name.' This directs the agent to a sibling tool for the prerequisite step and implies this tool is for the departure lookup itself. Parameter descriptions further clarify how to use each argument (e.g., 'per stop' for limit).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_gardensA
Get public garden locations in Prague.
Args:
latlng: Coordinates as "latitude,longitude" (e.g. "50.0890,14.4168")
range: Search radius in meters from the coordinates
districts: Filter by district codes (comma-separated)
limit: Maximum number of results (default: 10)
offset: Number of results to skip for pagination
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| range | No | ||
| latlng | No | ||
| offset | No | ||
| districts | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden. 'Get' implies read-only, and pagination parameters are explained, but there is no disclosure about result ordering, error handling, or behavior when filters are omitted.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with a one-sentence purpose followed by a concise, well-formatted parameter list. Every line adds meaningful information without unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the purpose and all parameters with clear usage details, and the output schema handles return values. However, it does not state the optionality or default behavior when latlng/range are omitted, a minor but notable gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema descriptions are entirely absent (0% coverage), but the description provides explicit meanings for all five parameters, including latlng format, range units in meters, districts as comma-separated codes, and pagination semantics. This fully compensates for the schema gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Get public garden locations in Prague' with a specific verb and resource, distinguishing it from sibling tools about other city services. No ambiguity about what the tool does.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The purpose implies when to use the tool (for garden-related queries), but no explicit guidance on when not to use it or alternatives is provided. No exclusions or references to sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_medical_institutionsA
Get healthcare facilities in Prague.
Args:
latlng: Coordinates as "latitude,longitude" (e.g. "50.0890,14.4168")
range: Search radius in meters from the coordinates
districts: Filter by district codes (comma-separated)
limit: Maximum number of results (default: 10)
offset: Number of results to skip for pagination
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| range | No | ||
| latlng | No | ||
| offset | No | ||
| districts | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
There are no annotations, so the description carries the full transparency burden. It discloses parameter behaviors like default limit and pagination but does not explicitly state that the operation is read-only, mention authentication/rate limits, or describe error/empty-result behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact: a one-sentence purpose followed by a bulleted args list. Every line adds useful information and there is no redundant or promotional text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers all five parameters and their defaults, and an output schema exists so return values do not need restatement. The main gap is the lack of explicit guidance on optional/required combinations (e.g., whether latlng and range must be used together), but overall it is sufficient for a simple list tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema provides no description coverage for parameters, but the description compensates fully by explaining the latlng format with an example, range units in meters, comma-separated districts, limit default, and offset purpose. Each parameter is given actionable semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with 'Get healthcare facilities in Prague', a specific verb-object-location statement. This clearly distinguishes the tool from sibling data tools like get_bicycle_counters or get_parking_lots.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies use whenever healthcare facility data is needed but does not explicitly state when to prefer it over alternatives or when not to use it. No sibling-tool comparisons or exclusions are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_municipal_librariesA
Get public library locations in Prague.
Args:
latlng: Coordinates as "latitude,longitude" (e.g. "50.0890,14.4168")
range: Search radius in meters from the coordinates
districts: Filter by district codes (comma-separated)
limit: Maximum number of results (default: 10)
offset: Number of results to skip for pagination
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| range | No | ||
| latlng | No | ||
| offset | No | ||
| districts | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It implies a read-only operation via 'Get' and documents parameters, but does not disclose potential behavior like sorting, distance calculation method, or error cases. It's adequate but not rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is one clear sentence followed by a structured args list. Every line is informative and there is no fluff. It is front-loaded with the purpose immediately.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the output schema exists, return values need not be described. The description covers all 5 parameters and the use case, making it complete enough for a read-only lookup tool. Minor gaps like district code definitions or caveats are not critical.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description compensates well by explaining each parameter's meaning (e.g., latlng format with example, range in meters, districts as codes, limit default, offset pagination). This adds value beyond the schema's bare types, though district code specifics are omitted.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Get public library locations in Prague' – a specific verb (get) applied to a specific resource (public library locations) with a geographic scope (Prague). This distinguishes it from sibling tools like get_bicycle_counters or get_air_quality_stations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context on when to use the tool (when needing public library locations in Prague) but does not explicitly mention alternatives or exclusions. The sibling list confirms no overlapping tool, so context is sufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_parking_lotsA
Get parking lot information and availability in Prague.
Args:
latlng: Coordinates as "latitude,longitude" (e.g. "50.0890,14.4168")
range: Search radius in meters from the coordinates
limit: Maximum number of results (default: 10)
offset: Number of results to skip for pagination
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| range | No | ||
| latlng | No | ||
| offset | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden. It clarifies the operation is a 'get' (read-only by implication) and describes pagination via offset, but does not disclose response specifics or edge cases. It does not contradict anything, and with an output schema present, the additional context is minimal but adequate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise: a one-line summary followed by a focused list of parameters. No redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers all parameters and the tool's purpose. With an output schema handling return values, the description is largely sufficient. However, it does not clarify behavior when latlng is omitted (optional but seemingly important for geographic search), which limits completeness slightly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has no parameter descriptions (0% coverage). The description compensates fully by explaining latlng format with an example, range units, limit default, and offset purpose, which is essential for correct invocation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear action ('Get') with a specific resource ('parking lot information and availability') and location ('Prague'), fully distinguishing it from the sibling tools that target different data types.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context by specifying the resource and location, but does not explicitly mention alternatives or when-not-to-use conditions. Since siblings are all different categories, the context is sufficient for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_playgroundsA
Get public playground locations in Prague.
Args:
latlng: Coordinates as "latitude,longitude" (e.g. "50.0890,14.4168")
range: Search radius in meters from the coordinates
districts: Filter by district codes (comma-separated)
limit: Maximum number of results (default: 10)
offset: Number of results to skip for pagination
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| range | No | ||
| latlng | No | ||
| offset | No | ||
| districts | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries the full burden. It implies read-only behavior via 'Get' and documents pagination with limit/offset, but does not explicitly state side effects, auth requirements, or rate limits. This is adequate but not rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence followed by a neatly formatted parameter list. It is front-loaded with the primary purpose and contains no redundant or unnecessary text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers all parameters and implies a straightforward read-only query. Given the existence of an output schema and the absence of annotations, it is largely complete, though it does not specify behavior when no filters are provided.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The Args list provides detailed explanations for all five parameters: latlng format, range units, comma-separated districts, limit default, and offset purpose. This fully compensates for the 0% schema description coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states 'Get public playground locations in Prague', which clearly specifies the action (get), resource (public playground locations), and geographic scope (Prague). This distinguishes it from sibling tools like get_bicycle_counters or get_parking_lots.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly indicates the tool is for playground location queries via geospatial parameters (latlng, range, districts). It gives implicit context for when to use it, but does not explicitly mention alternatives or exclusions, preventing a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_waste_stationsA
Get sorted waste collection stations in Prague.
Args:
latlng: Coordinates as "latitude,longitude" (e.g. "50.0890,14.4168")
range: Search radius in meters from the coordinates
limit: Maximum number of results (default: 10)
offset: Number of results to skip for pagination
onlyMonitored: Filter to only monitored stations
districts: Filter by district codes (comma-separated)
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| range | No | ||
| latlng | No | ||
| offset | No | ||
| districts | No | ||
| onlyMonitored | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must carry behavioral disclosure. It explains pagination via offset, filtering via onlyMonitored/districts, and the radius parameter's unit (meters), which adds some transparency. However, it states results are 'sorted' without specifying the sort key (distance? name?), and it doesn't explain behavior when latlng/range are null (e.g., returns all stations in Prague).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is structured as a one-line summary followed by six one-line parameter definitions. It is compact, scannable, and every line adds value. No fluff or redundant commentary.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with six optional parameters and an output schema, the description covers all parameters with defaults and formats. The main omissions are the sorting criteria and the behavior with null location parameters, but the core invocation needs (parameter syntax, defaults) are well documented. The output schema covers return values, so the description doesn't need to repeat them.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the Args section is the sole source of parameter meaning. It precisely defines latlng as 'latitude,longitude' with an example, range as meters, limit default 10, offset as pagination, onlyMonitored as a filter, and districts as comma-separated codes. This fully compensates for the absent schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with 'Get sorted waste collection stations in Prague,' which clearly identifies the action (get), the resource (waste collection stations), and the geographic scope (Prague). Among the sibling tools focused on different city datasets (bike counters, air quality, parking lots), this resource name unambiguously distinguishes it.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given for when to use this tool versus alternatives. The sibling tools include other get_* tools for different data types, and while the resource name makes it obvious which dataset it queries, there is no statement about when to prefer this over, say, get_city_districts or a general search tool. It also doesn't describe prerequisites or typical use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_stopsA
Search for Prague public transit stops by name.
Args:
name: Stop name to search for (case-insensitive, diacritics-insensitive).
Examples: "Letňany", "Letnany", "mustek", "Můstek" all work.
limit: Maximum number of results (default: 10)
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| limit | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral burden. It discloses useful traits: case-insensitive and diacritics-insensitive matching, and a default limit. While it does not explicitly state read-only or side-effect-free, 'search' implies a safe, non-mutating operation. The details go beyond what is obvious from the tool name.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short sentences plus a compact Args block. Every sentence adds value: first sentence states purpose, Args block clarifies parameters with examples. There is no filler or repetition, and the format is easy to scan.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (2 params, output schema provided), the description is complete. It covers the search scope, parameter behavior, and examples. Return values are handled by the output schema, so no additional explanation is needed. The tool is small, and no context is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 0% description coverage, so the description fully compensates. It explains the 'name' parameter with matching semantics and provides concrete examples ('Letňany', 'Letnany', 'mustek'). It also documents the 'limit' parameter's default value. This is far beyond what the bare schema offers.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the specific verb 'Search' and clearly identifies the resource ('Prague public transit stops by name'). This distinguishes it from sibling tools like get_departures or get_city_districts, which are either retrieval or unrelated, making the purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when to use the tool: when you need to find a stop by name. It does not explicitly mention alternatives or when-not-to-use, but the purpose is so distinct from siblings that the guidance is effective. No exclusions are necessary here.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
Each tool targets a distinct resource type (bicycle counters, detections, air quality stations, etc.), and descriptions clarify the differences. The related bicycle counters/detections tools are clearly differentiated.
All tools follow a consistent verb_noun snake_case pattern (get_* or search_*), with only search_stops deviating from the get_ prefix to reflect its search functionality.
With 12 tools, the server covers a broad range of Prague city data without becoming unwieldy; the size is appropriate for the domain.
The toolset provides location lookups for many facility types and includes real-time departures and bicycle detections. However, some natural complementing operations are missing, such as air quality measurements or transit route information, leaving noticeable gaps.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Give AI assistants access to real-time data. Search the web, compare flights, find hotels, and more.
Public Data Ukraine Mcp connects AI agents to real public APIs via MCP. Tools include
Provides access to Civic Plus - See Click Fix, allowing you to interact with your data via an LLM.…
Real-world data for agents: air quality, geocoding, quakes, holidays, web search
Related MCP Servers
- FlicenseAqualityFmaintenanceEnables searching for train connections, stations, and ticket pricing on the Czech railway network via the official České dráhy API. It supports retrieving detailed connection information and passenger discount categories for travel planning.54
- AlicenseAqualityDmaintenanceProvides access to real-time Winnipeg Transit data and 311 City Services, enabling AI assistants to plan trips, check bus arrivals, and search for reported city issues. It allows users to interact with city infrastructure data and transit schedules through natural language.8MIT
- FlicenseNot gradedqualityDmaintenanceEnables AI assistants to access real-time Transport for London data, including tube/bus arrivals, line status, journey planning, and disruptions.1
- AlicenseAqualityCmaintenanceProvides AI assistants direct access to 700+ statistical datasets about the Czech Republic, including population, economy, prices, wages, employment, industry, agriculture, trade, tourism, environment, and more.121MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/MrMebelMan/golemio-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server