返回市场
MCP工具

MCP工具

作者:tenxhq5 星标更新:2025-08-06

项目介绍

【技术文档摘要】: mcptool 正在积极开发中,尚未准备好使用 - 请稍后再试!


mcptool

一个多功能命令行工具,用于从终端连接、测试和探测 MCP 服务器。

mcptool 的目标是为与使用 MCP 协议的服务器交互的开发者、管理员和CI流水线提供一个统一的瑞士军刀。


主要特性

  • 一行命令连接 – 快速打开一个交互式的MCP会话,无需额外设置。
  • 健康状况及延迟检查 – 使用简单的 mcptool mcp ping 命令测量往返时间。
  • 能力发现 – 自动探测服务器支持哪些可选命令。
  • 脚本友好输出 – 提供机器可读的JSON格式和安静模式,便于自动化操作。

快速开始

cargo install mcptool

使用方法

安装后,可以通过 mcptool 命令访问二进制文件。对于任何子命令,可以使用 --help 查看详细的标志选项。

目标指定

每个期望一个 目标 的子命令接受TCP端点、HTTP/HTTPS端点、本地命令以 stdio 模式启动,或存储的身份验证条目。

类型语法发生什么
隐式TCP (默认)host[:port]通过TCP连接。如果没有指定端口,则使用命令特定的默认值。
显式TCPtcp://host[:port]与上述相同,但在主机可能包含方案前缀时明确无歧义。
HTTPhttp://host[:port]通过HTTP连接。如果没有指定端口,默认为80端口。
HTTPShttps://host[:port]通过HTTPS连接。如果没有指定端口,默认为443端口。
Stdio命令cmd://<program> [args…]在本地启动程序,并通过其STDIN/STDOUT管道进行MCP通信。如果命令包含空格,请使用引号。
身份验证auth://<name>使用存储的身份验证条目(参见下文的身份验证部分)。

示例目标

  • api.acme.ai (TCP,默认端口)
  • tcp://api.acme.ai:7780 (TCP,7780端口)
  • http://api.acme.ai (HTTP,80端口)
  • https://api.acme.ai:8443 (HTTPS,8443端口)
  • "cmd://./my-stdio-server --some --argument" (本地进程)
  • auth://github (存储的身份验证条目)

全局命令(从shell运行)

命令目的
mcptool connect <目标> [--script <文件>]连接到目标。如果没有 --script,则进入交互式提示符 (>)。如果有 --script,mcptool 从 文件 中逐行读取一个子命令,顺序执行它们,打印结果并退出。
mcptool proxy <目标> --log-file <文件>透明地打开一个stdio传输通道,并将所有流量代理到目标,记录到 文件 中。
mcptool testserver [--stdio] [--tcp] [--port <端口>]运行一个带有详细日志的测试MCP服务器。使用 --stdio 用于stdio传输,--tcp 用于TCP传输,或者默认HTTP在指定端口上。
mcptool version显示mcptool构建版本及关联的MCP修订版。
mcptool help [子命令]显示任何命令的上下文帮助。

全局选项

选项目的
--json输出结果为JSON格式
--logs <级别>启用指定级别的日志(debug, info, notice, warning, error, critical, alert, emergency)
--color强制颜色输出
--no-color禁用颜色输出
--quiet抑制所有输出,包括JSON输出

MCP命令(可在提示符内或从shell中使用 <目标>

当你在 提示符内 时,输入这些命令 不带 mcptool 前缀且不带目标。从常规shell中,前面加上 mcptool mcp 并提供一个 <目标>

提示符形式shell形式目的
pingmcptool mcp ping <目标>测量往返延迟。
initmcptool mcp init <目标>初始化连接并显示服务器信息。
listtoolsmcptool mcp listtools <目标>列出所有MCP工具 (tools/list)。
listpromptsmcptool mcp listprompts <目标>列出预定义的提示模板 (prompts/list)。
listresourcesmcptool mcp listresources <目标>列出服务器资源,如数据库或文件树 (resources/list)。
listresourcetemplatesmcptool mcp listresourcetemplates <目标>列出可用于实例化的资源模板。
setlevel <级别>mcptool mcp setlevel <目标> <级别>设置MCP服务器的日志级别。
calltool <工具> [选项]mcptool mcp calltool <目标> <工具> [选项]调用带有参数的工具。选项:--arg key=value, --interactive, --json
readresource <URI>mcptool mcp readresource <目标> <URI>通过URI读取资源。
getprompt <名称> [--arg key=value]mcptool mcp getprompt <目标> <名称> [--arg key=value]根据名称获取提示,可选参数。
subscriberesource <URI>mcptool mcp subscriberesource <目标> <URI>订阅资源更新通知。
unsubscriberesource <URI>mcptool mcp unsubscriberesource <目标> <URI>取消订阅资源更新通知。
complete <引用> <参数>mcptool mcp complete <目标> <引用> <参数>获取提示或资源参数的补全建议。

交互式提示符及脚本模式

一旦连接 没有 --script,你可以运行任何子命令而无需再次指定目标,就像你在正常的命令行一样。

如果你 提供 --script mysession.mcp,文件将逐行读取,每行都被视为你在提示符下键入的内容。最后一行执行完毕后,连接将自动关闭。

$ mcptool connect api.acme.ai
已连接到 api.acme.ai (tcp, proto-rev 9)
> ping
107 ms
> listtools
summarize      translate      moderate
> calltool summarize --arg text="Hello world"
{"summary":"Hello 🌍"}
> exit

身份验证

Mcptool 支持HTTP/HTTPS端点的OAuth身份验证。身份验证条目可以通过 mcptool auth 命令管理:

命令目的
mcptool auth add <名称> [选项]添加一个新的OAuth身份验证条目,通过交互式设置
mcptool auth list列出所有存储的身份验证条目
mcptool auth remove <名称>删除一个身份验证条目
mcptool auth renew <名称>使用刷新令牌重新获取访问令牌

一旦存储了一个身份验证条目,你可以使用 auth:// 目标语法将其用于任何MCP命令:

# 添加GitHub身份验证
mcptool auth add github

# 使用存储的身份验证
mcptool mcp ping auth://github
mcptool mcp listtools auth://github
mcptool connect auth://github

示例

# 检查远程MCP服务器的延迟(隐式TCP)
mcptool mcp ping api.acme.ai

# 检查本地stdio服务器的延迟
mcptool mcp ping "cmd://./my-stdio-server --some --argument"

# 使用存储的身份验证(例如,GitHub Copilot)
mcptool mcp ping auth://github

# 使用身份验证列出工具
mcptool mcp listtools auth://github

# 通过非默认端口的TCP连接并立即运行状态查询,然后退出
mcptool calltool tcp://dev.acme.ai:7780 -- status

# 在本地stdio端点执行带有参数的工具
mcptool mcp calltool "cmd://./my-stdio-server --some --argument" summarize --arg text="Hello world"

# 使用交互模式,逐个提示参数
mcptool mcp calltool api.acme.ai chat.complete --interactive

# 通过STDIN传递复杂的JSON负载
echo '{"text": "Hello world", "model": "gpt-4"}' | mcptool mcp calltool api.acme.ai chat.complete --json

# 运行脚本序列而不进入提示符
mcptool connect api.acme.ai --script mysession.mcp