Skip to main content
Glama
z0lw
by z0lw

駅すぱあと Remote MCP Server on Cloudflare Workers

駅すぱあとAPIを使用した経路検索とPDF生成を行うリモートMCPサーバーです。
Cloudflare Workersで動作し、インターネット経由でアクセス可能です。

🚀 特徴

  • リモートアクセス: インターネット経由でどこからでもアクセス可能

  • サーバーレス: Cloudflare Workersで自動スケーリング

  • セキュア: OAuth認証による安全なアクセス制御

  • 高速PDF生成: Browser Rendering APIによる高速レンダリング

  • 永続ストレージ: R2によるPDFの保存と配信

Related MCP server: ReActMCP Web Search

📋 必要なもの

  • Cloudflareアカウント

  • 駅すぱあとAPIキー

  • Node.js 18以上

  • Wrangler CLI

🛠️ セットアップ

1. 依存関係のインストール

npm install

2. Cloudflareの設定

KV Namespaceの作成

wrangler kv:namespace create SESSION_STORE
wrangler kv:namespace create SESSION_STORE --preview

R2 Bucketの作成

wrangler r2 bucket create ekispert-pdf-storage

3. 環境変数の設定

# 駅すぱあとAPIキーの設定
wrangler secret put EKISPERT_API_KEY

4. wrangler.tomlの更新

作成されたKV NamespaceのIDをwrangler.tomlに記入:

[[kv_namespaces]]
binding = "SESSION_STORE"
id = "your_actual_kv_namespace_id"  # ← ここを更新
preview_id = "your_actual_preview_kv_namespace_id"  # ← ここを更新

🚀 デプロイ

ローカル開発

npm run dev

本番環境へのデプロイ

npm run deploy

デプロイ後、以下のURLでアクセス可能になります:

  • https://ekispert-mcp-remote-server.<your-subdomain>.workers.dev/

🔌 MCP クライアントとの接続

Claude Desktopの設定

%APPDATA%\Claude\claude_desktop_config.json:

{
  "mcpServers": {
    "ekispert-mcp-remote-server": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-remote",
        "https://ekispert-mcp-remote-server.2122-2.workers.dev/mcp"
      ]
    }
  }
}

重要な接続エンドポイント

  • MCPエンドポイント: https://ekispert-mcp-remote-server.2122-2.workers.dev/mcp

  • ヘルスチェック: https://ekispert-mcp-remote-server.2122-2.workers.dev/

⚠️ 注意: MCPクライアントは /mcp エンドポイントを使用してください。

WebSocket接続の例

const ws = new WebSocket('wss://ekispert-mcp-remote-server.2122-2.workers.dev/mcp/ws');

ws.onopen = () => {
  // Send MCP requests
  ws.send(JSON.stringify({
    jsonrpc: '2.0',
    method: 'tools/list',
    id: 1
  }));
};

ws.onmessage = (event) => {
  const response = JSON.parse(event.data);
  console.log('MCP Response:', response);
};

📚 利用可能なツール

search_routes

経路検索を実行します。

{
  "from": "新宿",
  "to": "東京",
  "via": "品川",
  "date": "20250818",
  "time": "0900",
  "searchType": "departure"
}

generate_pdf

検索結果からPDFを生成します。

{
  "routeData": { /* 経路データ */ },
  "outputFileName": "route_20250818.pdf"
}

🏗️ アーキテクチャ

┌─────────────┐     ┌──────────────────┐     ┌─────────────┐
│ MCP Client  │────▶│ Cloudflare Worker│────▶│ Ekispert API│
└─────────────┘     └──────────────────┘     └─────────────┘
                            │
                    ┌───────▼────────┐
                    │ Durable Objects│
                    │  (State Mgmt)  │
                    └───────┬────────┘
                            │
                ┌───────────┼───────────┐
                ▼           ▼           ▼
          ┌──────────┐ ┌─────────┐ ┌──────────┐
          │    R2    │ │   KV    │ │ Browser  │
          │ Storage  │ │ Storage │ │Rendering │
          └──────────┘ └─────────┘ └──────────┘

🔒 セキュリティ

  • OAuth 2.0による認証

  • APIキーの暗号化保存

  • Rate limiting実装

  • CORS設定

📊 料金

Cloudflare Workersの無料枠:

  • 100,000リクエスト/日

  • 10ms CPU時間/リクエスト

  • R2: 10GB ストレージ

詳細はCloudflare価格ページを参照。

🐛 トラブルシューティング

Browser Rendering APIが使えない場合

Browser Rendering APIは有料プランが必要です。代替として、外部のPDF生成APIを使用するか、HTMLレスポンスのみを返すことも可能です。

KV Namespaceエラー

wrangler kv:namespace list

でNamespace IDを確認し、wrangler.tomlを更新してください。

R2アクセスエラー

wrangler r2 bucket list

でバケットの存在を確認してください。

📄 ライセンス

MIT License

🤝 コントリビューション

Issue、Pull Requestは歓迎します!

📞 サポート

-
security - not tested
-
license - not tested
-
quality - not tested

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/z0lw/ekispert-mcp-remote-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server