サーバーを書かずに内部REST APIをMCPとして公開する方法
使うタイミング: 社内REST APIがあり、カスタムMCPを構築せずにClaude/Cursorに使わせたい場合。
前提条件
- Docker — docker.com/get-started
- API用のOpenAPI/Swaggerスペック(あると便利ですが必須ではありません) — ほとんどの社内APIは既に持っています
フロー
-
Unlaをデプロイdocker run -d --name unla -p 8080:80 -p 5234:5234 -p 5235:5235 ghcr.io/amoylab/unla/allinone:latest✓ コピーしました→ :8080のWeb UI
-
YAMLサーバー定義を追加UIで 'internal-api' という名前のサーバーを作成し、エンドポイント /users(GET)と /orders(GET、POST)を https://api.internal/v1 にマッピングします。✓ コピーしました→ ツールが表示されます:get_users、get_orders、create_order
-
クライアントをポイントhttps://gateway.internal/mcp/internal-api を Claude Desktop に追加します。✓ コピーしました→ クライアントに新しいツールが表示されます
結果: 社内APIが1時間以内に任意のMCPクライアントから使用可能になります。
注意点
- 機密ヘッダーを無制限にマッピングするとauth漏洩が発生 — Unlaの OAuth事前認証を使用してユーザーごとにゲート;YAML に管理者トークンをハードコードしないでください
- 書き込みエンドポイントが破壊的な呼び出しを公開 — POST/DELETE エンドポイントを 'confirm' としてマークし、明示的なユーザー承認を必要とします