MCP Discovery
以下摘录自该仓库的 README(片段) · 在 GitHub 读完整 README →
A command-line tool written in Rust for discovering and documenting MCP Server capabilities.
It supports outputting the results in the terminal or saving them to files in Markdown, HTML, plain text, JSON, or a custom template defined by you.
Check the project documentation for instructions and command examples.
Features 💡
- **Display MCP Details**: Output MCP Server information, including tools, resources, and capabilities, directly to the terminal.
- **Generate Files**: Create files in Markdown (.md), HTML (.html), or plain text (.txt) formats with MCP Server details and capabilities.
- **Update Files**: Modify existing Markdown, HTML, or text files by adding MCP Server capabilities within specified markers, enabling MCP Server developers to automatically maintain up-to-date documentation and repository README files.
- **Flexible Output Customization**: Choose from built-in templates (md, md-plain, html, txt) or supply custom Handlebars templates for personalized output.
- **MCP Discovery GitHub Action**: Integrate the mcp-discovery CLI as a GitHub Action to automate and maintain up-to-date MCP Server documentation in your development workflow.
This open-source project leverages the rust-mcp-sdk for seamless interaction with MCP Servers.
🌐 Check out the **rust-mcp-filesystem** capabilities page for a sample output.
Installation ⬇️
Running as CLI
Check the project documentation for instructions on installing the tool on different platforms.
GitHub Action
The easiest way to automate and maintain up-to-date MCP Server documentation , is to use mcp-discovery as a GitHub action.
Please see rust-mcp-stack/mcp-discovery-action for installation and configuration instructions.
Subcommands
- **print**: Displays MCP Server capabilities in the terminal.
- **create**: Creates a new file with MCP Server capability details.
- **update**: Updates an existing file by inserting MCP Server capabilities between specified
markers.
👉 Note: If no subcommand is provided, the print subcommand will be used by default.
Options ⚙️
- -f, --filename : Used with create and update commands to specify the output file to generate or modify.
- -t, --template : Choose a built-in output template. Options: md, md-plain, html, txt.
- -p, --template-file : Path to a custom Handlebars template file, or a folder containing template.hbs with an optional sibling partials/ directory.
- -s, --template-string : Inline Handlebars template provided as a string.
- --template-url : Fetch and render a Handlebars template from an https:// URL (.hbs, .zip, or .tar.gz). Supports fragment directives: #sha256= (integrity pin) and #entry= (select a file inside an archive).
- --cache-dir : Cache directory for templates fetched with --template-url (created if missing; defaults to the OS cache dir).
- -l, --log-level : Specifies the logging level (default: info). Options: error, warn, info, debug, trace.
- --template-file/archive templates can use their own partials from a partials/ folder — see the Custom Templates guide.
- --url : Connect to a remote MCP server over the Streamable HTTP transport.
- --header "Name: Value": Static HTTP header for the Streamable HTTP transport (repeatable).
- --grant : OAuth grant for protected servers: client-credentials (default) or authorization-code.
- --client-id : Pre-registered OAuth client id (omit to use Dynamic Client Registration).
- --client-secret : Pre-registered OAuth client secret.