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
视窗
开放数据 MCP - CLI 工具
概述
例子
瑞士 SBB(火车公司)提供商的快速入门:
重新启动 Claude,您应该会在聊天右下角看到一个新的锤子图标。
您现在可以向 Claude 询问有关 SBB 火车网络中断的问题,它将根据在data.sbb.ch
上收集的数据回答您的问题。
发布:通过构建和发布公共数据集做出贡献
先决条件
- 安装 UV 包管理器Copy
- 克隆和设置存储库Copy
- 安装预提交钩子Copy
发布说明
- 创建新的提供程序模块
- 每个数据源都需要自己的 python 模块。
- 在
src/odmcp/providers/
中创建一个新的 Python 模块。 - 使用以下模式的描述性名称:
{country_code}_{organization}.py
(例如,ch_sbb.py
)。 - 以我们的 模板文件作为基础开始。
- 实现所需的组件
- 按照模板结构定义您的工具和资源
- 每个工具或资源应该具有:
- 清晰描述其目的
- 使用 Pydantic 模型定义明确的输入/输出模式
- 正确的错误处理
- 文档字符串
- 工具与资源
- 如果您的数据需要,请选择工具实现:
- 主动查询或计算
- 基于参数的过滤
- 复杂的变换
- 如果您的数据属于以下情况,请选择资源实施:
- 静态或很少变化
- 足够小,可以加载到内存中
- 简单的基于文件的内容
- 参考文档或查找表
- 参考MCP 文档获取指导
- 如果您的数据需要,请选择工具实现:
- 测试
- 在
tests/
目录中添加测试 - 遵循现有的测试模式(参见其他提供商的测试)
- 所需测试覆盖率:
- 基本功能
- 边缘情况
- 错误处理
- 在
- 验证
- 使用我们的实验客户端测试您的 MCP 服务器:
uv run src/odmcp/providers/client.py
- 验证所有端点正确响应
- 确保错误消息有用
- 使用典型查询负载检查性能
- 使用我们的实验客户端测试您的 MCP 服务器:
有关其他示例,请检查src/odmcp/providers/
目录中现有的提供程序。
贡献
我们制定了雄心勃勃的路线图,希望这个项目能够与社区一起发展壮大。最终目标是将数百万个数据集公开提供给所有法学硕士(LLM)项目。
为此我们需要您的帮助!
不和谐
我们希望围绕将开放数据引入法学硕士课程这一挑战,建立一个互助社区。欢迎加入我们的 Discord 聊天: https://discord.gg/QPFFZWKW
我们的核心准则
由于我们的目标规模,我们希望一开始就保持简单务实。在社区出现问题时,及时解决。
- 简单性和可维护性
- 尽量减少抽象,以保持代码库简单且可扩展
- 专注于清晰、直接的实施
- 避免不必要的复杂性
- 标准化/模板
- 始终遵循提供的模板和指南
- 保持跨提供商的统一结构
- 对类似功能使用通用模式
- 依赖项
- 将外部依赖降至最低
- 优先考虑单个存储库/包设置
- 仔细评估新依赖项的必要性
- 代码质量
- 使用 ruff 格式化代码
- 使用 pytest 保持全面的测试覆盖率
- 遵循一致的代码风格
- 类型安全
- 始终使用 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 服务器提供的所有数据都应该是开放的。
- 请遵守数据提供商的数据许可。
- 商业应用中必须引用我们的许可证。
参考
- 对Anthropic 的开源 MCP发布支持此类举措表示赞赏。
执照
该项目采用 MIT 许可证 - 有关详细信息,请参阅LICENSE文件
This server cannot be installed
直接从您的 LLM 应用程序访问许多公共数据集。