mcpField
F
Fortrip

Fortrip

リモート
fortrip.ai地図・旅行11 日前に更新
リポジトリ公式サイト

Fortrip について

Fortrip は、CLI とホスト型またはローカルの MCP 接続を通じて、ホテル検索、リアルタイムの客室料金、注文、支払いリンクを提供します。Fortrip を利用するエージェントや旅行者向けに、CLI、MCP ツール、エージェント接続で共通の API 契約とガイドを用意しています。

主な機能

  1. 01ホテル検索とリアルタイム料金の確認
  2. 02注文と支払いリンクの作成
  3. 03OAuth 対応クライアントでのホスト型 MCP 利用
  4. 04CLI によるローカル MCP ブリッジの起動
  5. 05共通 API 契約とエージェントガイド

活用シーン

  1. 01ホテルを探して現在の料金を比較
  2. 02注文を作成して支払いリンクを共有
  3. 03MCP クライアントを Fortrip のホテルツールに接続

MCP 対応

Fortrip は OAuth 対応クライアント向けに `https://mcp.fortrip.ai/` のホスト型 MCP サーバーを提供し、`npx -y fortrip mcp` でローカルブリッジも起動できます。どちらもホテル検索、料金、注文、支払いリンク機能を利用できます。

設定

リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。

エンドポイントhttps://mcp.fortrip.ai/
インストールコマンドをコピー
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。

パッケージ
npmfortrip3.3.0

ツール

詳細

Fortrip

Fortrip の公開エージェント向け機能を1つのリポジトリにまとめています。ホテル検索、リアルタイムのオファーと注文に対応する fortrip コマンドラインツール、すべてのエージェント向け機能で共有される仕様、エージェントを Fortrip に案内するストアの掲載情報が含まれています。現時点ではホテルのみです。

ここにあるものはすべて、Fortrip API v1 の https://api.fortrip.ai/v1 またはホスト型 MCP サーバーの https://mcp.fortrip.ai/ と通信します。利用するには、ブラウザーで OAuth を使って Fortrip にサインインしている必要があります。

Fortrip の利用方法

  • シェルから、またはシェルを使えるエージェントから利用する場合: npx -y fortrip <command>。まずは npx -y fortrip login を実行してください。コマンド、サインイン、終了コードについてはCLI の READMEを参照してください。

  • MCP クライアントで利用する場合: クライアントが OAuth 対応のリモートサーバーをサポートしていれば、ホスト型サーバー https://mcp.fortrip.ai/ に接続してください。または、ローカルブリッジ npx -y fortrip mcp を実行してください。Claude Desktop、Cursor、Codex、Claude Code の設定についてはCLI の READMEを参照してください。Claude プラグインと OpenAI プラグインは、ホスト型サーバーを使用します。

  • シェルコマンドは実行できるものの、Fortrip の MCP ツールを持たないエージェント向けのスキルとして利用する場合:

    npx skills add FortripEngineering/fortrip --skill fortrip-cli
    

構成

パス内容公開方法
packages/contractFortrip API v1 の仕様です。制限、パス、リクエストとレスポンスのスキーマ、エラーコード、フィールドの規則、MCP ツールと CLI コマンドの仕様、エージェントガイドを一度だけ記述し、MCP サーバー、Claude スキル、CLI 向けに生成しますnpm:@fortrip/agent-contract。main の v* タグから、fortrip とともに公開
packages/clifortrip CLI です。シェルからのホテル検索、リアルタイムのオファー、注文、支払いリンク、ローカル MCP ブリッジ(fortrip mcp)、エージェントガイド(fortrip guide)を提供しますnpm:fortrip。main の v* タグから、@fortrip/agent-contract とともに公開
plugins/claudeClaude プラグイン(ホスト型 MCP サーバー+静的スキル、生成済み)開発者ポータルから提出します。ルートの .claude-plugin/marketplace.json を使うと、Claude Code でこのリポジトリをマーケットプレイスとして追加できます
plugins/openaiChatGPT / Codex プラグインZip ファイルを OpenAI ポータルにアップロード
plugins/registryMCP Registry のエントリFortrip を MCP Registry に公開ワークフロー
skills/fortrip-cliシェルを使えるエージェント向けスキル(生成済み)npx skills add FortripEngineering/fortrip --skill fortrip-cli で main から読み込みます
scriptsリポジトリ全体で使うスクリプトです。generate.ts はスキルを生成し、validate.mjs は掲載情報を検証します

開発

Node.js 22 以降と pnpm 11 が必要です。

pnpm install
pnpm test             # tests of every package, and of the scripts
pnpm generate         # renders the skills from the contract
pnpm generate --check # fails with a diff when a generated file is stale
pnpm build && pnpm validate   # checks the store listings

pnpm typecheck と pnpm build もすべてのパッケージで実行されます。CI では Node.js 22 と 24 で型チェック、テスト、ビルドを実行し、24 ではさらに pnpm generate --check、pnpm validate、および .、plugins/claude、skills に対する claude plugin validate --strict も実行します。

生成ファイル

plugins/claude/skills/fortrip と skills/fortrip-cli にあるスキル(SKILL.md と references/planning.md)、およびコントラクトの src/guide-data.generated.ts は生成ファイルです。編集しないでください。packages/contract/guide/*.md にあるガイドの断片(または scripts/generate.ts にあるスキルのフロントマター)を変更し、pnpm generate を実行して結果をコミットしてください。断片では各機能がどの内容を示すかを定めており、Claude スキル、MCP の指示、CLI のガイドはすべてそれらから生成されるため、内容が食い違うことはありません。

公開

Claude プラグイン

plugins/claude は、2 つの部分で構成されるプラグインです。

  • .mcp.json はホストされた MCP サーバーを指定します。claude.ai と Cowork では、プラグインの「Connectors」タブに表示され、ユーザーは Fortrip アカウントでサインインします(OAuth)。Claude Code はこのサーバーに直接接続します。
  • skills/fortrip/ は生成されたスキルで、ツールの使い方を Claude に伝えます。呼び出し順序、部屋ごとの宿泊人数、料金と通貨、支払いリンクの前に確認すること、エラーなどが記載されています。references/planning.md では、日程の柔軟な設定、予算、複数の宿泊先への分割、複数の目的地について説明しています。

このスキルは単独で動作します。ディレクトリでは、プラグインが実行時に手順を取得することは許可されておらず(Software Directory Policy §2F)、バリデーターがピン留めされていない npx ランチャーをブロックするため、CLI スキルは plugins/claude の外に置かれています。配下のファイルに npx、fortrip@latest、または get_planning_guide が含まれていると、pnpm validate は失敗します。

開発者ポータルで plugins/claude フォルダーを提出します。次のコマンドで確認します。

claude plugin validate --strict plugins/claude
claude plugin validate --strict .

2 つ目のコマンドは、リポジトリのルートにある .claude-plugin/marketplace.json を確認します。ここでは plugins/claude がプラグインとして登録されており、npx skills add で skills/fortrip-cli の隣にあるプラグインのスキルを見つけられます。また、Claude Code でこのリポジトリをマーケットプレイスとして追加できます。

Claude Code は plugin.json の version に従ってユーザーを固定するため、生成されたスキルテキストを含め、plugins/claude 内の内容を変更したら必ずバージョンを上げます。文言の変更にはパッチ、新しい動作やコンポーネントの追加にはマイナー(1.1.0 ではプラグインをホストされた MCP サーバーに移行)、利用方法を変更する場合はメジャーバージョンを上げます。ディレクトリで使用されるリスティングアイコンは、最初の提出時のものです。

CLI スキル

skills/fortrip-cli は静的なスキルとして提供される CLI ガイドです。エージェントはスキル自体からコマンド、呼び出し順序、サインイン方法、支払いリンクの前にユーザーに表示する内容を読み取ります。Node.js 22 以降が必要で、Claude ディレクトリプラグインには含まれません。

npx skills add FortripEngineering/fortrip --skill fortrip-cli
OpenAI プラグイン

plugins/openai/plugin.json にはリスティングの説明文とレビュー用テストケースが、mcp.json にはホストされたサーバーの URL が記載されています。mcp.json は Agent Plugins スキーマ(type: streamable-http)に従い、plugins/claude/.mcp.json は Claude のスキーマ(type: http)に従います。どちらも同じサーバーを指定します。アップロード用ファイルを作成します。

cd plugins/openai && rm -f ../../fortrip-openai.zip && zip -rX ../../fortrip-openai.zip plugin.json mcp.json assets

zip ファイルを OpenAI ポータルにアップロードします。ポータルでは、mcp.fortrip.ai が配信する https://mcp.fortrip.ai/.well-known/openai-apps-challenge を通じてドメインを検証します。

MCP Registry

plugins/registry/server.json では、Fortrip を io.github.FortripEngineering/fortrip として登録し、2 つの接続方法を指定しています。ホストされたサーバー(remotes)と、fortrip という npm パッケージを fortrip mcp として実行する方法(packages)です(packages/cli/package.json の mcpName はエントリーの名前と一致させる必要があります)。このエントリーは専用のワークフロー Publish Fortrip to MCP Registry(.github/workflows/publish-mcp-registry.yml)で公開されます。このワークフローは main からのみ実行でき、mcp-registry 環境で人による承認を待ちます。変更を公開するには、version を上げ(バージョンを下げることはできません)、packages[].version を npm 上の CLI バージョンに設定してから、main にマージし、ワークフローを実行します。CLI のリリース後は、npm に新しいバージョンが公開されてからワークフローを実行します。

古いバージョンを非推奨にする場合、または再び有効にする場合は、Set an MCP Registry version's status(.github/workflows/mcp-registry-status.yml)を実行し、バージョンとステータスを指定します。非推奨にする場合はメッセージも指定します(active の場合、パブリッシャーはメッセージを受け取りません)。このワークフローも main からのみ実行でき、承認が必要です。個人アカウントでの mcp-publisher login github では実行できません。この認証では io.github.<user>/* しか取得できないため、組織の名前空間にはこのリポジトリの OIDC アイデンティティを使用します。

Registry ではサーバー URL を 1 つの名前に紐付けるため、名前を変更するには、古いエントリーを削除してから新しいエントリーを公開します。

リリース

fortrip と @fortrip/agent-contract は、同じバージョンで同時にリリースされます。

  1. PR で、packages/cli/package.json と packages/contract/package.json の両方の version を新しい X.Y.Z に設定し(各パッケージのディレクトリで npm version X.Y.Z --no-git-tag-version を実行します)、plugins/registry/server.json の packages[].version も同じ値に設定して、pnpm generate を実行し、変更内容をコミットします。CI が通過したら、PR を main にマージします。

  2. main 上のマージコミットにタグを付けて、タグをプッシュします。

    git checkout main && git pull
    git tag vX.Y.Z && git push origin vX.Y.Z
    
  3. 担当者が npm-publish 環境を承認します。その後、ワークフロー publish.yml が、信頼されたパブリッシング(GitHub Actions から npm への OIDC サインイン。GitHub に npm トークンを保存する必要はありません)を通じて両方のパッケージを npm に公開し、プロベナンス情報を付与します。

  4. npm に新しいバージョンが反映されたら、(上記の)MCP Registry ワークフローを実行します。

このワークフローは、vX.Y.Z または vX.Y.Z-rc.N 形式ではないタグ、いずれかの package.json の version と一致しないタグ、または main 上にないタグを拒否します。build ジョブでは型チェック、テスト、ビルドを実行し、両方の tarball をパッケージ化します。publish ジョブでは、npm-publish 環境で、インストールやビルドを行わずにそれらの tarball を公開します(@fortrip/agent-contract が先です)。vX.Y.Z-rc.N のタグが付いたリリース候補は next dist-tag で公開されるため、npm install では取得されません。一部のパッケージだけが公開された場合、publish ジョブを再実行すると、すでに npm に公開済みのものはスキップされます。

ライセンス

Apache License 2.0。Copyright 2026 FortripAI, Inc.(NOTICE を参照)。2.0.0 より前のリリースは MIT License の下で公開されていました。このライセンスは、ホスト型 Fortrip サービス、ホテル在庫、またはサードパーティのデータへのアクセスを許可するものではありません。

商標

「Fortrip」と Fortrip のロゴは FortripAI, Inc. の商標です。Apache License 2.0 は、ソフトウェアの出所を説明し、NOTICE ファイルの内容を複製するために合理的かつ慣習的な範囲で必要となる場合を除き、FortripAI, Inc. の商号、商標、サービスマーク、または製品名の使用を許可するものではありません(第 6 条)。

コメント

MCP は初めてですか?

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

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