odh-mcp-server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| ODH_TIMEOUT | No | Timeout in seconds for ODH API requests. | 10 |
| ODH_BASE_URL | No | Base URL for the Open Data Hub API. | https://tourism.api.opendatahub.com/v1 |
| DEFAULT_WORLD | No | The default world to load on startup. | earth-313 |
| NOMINATIM_URL | No | Base URL for Nominatim geocoding service. | https://nominatim.openstreetmap.org |
| NOMINATIM_USER_AGENT | No | User-Agent header for Nominatim requests. | odh-mcp-server/0.1 (opensource hospitality MCP) |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| logging | {} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| extensions | {
"io.modelcontextprotocol/ui": {}
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| set_worldA | Set the current world context for all subsequent queries. Available worlds:
Returns a confirmation message with the world's description and available tools. |
| describe_worldA | Return a narrative description of the current world, including what data is available and how to query it. |
| find_accommodationsA | Find accommodations in the current world. Parameters:
Returns a formatted narrative list of accommodations with key details. |
| find_eventsA | Find events in the current world. Parameters:
Returns a formatted narrative list of events. |
| find_gastronomyA | Find restaurants, food stalls, and gastronomy places in the current world. Parameters:
Returns a formatted narrative list of gastronomy places. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 5 tools
Each tool targets a distinct operation: set_world establishes context, describe_world explains it, and the three find_* tools query for accommodations, events, and gastronomy separately. Even though they share parameters like near and radius_m, the entity types are clearly different, so an agent can easily select the right tool.
All tool names follow a consistent verb_noun pattern in snake_case: set_world, describe_world, find_accommodations, find_events, find_gastronomy. The verbs (set, describe, find) are clear and the nouns are specific, making the pattern predictable.
With 5 tools, the server is well-scoped for its purpose of exploring hospitality and tourism data in a world context. Each tool earns its place: world management (set, describe) and three distinct search types (accommodation, events, gastronomy). No redundancy or bloat.
The server's domain is read-only exploration of world-based hospitality data, and it covers the core workflow: set the world to establish context, understand what data is available via describe_world, and then search for the three primary POI types. There are no obvious dead ends, and all CRUD operations beyond reading are outside the stated purpose.