Travel Itinerary Backend System with MCP について
FastAPIベースの旅行行程バックエンドで、AIアシスタントやアプリから旅程を作成・閲覧できます。REST API、SQLAlchemyのデータモデル、MCP対応に加え、プーケットとクラビのサンプルデータを備えています。
主な機能
- 01旅程と関連データモデルの管理
- 02REST APIによる旅程の作成と閲覧
- 03プーケットとクラビの初期データ
- 042~8泊のおすすめ旅程
活用シーン
- 01会話形式でおすすめ旅程を検索
- 02特定の旅程の詳細を確認
- 03新しい旅行プランを作成
MCP 対応
FastAPIにMCPを統合し、互換クライアントに旅程APIの操作を公開します。設定ではローカルの`/mcp`エンドポイントにSSEで接続します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
MCP を使用した旅行日程バックエンドシステム
旅行日程を管理するための FastAPI ベースのバックエンドシステムです。このプロジェクトでは、AI アシスタントとの連携を強化するために、Model Context Protocol(MCP)を実装しています。
機能
- データベースアーキテクチャ:旅行日程、宿泊施設、送迎、アクティビティの SQLAlchemy モデル
- RESTful API:旅行日程を作成・表示するエンドポイント
- シードデータ:プーケットとクラビー地域の現実的なデータを事前に登録したデータベース
- おすすめの旅行日程:2~8 泊のサンプル旅行日程
- MCP 連携:AI アシスタント向けの Model Context Protocol を全面的にサポート
インストール
-
Python 3.8 以降がインストールされていることを確認します。
-
こちらから uv(高速な Python パッケージインストーラー)をインストールします。
-
このリポジトリをクローンし、プロジェクトディレクトリに移動します。
git clone https://github.com/aryanranderiya/itinerary-mcp-server cd itinerary-mcp-server -
仮想環境を作成し、依存関係をインストールします。
uv venv uv sync -
仮想環境を有効化します。
Linux/macOS の場合:
source .venv/bin/activateWindows(コマンドプロンプト)の場合:
.venv\Scripts\activate.batWindows(PowerShell)の場合:
.venv\Scripts\Activate.ps1
プロジェクトの実行
開発モード
自動リロードを有効にして、開発モードでサーバーを実行します。 コードを編集する必要がある場合にのみ、開発モードで実行してください。
fastapi dev
本番モード
本番モードでサーバーを実行します。
fastapi start
API は http://localhost:8000 で、API ドキュメントは http://localhost:8000/docs で利用できます。
Model Context Protocol(MCP)の使用
このプロジェクトは Model Context Protocol (MCP) を実装しており、AI アシスタントが API と直接やり取りできるようにします。これにより、AI ツールが API の機能やデータ構造を理解し、ユーザーに代わって操作を実行できます。
MCP の設定
このプロジェクトには、必要な MCP 設定がすでに組み込まれています。
- fastapi_mcp ライブラリ:FastAPI に MCP 機能を統合するために、fastapi_mcp ライブラリを使用します。
- mcp.json:設定は
.vscode/mcp.jsonファイルにあり、MCP サーバーの設定を定義しています。
この設定では、Server-Sent Events(SSE)を使用して{ "servers": { "stay-often-mcp1": { "type": "sse", "url": "http://localhost:8000/mcp" } } }http://localhost:8000/mcpの MCP エンドポイントに接続します。
MCP 機能はサーバーに組み込まれており、すぐに使用できるため、追加の設定は不要です。
対応する MCP クライアント
MCP 対応クライアントであれば、どれでもこの API とのやり取りに使用できます。MCP クライアントには次のものがあります。
- GitHub Copilot
- Claude Desktop
- その他の MCP 対応アシスタント
MCP の詳細については、MCP 公式ドキュメントをご覧ください。
例:GitHub Copilot での使用
GitHub Copilot を使ってこの API とやり取りする方法は次のとおりです。
-
サーバーを起動します。
fastapi dev -
GitHub Copilot との会話で、次のような操作をリクエストできます。
-
すべての旅行日程を取得する:
プーケットのおすすめ旅行日程をすべて表示してもらえますか? -
特定の旅行日程を取得する:
旅行日程 ID 3 の詳細を表示してください -
新しい旅行日程を作成する:
次の詳細でクラビーの 5 泊の旅行日程を作成してください。名前:「Krabi Adventure」、1 日目はホテル 5 に宿泊してアクティビティ 10 と 11 を行い、2 日目はホテル 5 に宿泊してアクティビティ 12 を行うなど。
-
GitHub Copilot はこれらのリクエストを理解し、MCP プロトコルを通じて適切な API 呼び出しをユーザーに代わって実行します。
Screenshots
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。