Toronto Open Data MCP Server について
Toronto Open Data MCP Serverは、CKAN APIを通じてトロントの公開データセットをLLMエージェントに提供します。データセットの検索と、API・CSV両方からのデータ取得に対応します。
主な機能
- 01トロントの公開データセット検索
- 02APIおよびCSVデータの取得
- 03APIフィールドの選択・絞り込み・並べ替え
- 04ダウンロード可能なCSVのプレビュー
- 05データセットのスキーマ確認
活用シーン
- 01飲食店検査に関するデータの検索
- 02フィールドや条件を指定したデータセットの照会
- 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:開発用インストール
-
リポジトリをクローンします:
git clone https://github.com/yourusername/toronto-open-data-mcp-server.git cd toronto-open-data-mcp-server -
依存関係をインストールします:
# Install main dependencies pip install -e . # Install test dependencies (optional) pip install -e ".[test]" -
サーバーを実行します:
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 エージェント向けに設計された複数のツールを提供します:
toronto_start_here()- ワークフローを説明する、最初に必ず呼び出すツールですtoronto_search_datasets(query)- キーワードで関連するデータセットを検索しますtoronto_smart_data_helper(dataset_id, user_question)- インテリジェントなデータ取得を行います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 ベースのオープンデータポータルと直接連携します
- 連携を重視した設計:ウェブ検索を置き換えるのではなく、ウェブ検索と併用できます
- エラーからの復旧:実行可能な提案を含む、インテリジェントなエラー処理を行います
貢献
- リポジトリをフォークします
- 機能ブランチを作成します
- 新しい機能のテストを追加します
- テストスイートを実行します:
python run_tests.py --all - プルリクエストを送信します
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。