About
An MCP server for Dresden's OpenData portal
README
A Model Context Protocol (MCP) server that provides AI agents (or your toaster) with access to Dresden's OpenData Portal, enabling these systems to automatically discover, fetch, and process open civic datasets published by the city or other providers.
I personally find Dresden's OpenData portal extremely useful, but cumbersome to work with and find fitting datasets. This tries to make that a bit easier. Here's an example interaction with Claude using this MCP server to find a dataset on Dresden's streets.
Installation
Prerequisites
- Go 1.21 or higher
- An MCP-compatible AI client (e.g. Claude Desktop)
Building from Source
git clone https://github.com/kiliankoe/dresden-opendata-mcp.git
cd dresden-opendata-mcp
make build
make install
Configuration
The server can be configured using environment variables:
REQUEST_TIMEOUT_MS=30000
MCP Tools
The server provides the following MCP tools:
list_datasets
List all available datasets from the Dresden OpenData portal.
{
"limit": 100 // Optional, max datasets to return
}
search_datasets
Search for datasets using keywords.
Important search tips:
- Use German search terms for better results (e.g., "Straßenbahn" instead of "tram")
- The underlying API has limited search capabilities - try multiple queries with:
- Different synonyms (e.g., "ÖPNV", "Nahverkehr", "öffentlicher Verkehr")
- Various forms (singular/plural, abbreviations)
- More bureaucratic/official terms
- Consider broader or narrower terms if initial searches don't yield results
{
"query": "Straßenbahn",
"limit": 30
}
get_dataset_info
Get detailed information about a specific dataset.
{
"id": "dataset-id" // Dataset ID, Node ID, or Layer ID
}
fetch_dataset
Fetch dataset content in a specified format.
{
"id": "dataset-id",
"format": "GeoJSON" // CSV, JSON, GeoJSON, WMS, WFS
}
query_dataset
Query datasets using OGC API parameters.
{
"layerId": "L124",
"limit": 50,
"offset": 0
}
Usage with Claude Desktop
Add the server to your Claude Desktop configuration:
{
"mcpServers": {
"dresden-opendata": {
"command": "/path/to/dresden-opendata-mcp"
}
}
}
Example Usage
// Search for tram routes (use German terms)
const datasets = await client.call('search_datasets', {
query: 'Straßenbahn'
});
// Fetch specific dataset
const tramData = await client.call('fetch_dataset', {
id: 'tram-network',
format: 'GeoJSON'
});
// Query dataset features
const results = await client.call('query_dataset', {
layerId: 'L124',
limit: 50
});
Development
make build
make test
make fmt
Note: The server communicates via stdin/stdout using the MCP protocol. Running make run directly will cause the server to wait for MCP protocol messages, which may appear as if it's hanging. This is normal - the server should be used with an MCP client. You can use MCP Inspector to directly introspect this server or set up a client like Claude Desktop, see above.
Architecture
The server consists of several key components:
- Portal Client: Handles communication with Dresden's OpenData APIs
- MCP Tools: Implements the MCP protocol tools for dataset operations
- Configuration: Manages environment-based configuration
Installing Dresden Opendata
This server has no published package — it is built from source. Open the repository and follow its README.
▸ github.com/kiliankoe/dresden-opendata-mcpFAQ
Is Dresden Opendata MCP free?
Yes, Dresden Opendata MCP is free — one-click install via Unyly at no cost.
Does Dresden Opendata need an API key?
No, Dresden Opendata runs without API keys or environment variables.
Is Dresden Opendata hosted or self-hosted?
Self-hosted: the server runs locally on your machine via the install command above.
How do I install Dresden Opendata in Claude Desktop, Claude Code or Cursor?
Open Dresden Opendata on unyly.org, pick your client tab (Claude Desktop, Claude Code, Cursor) and press Install — the config is generated automatically, no JSON editing.
Related MCPs
GitHub
PRs, issues, code search, CI status
by GitHubFilesystem
Secure file operations with configurable access controls.
Memory
Knowledge graph-based persistent memory system.
Template MCP Server
A CLI tool to create a new Model Context Protocol server project with TypeScript support, dual transport options, and an extensible structure
by mcpdotdirectCompare Dresden Opendata with
Not sure what to pick?
Find your stack in 60 seconds
Author?
Embed badge for your README
Browse similar
All development MCPs
