Connect Open Data to LLMs in minutes! We enable 2 things: Open Data Access: Access to many public datasets right from your LLM application (starting with Claude, more to come). Publishing: Get community help and a distribution network to distribute your Open Data. Get everyone to use it! How do we do that? Access: Setup our MCP servers in your LLM application in 2 clicks via our CLI tool (starting
Add this skill
npx mdskills install OpenDataMCP/opendatamcpWell-documented MCP server framework with clear setup, contribution guidelines, and practical examples
1# Open Data Model Context Protocol234<p align="center">5 <em>Connect Open Data to LLMs in minutes!</em>6</p>7<p align="center">8 <a href="https://github.com/OpenDataMCP/OpenDataMCP/actions/workflows/ci.yml" target="_blank">9 <img src="https://github.com/OpenDataMCP/OpenDataMCP/actions/workflows/ci.yml/badge.svg" alt="CI">10 </a>11 <a href="https://pypi.org/project/odmcp" target="_blank">12 <img src="https://img.shields.io/pypi/v/odmcp?color=%2334D058&label=pypi%20package" alt="Package version">13 </a>14 <a href="https://github.com/OpenDataMCP/OpenDataMCP/blob/main/LICENSE" target="_blank">15 <img src="https://img.shields.io/github/license/OpenDataMCP/OpenDataMCP.svg" alt="License">16 </a>17 <a href="https://pepy.tech/badge/odmcp" target="_blank">18 <img src="https://pepy.tech/badge/odmcp?cache-control=no-cache" alt="License">19 </a>20 <a href="https://github.com/OpenDataMCP/OpenDataMCP/stargazers" target="_blank">21 <img src="https://img.shields.io/github/stars/OpenDataMCP/OpenDataMCP.svg?cache-control=no-cache" alt="Stars">22 </a>23</p>2425## See it in action2627https://github.com/user-attachments/assets/760e1a16-add6-49a1-bf71-dfbb335e893e2829We enable 2 things:3031* **Open Data Access**: Access to many public datasets right from your LLM application (starting with Claude, more to come).32* **Publishing**: Get community help and a distribution network to distribute your Open Data. Get everyone to use it!3334How do we do that?3536* **Access**: Setup our MCP servers in your LLM application in 2 clicks via our CLI tool (starting with Claude, see Roadmap for next steps).37* **Publish**: Use provided templates and guidelines to quickly contribute and publish on Open Data MCP. Make your data easily discoverable!3839## Usage4041### <u>Access</u>: Access Open Data using Open Data MCP CLI Tool4243#### Prerequisites4445If you want to use Open Data MCP with Claude Desktop app client you need to install the [Claude Desktop app](https://claude.ai/download).4647You will also need `uv` to easily run our CLI and MCP servers.4849##### macOS5051```bash52# you need to install uv through homebrew as using the install shell script53# will install it locally to your user which make it unavailable in the Claude Desktop app context.54brew install uv55```5657##### Windows5859```bash60# (UNTESTED)61powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"62```6364#### Open Data MCP - CLI Tool6566##### Overview6768```bash69# show available commands70uvx odmcp7172# show available providers73uvx odmcp list7475# show info about a provider76uvx odmcp info $PROVIDER_NAME7778# setup a provider's MCP server on your Claude Desktop app79uvx odmcp setup $PROVIDER_NAME8081# remove a provider's MCP server from your Claude Desktop app82uvx odmcp remove $PROVIDER_NAME83```8485##### Example8687Quickstart for the Switzerland SBB (train company) provider:8889```bash90# make sure claude is installed91uvx odmcp setup ch_sbb92```9394Restart Claude and you should see a new hammer icon at the bottom right of the chat.9596You can now ask questions to Claude about SBB train network disruption and it will answer based on data collected on `data.sbb.ch`.9798### <u>Publish</u>: Contribute by building and publishing public datasets99100#### Prerequisites1011021. **Install UV Package Manager**103 ```bash104 # macOS105 brew install uv106107 # Windows (PowerShell)108 powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"109110 # Linux/WSL111 curl -LsSf https://astral.sh/uv/install.sh | sh112 ```1131142. **Clone & Setup Repository**115 ```bash116 # Clone the repository117 git clone https://github.com/OpenDataMCP/OpenDataMCP.git118 cd OpenDataMCP119120 # Create and activate virtual environment121 uv venv122 source .venv/bin/activate # Unix/macOS123 # or124 .venv\Scripts\activate # Windows125126 # Install dependencies127 uv sync128 ```1291303. **Install Pre-commit Hooks**131 ```bash132 # Install pre-commit hooks for code quality133 pre-commit install134 ```135136#### Publishing Instructions1371381. **Create a New Provider Module**139 * Each data source needs its own python module.140 * Create a new Python module in `src/odmcp/providers/`.141 * Use a descriptive name following the pattern: `{country_code}_{organization}.py` (e.g., `ch_sbb.py`).142 * Start with our [template file](https://github.com/OpenDataMCP/OpenDataMCP/blob/main/src/odmcp/providers/__template__.py) as your base.1431442. **Implement Required Components**145 * Define your Tools & Resources following the template structure146 * Each Tool or Resource should have:147 - Clear description of its purpose148 - Well-defined input/output schemas using Pydantic models149 - Proper error handling150 - Documentation strings1511523. **Tool vs Resource**153 * Choose **Tool** implementation if your data needs:154 - Active querying or computation155 - Parameter-based filtering156 - Complex transformations157 * Choose **Resource** implementation if your data is:158 - Static or rarely changing159 - Small enough to be loaded into memory160 - Simple file-based content161 - Reference documentation or lookup tables162 * Reference the [MCP documentation](https://github.com/modelcontextprotocol/python-sdk?tab=readme-ov-file#primitives) for guidance1631644. **Testing**165 * Add tests in the `tests/` directory166 * Follow existing test patterns (see other provider tests)167 * Required test coverage:168 - Basic functionality169 - Edge cases170 - Error handling1711725. **Validation**173 * Test your MCP server using our experimental client: `uv run src/odmcp/providers/client.py`174 * Verify all endpoints respond correctly175 * Ensure error messages are helpful176 * Check performance with typical query loads177178For other examples, check our existing providers in the `src/odmcp/providers/` directory.179180## Contributing181182We have an ambitious roadmap and we want this project to scale with the community. The ultimate goal is to make the millions of datasets publicly available to all LLM applications.183184For that we need your help!185186### Discord187188We want to build a helping community around the challenge of bringing open data to LLM's. Join us on discord to start chatting: [https://discord.gg/QPFFZWKW](https://discord.gg/hDg4ZExjGs)189190### Our Core Guidelines191192Because of our target scale we want to keep things simple and pragmatic at first. Tackle issues with the community as they come along.1931941. **Simplicity and Maintainability**195 * Minimize abstractions to keep codebase simple and scalable196 * Focus on clear, straightforward implementations197 * Avoid unnecessary complexity1981992. **Standardization / Templates**200 * Follow provided templates and guidelines consistently201 * Maintain uniform structure across providers202 * Use common patterns for similar functionality2032043. **Dependencies**205 * Keep external dependencies to a minimum206 * Prioritize single repository/package setup207 * Carefully evaluate necessity of new dependencies2082094. **Code Quality**210 * Format code using ruff211 * Maintain comprehensive test coverage with pytest212 * Follow consistent code style2132145. **Type Safety**215 * Use Python type hints throughout216 * Leverage Pydantic models for API request/response validation217 * Ensure type safety in data handling218219### Tactical Topics (our current priorities)220* [x] Initialize repository with guidelines, testing framework, and contribution workflow221* [x] Implement CI/CD pipeline with automated PyPI releases222* [x] Develop provider template and first reference implementation223* [ ] **Integrate additional open datasets (actively seeking contributors)**224* [ ] Establish clear guidelines for choosing between Resources and Tools225* [ ] Develop scalable repository architecture for long-term growth226* [ ] Expand MCP SDK parameter support (authentication, rate limiting, etc.)227* [ ] Implement additional MCP protocol features (prompts, resource templates)228* [ ] Add support for alternative transport protocols beyond stdio (SSE)229* [ ] Deploy hosted MCP servers for improved accessibility230231## Roadmap232Let’s build the open source infrastructure that will allow all LLMs to access all Open Data together!233234### Access:235* Make Open Data available to all LLM applications (beyond Claude)236* Make Open Data data sources searchable in a scalable way237* Make Open Data available through MCP remotely (SSE) with publicly sponsored infrastructure238239### Publish:240* Build the many Open Data MCP servers to make all the Open Data truly accessible (we need you!).241* On our side we are starting to build MCP servers for Switzerland ~12k open dataset!242* Make it even easier to build Open Data MCP servers243244We are very early, and lack of dataset available is currently the bottleneck. Help yourself! Create your Open Data MCP server and get users to use it as well from their LLMs applications. Let’s connect LLMs to the millions of open datasets from governments, public entities, companies and NGOs!245246As Anthropic's MCP evolves we will adapt and upgrade Open Data MCP.247248## Limitations249250* All data served by Open Data MCP servers should be Open.251* Please oblige to the data licenses of the data providers.252* Our License must be quoted in commercial applications.253254## References255256* Kudos to [Anthropic's open source MCP](https://spec.modelcontextprotocol.io/) release enabling initiative like this one.257258## License259260This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details261
Full transparency — inspect the skill content before installing.