simonw/mcp-explorer
GitHub: simonw/mcp-explorer
一个用于连接、探索和调试 MCP 服务器的命令行工具,支持列出工具、检查 schema、调用工具、查看 prompts/resources 以及诊断协议兼容性。
Stars: 17 | Forks: 1
# mcp-explorer
[](https://pypi.org/project/mcp-explorer/)
[](https://github.com/simonw/mcp-explorer/releases)
[](https://github.com/simonw/mcp-explorer/actions/workflows/test.yml)
[](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, 动态分析, 大模型工具, 安全规则引擎, 开发工具, 无后门, 逆向工具