About MCP Discovery Action
MCP Discovery Action is a GitHub Actions component that runs the MCP Discovery CLI to discover server capabilities and create, update, or print formatted files.
Key features
- 01Run MCP Discovery CLI commands
- 02Create, update, or print capability details
- 03Use built-in or custom templates
- 04Connect to local or remote servers
- 05Select a CLI version
Use cases
- 01Generate an MCP capability Markdown file in a repository
- 02Update a designated section of a README
- 03Check a remote MCP server in a workflow
- 04Produce capability reports with custom templates
MCP support
It runs MCP Discovery CLI against an MCP server launched by command or reached over Streamable HTTP, then writes files describing the server's capabilities.
Configuration
Local server config is the same for every client. Copy it into your client’s MCP config file.
We haven’t collected a package or remote endpoint for this server. Follow the instructions in the project README.
Tools
Local servers expose tools only once running on your machine, and the maintainer has not provided a tool list.
Details
From the project READMEMCP Discovery Action
A GitHub Action to run the MCP Discovery CLI for creating, updating or printing MCP server capability details in a Markdown or other formatted file.
💡 Check out the rust-mcp-filesystem capabilities page for sample output and an example workflow: mcp-discovery.yml.
Overview
This action runs the MCP Discovery CLI to discover MCP server capabilities and create/update a file with MCP server details (create or update commands). It supports all CLI options, including built-in templates (md, md-plain, html, txt), custom Handlebars template files, or template strings.
The action downloads the latest version of the CLI binary by default, but you can specify a specific version using the action's version input.
Inputs
| Input | Description | Required | Default |
|---|---|---|---|
command | CLI command to run (create, update or print). | Yes | - |
mcp-launch-command | Command and arguments to launch the MCP server (e.g., java -jar mcp.jar). Mutually exclusive with url. | No | - |
url | URL of a remote streamable HTTP MCP server. Mutually exclusive with mcp-launch-command. | No | - |
header | Static HTTP header(s) for the streamable HTTP transport, one Name: Value per line (repeatable). | No | - |
client-id | Pre-registered OAuth client id (omit to use dynamic client registration). | No | - |
client-secret | Pre-registered OAuth client secret. | No | - |
scope | OAuth scope(s) to request. | No | - |
redirect-uri | Redirect URI used by the authorization-code grant. | No | - |
grant | OAuth grant type (client-credentials or authorization-code). | No | client-credentials |
filename | Output file path for create/update commands (e.g., docs/mcp-details.md). | No | mcp-discovery.md |
template | Built-in template for output (md, md-plain, html, txt). | No | - |
template-file | Path to a custom Handlebars template file or folder in the repository. | No | - |
template-string | Custom Handlebars template content as a string. | No | - |
template-url | Remote Handlebars template URL (.hbs, .zip, or .tar.gz). | No | - |
cache-dir | Cache directory for templates fetched with template-url. | No | - |
log-level | Specifies the logging level for the CLI. | No | info |
token | Optional GitHub token with content write permission. | No | ${{ github.token }} |
version | Version of the mcp-discovery CLI to use (e.g., v0.1.2). Use latest for the latest release. | No | latest |
💡 For more information and command examples, refer to the MCP Discovery documentation.
Usage
Example 1: Create a Markdown File
Create mcp-discovery.md with MCP server capabilities and commit it if changed.
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'
Example 2: Update a designated section of the README.md file
💡 For more information about update command and template markers, visit MCP Discovery documentation.
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'
Example 3: Discover a remote streamable HTTP MCP server
Connect to a remote server over the Streamable HTTP transport instead of launching a local process. Use url in place of mcp-launch-command.
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'
Example 4: OAuth-protected server (client credentials)
- 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'
Example 5: Custom template from a remote 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'
Contributing
Contributions are welcome! Please open an issue or pull request in the mcp-discovery-action repository.
License
MIT License. See LICENSE for details.
Comments
New to MCP?
From what the protocol is to installing your first server, these answers cover most first questions.
An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.