七、工具调用语法
mcporter 支持多种参数风格,适应不同场景:
7.1 推断调用命令(最简洁)
# 点号分隔自动触发 call 命令mcporter<server>.<tool>key=value key:value# 带空格的值用引号包裹mcporter<server>.<tool>'key: "multi word value"'7.2 显式 call + 标志
mcporter call<server>.<tool>--flagvalue mcporter call<server>.<tool>key=value--flagvalue7.3 函数调用语法(最直观)
# 完整函数调用风格mcporter call'<server>.<tool>(key: "value", key2: "value2")'# 位置参数(省略标签时按 Schema 顺序映射)mcporter'<server>.<tool>("positional1", "positional2")'支持嵌套对象和数组:
mcporter call'linear.create_issue(title: "Bug", assignee: {name: "Alice"}, labels: ["bug", "urgent"])'7.4 从文件读取参数
# 将文件内容作为参数值mcporter call<server>.<tool>body=@file.md mcporter call<server>.<tool>--body@file.md7.5 输出格式选择
mcporter call<server>.<tool>--outputtext# 纯文本mcporter call<server>.<tool>--outputmarkdown# Markdownmcporter call<server>.<tool>--outputjson# JSON(机器可读)mcporter call<server>.<tool>--outputraw# 原始输出📌
--json在 stdout 生成稳定 JSON 信封;人类可读的进度、提示和警告始终输出到 stderr。
八、Ad-hoc 临时连接
无需编辑配置文件即可指向任何 MCP 端点——这是 mcporter 最强大的特性之一。
8.1 HTTP 临时连接
# 通过 --http-url 列出工具mcporter list --http-url https://mcp.example.com/mcp# 通过 --http-url 调用工具mcporter call --http-url https://mcp.example.com/mcp<tool>key=value# 裸 URL 自动解析(mcporter 自动识别 MCP 端点)mcporter list'https://mcp.example.com/mcp'mcporter call'https://mcp.example.com/mcp.<tool>(key: "value")'8.2 Stdio 临时连接
# 直接运行本地 stdio 服务器mcporter call--stdio"bun run ./server.ts"--namelocal-tools scrapeurl=https://example.com# 使用 npx 运行社区服务器mcporter list--stdio"npx -y @modelcontextprotocol/server-filesystem"--namefs8.3 安全机制
| 场景 | 行为 |
|---|---|
| 非 HTTPS 端点 | 需要--allow-http(或--insecure) |
| 首次遇到新 stdio 命令 | 打印确认摘要 |
| 临时连接持久化 | 使用--persist保存到配置文件 |
8.4 OAuth 自动检测
当临时 HTTP 服务器在初始握手期间返回401/403,mcporter 自动将定义提升为 OAuth 并启动浏览器流程。无头主机使用--no-browser打印授权 URL。
九、Keep-Alive 守护进程
9.1 为什么需要 Keep-Alive?
许多 MCP 服务器是有状态的(如 Chrome DevTools、Playwright、数据库连接)。如果每次 CLI 调用都启动新进程,状态会丢失,性能也很差。Keep-Alive 守护进程在后台保持这些连接温热,后续调用直接复用。
9.2 生命周期选择
{ "mcpServers": { "browser": { "command": "npx", "args": ["-y", "chrome-devtools-mcp@latest", "--autoConnect"], "lifecycle": "keep-alive" } } }默认行为:
| 服务器类型 | 默认生命周期 |
|---|---|
| Chrome DevTools MCP | keep-alive |
| Mobile MCP | keep-alive |
| Playwright MCP | keep-alive |
| CloudBase MCP | keep-alive |
| 其他服务器 | ephemeral(需显式配置) |
环境变量覆盖:
| 变量 | 说明 |
|---|---|
MCPORTER_KEEPALIVE=name | 按名称启用 keep-alive(逗号分隔,*表示全部) |
MCPORTER_DISABLE_KEEPALIVE=name | 按名称禁用 keep-alive |
9.3 守护进程命令
mcporter daemon status# 查看状态mcporter daemon start# 启动mcporter daemon restart# 重启mcporter daemon stop# 停止符合条件的服务器在需要时自动启动守护进程。使用显式命令进行检查、预热、重启或停止。
9.4 守护进程架构
9.5 日志管理
# 启动守护进程并记录日志mcporter daemon start--log# 指定日志文件mcporter daemon start--log--log-file /path/to/log# 限制日志范围mcporter daemon start--log--log-servers chrome-devtools,playwright设置MCPORTER_LOG_LEVEL=info查看结构化连接决策日志。