你有没有遇到过这种情况——
配置好了一个MCP服务器,想测试它能不能跑,结果发现:没有图形界面,没有友好的调试工具,唯一能用的就是直接curl请求,还容易出错。
今天要说的这个工具,就是为了解决这个问题而生。
它叫 mcporter,一个专门用来操作MCP(Model Context Protocol)服务器的CLI工具。
来自 steipete(Peter Steinberger)——你可能知道他是 iOS 开发圈的老面孔,著名的 ASLK遗产处理工具就是他写的。
01 先说清楚一件事:MCP是什么?
MCP 是 Anthropic 在2024年底开源的一个协议标准。
它的目标很简单:让AI助手能够更方便地调用外部工具和数据源。
你可以把MCP理解成一个"AI的工具接口标准"——就像 USB 是硬件设备的接口标准一样,MCP是AI连接外部能力的接口标准。
一个MCP服务器,就是一个实现了这个标准的服务。它对外暴露了一组"工具"(tools),AI可以通过这个协议调用这些工具。
常见的MCP服务器有:
- Linear:项目管理
- Filesystem:文件系统操作
- GitHub:代码仓库操作
- Slack:消息发送
- 等等……
现在的问题是:当你开发或调试一个MCP服务器时,怎么快速测试它的工具?
传统的做法是写代码调用,或者用curl发请求。但这两种方式都很低效。
mcporter 做的事情,就是让你在命令行里直接操作任意MCP服务器。
02 mcporter能做什么?
第一件事:列出所有工具
mcporter list
这条命令会列出所有已配置的MCP服务器,以及每个服务器上可用的工具。
比如你配置了Linear服务器,它会显示:
linear
list_issues — 列出Issue
create_issue — 创建Issue
get_user — 获取用户信息
...
filesystem
read_file — 读文件
write_file — 写文件
list_directory — 列目录
第二件事:调用任意工具
mcporter call linear.list_issues team=ENG limit:5
这条命令会调用 Linear 的 `list_issues` 工具,传入参数 `team=ENG` 和 `limit=5`。
结果直接返回在终端里,不需要写任何代码。
第三件事:支持多种连接方式
mcporter 支持三种MCP传输方式:
HTTP模式(远程服务器):
mcporter call https://api.example.com/mcp.fetch url=https://example.com
Stdio模式(本地进程):
mcporter call --stdio "bun run ./server.ts" scrape url=https://example.com
WebSocket模式:
通过配置文件指定,支持长连接场景。
这种灵活性意味着:不管你的MCP服务器是本地进程、远程API还是WebSocket服务,mcporter都能连上。
第四件事:认证管理
对于需要OAuth认证的服务(比如Linear、Github),mcporter提供了内置的认证流程:
mcporter auth linear --reset
mcporter auth github
认证信息会被安全存储,后续调用自动带token,不需要手动管理。
第五件事:代码生成
这是我觉得最有意思的功能。
如果你在开发一个新的MCP服务器,mcporter可以帮你生成CLI工具:
mcporter generate-cli --server my-mcp-server
或者生成TypeScript类型定义:
mcporter emit-ts linear --mode types
生成的代码可以直接用,不用自己写类型定义。
03 为什么这个工具值得关注?
MCP协议正在快速普及。
Anthropic开源之后,AWS、Google、OpenAI都在跟进。越来越多的工具和服务开始支持MCP协议。
但问题是:开发工具链还没跟上。
你配置好了一个MCP服务,想测试它,但没有趁手的工具。要么写代码,要么用Postman慢慢调。
mcporter补上了这个空白——它是第一个真正意义上的"MCP服务器调试/操作CLI工具"。
它的价值不在于"我能替代什么",而在于"MCP协议普及后,这类工具一定会成为刚需"。
就像 `kubectl` 对于 Kubernetes、`gh` 对于 GitHub 一样——每个协议标准成熟后,都会需要一个CLI工具来操作它。
mcporter现在就是这个领域的第一批玩家。
04 安装和使用
安装:
mcporter 基于 Node.js,通过 npm 安装:
npm install -g mcporter
或者直接用 npx(不需要安装):
npx mcporter list
配置:
mcporter 默认在 `./config/mcporter.json` 读取配置。你可以手动添加服务器,也可以用命令引导配置:
mcporter config add linear --oauth
mcporter config add github --token YOUR_TOKEN
Daemon模式:
如果你需要保持长连接,可以启动守护进程:
mcporter daemon start
mcporter daemon status
守护进程启动后,后续的 `mcporter call` 命令会通过Unix Socket通信,性能更好。
输出格式:
默认输出是格式化过的文本。如果需要机器可读的格式:
mcporter call linear.list_issues --output json
05 一个具体的使用场景
假设你在开发一个"自动生成周报"的AI Agent,它需要:
1. 从Linear拉取上周完成的任务
2. 从GitHub拉取PR记录
3. 生成周报文本
没有mcporter之前,你的流程是:
1. 写代码调用Linear API
2. 写代码调用GitHub API
3. 写代码组装结果
有了mcporter,你可以先在命令行快速验证每个接口:
# 验证Linear
mcporter call linear.list_issues team=ENG limit:20
# 验证GitHub
mcporter call github.list_pulls owner=myorg repo=myrepo state=closed
# 验证通过后,再写代码
这个"先验证再开发"的流程,能省下大量调试时间。
06 和直接写代码相比,这个工具的优缺点
先说优点:
速度快 —— 不用写代码,命令直接出结果。适合快速验证。
调试友好 —— 每个工具都能单独测试,不用跑完整流程。
兼容性好 —— 不管是什么语言实现的MCP服务器,mcporter都能操作。
再说缺点:
不是面向最终用户的工具 —— 它是开发/调试工具,不是给普通用户用的。
需要了解MCP协议 —— 你得知道MCP是什么、工具是什么,不然看不懂输出。
没有重试/幂等等高级功能 —— 简单场景够用,复杂场景可能还是需要写代码。
所以它的定位很清晰:开发者的调试工具,不是生产环境的运行工具。
07 这个工具背后有一个更大的趋势
mcporter不是孤立的。
它的存在,折射出一个更大的趋势:随着MCP协议普及,围绕它的工具链会越来越丰富。
就像 Docker 容器化普及时,催生了 docker-compose、kubectl、portainer 等一系列工具一样——
MCP协议的标准成熟,也会催生:
- CLI调试工具(mcporter)
- 可视化工具(类似Postman但针对MCP)
- 监控/日志工具
- 负载均衡/网关
- 认证/权限管理
这是一个正在形成的基础设施工具链。
mcporter是这个链条上第一个值得关注的产品。
它的价值,不是现在有多大,而是它站在了一个即将爆发的基础设施工具赛道上。
夜雨聆风