mcpField
M
MCP Discovery

MCP Discovery

本地服务
rust-mcp-stack.github.io开发工具878 周前更新

关于 MCP Discovery

MCP Discovery 是一个用 Rust 编写的命令行工具,用于发现 MCP 服务的能力并生成文档。适合 MCP 服务开发者维护文档,也可在 GitHub Action 中自动运行。

主要功能

  1. 01在终端输出工具、资源和能力信息
  2. 02生成 Markdown、HTML 或纯文本文档
  3. 03通过标记区域更新已有文档文件
  4. 04支持内置模板与自定义 Handlebars 模板
  5. 05支持连接远程 MCP 服务并处理 OAuth 认证

适用场景

  1. 01为 MCP 服务生成能力说明文档
  2. 02在仓库 README 中自动刷新服务能力列表
  3. 03在 CI 流程中通过 GitHub Action 维护文档

MCP 相关

该项目是一个 MCP 客户端工具,连接 MCP 服务(包括通过 Streamable HTTP 的远程服务)并读取其能力信息,以生成文档。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

暂未收录安装方式

我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。

代码仓库

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

MCP Discovery Logo

MCP Discovery

一个使用 Rust 编写的命令行工具,用于发现和记录 MCP 服务的功能。

它支持在终端中输出结果,也支持将结果保存到文件中,格式包括 Markdown、HTML、纯文本、JSON,或由你定义的自定义模板。

请查看项目文档,了解使用说明和命令示例。

功能 💡

  • 显示 MCP 详情:直接在终端中输出 MCP 服务信息,包括工具、资源和功能。
  • 生成文件:创建包含 MCP 服务详情和功能的 Markdown(.md)、HTML(.html)或纯文本(.txt)文件。
  • 更新文件:在指定标记之间添加 MCP 服务功能,以修改现有的 Markdown、HTML 或文本文件,帮助 MCP 服务开发者自动维护最新的文档和仓库 README 文件。
  • 灵活自定义输出:可选择内置模板(md、md-plain、html、txt),或提供自定义 Handlebars 模板,以生成个性化输出。
  • MCP Discovery GitHub Action:将 mcp-discovery CLI 集成为 GitHub Action,在开发工作流中自动维护最新的 MCP 服务文档。

README 配图 这个开源项目利用 rust-mcp-sdk,实现与 MCP 服务的无缝交互。

🌐 查看 rust-mcp-filesystem 的功能页面,了解输出示例。

安装 ⬇️

作为 CLI 运行

请查看项目文档,了解如何在不同平台上安装该工具。

GitHub Action

自动维护最新的 MCP 服务文档,最简单的方式是将 mcp-discovery 用作 GitHub Action。 请参阅 rust-mcp-stack/mcp-discovery-action,了解安装和配置说明。

子命令

  • print:在终端中显示 MCP 服务功能。
  • create:创建包含 MCP 服务功能详情的新文件。
  • update:在指定标记之间插入 MCP 服务功能,以更新现有文件。

👉 注意:如果未提供子命令,则默认使用 print 子命令。

选项 ⚙️
  • -f, --filename <FILENAME>:与 create 和 update 命令配合使用,指定要生成或修改的输出文件。
  • -t, --template <TEMPLATE>:选择内置输出模板。选项:md、md-plain、html、txt。
  • -p, --template-file <TEMPLATE_FILE>:自定义 Handlebars 模板文件的路径,或包含 template.hbs 且可带有同级 partials/ 目录的文件夹。
  • -s, --template-string <TEMPLATE_STRING>:以字符串形式提供内联 Handlebars 模板。
  • --template-url <URL>:从 https:// URL(.hbs、.zip 或 .tar.gz)获取并渲染 Handlebars 模板。支持片段指令:#sha256=<hex>(完整性锁定)和 #entry=<subpath>(选择存档中的文件)。
  • --cache-dir <PATH>:通过 --template-url 获取的模板的缓存目录(若不存在则创建;默认为操作系统缓存目录)。
  • -l, --log-level <LOG_LEVEL>:指定日志级别(默认值:info)。选项:error、warn、info、debug、trace。
  • --template-file/存档模板可使用其自身 partials/ 文件夹中的局部模板——请参阅自定义模板指南。
  • --url <URL>:通过 Streamable HTTP 传输连接到远程 MCP 服务。
  • --header "Name: Value":用于 Streamable HTTP 传输的静态 HTTP 标头(可重复使用)。
  • --grant <GRANT>:受保护服务的 OAuth 授权类型:client-credentials(默认值)或 authorization-code。
  • --client-id <ID>:预先注册的 OAuth 客户端 ID(若要使用动态客户端注册,请省略)。
  • --client-secret <SECRET>:预先注册的 OAuth 客户端密钥。
  • --scope <SCOPE>:要请求的 OAuth 作用域。
  • --redirect-uri <URI>:authorization-code 授权类型的重定向 URI。
  • -h, --help:显示帮助信息。
  • -V, --version:显示 mcp-discovery 的版本。

👉 注意:如果未提供模板,mcp-discovery 会根据文件扩展名自动选择最合适的内置模板。

👉 注意:身份验证标志需要搭配 --url 使用。有关连接开放、受令牌保护和受 OAuth 保护的 MCP 服务的示例,请参阅身份验证指南。

内置模板 🧬

CLI 支持以下内置输出模板:

  • md:格式化的 Markdown,以表格形式呈现 MCP 服务的功能。
  • md-plain:简约的 Markdown,使用纯文本而非表格,以便直接输出。
  • html:带有基础样式的结构化 HTML。
  • txt:纯文本,适用于原始的未格式化输出。

自定义模板 🧩

你可以通过不同方式提供自定义 Handlebars 模板:

  1. 使用 --template-file 标志提供自定义模板文件,或提供包含 template.hbs 且可带有同级 partials/ 目录的文件夹。
  2. 使用 --template-string 标志直接以字符串形式提供原始 Handlebars 模板。
  3. 使用 --template-url 标志从 https:// URL 获取 Handlebars 模板(.hbs、.zip 或 .tar.gz)。支持片段指令:#sha256=<hex>(完整性锁定)和 #entry=<subpath>(选择存档中的文件)。详情请参阅远程模板指南。
  4. 若要使用内联模板,仅适用于 update 命令:请在文件中定义模板——这无法用于 print 或 create。

内联模板必须放在指定的标记注释之间。

示例
在终端中打印 MCP 服务的功能:
mcp-discovery -- npx -y @modelcontextprotocol/server-everything
创建包含 MCP 服务功能的 HTML 文件:
mcp-discovery create -f capabilities.html -- npx -y @modelcontextprotocol/server-everything

📄 点击此处查看生成的 html 文件

创建包含 MCP 服务功能的 MD 文件:
mcp-discovery create -f capabilities.md -- npx -y @modelcontextprotocol/server-everything
使用自定义 Handlebars 模板:
mcp-discovery create -f capabilities.md  --template-file=custom_template.hbs -- npx -y @modelcontextprotocol/server-everything

💡 如需了解更多 CLI 用法示例,请参阅项目文档中的 命令示例 部分。

使用标记定义更新区域

使用 update 子命令时,mcp-discovery 会将功能放置在目标文件中指定的标记之间。标记因文件格式而异,通常是注释行。 update 命令简化了开发者和维护者保持文档时刻更新的流程。 随时运行 mcp-discovery update 命令,即可使用最新的 MCP 服务功能刷新文件。

标记注释
  • 渲染块起始标记:mcp-discovery-render
  • 渲染块结束标记:mcp-discovery-render-end

👉 mcp-discovery-render 标记也支持 template 和 template-file 属性。详情请参阅下方示例。

你也可以选择在渲染块中加入内联模板标识符,并用以下标记括起:

  • 模板块起始标记:mcp-discovery-template
  • 模板块结束标记:mcp-discovery-template-end

如果在渲染块中检测到模板注释,mcp-discovery 将使用该模板渲染输出。这样无需依赖内置或外部模板文件,即可使用自定义模板。详情请参阅下方示例:

带有渲染块注释的 Markdown 文件示例:
# Server Info and Capabilities



Server Capabilities will be placed here...


带有渲染块和模板名称注释的 Markdown 文件示例:
# Server Info and Capabilities



Server Capabilities will be placed here...


带有渲染块和自定义模板文件注释的 Markdown 文件示例:
# Server Info and Capabilities



Server Capabilities will be placed here...


带有注释的 HTML 文件示例:
<!DOCTYPE html>
<html lang="en">
  <head>
    <title>My MCP Server</title>
  </head>
  <body>
    <h1>MCP Server Details</h1>
    <div>
      

      
    </div>
  </body>
</html>
带有内联模板的 HTML 文件示例:
<h1>MCP Server Details</h1>
<div>
  
  
  
</div>

下方截图展示了执行 mcp-discovery update 命令后生成的 HTML:

MCP Discovery HTML Inline Template

需要使用最新的 MCP 服务功能刷新文件时,可随时执行 mcp-discovery update 命令。

参与贡献

欢迎所有有意参与贡献的人!详情请参阅贡献指南。

所有贡献,包括问题和拉取请求,都必须遵守 Rust 的行为准则。

除非另有明确说明,你提交以纳入 mcp-discovery 的任何贡献均根据 MIT License 的条款提供,不附加任何条件或限制。

许可证

本项目采用 MIT License 授权。详情请参阅 LICENSE 文件。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。