mcporter:让 MCP 服务器调用变成终端命令行的开源工具
总结
mcporter 是 OpenClaw 团队开源的 MCP(Model Context Protocol)运行时工具,一句话定位:「用 CLI / TypeScript API 直接调用任意 MCP 服务器,把 AI Agent 的工具调用变成普通开发命令」。它让 MCP 不再是 AI 编程工具的专属,任何人一条命令就能列出工具、调用工具、生成专用 CLI、导出类型定义。截至 2026-08-28 在 GitHub 已有约 5,000 颗星,是近期 MCP 生态里增长最快的开发者工具之一。
功能与原则
mcporter 解决的是 MCP 生态的「最后一公里」问题:MCP 服务器越来越多,但调用它们需要理解协议细节、配置本地环境、记住每个工具的参数。mcporter 把这一切封装成直觉化的 CLI 和 TypeScript API,核心功能包括:
- 列出服务器工具:
mcporter list <server-url>打印出 TypeScript 风格的工具签名,不需要翻文档 - 直接调用工具:
mcporter call <server>/<tool> --arg value一条命令完成调用,stdout 输出结果 - 生成专用 CLI:
mcporter generate-cli把某个 MCP 服务器的能力打包成一个独立命令行工具,交给他人或在 CI 里使用 - 导出类型定义:
mcporter emit-ts生成该服务器的 TypeScript 类型文件,配合 IDE 自动补全 - 录制与回放:
mcporter record+mcporter replay录制工具调用序列,便于测试和复现 bug - 跨客户端配置导入:自动识别 Cursor、Claude Code、Codex、Windsurf、VS Code 等的 MCP 配置,合并到自己的
config/mcporter.json
设计原则:CLI 优先,TypeScript 原生,协议透明。human-readable 输出到 stdout,JSON 模式供脚本调用。
认可度
- GitHub Star:约 5,000(截至 2026-08-28)
- 技术标签:TypeScript / MCP / CLI Tools / Agent Infrastructure
- 维护方:OpenClaw 官方团队(开源 AI 助手框架,GitHub 387k+ Stars)
- 生态集成:已发布至 npm(
mcporter包),支持 Homebrew 安装,有 mcporter.sh 在线文档站 - 协作项目:关联了 CodexBar、Trimmy、Oracle 等相邻开发者工具
链接
GitHub:https://github.com/openclaw/mcporter
原作者
OpenClaw 团队(@openclaw)— 开源个人 AI 助手框架,跨平台支持微信、QQ、Telegram 等 10+ 消息渠道,Skills 可扩展架构的核心维护者。Peter Saivo(steipete)是主要贡献者之一,同时维护多个知名 iOS/macOS 开源工具。
介绍
MCP(Model Context Protocol)在 2026 年已成为 AI Agent 连接外部工具的事实标准——GitHub 上有数千个 MCP 服务器,覆盖代码检索、浏览器自动化、数据库查询、API 调用等各种场景。然而,这些服务器分散在不同项目中,调用方式各不相同,对普通开发者来说门槛仍然偏高。
mcporter 的出现,就是为了把这个门槛彻底抹平。它的 CLI 设计极度克制:mcporter list <url> 查工具体系,mcporter call <tool> 执行调用,就这么简单。不需要写代码、不需要配置 JSON、不需要理解 stdio 还是 Streamable HTTP——mcporter 替你处理所有协议握手细节。
更深一层,mcporter 还解决了 AI 编码 Agent 的工具发现难题。在 Claude Code、Cursor、Codex 里配置 MCP 服务器需要手动编辑 JSON 文件,而 mcporter 能自动扫描这些工具的配置文件,统一导入、统一管理。这意味着你在 VS Code 里配好的 MCP 服务器,同一段 mcporter call 命令行也能用,工具不再被单一客户端绑定。
特点
- 零配置试用:
npx mcporter --version无需安装即可体验,列出工具只需一条命令 - TypeScript 原生:
createRuntime()/callOnce()/createServerProxy()三种 API,满足从脚本到生产集成的不同需求 - 协议自动协商:自动检测 stdio / Streamable HTTP / 传统 SSE,兼容新旧 MCP 服务器
- OAuth 与凭证管理:
mcporter auth+mcporter vault处理 OAuth 流程和密钥存储,不需要把凭证硬编码到脚本里 - Chrome DevTools 桥接:通过 OpenClaw 扩展 relay 实现安全的本地 Chrome 控制,credential-free loopback + OS 级授权托收
- 录制回放调试:
mcporter record捕获完整调用序列,mcporter replay复现任意调用步骤,测试 CI 流程时特别有用 - 配置热导入:从 Cursor、Claude Code、Codex、Windsurf、OpenCode、VS Code 自动导入已有的 MCP 配置
使用方法
安装:
# Node 24+ 推荐 npm 全局安装
npm install -g mcporter
# macOS/Linux Homebrew
brew install steipete/tap/mcporter
# 无需安装,直接 npx 体验
npx mcporter --version
基本调用:
# 列出 Context7 MCP 服务器所有工具签名
npx mcporter list https://mcp.context7.com/mcp --brief
# 调用工具并传入参数
npx mcporter call https://mcp.context7.com/mcp.resolve-library-id
query="React hooks docs" libraryName=react
# 生成该服务器的专用 CLI
npx mcporter generate-cli --server https://mcp.context7.com/mcp --name ctx7
# 导出 TypeScript 类型定义
npx mcporter emit-ts --server https://mcp.context7.com/mcp > types.ts
TypeScript API 示例:
import { createRuntime } from 'mcporter';
const runtime = await createRuntime({
servers: [{
name: 'context7',
command: { kind: 'http', url: new URL('https://mcp.context7.com/mcp') }
}],
});
try {
// 列出工具
const tools = await runtime.listTools('context7');
console.log(tools.map(t => t.name));
// 调用工具
const result = await runtime.callOnce('context7', 'resolve-library-id', {
query: 'React hooks docs',
libraryName: 'react'
});
console.log(result);
} finally {
await runtime.close();
}
Chrome DevTools 控制(需 OpenClaw 扩展 relay):
mcporter list chrome-devtools --autoConnect
使用场景与人群
适用场景:
- 调试和探索未知 MCP 服务器(快速列出工具、试用调用)
- 在 CI/CD 里把 MCP 工具调用打包成可复现的 CLI 步骤
- 将 MCP 能力封装成分发给他人使用的独立命令行工具
- TypeScript 项目中类型安全地调用 MCP 服务器
- 团队内部 MCP 配置的统一管理和分发
目标用户:AI 工具开发者、MCP 服务器维护者、在 CI 中集成 AI 能力 DevOps 工程师、以及任何想绕过 AI 编程工具直接使用 MCP 的开发者。
输入与输出案例
案例 1:探索 Context7 代码检索 MCP
# 输入:列出 Context7 所有可用工具
$ mcporter list https://mcp.context7.com/mcp --brief
# 输出(工具清单,TypeScript 签名格式):
resolve-library-id(query: string, libraryName: string): Promise<LibraryResult>
get-langchain-docs(libraryName: string, version?: string): Promise<DocsResult>
get-official-docs(repoName: string, ...): Promise<DocsResult>
案例 2:生成专用 CLI 分发给队友
# 输入:为公司的内部 MCP 服务器生成 CLI
$ mcporter generate-cli
--server https://internal-mcp.company.com/mcp
--name company-mcp
--output ./bin/
# 输出:
# 生成 ./bin/company-mcp 可执行文件
# 队友无需安装 mcporter,直接 ./bin/company-mcp call <tool> 即可调用
评论区
登录后可评论。