OpenDataMCP

OpenDataMCP

Connects open data to LLMs via MCP, enabling easy access to public datasets and publishing new datasets with community help.

Category
访问服务器

README

Add to Cursor Add to VS Code Add to Claude Add to ChatGPT Add to Codex Add to Gemini

Open Data Model Context Protocol

vc3598_Hyper-realistic_Swiss_landscape_pristine_SBB_red_train_p_40803c2e-43f5-410e-89aa-f6bdcb4cd089 <p align="center"> <em>Connect Open Data to LLMs in minutes!</em> </p> <p align="center"> <a href="https://github.com/OpenDataMCP/OpenDataMCP/actions/workflows/ci.yml" target="_blank"> <img src="https://github.com/OpenDataMCP/OpenDataMCP/actions/workflows/ci.yml/badge.svg" alt="CI"> </a> <a href="https://pypi.org/project/odmcp" target="_blank"> <img src="https://img.shields.io/pypi/v/odmcp?color=%2334D058&label=pypi%20package" alt="Package version"> </a> <a href="https://github.com/OpenDataMCP/OpenDataMCP/blob/main/LICENSE" target="_blank"> <img src="https://img.shields.io/github/license/OpenDataMCP/OpenDataMCP.svg" alt="License"> </a> <a href="https://pepy.tech/badge/odmcp" target="_blank"> <img src="https://pepy.tech/badge/odmcp?cache-control=no-cache" alt="License"> </a> <a href="https://github.com/OpenDataMCP/OpenDataMCP/stargazers" target="_blank"> <img src="https://img.shields.io/github/stars/OpenDataMCP/OpenDataMCP.svg?cache-control=no-cache" alt="Stars"> </a> </p>

See it in action

https://github.com/user-attachments/assets/760e1a16-add6-49a1-bf71-dfbb335e893e

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 with Claude, see Roadmap for next steps).
  • Publish: Use provided templates and guidelines to quickly contribute and publish on Open Data MCP. Make your data easily discoverable!

Usage

<u>Access</u>: Access Open Data using Open Data MCP CLI Tool

Prerequisites

If you want to use Open Data MCP with Claude Desktop app client you need to install the Claude Desktop app.

You will also need uv to easily run our CLI and MCP servers.

macOS
# you need to install uv through homebrew as using the install shell script 
# will install it locally to your user which make it unavailable in the Claude Desktop app context.
brew install uv
Windows
# (UNTESTED)
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"

Open Data MCP - CLI Tool

Overview
# show available commands
uvx odmcp 

# show available providers
uvx odmcp list

# show info about a provider
uvx odmcp info $PROVIDER_NAME

# setup a provider's MCP server on your Claude Desktop app
uvx odmcp setup $PROVIDER_NAME

# remove a provider's MCP server from your Claude Desktop app
uvx odmcp remove $PROVIDER_NAME
Example

Quickstart for the Switzerland SBB (train company) provider:

# make sure claude is installed
uvx odmcp setup ch_sbb

Restart Claude and you should see a new hammer icon at the bottom right of the chat.

You can now ask questions to Claude about SBB train network disruption and it will answer based on data collected on data.sbb.ch.

<u>Publish</u>: Contribute by building and publishing public datasets

Prerequisites

  1. Install UV Package Manager

    # macOS
    brew install uv
    
    # Windows (PowerShell)
    powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
    
    # Linux/WSL
    curl -LsSf https://astral.sh/uv/install.sh | sh
    
  2. Clone & Setup Repository

    # Clone the repository
    git clone https://github.com/OpenDataMCP/OpenDataMCP.git
    cd OpenDataMCP
    
    # Create and activate virtual environment
    uv venv
    source .venv/bin/activate  # Unix/macOS
    # or
    .venv\Scripts\activate     # Windows
    
    # Install dependencies
    uv sync
    
  3. Install Pre-commit Hooks

    # Install pre-commit hooks for code quality
    pre-commit install
    

Publishing Instructions

  1. Create a New Provider Module

    • Each data source needs its own python module.
    • Create a new Python module in src/odmcp/providers/.
    • Use a descriptive name following the pattern: {country_code}_{organization}.py (e.g., ch_sbb.py).
    • Start with our template file as your base.
  2. Implement Required Components

    • Define your Tools & Resources following the template structure
    • Each Tool or Resource should have:
      • Clear description of its purpose
      • Well-defined input/output schemas using Pydantic models
      • Proper error handling
      • Documentation strings
  3. Tool vs Resource

    • Choose Tool implementation if your data needs:
      • Active querying or computation
      • Parameter-based filtering
      • Complex transformations
    • Choose Resource implementation if your data is:
      • Static or rarely changing
      • Small enough to be loaded into memory
      • Simple file-based content
      • Reference documentation or lookup tables
    • Reference the MCP documentation for guidance
  4. Testing

    • Add tests in the tests/ directory
    • Follow existing test patterns (see other provider tests)
    • Required test coverage:
      • Basic functionality
      • Edge cases
      • Error handling
  5. Validation

    • Test your MCP server using our experimental client: uv run src/odmcp/providers/client.py
    • Verify all endpoints respond correctly
    • Ensure error messages are helpful
    • Check performance with typical query loads

For other examples, check our existing providers in the src/odmcp/providers/ directory.

Contributing

We 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.

For that we need your help!

Discord

We 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

Our Core Guidelines

Because of our target scale we want to keep things simple and pragmatic at first. Tackle issues with the community as they come along.

  1. Simplicity and Maintainability

    • Minimize abstractions to keep codebase simple and scalable
    • Focus on clear, straightforward implementations
    • Avoid unnecessary complexity
  2. Standardization / Templates

    • Follow provided templates and guidelines consistently
    • Maintain uniform structure across providers
    • Use common patterns for similar functionality
  3. Dependencies

    • Keep external dependencies to a minimum
    • Prioritize single repository/package setup
    • Carefully evaluate necessity of new dependencies
  4. Code Quality

    • Format code using ruff
    • Maintain comprehensive test coverage with pytest
    • Follow consistent code style
  5. Type Safety

    • Use Python type hints throughout
    • Leverage Pydantic models for API request/response validation
    • Ensure type safety in data handling

Tactical Topics (our current priorities)

  • [x] Initialize repository with guidelines, testing framework, and contribution workflow
  • [x] Implement CI/CD pipeline with automated PyPI releases
  • [x] Develop provider template and first reference implementation
  • [ ] Integrate additional open datasets (actively seeking contributors)
  • [ ] Establish clear guidelines for choosing between Resources and Tools
  • [ ] Develop scalable repository architecture for long-term growth
  • [ ] Expand MCP SDK parameter support (authentication, rate limiting, etc.)
  • [ ] Implement additional MCP protocol features (prompts, resource templates)
  • [ ] Add support for alternative transport protocols beyond stdio (SSE)
  • [ ] Deploy hosted MCP servers for improved accessibility

Roadmap

Let’s build the open source infrastructure that will allow all LLMs to access all Open Data together!

Access:

  • Make Open Data available to all LLM applications (beyond Claude)
  • Make Open Data data sources searchable in a scalable way
  • Make Open Data available through MCP remotely (SSE) with publicly sponsored infrastructure

Publish:

  • Build the many Open Data MCP servers to make all the Open Data truly accessible (we need you!).
  • On our side we are starting to build MCP servers for Switzerland ~12k open dataset!
  • Make it even easier to build Open Data MCP servers

We 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!

As Anthropic's MCP evolves we will adapt and upgrade Open Data MCP.

Limitations

  • All data served by Open Data MCP servers should be Open.
  • Please oblige to the data licenses of the data providers.
  • Our License must be quoted in commercial applications.

References

License

This project is licensed under the MIT License - see the LICENSE file for details

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选