mcpField
S
Simple MCP Server with upstream auth via local rest endpoint

Simple MCP Server with upstream auth via local rest endpoint

ローカル
github.com/BarDweller開発ツール081 週間前に更新

Simple MCP Server with upstream auth via local rest endpoint について

セッション認証によってツールへのアクセスを制御する、MCPサーバーのプロトタイプです。Quarkus OIDCとGitHub OAuthを使い、ユーザーのGitHubアクセストークンをセッションごとに保存します。

主な機能

  1. 01セッション単位のツールアクセス制御
  2. 02GitHub OAuth認証
  3. 03セッションごとのアクセストークン保存

活用シーン

  1. 01認証必須のMCPツールの試作
  2. 02リポジトリのIssue一覧表示前にGitHub認証を求める

MCP 対応

セッション認証の状態に応じて利用できるMCPツールを公開します。ユーザーはQuarkus OIDCとGitHub OAuthを使い、ローカルURL経由で認証します。

設定

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

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

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

リポジトリ

ツール

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

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

詳細

ローカルの REST エンドポイント経由で上流の認証を行うシンプルな MCP サーバー

これは、MCP サーバーがツールを提供しつつ、内部状態に基づいてツールへのアクセスを制限し、ユーザーに外部 URL 経由での認証を求めるプロトタイプです。

この場合、外部 URL は Quarkus OIDC でラップされており、GitHub 経由での認証が必要です。

その後、GitHub のアクセストークンは、ユーザーが使用する sessionid に対応するセッション用に MCP 内に保存されます。

注:GitHub OAuth アプリの client-id と secret を追加するため、application.properties を編集する必要があります。

要件

  • JBang
  • GitHub の OAuth2 アプリ
  • Claude などの MCP クライアント

GitHub の OAuth2 アプリを作成する

https://github.com/settings/developers に移動します。

左側のナビゲーションから OAuth Apps を選択します。

「New OAuth App」をクリックします。

アプリ名を入力し、コールバック URL に http://127.0.0.1:8080/auth を設定します。

client ID を application.properties にコピーします。 「generate a new client secret」をクリックし、secret を application.properties にコピーします。

Claude デスクトップの設定 JSON を更新します……

Windows の場合……

{
    "mcpServers": {
        "ozzynet": {
            "command": "cmd",
            "args": [
                "/c",
                "C:\\Users\\YOURUSERNAME\\.jbang\\bin\\jbang.cmd",
                "--quiet",
                "org.ozzy:stiletto:1.0.0-SNAPSHOT:runner" ]
        }
    }
}

Mac の場合……

{
    "mcpServers": {
        "ozzynet": {
            "command": "jbang",
            "args": [
                "--quiet",
                "org.ozzy:stiletto:1.0.0-SNAPSHOT:runner" ]
        }
    }
}

テスト……

Claude にリポジトリの issue を一覧表示するよう依頼します……

例:quarkusio の quarkus リポジトリの issue を一覧表示します。

Claude は getSessionId ツールの呼び出し許可を求めます。 その後、Claude は listIssues ツールを呼び出しますが、認証が必要なため利用できないと報告し、http://127.0.0.1/auth?sessionId=<UUID> の形式のリンクを提示します。このリンクをクリックすると、GitHub にリダイレクトされ、作成した OAuthApp 経由で認証するよう求められます。認証が完了したら、Claude に戻って一覧表示を再試行できます。=)

コメント

MCP は初めてですか?

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

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