mcpField
M
MCP Reporter

MCP Reporter

本地服务
github.com/cyanheads开发工具127 周前更新

关于 MCP Reporter

MCP Reporter 是面向开发者的 CLI 和库,可为配置的 MCP 服务生成 Markdown 清单。它收集已公布的功能与元数据,但不会调用工具或读取资源内容。

主要功能

  1. 01连接 stdio 和 Streamable HTTP 服务
  2. 02列出工具、资源、模板和提示词
  3. 03记录架构和服务元数据
  4. 04支持分页与部分结果报告
  5. 05生成可配置的 Markdown 报告

适用场景

  1. 01记录项目中 MCP 服务的功能
  2. 02集成前检查已公布的架构
  3. 03个别服务失败时仍收集报告

MCP 相关

它连接本地 stdio 进程和远程 Streamable HTTP MCP 服务,并枚举其已公布的功能。它不会调用工具、读取资源内容或展开提示词。

配置

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

暂未收录安装方式

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

代码仓库

工具

还没有获取到工具列表

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

详细介绍

mcp-reporter

查看 MCP 服务公布的内容。

生成 Markdown 目录,列出工具、资源、提示词、架构和服务元数据。


mcp-reporter 会连接本地 stdio 进程和远程 Streamable HTTP 端点,读取它们公布的功能,并生成报告,供你与项目文档一同保存或传递给其他工具。

它会枚举工具、资源、资源模板和提示词,但不会执行工具、读取资源内容或展开提示词。查看合成示例报告。

快速开始

需要 Node.js 22.12 或更高版本。开发使用 Bun 1.4 或更高版本。

创建 mcp-servers.json,添加一个你已在运行的服务:

{
  "mcpServers": {
    "local-server": {
      "command": "node",
      "args": ["/absolute/path/to/server/dist/index.js"]
    }
  }
}

生成报告:

npx mcp-reporter --config mcp-servers.json --output output/report.md

配置

配置是一个包含 mcpServers 的 JSON 对象。每个键用于在报告中标识一个服务。本地和远程条目可以共用一个文件:

{
  "mcpServers": {
    "local-server": {
      "command": "node",
      "args": ["/absolute/path/to/server/dist/index.js"],
      "env": { "EXAMPLE_API_KEY": "REPLACE_WITH_YOUR_KEY" }
    },
    "remote-server": {
      "type": "http",
      "url": "https://example.com/mcp",
      "headers": { "Authorization": "Bearer REPLACE_WITH_YOUR_TOKEN" }
    },
    "disabled-server": {
      "command": "node",
      "args": ["/absolute/path/to/another/server.js"],
      "disabled": true
    }
  }
}
字段适用对象含义
commandstdio要启动的可执行文件
argsstdio可选参数数组
envstdio可选的字符串环境变量条目,会传递给 SDK 传输层
cwdstdio子进程的可选工作目录
urlHTTPStreamable HTTP 端点,包含其 MCP 路径
headersHTTP可选的静态请求标头
type任一可选的 stdio 或 http;必须与条目类型一致
disabled任一为 true 时跳过该条目
alwaysAllow任一为兼容配置而接受;不会调用任何工具

必须且只能提供 command 或 url 其中之一。连接前,报告生成器会验证整个文件。路径相对于进程工作目录解析;在多个调用方之间共享配置时,请使用绝对路径。不支持交互式 OAuth 和旧版 SSE 端点。

配置值可能包含凭据。报告生成器会从诊断信息和启动元数据中省略 env/header 值、原始命令参数以及 URL 路径、查询参数和用户信息。子进程 stderr 会被抑制;错误会以安全的类别表示。服务提供的描述、架构、指令和扩展元数据会作为报告内容保留,因此分享报告前请先检查这些内容。

选择协议模式

默认使用旧版协商,以兼容需要 initialize 的服务。

--protocol-era行为
legacy使用旧版握手,不执行发现探测
auto探测对现代协议的支持;根据旧版证据回退
2026-07-28要求使用该现代修订版;不回退到旧版
npx mcp-reporter --config mcp-servers.json --protocol-era auto

自动模式可能会额外启动一个短暂运行的 stdio 进程,并在执行旧版握手前等待探测超时。HTTP 授权失败和超时会报告为失败,而不会视为支持旧版协议的证据。报告会记录实际选择的协议版本和时代。

报告内容

部分包含的信息
执行摘要连接数量和已收集的能力数量
连接失败已配置的服务 ID 和安全的失败原因
服务信息传输方式、实现身份、协商的协议、连接时间、声明的标志、说明
工具名称、标题、描述、输入/输出架构、注释、图标和扩展元数据
资源和模板URI/模板、名称、描述、MIME 类型和提供的元数据
提示词名称、描述、参数、必填标志和提供的元数据

列表按页收集。每项能力均标记为未声明、完整(可能为空)或不完整。页数限制、游标重复和请求失败会保留已收集的条目,并将其数量标记为部分结果。某个服务或列表失败,不会丢弃其他成功的结果。

报告以表格和文本为主;较长的定义放在可折叠的详细信息中。图标作为元数据保留,不会远程加载图像。服务注释是服务提供的提示,并非经过独立验证的安全保证。枚举会保留服务的声明,即使客户端可能因工具的架构扩展无效而拒绝调用该工具。

CLI 选项

选项默认值用途
-c, --config <path>mcp-servers.json配置文件
-o, --output <path>output/mcp_server_report.mdMarkdown 输出路径
--no-schemas包含架构隐藏输入架构;输出架构仍会显示
--no-metadata包含元数据隐藏服务信息、声明的标志和说明
--no-examples包含示例隐藏调用方提供的示例
--protocol-era <era>legacylegacy、auto 或 2026-07-28
--max-pages <count>64每个能力列表的正数页数上限
--timeout <ms>30000正数连接/请求超时时间
-q, --quiet关闭禁止显示进度;致命错误仍会输出到 stderr
-V, --version—输出软件包版本
-h, --help—显示帮助

对于 HTTP 服务,超时会限制整个握手过程,包括 initialized 通知的响应。超时会关闭传输、记录连接失败,并继续报告其余服务。每个能力列表请求均有独立的超时时间。

仍接受现有的正向标志 -s/--schemas、-m/--metadata 和 -e/--examples。MCP 枚举没有示例来源;只有程序化调用方将示例提供给渲染器时,报告中才会出现示例。

进度信息输出到 stderr,报告则写入所选文件。退出代码 0 表示报告已写入,包括已记录的任何连接/列表失败。配置无效或报告写入失败时,退出代码为 1。

作为库使用

bun add mcp-reporter
import { McpReporter } from 'mcp-reporter';

const reporter = new McpReporter('./mcp-servers.json', {
  outputPath: './output/capabilities.md',
  protocolEra: 'auto',
  includeInputSchemas: true,
  includeServerMetadata: true,
  maxPages: 64,
  timeoutMs: 30_000,
  progressCallback(event) {
    console.error(event.message);
  },
});

await reporter.run();

该库采用 ESM;如果没有进度回调,则不会输出任何信息。run() 会在写入报告并关闭连接后完成;遇到配置/文件错误时会拒绝执行。再次运行会开始一次全新的收集。ReportOptions.transportFactory(config, serverId) 可为嵌入式使用或确定性测试提供传输方式。

类型从软件包根目录导出。若要渲染已收集的 ServerReport[],请从 mcp-reporter 导入 MarkdownGenerator,并调用 generateReport(reports, options)。它会遵循相同的渲染标志,并保留调用方提供的可选 ToolInfo.examples。

运行时、模块和报告方面的变更,请参阅升级到 1.1.0。

开发

构建源码检出:

git clone https://github.com/cyanheads/mcp-reporter.git
cd mcp-reporter
bun install
bun run rebuild

使用 node dist/cli.js --config mcp-servers.json 运行构建后的 CLI。

命令用途
bun run devcheck运行 lint、源码/脚本/测试类型检查、变更日志检查和完整测试套件
bun run rebuild清理并编译 Node 程序包
bun run test:all运行确定性行为测试
bun run test:package验证编译后的 Node CLI/库及程序包内容
bun run format应用 Biome 格式化和安全修复
bun run example:report重新生成合成示例报告
bun run tree重新生成目录映射
bun run list-skills列出项目工作流

测试使用内存中的 SDK 服务、回环 HTTP 和合成 stdio 进程。测试无需凭据或外部 MCP 服务。发布工作流使用本地门禁、按版本划分的变更日志、约定式提交和带注释的标签摘要;发布目标为 npm 和 GitHub。

贡献指南 · 安全 · 变更日志 · Apache-2.0 许可证

由 Casey Hand 构建 · 支持此项目

评论

支持 Markdown

第一次接触 MCP?

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

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