Open Data Model Context Protocol

MIT License
90
  • Apple
  • Linux

hybrid server

The server is able to function both locally and remotely, depending on the configuration or use case.

开放数据模型上下文协议

观看实际操作

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

我们实现了两件事:

  • 开放数据访问:直接从您的 LLM 应用程序访问许多公共数据集(从 Claude 开始,接下来会有更多)。
  • 发布:利用社区帮助和分发网络来发布您的开放数据。让每个人都能使用它!

我们该怎么做呢?

  • 访问:通过我们的 CLI 工具,只需单击两次即可在您的 LLM 应用程序中设置我们的 MCP 服务器(从 Claude 开始,请参阅路线图了解后续步骤)。
  • 发布:使用提供的模板和指南,快速在 Open Data MCP 上贡献和发布数据。让您的数据更容易被发现!

用法

访问:使用 Open Data MCP CLI 工具访问 Open Data

先决条件

如果您想将 Open Data MCP 与 Claude Desktop 应用客户端一起使用,则需要安装Claude Desktop 应用程序

您还需要uv来轻松运行我们的 CLI 和 MCP 服务器。

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
视窗
# (UNTESTED) powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"

开放数据 MCP - CLI 工具

概述
# 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
例子

瑞士 SBB(火车公司)提供商的快速入门:

# make sure claude is installed uvx odmcp setup ch_sbb

重新启动 Claude,您应该会在聊天右下角看到一个新的锤子图标。

您现在可以向 Claude 询问有关 SBB 火车网络中断的问题,它将根据在data.sbb.ch上收集的数据回答您的问题。

发布:通过构建和发布公共数据集做出贡献

先决条件

  1. 安装 UV 包管理器
    # 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 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 for code quality pre-commit install

发布说明

  1. 创建新的提供程序模块
    • 每个数据源都需要自己的 python 模块。
    • src/odmcp/providers/中创建一个新的 Python 模块。
    • 使用以下模式的描述性名称: {country_code}_{organization}.py (例如, ch_sbb.py )。
    • 以我们的 模板文件作为基础开始。
  2. 实现所需的组件
    • 按照模板结构定义您的工具和资源
    • 每个工具或资源应该具有:
      • 清晰描述其目的
      • 使用 Pydantic 模型定义明确的输入/输出模式
      • 正确的错误处理
      • 文档字符串
  3. 工具与资源
    • 如果您的数据需要,请选择工具实现:
      • 主动查询或计算
      • 基于参数的过滤
      • 复杂的变换
    • 如果您的数据属于以下情况,请选择资源实施:
      • 静态或很少变化
      • 足够小,可以加载到内存中
      • 简单的基于文件的内容
      • 参考文档或查找表
    • 参考MCP 文档获取指导
  4. 测试
    • tests/目录中添加测试
    • 遵循现有的测试模式(参见其他提供商的测试)
    • 所需测试覆盖率:
      • 基本功能
      • 边缘情况
      • 错误处理
  5. 验证
    • 使用我们的实验客户端测试您的 MCP 服务器: uv run src/odmcp/providers/client.py
    • 验证所有端点正确响应
    • 确保错误消息有用
    • 使用典型查询负载检查性能

有关其他示例,请检查src/odmcp/providers/目录中现有的提供程序。

贡献

我们制定了雄心勃勃的路线图,希望这个项目能够与社区一起发展壮大。最终目标是将数百万个数据集公开提供给所有法学硕士(LLM)项目。

为此我们需要您的帮助!

不和谐

我们希望围绕将开放数据引入法学硕士课程这一挑战,建立一个互助社区。欢迎加入我们的 Discord 聊天: https://discord.gg/QPFFZWKW

我们的核心准则

由于我们的目标规模,我们希望一开始就保持简单务实。在社区出现问题时,及时解决。

  1. 简单性和可维护性
    • 尽量减少抽象,以保持代码库简单且可扩展
    • 专注于清晰、直接的实施
    • 避免不必要的复杂性
  2. 标准化/模板
    • 始终遵循提供的模板和指南
    • 保持跨提供商的统一结构
    • 对类似功能使用通用模式
  3. 依赖项
    • 将外部依赖降至最低
    • 优先考虑单个存储库/包设置
    • 仔细评估新依赖项的必要性
  4. 代码质量
    • 使用 ruff 格式化代码
    • 使用 pytest 保持全面的测试覆盖率
    • 遵循一致的代码风格
  5. 类型安全
    • 始终使用 Python 类型提示
    • 利用 Pydantic 模型进行 API 请求/响应验证
    • 确保数据处理中的类型安全

战术主题(我们当前的优先事项)

  • [x] 使用指南、测试框架和贡献工作流程初始化存储库
  • [x] 使用自动化 PyPI 发布实现 CI/CD 管道
  • [x] 开发提供程序模板和第一个参考实现
  • [ ]整合更多开放数据集(积极寻求贡献者)
  • [ ] 为资源和工具的选择建立明确的指导方针
  • [ ] 开发可扩展的存储库架构以实现长期增长
  • [ ] 扩展MCP SDK参数支持(鉴权、限速等)
  • [ ] 实现额外的 MCP 协议功能(提示、资源模板)
  • [ ] 添加对 stdio(SSE)以外的替代传输协议的支持
  • [ ] 部署托管的 MCP 服务器以提高可访问性

路线图

让我们共同构建开源基础设施,让所有 LLM 都能访问所有开放数据!

使用权:

  • 使开放数据可供所有 LLM 应用程序使用(Claude 之外)
  • 使开放数据数据源以可扩展的方式可搜索
  • 利用公共赞助的基础设施,通过 MCP 远程提供开放数据(SSE)

发布:

  • 构建许多开放数据 MCP 服务器,使所有开放数据真正可访问(我们需要您!)。
  • 我们这边正开始为瑞士构建 MCP 服务器~12k 开放数据集!
  • 让构建开放数据 MCP 服务器变得更加容易

我们处于非常早期的阶段,缺乏可用的数据集是目前的瓶颈。请自便!创建您的开放数据多方协作平台 (MCP) 服务器,并让用户在其法学硕士 (LLM) 申请中使用它。让我们将法学硕士 (LLM) 与来自政府、公共实体、公司和非政府组织的数百万个开放数据集连接起来!

随着 Anthropic 的 MCP 的发展,我们将调整和升级开放数据 MCP。

限制

  • Open Data MCP 服务器提供的所有数据都应该是开放的。
  • 请遵守数据提供商的数据许可。
  • 商业应用中必须引用我们的许可证。

参考

执照

该项目采用 MIT 许可证 - 有关详细信息,请参阅LICENSE文件

ID: wxjcqeq3gt