matsumoto-buss-mcp
Provides Matsumoto city community bus information via GTFS data, enabling stop search, departure times, nearby stops, and route details.
README
松本バス MCP サーバー
松本市コミュニティバス情報を提供するModel Context Protocol (MCP)サーバーです。
概要
このMCPサーバーは、松本市が公開するGTFS-JP形式のバス情報を活用し、LLMが自然言語でバス情報を照会・提供できるようにします。観光客や市民が効率的にバスを利用できるよう支援します。
特徴
- バス停検索: 名前による部分一致検索
- 次発バス検索: 指定バス停からの次のバス発車時刻を取得
- 近隣バス停検索: GPS座標から最寄りのバス停を検索
- 路線情報: 路線の詳細と経由バス停の一覧
- 自動更新: GTFSデータの定期的な自動更新
インストール
必要要件
- Python 3.10以上
- pip
セットアップ
# リポジトリのクローン
git clone https://github.com/Takamasa045/matsumoto-buss-mcp.git
cd matsumoto-buss-mcp
# 依存関係のインストール
pip install -e .
使用方法
MCPサーバーとして起動
python -m matsumoto_bus_mcp
MCP設定ファイル
Claude Desktopやその他のMCPクライアントで使用する場合、設定ファイルに以下を追加してください:
{
"mcpServers": {
"matsumoto-bus": {
"command": "python",
"args": ["-m", "matsumoto_bus_mcp"],
"cwd": "/path/to/matsumoto-buss-mcp"
}
}
}
利用可能なツール
1. search_bus_stops
バス停を名前で検索します(部分一致可)。
パラメータ:
stop_name(string, 必須): バス停名limit(integer, オプション): 最大返却件数(デフォルト: 10)
例:
{
"stop_name": "松本駅",
"limit": 5
}
2. get_next_departures
指定バス停から指定時刻以降に出発する次のバスを検索します。
パラメータ:
stop_id(string, 必須): バス停IDdeparture_time(string, オプション): 基準時刻(ISO 8601形式)limit(integer, オプション): 返却件数(デフォルト: 5)route_filter(string, オプション): 路線名フィルタ
例:
{
"stop_id": "STOP_001",
"limit": 3
}
3. find_nearby_stops
指定座標から最寄りのバス停を検索します。
パラメータ:
latitude(number, 必須): 緯度longitude(number, 必須): 経度radius(integer, オプション): 検索半径(メートル、デフォルト: 500)limit(integer, オプション): 最大返却件数(デフォルト: 5)
例:
{
"latitude": 36.2380,
"longitude": 137.9723,
"radius": 1000
}
4. get_route_info
路線の詳細情報と経由バス停一覧を取得します。
パラメータ:
route_id(string, 必須): 路線IDdirection(integer, オプション): 方向(0 or 1)
例:
{
"route_id": "ROUTE_001",
"direction": 0
}
5. list_all_routes
運行中の全路線一覧を取得します。
パラメータ: なし
データソース
- プライマリデータ: GTFSデータポータル
- ライセンス: CC-BY 4.0(松本市オープンデータ利用規約)
- 更新頻度: 松本市による更新タイミングに準拠
技術スタック
- MCP SDK: Model Context Protocol実装
- データベース: SQLite
- GTFS処理: Python標準ライブラリ
- 地理計算: Haversine公式による距離計算
プロジェクト構造
matsumoto-buss-mcp/
├── src/
│ └── matsumoto_bus_mcp/
│ ├── __init__.py
│ ├── __main__.py
│ ├── server.py # MCPサーバーメイン
│ ├── config.py # 設定管理
│ ├── database.py # データベース管理
│ ├── gtfs_loader.py # GTFSデータローダー
│ └── bus_service.py # バス情報検索サービス
├── data/ # データディレクトリ
├── logs/ # ログディレクトリ
├── pyproject.toml # プロジェクト設定
└── README.md
環境変数
MATSUMOTO_GTFS_URL: GTFSデータのダウンロードURL(デフォルト: gtfs-data.jp)LOG_LEVEL: ログレベル(DEBUG/INFO/WARNING/ERROR、デフォルト: INFO)
制約事項
- リアルタイム位置情報は含まれません(GTFS Realtime未対応)
- 遅延情報は提供できません
- データ更新は松本市の公開タイミングに依存します
ライセンス
MIT License
データソース: 松本市オープンデータ(CC-BY 4.0)
貢献
プルリクエストを歓迎します。大きな変更の場合は、まずissueを開いて変更内容を議論してください。
サポート
問題が発生した場合は、GitHubのIssuesで報告してください。
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。