Skip to main content
Glama
Feyfa

Exact Match Site ID MCP Connector

by Feyfa

Exact Match Site ID MCPコネクタ

このサービスは、Exact Match Site IDデータを、ChatGPT、Claude、Cursor、その他MCPサーバーを呼び出せるツールなどのMCP互換AIクライアントに公開します。

スタック

  • TypeScript

  • HTTPルート用Hono

  • MCPプロトコル処理用公式MCP SDK

  • 入力バリデーション用Zod

  • 真実のソースとしてのLaravel data

ローカルセットアップ

  1. .env.example を .env にコピーします。

  2. LARAVEL_API_BASE_URL をLaravel APIのベースURLに設定します。

  3. LARAVEL_MCP_PROXY_TOKEN を、Laravelの services.mcp_proxy.internal_token に設定したものと同じ値に設定します。

  4. OAUTH_TOKEN_SECRET を32文字以上のランダムな文字列に設定します。

  5. npm install で依存関係をインストールします。

  6. npm run dev でローカル開発を開始します。

デフォルトのローカルサービスURLは http://localhost:8787 です。

便利なURL

  • ヘルスチェック: GET /health

  • MCPエンドポイント: POST /mcp

  • OAuth認可メタデータ: GET /.well-known/oauth-authorization-server

  • MCPメタデータ: GET /.well-known/mcp-server

  • ウィジェット: GET /widgets/site-id

開発用認証

MCP_DEV_AUTH_ENABLED=true の場合、以下を呼び出すことでローカル認証コードを作成できます:

GET /oauth/dev/start?clerk_user_id=user_xxx

本番環境では、この開発用ハンドオフを実際のExact Match/Clerkログインコールバックに置き換える必要があります。

ローカルOAuthテストフロー

サーバーをChatGPTアプリに接続する前に、このフローを使用してローカルでOAuthをテストしてください。

  1. .env にローカルリダイレクト許可リストが含まれていることを確認します:

OAUTH_ALLOWED_REDIRECT_URIS=http://localhost:8787/oauth/dev/callback
MCP_DEV_AUTH_ENABLED=true
  1. MCPサーバーを起動します:

npm run dev
  1. 実際のClerkユーザーIDを使用して開発用認可URLを開きます:

http://localhost:8787/oauth/dev/start?clerk_user_id=user_xxx

ブラウザは以下にリダイレクトされます:

http://localhost:8787/oauth/dev/callback?code=...&state=...
  1. コールバックレスポンスから code 値をコピーします。

  2. コードをMCPアクセストークンと交換します:

$code = "paste-code-here"

Invoke-RestMethod `
  -Method Post `
  -Uri "http://localhost:8787/oauth/token" `
  -ContentType "application/x-www-form-urlencoded" `
  -Body @{
    grant_type = "authorization_code"
    client_id = "local-dev"
    redirect_uri = "http://localhost:8787/oauth/dev/callback"
    code = $code
  }

成功時のレスポンス:

{
  "access_token": "...",
  "token_type": "Bearer",
  "expires_in": 3600,
  "refresh_token": "...",
  "scope": "site_id:read"
}

access_token を以下のように使用します:

Authorization: Bearer <access_token>

このトークンは、AIアプリからMCPサーバーへのリクエストを認証します。MCPサーバーは、LARAVEL_MCP_PROXY_TOKEN を使用してLaravelに対して個別に認証を行います。

Related MCP Connectors