mcpField
T
Toronto Open Data MCP Server

Toronto Open Data MCP Server

ローカル
github.com/vduquetteデータ・分析273 週間前に更新

Toronto Open Data MCP Server について

Toronto Open Data MCP Serverは、CKAN APIを通じてトロントの公開データセットをLLMエージェントに提供します。データセットの検索と、API・CSV両方からのデータ取得に対応します。

主な機能

  1. 01トロントの公開データセット検索
  2. 02APIおよびCSVデータの取得
  3. 03APIフィールドの選択・絞り込み・並べ替え
  4. 04ダウンロード可能なCSVのプレビュー
  5. 05データセットのスキーマ確認

活用シーン

  1. 01飲食店検査に関するデータの検索
  2. 02フィールドや条件を指定したデータセットの照会
  3. 03ダウンロード可能なCSVデータのプレビュー

MCP 対応

MCPクライアントに、トロントのオープンデータの検索・照会、スキーマ確認、データセット内容の取得やプレビュー用ツールを提供します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

インストール方法は未掲載です

このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。

リポジトリ

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

トロントオープンデータ MCP サーバー

CKAN API を通じてトロントのオープンデータに直接アクセスできる MCP(Model Context Protocol)サーバーです。このサーバーを使用すると、LLM エージェントがトロントの 500 件を超える公開データセットを効率よく検索、探索、照会できます。

機能

  • 🔍 スマートなデータセット検索:インテリジェントな候補表示により、トロントの 500 件を超えるデータセットを検索します
  • 🧠 インテリジェントなデータヘルパー:API と CSV の両方のデータソースを自動的に処理します
  • 📊 柔軟なクエリ:API データセットのフィルタリング、並べ替え、フィールド選択に対応します
  • 📁 CSV 対応:ダウンロード可能な CSV データセットを自動的に取得してプレビューします
  • 🤝 LLM に適した設計:追加のコンテキストが必要な場合に、ウェブ検索と連携して利用できるよう設計されています
  • ✅ 堅牢なエラー処理:実行可能な提案を含む、わかりやすいエラーメッセージを表示します

インストール

オプション 1:uvx を使用する(MCP での使用に推奨)

このサーバーを任意の MCP クライアントで使用する最も簡単な方法です:

brew install uv
# No installation needed! uvx will handle everything
# Just use in your MCP client configuration:
uvx toronto-open-data-mcp-server
オプション 2:開発用インストール
  1. リポジトリをクローンします:

    git clone https://github.com/yourusername/toronto-open-data-mcp-server.git
    cd toronto-open-data-mcp-server
    
  2. 依存関係をインストールします:

    # Install main dependencies
    pip install -e .
    
    # Install test dependencies (optional)
    pip install -e ".[test]"
    
  3. サーバーを実行します:

    python main.py
    

MCP クライアントの設定

uvx を使用する(最も簡単な方法)

これを MCP クライアントの設定に追加します:

{
  "mcpServers": {
    "Toronto Open Data Server": {
      "command": "uvx",
      "args": ["toronto-open-data-mcp-server"]
    }
  }
}
設定ファイルの場所
  • Claude Desktop:~/Library/Application Support/Claude/claude_desktop_config.json
  • Cursor:設定ファイルの場所については、Cursor の MCP ドキュメントを確認してください
  • その他の MCP クライアント:クライアントのドキュメントを参照してください

使用方法

クイックスタート

このサーバーは、LLM エージェント向けに設計された複数のツールを提供します:

  1. toronto_start_here() - ワークフローを説明する、最初に必ず呼び出すツールです
  2. toronto_search_datasets(query) - キーワードで関連するデータセットを検索します
  3. toronto_smart_data_helper(dataset_id, user_question) - インテリジェントなデータ取得を行います
  4. toronto_popular_datasets() - よく使われるデータセットにすばやくアクセスします
ワークフローの例
# 1. Start with guidance
toronto_start_here()

# 2. Search for relevant data
toronto_search_datasets("restaurant inspection")

# 3. Get data intelligently
toronto_smart_data_helper("dinesafe", "recent restaurant inspection failures")

# 4. Advanced filtering (if needed)
toronto_query_dataset_data("dinesafe", 
                           filters={"establishment_status": "Conditional Pass"},
                           sort="inspection_date desc",
                           limit=10)
よく使われるデータセット
  • dinesafe - レストランの検査情報と衛生評価
  • traffic-signals - 信号機の設置場所と点灯時間
  • parks-facilities - 公園、プール、レクリエーション施設
  • business-licences - トロントで営業許可を受けた事業者
  • building-permits - 建設および改修の許可

テスト

このプロジェクトには、ユニットテスト、統合テスト、ワークフローテストを含む包括的なテストが用意されています。

前提条件

テストの依存関係をインストールします:

pip install -e ".[test]"
テストの実行
クイックテストコマンド
# Run unit tests only (recommended for development)
python run_tests.py

# Run with verbose output
python run_tests.py --verbose

# Run with coverage report
python run_tests.py --coverage

# Run integration tests (hits real Toronto API)
python run_tests.py --integration

# Run all tests (unit + integration)
python run_tests.py --all

API リファレンス

コアツール
toronto_start_here() -> str

ワークフローのガイダンスとサーバーの機能を提供する、最初に必ず呼び出すツールです。

toronto_search_datasets(query: str, limit: int = 10) -> str

キーワードでトロントのデータセットを検索します。

toronto_smart_data_helper(dataset_id: str, user_question: str, limit: int = 10) -> str

API と CSV の両方のデータソースを自動的に処理する、インテリジェントなヘルパーです。

toronto_query_dataset_data(dataset_id: str, filters: Dict = None, fields: List = None, limit: int = 10, sort: str = None) -> str

API データセットのフィルタリングと並べ替えを行う高度なクエリ機能です。

ユーティリティツール
toronto_popular_datasets() -> str

よく使われるデータセットにすばやくアクセスします。

toronto_get_dataset_schema(dataset_id: str) -> str

API データセットのフィールド名と型を取得します。

toronto_fetch_csv_data(csv_url: str, max_lines: int = 50) -> str

CSV ファイルの内容を取得してプレビューします。

アーキテクチャ

  • FastMCP フレームワーク:ツールを簡単に定義できる FastMCP フレームワークを基盤としています
  • CKAN API:トロントの CKAN ベースのオープンデータポータルと直接連携します
  • 連携を重視した設計:ウェブ検索を置き換えるのではなく、ウェブ検索と併用できます
  • エラーからの復旧:実行可能な提案を含む、インテリジェントなエラー処理を行います

貢献

  1. リポジトリをフォークします
  2. 機能ブランチを作成します
  3. 新しい機能のテストを追加します
  4. テストスイートを実行します:python run_tests.py --all
  5. プルリクエストを送信します

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。