Skip to main content
Glama
vorticmateja

mcp-access-oauth

by vorticmateja

Model Context Protocol (MCP) サーバー + Access OAuth

これは、Access OAuth を組み込んだ、リモート MCP 接続をサポートする Model Context Protocol (MCP) サーバーです。

ご自身の Cloudflare アカウントにデプロイし、独自の Access for SaaS OIDC アプリを作成すると、その上に構築できる完全に機能するリモート MCP サーバーが完成します。ユーザーは、接続済みの Access Identity Provider でサインインすることで、MCP サーバーに接続できるようになります。

MCP サーバー(Cloudflare Workers を搭載)は、以下の役割を果たします:

  • MCP クライアントに対する OAuth サーバー として機能

  • 実際の OAuth サーバー(この場合は Access)に対する OAuth クライアント として機能

はじめに

リポジトリをクローンして依存関係をインストールします:npm install

本番環境向け

新しい Access for SaaS OIDC アプリ を作成します:

  • 認証コールバック URL には、https://mcp-access-oauth.<your-subdomain>.workers.dev/callback を指定し、ローカルで開発する場合は http://localhost:8788/callback も指定します。

  • Client ID と Client secret をメモします。

  • Wrangler を使用してシークレットを設定します

wrangler secret put ACCESS_CLIENT_ID
wrangler secret put ACCESS_CLIENT_SECRET
wrangler secret put ACCESS_TOKEN_URL
wrangler secret put ACCESS_AUTHORIZATION_URL
wrangler secret put ACCESS_JWKS_URL
wrangler secret put COOKIE_ENCRYPTION_KEY # add any random string here e.g. openssl rand -hex 32

KV 名前空間のセットアップ

  • KV 名前空間を作成します: wrangler kv:namespace create "OAUTH_KV"

  • Wrangler ファイルを KV ID で更新します

デプロイとテスト

MCP サーバーをデプロイして、workers.dev ドメインで利用できるようにします wrangler deploy

Inspector を使用してリモートサーバーをテストします:

npx @modelcontextprotocol/inspector@latest

https://mcp-access-oauth.<your-subdomain>.workers.dev/mcp を入力して接続します。認証フローを完了すると、Tools が動作しているのが確認できます:

これでリモート MCP サーバーのデプロイが完了です!

アクセス制御

この MCP サーバーは認証に Access を使用しています。認証されたすべての Access ユーザーは、"add" などの基本ツールにアクセスできます。

"generateImage" ツールは、ALLOWED_USERNAMES 設定にリストされている特定の Access ユーザーのみに制限されています:

// Add user emails for image generation access
const ALLOWED_EMAILS = new Set(["employee1@mycompany.com", "teammate1@mycompany.com"]);

Claude Desktop からリモート MCP サーバーにアクセスする

Claude Desktop を開き、Settings -> Developer -> Edit Config に移動します。これにより、Claude がアクセスできる MCP サーバーを制御する設定ファイルが開きます。

コンテンツを以下の設定に置き換えます。Claude Desktop を再起動すると、OAuth ログインページがブラウザウィンドウで開きます。認証フローを完了して、Claude に MCP サーバーへのアクセスを許可します。アクセスを許可すると、ツールが使用できるようになります。

{
  "mcpServers": {
    "math": {
      "command": "npx",
      "args": [
        "mcp-remote",
        "https://mcp-access-oauth.<your-subdomain>.workers.dev/mcp"
      ]
    }
  }
}

インターフェースに Tools(🔨 の下)が表示されたら、Claude にそれらを使用するよう依頼できます。例:「math ツールを使って 23 と 19 を足してもらえますか?」。Claude がツールを呼び出し、MCP サーバーによって生成された結果を表示します。

ローカル開発向け

MCP サーバーを反復開発してテストしたい場合は、ローカル開発で行うことができます。

  • Homepage URL には http://localhost:8788 を指定します

  • 認証コールバック URL には http://localhost:8788/callback を指定します

  • Client ID をメモし、Client secret を生成します。

  • プロジェクトのルートに .dev.vars ファイルを作成し、以下を記述します:

ACCESS_CLIENT_ID=<your client id>
ACCESS_CLIENT_SECRET=<your client secret>
ACCESS_TOKEN_URL=<your Access for SaaS token url>
ACCESS_AUTHORIZATION_URL=<your Access for SaaS authorization url>
ACCESS_JWKS_URL=<your Access for SaaS JWKS url>
COOKIE_ENCRYPTION_KEY=COOKIE_ENCRYPTION_KEY

開発とテスト

サーバーをローカルで実行して、http://localhost:8788 で利用できるようにします wrangler dev

ローカルサーバーをテストするには、Inspector に http://localhost:8788/mcp を入力して接続します。プロンプトに従うと、"List Tools" ができるようになります。

Claude およびその他の MCP クライアントの使用

Claude を使用してリモート MCP サーバーに接続する際、いくつかのエラーメッセージが表示される場合があります。これは、Claude Desktop がまだリモート MCP サーバーをサポートしていないため、混乱することがあるからです。MCP サーバーが接続されているかどうかを確認するには、Claude インターフェースの右下隅にある 🔨 アイコンにカーソルを合わせます。ツールがそこに表示されているはずです。

Cursor およびその他の MCP クライアントの使用

Cursor を MCP サーバーに接続するには、Type で「Command」を選択し、Command フィールドにコマンドと引数のフィールドを 1 つにまとめて入力します(例:npx mcp-remote https://<your-worker-name>.<your-subdomain>.workers.dev/mcp)。

Cursor は HTTP+SSE サーバーをサポートしていますが、認証はサポートしていないため、引き続き mcp-remote を使用する必要があることに注意してください(また、HTTP サーバーではなく STDIO サーバーを使用する必要があります)。

Windsurf などの他の MCP クライアントに MCP サーバーを接続するには、クライアントの設定ファイルを開き、Claude のセットアップで使用したものと同じ JSON を追加して、MCP クライアントを再起動します。

仕組み

OAuth Provider

OAuth Provider ライブラリは、Cloudflare Workers 向けの完全な OAuth 2.1 サーバー実装として機能します。トークンの発行、検証、管理など、OAuth フローの複雑な処理を担当します。このプロジェクトでは、以下の二重の役割を果たします:

  • サーバーに接続する MCP クライアントの認証

  • Access の OAuth サービスへの接続管理

  • KV ストレージでのトークンと認証状態の安全な保存

Durable MCP

Durable MCP は、Cloudflare の Durable Objects を使用して基本の MCP 機能を拡張し、以下を提供します:

  • MCP サーバーの永続的な状態管理

  • リクエスト間での認証コンテキストの安全な保存

  • this.props を介した認証済みユーザー情報へのアクセス

  • ユーザー ID に基づく条件付きツール利用のサポート

MCP Remote

MCP Remote ライブラリにより、サーバーは Inspector などの MCP クライアントから呼び出せるツールを公開できます。以下の機能を備えています:

  • クライアントとサーバー間の通信用プロトコルの定義

  • ツールを構造化して定義する方法の提供

  • リクエストとレスポンスのシリアライズおよびデシリアライズの処理

  • クライアントとサーバー間の Server-Sent Events (SSE) 接続の維持

-
license - not tested
-
quality - not tested
C
maintenance

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

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

Related MCP Connectors

View all MCP Connectors

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/vorticmateja/mcp-access-oauth'

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