simonw/mcp-explorer

GitHub: simonw/mcp-explorer

一个用于连接、探索和调试 MCP 服务器的命令行工具,支持列出工具、检查 schema、调用工具、查看 prompts/resources 以及诊断协议兼容性。

Stars: 17 | Forks: 1

# mcp-explorer [![PyPI](https://img.shields.io/pypi/v/mcp-explorer.svg)](https://pypi.org/project/mcp-explorer/) [![更新日志](https://img.shields.io/github/v/release/simonw/mcp-explorer?include_prereleases&label=changelog)](https://github.com/simonw/mcp-explorer/releases) [![测试](https://static.pigsec.cn/wp-content/uploads/repos/cas/ce/ce733292a922c08274cf5a2096f8fa4cf01023bfa51a36ef6beecaaef371a9d9.svg)](https://github.com/simonw/mcp-explorer/actions/workflows/test.yml) [![许可证](https://img.shields.io/badge/license-Apache%202.0-blue.svg)](https://github.com/simonw/mcp-explorer/blob/master/LICENSE) 用于探索 MCP 服务器的 CLI 工具 ## 安装 使用 `pip` 安装此工具: ``` pip install mcp-explorer ``` ## 用法 列出可流式传输的 HTTP MCP 服务器所暴露的工具: ``` mcp-explorer list https://agentic-mermaid.dev/mcp ``` 默认输出经过刻意精简:每个工具均显示为签名和单行描述。使用 `-N` 或 `--no-truncate` 可获取完整描述和详细的参数元数据: ``` mcp-explorer list -N https://agentic-mermaid.dev/mcp ``` 默认情况下,这会强制使用当前的 MCP 2 无状态协议。使用 `--legacy` 可强制改用较旧的 initialize 握手协议: ``` mcp-explorer list https://agentic-mermaid.dev/mcp --legacy ``` 使用 `--json` 可输出完整的工具定义,包括其输入 schema: ``` mcp-explorer list https://agentic-mermaid.dev/mcp --json ``` 详细检查单个工具: ``` mcp-explorer inspect https://agentic-mermaid.dev/mcp render_svg ``` 这会显示工具的完整描述、嵌套的输入和输出 schema、注解、执行元数据、图标和 `_meta`。使用 `--json` 可获取作为单个 JSON 对象的完整工具定义: ``` mcp-explorer inspect https://agentic-mermaid.dev/mcp render_svg --json ``` 通过传入作为 JSON 对象的参数来调用工具: ``` mcp-explorer call \ https://agentic-mermaid.dev/mcp \ verify \ '{"source":"graph TD; A-->B"}' ``` 或者,使用可重复的 `-a/--argument NAME VALUE` 选项: ``` mcp-explorer call \ https://agentic-mermaid.dev/mcp \ render_svg \ -a source 'graph TD; A-->B' \ -a options '{"padding":24}' ``` 使用 `-` 可从标准输入读取原始 JSON 对象: ``` mcp-explorer call URL TOOL - < arguments.json ``` 当原始 JSON 与 `-a` 结合使用时,单独的参数会覆盖 JSON 对象中匹配的顶层键,并且较后的 `-a` 值优先。值会根据工具的输入 schema 进行解释:字符串保持原样,而数字、布尔值、数组、对象和 null 会被解析为 JSON。组合后的参数会在调用工具之前根据输入 schema 进行验证。 使用 `--json` 可将工具的 `structuredContent` 打印为 JSON。如果结果没有结构化内容,则会回退到打印第一个文本内容块: ``` mcp-explorer call \ https://datasette.simonwillison.net/-/mcp \ execute_sql \ -a database simonwillisonblog \ -a sql 'select count(*) from blog_entry' \ --json ``` 使用 `--raw` 可获取作为 JSON 的完整 MCP `CallToolResult`: ``` mcp-explorer call URL TOOL -a name value --raw ``` 列出服务器暴露的每个 prompt: ``` mcp-explorer prompts URL mcp-explorer prompts URL --json mcp-explorer prompts URL --legacy ``` 人类可读的输出包含 prompt 参数以及每个参数是否为必需。JSON 输出包含完整的 prompt 定义。 列出服务器暴露的每个可直接寻址的 resource: ``` mcp-explorer resources URL mcp-explorer resources URL --json mcp-explorer resources URL --legacy ``` 人类可读的输出在可用时包含每个 resource 的 URI、MIME 类型、大小和描述。这两个命令都会执行分页操作,直到收集完所有结果。 使用 `info` 可显示选定的协议、协商机制、支持的版本、服务器身份、capabilities 和说明: ``` mcp-explorer info https://agentic-mermaid.dev/mcp mcp-explorer info https://agentic-mermaid.dev/mcp --json ``` 使用 `doctor` 可检查无状态和旧版兼容性。选定的模式会首先被检查,并决定退出状态: ``` mcp-explorer doctor https://agentic-mermaid.dev/mcp mcp-explorer doctor https://agentic-mermaid.dev/mcp --legacy ``` 每个命令都接受 `--json` 和 `--stateless/--legacy`。这些选项可以出现在命令名称之后的任何位置。`call` 命令还接受 `--raw`。 如需帮助,请运行: ``` mcp-explorer --help ``` 你也可以使用: ``` python -m mcp_explorer --help ``` ## 开发 要为此工具做出贡献,请首先检出代码。像这样运行测试: ``` cd mcp-explorer uv run pytest ``` 并像这样运行该工具的开发版本: ``` uv run mcp-explorer --help ``` 要更新 README 中的 `--help` 参考: ``` uv run cog -r README.md ``` ## 命令参考
标签:MCP, Python, SOC Prime, 动态分析, 大模型工具, 安全规则引擎, 开发工具, 无后门, 逆向工具