Upgrade to Pro — share decks privately, control downloads, hide ads and more …

MCPで実現!AIシェアサイクル検索

 MCPで実現!AIシェアサイクル検索

Avatar for 山田慧史

山田慧史

March 04, 2026
Tweet

More Decks by 山田慧史

Other Decks in Technology

Transcript

  1. MCPとは何か? Model Context Protocol AIに「外部ツール・データ」を持たせるための標準プロトコル 🤖 AI (Claude) 質問・依頼を 受け付ける

    🔌 MCPサーバー 外部APIや データを提供 📡 データソース リアルタイム 情報を返す Anthropicが2024年11月に公開したオープン規格。ClaudeだけでなくGPT等でも利用可能。 2
  2. GBFSとは何か? General Bikeshare Feed Specification シェアモビリティのリアルタイムデータを提供する世界標準オープンデータ規格 800+ 対応システム数 世界中のシェアサイクル 50+

    対応国 北米・欧州・アジア 無料 オープンデータ 誰でも利用可能 󰏦 日本の対応例: ドコモ・バイクシェア/ HELLO CYCLING など 3
  3. 今回作ったもの GBFSのMCPサーバー 自然言語でシェアサイクルのリアルタイムデータを操作できる Python 3.11 mcp SDK httpx Claude Desktop

    💬 「東京駅周辺で自転車が借りられるステーションを教えて」 ✅ 地図 + リアルタイム在庫(台数・空きドック)を即座に表示! 4
  4. Level 1 ドコモ・バイクシェア固定で基本ツールを実装 実装したツール get_system_info システム基本情報を取得 get_station_info 全ステーション一覧(位置・名称・容量) get_station_status リアルタイム在庫(自転車数・空きドック)

    find_nearest_stations 緯度経度から近い順にステーションを検索 get_system_alerts 障害・メンテナンス情報 設計のポイント autodiscovery対応 (gbfs.jsonから動的にURL取得) 将来のマルチシステム化を 見据えた設計 丁寧なエラーハンドリング (フィード不在にも対応) 5
  5. Level 1 デモ結果 💬 「東京駅周辺で自転車が借りられるステーションを教えて」 # ステーション名 距離 利用可能台数 1

    A4-01. 丸ビル(南側駐輪場) 290m 2台 ✅ 2 B2-21. 八重洲二丁目北地区広場 331m 0台 ❌ 3 A4-08. 永代通り(大手町駅 B2c出口前) 350m 1台 ✅ 4 A4-11. 二重橋前駅(メトロ 4番出口) 457m 4台 ✅ 🗺 地図 + リアルタイム在庫データが自然言語の質問だけで取得できた! 6
  6. Level 3 高度な分析・比較機能の追加 get_vehicle_types 車種情報を取得 • 車種ID・名称 • 形状(bicycle /

    scooter) • 推進方式(human / electric) • 電動アシスト有無の確認が可能 compare_systems 複数都市を横断比較 • 総ステーション数 • 利用可能台数の合計 • 稼働率(空き率) • asyncioで並列取得(高速) 活用例 💬 「東京・大阪・名古屋のシェアサイクルを比較して」 → 3都市の稼働率・台数・電動自転車の有無を一覧で表示 8
  7. 開発の歩み Level 1 ✓ Claude Codeで実装 ✓ Python 3.11環境構築 ✓

    5つの基本ツール完成 ✓ Claude Desktopで動作確認 Level 2 ✓ systems.csv活用 ✓ world 800+システム対応 ✓ get_systems追加 ✓ system_idで切り替え Level 3 ✓ 車種情報ツール追加 ✓ 複数都市横断比較 ✓ asyncio並列取得 ✓ 稼働率・電動判定 🚀 1つのPythonファイル(〜400行)でレベル1→3まで段階的に進化させることができた 9