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

私たちは次の 2 つのことを実現します:

  • オープン データ アクセス: LLM アプリケーションから多数のパブリック データセットに直接アクセスできます (Claude から始まり、今後さらに追加されます)。
  • 公開:コミュニティの協力と配信ネットワークを活用して、オープンデータを配信しましょう。みんなに使ってもらいましょう!

それはどうやってやるんですか?

  • アクセス: CLI ツールを使用して 2 回のクリックで LLM アプリケーションに MCP サーバーをセットアップします (Claude から開始します。次の手順についてはロードマップを参照してください)。
  • 公開:提供されているテンプレートとガイドラインを活用して、Open Data MCPに迅速に貢献し、公開しましょう。データを簡単に見つけられるようにしましょう!

使用法

アクセス: Open Data MCP CLI ツールを使用してオープンデータにアクセスします

前提条件

Claude デスクトップ アプリ クライアントで Open Data MCP を使用する場合は、Claude デスクトップ アプリをインストールする必要があります。

CLI および MCP サーバーを簡単に実行するには、 uv必要になります。

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 を再起動すると、チャットの右下に新しいハンマー アイコンが表示されます。

SBB 列車ネットワークの混乱について Claude に質問できるようになりました。Claude は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. ツール vs リソース
    • データに次のものが必要な場合は、ツール実装を選択します。
      • アクティブなクエリまたは計算
      • パラメータベースのフィルタリング
      • 複雑な変換
    • データが次の場合は、リソース実装を選択します。
      • 静的またはほとんど変化しない
      • メモリにロードできるほど小さい
      • シンプルなファイルベースのコンテンツ
      • 参照ドキュメントまたは参照テーブル
    • ガイダンスについてはMCPドキュメントを参照してください
  4. テスト
    • テストをtests/ディレクトリに追加する
    • 既存のテストパターンに従う(他のプロバイダーのテストを参照)
    • 必要なテスト範囲:
      • 基本機能
      • エッジケース
      • エラー処理
  5. 検証
    • 実験的なクライアントを使用して MCP サーバーをテストします: uv run src/odmcp/providers/client.py
    • すべてのエンドポイントが正しく応答することを確認する
    • エラーメッセージが役立つことを確認する
    • 一般的なクエリ負荷でパフォーマンスを確認する

その他の例については、 src/odmcp/providers/ディレクトリ内の既存のプロバイダーを確認してください。

貢献

私たちは野心的なロードマップを描いており、このプロジェクトをコミュニティと共に成長させたいと考えています。最終的な目標は、数百万ものデータセットをすべてのLLMアプリケーションで公開することです。

そのためには皆さんの助けが必要です!

不和

LLMにオープンデータを提供するという課題に取り組む、支援コミュニティを構築したいと考えています。Discordに参加してチャットを始めましょう: https://discord.gg/QPFFZWKW

私たちのコアガイドライン

目標規模が大きいため、最初はシンプルかつ実用的なアプローチを心がけています。問題が発生した場合は、コミュニティと共に解決していきます。

  1. シンプルさと保守性
    • 抽象化を最小限に抑えてコードベースをシンプルかつスケーラブルに保つ
    • 明確で分かりやすい実装に焦点を当てる
    • 不必要な複雑さを避ける
  2. 標準化/テンプレート
    • 提供されたテンプレートとガイドラインに一貫して従う
    • プロバイダー間で統一された構造を維持する
    • 同様の機能には共通のパターンを使用する
  3. 依存関係
    • 外部依存を最小限に抑える
    • 単一リポジトリ/パッケージのセットアップを優先する
    • 新しい依存関係の必要性を慎重に評価する
  4. コード品質
    • ruff を使用したコードのフォーマット
    • pytestで包括的なテストカバレッジを維持する
    • 一貫したコードスタイルに従う
  5. 型安全性
    • Pythonの型ヒントを全体的に使用する
    • APIリクエスト/レスポンス検証にPydanticモデルを活用する
    • データ処理における型安全性を確保する

戦術的トピック(現在の優先事項)

  • [x] ガイドライン、テストフレームワーク、貢献ワークフローを備えたリポジトリを初期化する
  • [x] 自動化されたPyPIリリースによるCI/CDパイプラインの実装
  • [x] プロバイダーテンプレートと最初のリファレンス実装を開発する
  • [ ]追加のオープンデータセットを統合する(積極的に貢献者を募集中)
  • [ ] リソースとツールの選択に関する明確なガイドラインを確立する
  • [ ] 長期的な成長に対応できるスケーラブルなリポジトリアーキテクチャを開発する
  • [ ] MCP SDK パラメータのサポートを拡張(認証、レート制限など)
  • [ ] 追加のMCPプロトコル機能(プロンプト、リソーステンプレート)を実装する
  • [ ] stdio以外の代替トランスポートプロトコルのサポートを追加(SSE)
  • [ ] アクセシビリティ向上のためホスト型MCPサーバーを導入

ロードマップ

すべての LLM がすべてのオープン データにアクセスできるオープン ソース インフラストラクチャを構築しましょう。

アクセス:

  • オープンデータをすべてのLLMアプリケーションで利用できるようにする(クロード以外)
  • オープンデータのデータソースをスケーラブルな方法で検索可能にする
  • 公的に支援されたインフラストラクチャを使用して、MCP を通じてオープンデータをリモートで利用できるようにする (SSE)

公開:

  • 多数のオープン データ MCP サーバーを構築して、すべてのオープン データに実際にアクセスできるようにします (皆さんの協力が必要です)。
  • 当社では、スイスの約 12,000 のオープン データセット用の MCP サーバーの構築を開始しています。
  • オープンデータMCPサーバーの構築をさらに簡単に

まだ初期段階であり、利用可能なデータセットの不足が現状のボトルネックとなっています。ぜひご自身でオープンデータMCPサーバーを構築し、LLMアプリケーションからも利用できるようにしましょう。LLMを、政府、公共機関、企業、NGOが運営する数百万ものオープンデータセットに接続しましょう!

Anthropic の MCP が進化するにつれ、Open Data MCP を適応させ、アップグレードしていきます。

制限事項

  • Open Data MCP サーバーによって提供されるすべてのデータはオープンである必要があります。
  • データプロバイダーのデータライセンスに従ってください。
  • 商用アプリケーションでは当社のライセンスを引用する必要があります。

参考文献

ライセンス

このプロジェクトはMITライセンスの下でライセンスされています - 詳細についてはLICENSEファイルを参照してください

-
security - not tested
A
license - permissive license
-
quality - not tested

LLM アプリケーションから多数の公開データセットに直接アクセスできます。

  1. See it in action
    1. Usage
      1. <u>Access</u>: Access Open Data using Open Data MCP CLI Tool
      2. <u>Publish</u>: Contribute by building and publishing public datasets
    2. Contributing
      1. Discord
      2. Our Core Guidelines
      3. Tactical Topics (our current priorities)
    3. Roadmap
      1. Access:
      2. Publish:
    4. Limitations
      1. References
        1. License
          ID: wxjcqeq3gt