MCP Discovery Action について
MCP Discovery Actionは、GitHub ActionsでMCP Discovery CLIを実行するコンポーネントです。サーバーの機能を検出し、形式化したファイルの作成、更新、出力を行います。
主な機能
- 01MCP Discovery CLIコマンドを実行
- 02機能情報ファイルの作成・更新・出力
- 03組み込みテンプレートとカスタムテンプレート
- 04ローカルまたはリモートのサーバーに接続
- 05CLIバージョンを指定
活用シーン
- 01リポジトリにMCP機能のMarkdownを生成
- 02READMEの指定範囲を更新
- 03ワークフローでリモートMCPサーバーを確認
- 04カスタムテンプレートで機能レポートを作成
MCP 対応
起動コマンドまたはStreamable HTTP経由でMCPサーバーに接続してMCP Discovery CLIを実行し、サーバーの機能を記したファイルを出力します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
MCP Discovery アクション
MCP サーバーの機能の詳細を Markdown 形式またはその他の形式のファイルに作成、更新、または出力するための MCP Discovery CLI を実行する GitHub Action です。
💡 サンプル出力とワークフローの例については、rust-mcp-filesystem の 機能 ページをご覧ください:mcp-discovery.yml。
概要
このアクションは MCP Discovery CLI を実行し、MCP サーバーの機能を検出して、MCP サーバーの詳細を記載したファイルを作成または更新します(create または update コマンド)。組み込みテンプレート(md、md-plain、html、txt)、カスタム Handlebars テンプレートファイル、テンプレート文字列など、すべての CLI オプションに対応しています。
このアクションはデフォルトで CLI バイナリの最新バージョンをダウンロードしますが、アクションのバージョン入力を使用して特定のバージョンを指定できます。
入力
| Input | 説明 | 必須 | デフォルト |
|---|---|---|---|
command | 実行する CLI コマンド(create、update、または print)。 | はい | - |
mcp-launch-command | MCP サーバーを起動するコマンドと引数(例:java -jar mcp.jar)。url とは相互に排他的です。 | いいえ | - |
url | リモートのストリーマブル HTTP MCP サーバーの URL。mcp-launch-command とは相互に排他的です。 | いいえ | - |
header | ストリーマブル HTTP トランスポート用の静的 HTTP ヘッダー(1 行につき Name: Value を指定。複数回指定できます)。 | いいえ | - |
client-id | 事前登録済みの OAuth クライアント ID(動的クライアント登録を使用する場合は省略します)。 | いいえ | - |
client-secret | 事前登録済みの OAuth クライアントシークレット。 | いいえ | - |
scope | 要求する OAuth スコープ。 | いいえ | - |
redirect-uri | authorization-code グラントで使用するリダイレクト URI。 | いいえ | - |
grant | OAuth グラントタイプ(client-credentials または authorization-code)。 | いいえ | client-credentials |
filename | create/update コマンドの出力ファイルパス(例:docs/mcp-details.md)。 | いいえ | mcp-discovery.md |
template | 出力用の組み込みテンプレート(md、md-plain、html、txt)。 | いいえ | - |
template-file | リポジトリ内のカスタム Handlebars テンプレートファイルまたはフォルダーのパス。 | いいえ | - |
template-string | 文字列として指定するカスタム Handlebars テンプレートの内容。 | いいえ | - |
template-url | リモート Handlebars テンプレートの URL(.hbs、.zip、または .tar.gz)。 | いいえ | - |
cache-dir | template-url で取得したテンプレートのキャッシュディレクトリ。 | いいえ | - |
log-level | CLI のログレベルを指定します。 | いいえ | info |
token | コンテンツの書き込み権限を持つ任意の GitHub トークン。 | いいえ | ${{ github.token }} |
version | 使用する mcp-discovery CLI のバージョン(例:v0.1.2)。最新リリースを使用するには latest を指定します。 | いいえ | latest |
💡 詳細とコマンド例については、MCP Discovery のドキュメントを参照してください。
使用方法
例 1:Markdown ファイルを作成する
MCP サーバーの機能を記載した mcp-discovery.md を作成し、変更があった場合はコミットします。
name: MCP Discovery (create)
on:
push:
branches:
- main
permissions:
contents: write
jobs:
generate-md:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
token: ${{ secrets.GITHUB_TOKEN }}
- uses: rust-mcp-stack/mcp-discovery-action@v1
with:
version: 'latest'
command: 'create'
mcp-launch-command: '[THE COMMAND YOU USE TO START YOUR MCP SERVER]'
filename: 'mcp-discovery.md'
例 2:README.md ファイルの指定セクションを更新する
💡 update コマンドとテンプレートマーカーの詳細については、MCP Discovery のドキュメントを参照してください。
name: MCP Discovery (update)
on:
push:
branches:
- main
permissions:
contents: write
jobs:
generate-md:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
token: ${{ secrets.GITHUB_TOKEN }}
- uses: rust-mcp-stack/mcp-discovery-action@v1
with:
version: 'latest'
command: 'update'
mcp-launch-command: '[THE COMMAND YOU USE TO START YOUR MCP SERVER]'
filename: 'README.md'
例 3:リモートのストリーマブル HTTP MCP サーバーを検出する
ローカルプロセスを起動する代わりに、ストリーマブル HTTP トランスポート経由でリモートサーバーに接続します。mcp-launch-command の代わりに url を使用してください。
name: MCP Discovery (streamable HTTP)
on:
workflow_dispatch:
permissions:
contents: write
jobs:
generate-md:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
token: ${{ secrets.GITHUB_TOKEN }}
- uses: rust-mcp-stack/mcp-discovery-action@v1
with:
version: 'latest'
command: 'create'
url: 'https://mcp.example.com/mcp'
header: |
Authorization: Bearer ${{ secrets.MCP_TOKEN }}
filename: 'mcp-discovery.md'
例 4:OAuth で保護されたサーバー(クライアントクレデンシャル)
- uses: rust-mcp-stack/mcp-discovery-action@v1
with:
version: 'latest'
command: 'create'
url: 'https://mcp.example.com/mcp'
grant: 'client-credentials'
client-id: ${{ secrets.MCP_CLIENT_ID }}
client-secret: ${{ secrets.MCP_CLIENT_SECRET }}
scope: 'mcp tools'
filename: 'mcp-discovery.md'
例 5:リモート URL からカスタムテンプレートを使用する
- uses: rust-mcp-stack/mcp-discovery-action@v1
with:
version: 'latest'
command: 'create'
mcp-launch-command: '[THE COMMAND YOU USE TO START YOUR MCP SERVER]'
template-url: 'https://example.com/templates/report.hbs'
cache-dir: '/tmp/mcp-template-cache'
filename: 'mcp-discovery.md'
コントリビューション
コントリビューションを歓迎します!mcp-discovery-action repositoryで issue またはプルリクエストを作成してください。
ライセンス
MIT ライセンスです。詳細はLICENSEをご覧ください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。