MCPorter:让 MCP 变成"终端里的 API"

> 来源: github.com/steipete/mcporter

> 作者: Peter Steinberger(@steipete,OpenClaw 创始人,PSPDFKit 前创始人)

> npm: mcporter v0.7.3

> 研究时间: 2026-03-29

🎯 一句话版本

MCPorter 把 MCP(Model Context Protocol)服务器变成了可以在终端直接调用的命令行工具,或者可以在 TypeScript 里像调函数一样使用的 API。一行 npx mcporter call linear.create_comment body:"搞定了" 就能调 Linear 的 MCP 接口——不用写 boilerplate,不用翻 schema。

🔧 核心功能

MCPorter 解决的问题:MCP 生态越来越大,但调用 MCP server 依然很麻烦——要配连接、要写客户端代码、要处理 OAuth。MCPorter 提供三层接口:

1. CLI — 终端直接调


# 两种语法都行
npx mcporter call linear.create_comment issueId:ENG-123 body:'Looks good!'
npx mcporter call 'linear.create_comment(issueId: "ENG-123", body: "Looks good!")'

# 列出所有已配置的 MCP server 和工具签名
npx mcporter list

# 查看特定 server 的完整 schema
npx mcporter list context7 --schema

# 连 ad-hoc HTTP 端点
npx mcporter call https://mcp.linear.app/mcp.list_issues assignee=me

输出长得像 TypeScript 头文件——可以直接复制签名来调用:


/**
 * Create a comment on a specific Linear issue
 * @param issueId The issue ID
 * @param body The content of the comment as Markdown
 */
function create_comment(issueId: string, body: string, parentId?: string);

2. TypeScript API — 程序化调用


import { createRuntime, createServerProxy } from 'mcporter';

const runtime = await createRuntime();
const linear = createServerProxy(runtime, 'linear');

// camelCase 方法,类型安全
const result = await linear.createComment({ issueId: 'ENG-123', body: '搞定了' });
console.log(result.text());

createServerProxy() 自动把 MCP 工具暴露为 camelCase 方法,填默认值、校验必填参数,返回带 .text() / .json() / .images() 等 helper 的 CallResult

3. 代码生成 — 生成 CLI 或类型定义


# 把 MCP server 变成独立 CLI(可 bundle/compile)
mcporter generate-cli

# 生成 .d.ts 类型定义或可运行的客户端 wrapper
mcporter emit-ts

🧩 智能特性

零配置发现

MCPorter 自动合并所有能找到的 MCP 配置


~/.mcporter/mcporter.json     ← 全局配置
./config/mcporter.json         ← 项目配置
Cursor 配置                    ← 自动导入
Claude Desktop/Code 配置       ← 自动导入
Codex/Windsurf/OpenCode/VS Code ← 自动导入

不用手动配置——你在 Cursor 里加的 MCP server,MCPorter 自动就能用。

守护进程管理

有状态的 MCP server(如 chrome-devtools, mobile-mcp)自动起后台 daemon:


mcporter daemon status  # 查看状态
mcporter daemon start   # 预热
mcporter daemon stop    # 停止

自动纠错

打错工具名?MCPorter 会查服务器目录,如果编辑距离小就自动纠正,否则给出 "Did you mean ...?" 提示。

OAuth 一键登录


mcporter auth vercel   # 浏览器弹出 → 登录 → 搞定

自动检测 Supabase、Vercel 等需要浏览器登录的 MCP,缓存 token。

💡 与我们的关联

1. 同一个作者

MCPorter 是 OpenClaw 创始人 steipete 自己做的。GitHub bio 写着 "Clawdfather @OpenClaw"。这不是随便一个开源项目——这是 OpenClaw 生态的核心组件。

2. OpenClaw 的 MCP 管道就靠它

OpenClaw 支持 MCP,MCPorter 就是底层的调用层。理解 MCPorter 就理解了 OpenClaw 怎么和外部工具交互。

3. 我们可以直接用

场景:

4. 和 witcheer 的 shell 脚本思路一致

昨天 witcheer 的报告里提到他有 35 个 shell 脚本调各种 API。MCPorter 本质上是同一个思路的升级版——把 MCP server 变成 shell 可调的命令,但多了类型安全、自动发现、OAuth 管理

📊 评分

维度评分(/10)
实用性9.0 — 直接解决 MCP 调用痛点,零配置即用
技术质量8.5 — 多传输支持、daemon 管理、类型生成
文档质量8.0 — README 详尽,有专门的 docs/ 目录
生态价值8.5 — OpenClaw 创始人出品,生态核心组件
与我们的相关度8.0 — 可直接用于调试和脚本化 MCP 调用
**综合****8.5**

报告由深度研究助手自动生成 | 2026-03-29

来源: GitHub / npm / DeepWiki