mcpField
V
Vindata Mcp

Vindata Mcp

ローカル
github.com/vindataioビジネス・マーケティング019 週間前に更新

Vindata Mcp について

GitHub OAuth でクライアントを認証する、Cloudflare Workers 向けリモート MCP サーバーのテンプレートです。開発者はデプロイして拡張でき、GitHub ユーザー名に応じてツールの利用を制限できます。

主な機能

  1. 01GitHub OAuth 認証
  2. 02リモート MCP 接続
  3. 03ユーザー ID によるツール制御
  4. 04KV への OAuth 状態保存
  5. 05Cloudflare Workers へのデプロイ

活用シーン

  1. 01GitHub ログイン対応のリモート MCP サーバーを構築
  2. 02指定した GitHub ユーザーに特定ツールの利用を限定
  3. 03OAuth プロバイダー追加の実装例として利用

MCP 対応

SSE 接続を通じてリモート MCP クライアントにツールを公開し、OAuth でクライアントを認証します。ツールの利用可否は認証済みの GitHub ID に応じて設定できます。

設定

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

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

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

リポジトリ

ツール

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

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

詳細

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

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

ご自身の Cloudflare アカウントにデプロイし、独自の Github OAuth クライアントアプリを作成すると、そこから構築できる、完全に機能するリモート MCP サーバーが利用できるようになります。ユーザーは GitHub アカウントでサインインして、MCP サーバーに接続できます。

workers-oauth-provider libraryを使用して、Cloudflare にデプロイした MCP サーバーに他の OAuth プロバイダーを統合する方法を示す参考例として利用できます。

この MCP サーバーは、Cloudflare Workersを利用しており、次の役割を担います。

  • MCP クライアントに対する OAuth サーバー
  • 実際の OAuth サーバー(この場合は GitHub)に対する OAuth クライアント

警告

これは、すぐに使い始められるように設計されたデモテンプレートです。いくつかのセキュリティ対策を実装していますが、本番環境にデプロイする前に、あらゆる予防的セキュリティ対策と多層防御を実装する必要があります。包括的なセキュリティガイドをご確認ください:MCP サーバーの保護

はじめに

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

または、以下のコマンドラインを使用して、リモート MCP サーバーをローカルマシンに作成できます。

npm create cloudflare@latest -- my-mcp-server --template=cloudflare/ai/demos/remote-mcp-github-oauth
本番環境の場合

新しいGitHub OAuth アプリを作成します。

  • Homepage URL には、https://mcp-github-oauth.<your-subdomain>.workers.devを指定します。
  • Authorization callback URL には、https://mcp-github-oauth.<your-subdomain>.workers.dev/callbackを指定します。
  • Client ID を控え、Client secret を生成します。
  • Wrangler でシークレットを設定します。
wrangler secret put GITHUB_CLIENT_ID
wrangler secret put GITHUB_CLIENT_SECRET
wrangler secret put COOKIE_ENCRYPTION_KEY # add any random string here e.g. openssl rand -hex 32

重要

最初のシークレットを作成するとき、Wrangler は新しい Worker を作成するかどうかを尋ねます。「Y」を入力して新しい Worker を作成し、シークレットを保存します。

KV 名前空間を設定する
  • KV 名前空間を作成します。 wrangler kv namespace create "OAUTH_KV"
  • Wrangler ファイルを KV ID で更新します。
デプロイとテスト

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

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

npx @modelcontextprotocol/inspector@latest

https://mcp-github-oauth.<your-subdomain>.workers.dev/sseを入力して、接続をクリックします。認証フローを完了すると、ツールが動作していることを確認できます。

画像

これで、リモート MCP サーバーがデプロイされました。

アクセス制御

この MCP サーバーは、認証に GitHub OAuth を使用します。認証済みの GitHub ユーザーは全員、「add」や「userInfoOctokit」などの基本的なツールにアクセスできます。

「generateImage」ツールは、ALLOWED_USERNAMES設定に記載された特定の GitHub ユーザーに制限されています。

// Add GitHub usernames for image generation access
const ALLOWED_USERNAMES = new Set(["yourusername", "teammate1"]);
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-github-oauth.<your-subdomain>.workers.dev/sse"
      ]
    }
  }
}

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

ローカル開発

MCP サーバーを反復的に開発してテストする場合は、ローカル開発環境で行えます。そのためには、GitHub で OAuth アプリをもう 1 つ作成する必要があります。

  • ホームページ URL に http://localhost:8788 を指定します
  • 認証コールバック URL に http://localhost:8788/callback を指定します
  • クライアント ID を控え、クライアントシークレットを生成します。
  • プロジェクトのルートに .dev.vars ファイルを作成し、次を記述します。
GITHUB_CLIENT_ID=your_development_github_client_id
GITHUB_CLIENT_SECRET=your_development_github_client_secret
開発とテスト

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

ローカルサーバーをテストするには、Inspector に http://localhost:8788/sse を入力して、接続をクリックします。表示される手順に従うと、「ツールの一覧表示」ができるようになります。

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

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

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

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

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

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

どのように動作するのか?

OAuth Provider

OAuth Provider ライブラリは、Cloudflare Workers 向けの完全な OAuth 2.1 サーバー実装を提供します。トークンの発行、検証、管理など、OAuth フローの複雑な処理を担います。このプロジェクトでは、次の 2 つの役割を果たします。

  • サーバーに接続する MCP クライアントを認証します
  • GitHub の OAuth サービスへの接続を管理します
  • KV ストレージにトークンと認証状態を安全に保存します
Durable MCP

Durable MCP は、Cloudflare の Durable Objects によって基本的な MCP 機能を拡張し、次の機能を提供します。

  • MCP サーバーの永続的な状態管理
  • リクエスト間で認証コンテキストを安全に保存
  • this.props 経由で認証済みユーザー情報にアクセス
  • ユーザー ID に基づくツールの条件付き利用への対応
MCP Remote

MCP Remote ライブラリを使うと、Inspector などの MCP クライアントから呼び出せるツールをサーバーで公開できます。このライブラリは次の機能を提供します。

  • クライアントとサーバー間の通信プロトコルを定義します
  • ツールを構造化して定義する方法を提供します
  • リクエストとレスポンスのシリアル化および逆シリアル化を処理します
  • クライアントとサーバー間の Server-Sent Events(SSE)接続を維持します

コメント

MCP は初めてですか?

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

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