mcpField
M
MCP Server Project (Proof of Concept)

MCP Server Project (Proof of Concept)

ローカル
github.com/BayernTourismus地図・旅行217 週間前に更新

MCP Server Project (Proof of Concept) について

BayernCloud Tourismus API を通じてバイエルンの観光情報を扱う MCP サーバーです。イベント、ツアー、観光地、飲食店の検索に加え、分類や位置情報の機能を備えています。

主な機能

  1. 01場所や条件を指定したイベント検索
  2. 02ツアーの絞り込みと標高プロファイル取得
  3. 03観光地と飲食店の検索
  4. 04項目の詳細と分類の取得
  5. 05住所と座標の相互変換
  6. 06車での距離と直線距離の計算

活用シーン

  1. 01期間とエリアを指定してイベントを探す
  2. 02距離や標高差でハイキングコースを絞る
  3. 03座標周辺の観光地や飲食店を探す
  4. 04住所を座標に変換して距離を見積もる

MCP 対応

BayernCloud Tourismus API の検索、詳細、分類、位置情報機能をツールとして MCP クライアントに公開します。API トークンはサーバー側に保持されます。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

インストール方法は未掲載です

このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。

リポジトリ

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

BayernCloud MCP Server

Model Context Protocol (MCP) サーバーです。BayernCloud Tourismus API を Claude などの AI アシスタントに公開します。バイエルン州の観光データ(イベント、ツアー、POI、飲食店)を検索、絞り込み、地理情報ツールで利用できます。

ツール

検索
ツール説明
search_events地理的な半径、期間、全文検索、分類でイベントを検索します
search_tours距離、標高差(Höhenmeter)、所要時間、周回コースの条件でツアーを検索します
search_pois地理情報、全文検索、分類で観光スポットを検索します
search_gastronomy地理情報、全文検索、分類でレストラン、カフェ、バーを検索します
詳細
ツール説明
get_itemUUID を指定して、あらゆる項目の詳細を取得します
get_elevation_profileツアーの標高プロフィール(Höhenprofil)を取得します
分類
ツール説明
list_classification_trees利用可能なすべてのカテゴリツリー(30 分間キャッシュ)
get_classificationsツリー内のカテゴリ。検索結果の絞り込みには ID を使用します
ユーティリティ
ツール説明
suggestイベント、ツアー、POI のタイトルを自動補完します
geocode住所 → 座標
reverse_geocode座標 → 住所
route_distance2 地点間の車での距離(OSRM)
haversine_distance2 地点間の直線距離

セットアップ

前提条件
  • Node.js v18+
  • BayernCloud Tourismus API トークン — bayerncloud.digital で取得してください
インストール
git clone <repo>
cd mcp-server
npm install
npm run build
設定

.env.example を .env にコピーし、値を入力します。

BCT_API_TOKEN=your_token_here
BAYERN_CLOUD_API_URL=https://data.bayerncloud.digital/api/v4

# Endpoint UUIDs — copy from the end of the endpoint URL in the BayernCloud portal
BCT_ENDPOINT_EVENTS=107df2c2-ff3e-4eaa-b24c-863d85d505d1
BCT_ENDPOINT_TOURS=cd177e6a-c6db-4efd-84a6-decf4a3711de
BCT_ENDPOINT_POIS=7b228c8c-23f5-49b9-b55e-e18e73386fbb
BCT_ENDPOINT_GASTRONOMY=5453abda-5e76-43f0-acdf-4855c3cb351e

# Geocoding (optional — defaults shown)
NOMINATIM_BASE_URL=https://nominatim.openstreetmap.org
OSRM_BASE_URL=http://router.project-osrm.org

使用方法

ローカル(Claude Desktop)

claude_desktop_config.json に追加します。

{
  "mcpServers": {
    "bayerncloud-mcp": {
      "command": "node",
      "args": ["/path/to/mcp-server/dist/index.js"]
    }
  }
}
パブリック HTTP サーバー

サーバーはパブリック HTTP エンドポイントとしても実行できます(Streamable HTTP トランスポート。IP ごとに 1 分あたり 60 リクエストまでに制限)。

PORT=3000 npm run start:http

エンドポイント:

  • POST /mcp — MCP エンドポイント
  • GET /health — ヘルスチェック

リモート MCP サーバーとして Claude に追加します。

{
  "mcpServers": {
    "bayerncloud-mcp": {
      "type": "http",
      "url": "https://your-deployment.example.com/mcp"
    }
  }
}
Railway にデプロイ
npm run build
railway login && railway init && railway up

.env にある同じ環境変数を Railway ダッシュボードで設定します。PORT は自動的に設定されます。

開発

npm run build      # compile TypeScript → dist/
npm run start      # run stdio server (local)
npm run start:http # run HTTP server (public)
npm run dev        # watch mode

アーキテクチャ

src/
  index.ts          # stdio entry point (Claude Desktop)
  server-http.ts    # HTTP entry point (public deployment)
  lib/
    create-server.ts  # registers all tools on an McpServer instance
    bct.ts            # BayernCloud API client
    config.ts         # environment variables + dotenv
    format.ts         # response formatters (strips JSON-LD overhead)
    cache.ts          # TTL cache for classification data
    nominatim.ts      # Nominatim + OSRM client
  tools/
    events.ts         # search_events
    tours.ts          # search_tours
    pois.ts           # search_pois
    gastronomy.ts     # search_gastronomy
    item.ts           # get_item
    elevation.ts      # get_elevation_profile
    classifications.ts # list_classification_trees, get_classifications
    suggest.ts        # suggest
    geocoding.ts      # geocode, reverse_geocode, route_distance, haversine_distance

BCT API トークンがクライアントに公開されることはありません。ローカルデプロイとパブリックデプロイのどちらでも、トークンはサーバー側に保持されます。

ライセンス

MIT

コメント

MCP は初めてですか?

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

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