使用说明
门廊
⭐ 在GitHub上为我们投票 --它可以帮助其他人发现这个项目!
你的MCP不会互相交谈。Porch从npm和PyPI发现并安装MCP,通过URL或stdio连接它们,将它们的工具链接到工作流中,将任何MCP隧道到互联网(根据MCP令牌快速或命名),并让您最喜欢的LLM添加MCP,构建工作流,管理隧道,并从聊天中运行所有这些。Web UI、易于安装的Cursor、Claude、Windsurf和Continue、CLI、一个命令引导和自动启动。
瓷器 --网站上有文档、安装指南和安装说明。
目录
设置
cd porch
npm install
npm run build
配置
复制示例并针对您的设置进行编辑:
cp porch.config.example.json porch.config.json
您的配置被忽略,从未提交。两种MCP类型:
URL(HTTP/SSE)
对于暴露HTTP端点的MCP(例如Pieces):
"pieces": {
"type": "url",
"url": "http://localhost:39300/model_context_protocol/2025-03-26/mcp"
}
Stdio(生成过程)
对于作为流程运行的MCP(例如Spotify MCP):
"spotify": {
"type": "stdio",
"command": "node",
"args": ["./spotify-mcp-server/build/index.js"],
"cwd": "./spotify-mcp-server"
}
如果从其他地方运行,请使用绝对路径。对于文件系统MCP,替换 /path/to/your/projects 使用您想要允许的目录(例如您的主页或项目文件夹)。
承载令牌(URL MCP)
对于需要承载令牌的URL MCP,添加 authorizationToken:
"pieces": {
"type": "url",
"url": "http://localhost:39300/.../mcp",
"authorizationToken": "env:MCP_PIECES_TOKEN"
}
支持的格式:
env:VAR_NAME--阅读自process.env.VAR_NAME(推荐给CI)secret:key--阅读自porch.secrets.json(本地存储,gitignored)- 纯字符串——在提交的配置中避免使用
通过API存储令牌: PUT /api/secrets/:key 随着 { "value": "your-token" }.
加密机密(推荐)
当主密钥可用时,会存储秘密 加密的 (AES-256-GCM)英寸 porch.secrets.json。密钥存储在 操作系统钥匙链 (macOS钥匙串、Windows凭据管理器、Linux特勤局)——没有纯文本密钥文件。
安装脚本 提示输入密码,并将导出的密钥存储在OS密钥链中。没有包含秘密的文件。
手动设置: 跑 npm run setup-encryption 并输入密码(最少8个字符)。或者使用设置界面:输入密码并单击“设置加密”。现有的秘密会立即重新加密。
以(权力)否决 集 PORCH_MASTER_KEY (base64 32字节密钥或密码)在您的环境中使用与密钥链不同的密钥。
没有主密钥: 回到传统的纯JSON。限制权限: chmod 600 porch.secrets.json.
工具路由:网关与完整
违约: proxyMode: "gateway" --每个MCP有一条路线,而不是每个工具。保持工具数量低(3 MCP→ 3 网关工具+本地编排工具)。
- 呼叫
spotify__call(tool="getNowPlaying", args={})或P__call(tool="create_pieces_memory", args={}) - 使用
list_tools(mcp="spotify")发现可用工具 - 工作流不变——它们使用
mcp+tool逐步
遗产: proxyMode: "full" --每个MCP工具都是自己的代理(spotify__getNowPlaying, Pieces__create_pieces_memory等等)。完全符合人体工程学,但许多MCP可以超过80个工具限制。使用 proxyPrefix, toolsInclude,或 toolsExclude 根据MCP进行修剪。
工作流
工作流链式步骤。使用占位符将上一步的输出注入到下一步的参数中:
| 占位符 | 用例 |
|---|---|
{{step0}} |
步骤0的全文输出 |
{{step1.id}} |
JSON路径-当步骤返回有效的JSON时,提取 id |
{{step1:regex:Playlist ID: (\w+)}} |
Regex——单捕获组 |
{{step0:regexAll:ID: (\w+)}} |
Regex all–全部捕获为 数组 |
{{now}} |
ISO格式的当前时间 |
{{isoDate}} |
今天的日期(YYYY-MM-DD) |
{{date}} |
本地日期字符串 |
{{timestamp}} |
Unix毫秒 |
{{uuid}} |
随机UUID |
{{year}}, {{month}}, {{day}}, {{weekday}} |
日期部件 |
{{js: new Date().toLocaleDateString('en-US', {month:'long'}) }} |
任意JavaScript表达式 |
示例:Spotify→ 碎片
{
"name": "Spotify to Pieces",
"steps": [
{ "mcp": "spotify", "tool": "getRecentlyPlayed", "args": { "limit": 15 } },
{
"mcp": "pieces",
"tool": "create_pieces_memory",
"args": {
"summary_description": "Spotify listening history",
"summary": "# Recently Played\n\n{{step0}}"
}
}
]
}
易于安装(Mac、Linux、Windows)
一个命令安装程序,在后台运行服务器并添加 瓷器本地 因此,您可以使用友好的URL打开UI。默认情况下,服务器设置为 登录时自动启动.
单线安装(粘贴到终端)
Mac和Linux:
bash <(curl -sSL https://raw.githubusercontent.com/dev-nolant/porch/main/scripts/bootstrap.sh)
跳过自动启动:
bash <(curl -sSL https://raw.githubusercontent.com/dev-nolant/porch/main/scripts/bootstrap.sh) --no-startup
Windows PowerShell:
irm https://raw.githubusercontent.com/dev-nolant/porch/main/scripts/bootstrap.ps1 | iex
Windows,跳过自动启动: $env:NO_STARTUP=1; irm https://raw.githubusercontent.com/dev-nolant/porch/main/scripts/bootstrap.ps1 | iex
引导程序将仓库克隆到 ~/porch,运行 npm install 和 npm run build,注册 porch 全局CLI,然后启动服务器。它将提示可选工具(uv、cloudflared)和加密密钥设置。
非交互式 (CI、自动化、跳过所有提示): curl -sSL https://raw.githubusercontent.com/dev-nolant/porch/main/scripts/bootstrap.sh | bash
Mac和Linux(手动,克隆后):
cd porch
chmod +x scripts/*.sh
./scripts/install.sh
然后打开 http://porch.local:3847 (或http://localhost:3847)
Windows(PowerShell作为主机文件的管理员):
cd porch
.\scripts\install.ps1
然后打开 http://porch.local:3847
跳过自动启动 (安装时登录时不自动启动):
./scripts/install.sh --no-startup
.\scripts\install.ps1 -NoStartup
云雾缭绕 (适用于公共URL/隧道):安装程序提示安装cloudflared。要跳过提示,请执行以下操作:
./scripts/install.sh --cloudflared # Install cloudflared
./scripts/install.sh --no-cloudflared # Skip (default when non-interactive)
.\scripts\install.ps1 -Cloudflared # Install cloudflared
.\scripts\install.ps1 -NoCloudflared # Skip
紫外线 (对于Discover的Python mcp,例如快速mcp电报):安装程序提示安装uv。要跳过提示,请执行以下操作:
./scripts/install.sh --uv # Install uv
./scripts/install.sh --no-uv # Skip (default when non-interactive)
.\scripts\install.ps1 -Uv # Install uv
.\scripts\install.ps1 -NoUv # Skip
控制脚本:
./scripts/start.sh/.\scripts\start.ps1--在后台启动服务器./scripts/stop.sh/.\scripts\stop.ps1--停止服务器./scripts/update.sh/.\scripts\update.ps1--更新(git pull、npm安装、构建、重启)./scripts/enable-startup.sh/.\scripts\enable-startup.ps1--登录时启用自动启动./scripts/disable-startup.sh/.\scripts\disable-startup.ps1--登录时禁用自动启动- 日志:
tail -f .porch.log(Mac/Linux)或Get-Content .porch.log -Wait -Tail 20(Windows)。在Windows上,stderr转到.porch.err.
安装程序添加 127.0.0.1 porch.local 到您的hosts文件(首次运行时需要sudo/admin)。
禁用自动启动
如果您在安装时启用了自动启动,并希望将其关闭:
雨衣:
./scripts/disable-startup.sh
这将停止服务器并删除启动代理。下次登录时不会启动。
Linux:
./scripts/disable-startup.sh
这将停止服务器并删除systemd用户服务。
窗户:
.\scripts\disable-startup.ps1
这将停止服务器并删除计划任务。
要稍后重新启用自动启动,请运行 ./scripts/enable-startup.sh 或 .\scripts\enable-startup.ps1.
卸载
Mac和Linux:
cd ~/porch
./scripts/disable-startup.sh
这将停止服务器并删除launchd/systemd自动启动条目。
窗户:
cd ~\porch
.\scripts\disable-startup.ps1
这将停止服务器并删除计划任务。
可选清理:
- 移除
porchCLI:npm unlink -g porch - 移除
127.0.0.1 porch.local从您的hosts文件(/etc/hosts在Mac/Linux上,C:\Windows\System32\drivers\etc\hosts在Windows上)。 - 删除项目文件夹:
rm -rf ~/porch(Mac/Linux)或删除~\porch(Windows)。
如果使用自定义安装位置,请从该目录运行脚本,而不是 ~/porch.
Web用户界面
npm run ui
# → http://localhost:3847
或 porch open 在浏览器中打开UI(需要服务器运行)。仪表板页脚有 文档 和 在GitHub上查看 链接。
UI允许您:
- 添加MCP 按URL(例如。
http://localhost:39300/.../mcp)或通过文件/stdio(命令、args、cwd) - 连接 --将Porch添加到Cursor、Claude Desktop、Windsurf,或通过简易安装继续
- 构建工作流 通过链接MCP中的操作;使用
{{step0}},{{step1}},{{now}},{{isoDate}},等等 - 安排工作流程 通过“计划”选项卡自动运行(cron)
- 运行工作流 并查看输出
配置已保存到 porch.config.json 在项目目录中。
命令行界面
安装后 porch 命令在全球范围内可用。或使用 npm run 从项目目录。
porch help # List all commands
porch list # List tools from all MCPs
porch workflow "Spotify to Pieces"
porch workflow show "Spotify to Pieces" # Show workflow config
porch workflows [--json] # List workflows
porch mcps [--json] # List MCPs + status
porch tunnel status|start|stop
porch logs [--tail=N] # Recent logs
porch open # Open UI in browser
选项: --config=PATH 用于自定义配置。在以下位置搜索配置:cwd、包根或 --config= 路径。
工作流输入: porch workflow "Start Study" --input='{"subject":"math"}' 或 --input=@input.json
手动(无全局安装): npm run list 和 npm run workflow -- "Spotify to Pieces"
每30分钟跑一次(可选)
同步Spotify→ 每30分钟自动处理一次:
克朗:
*/30 * * * * cd /path/to/porch && porch workflow "Spotify to Pieces"
连接(MCP客户端设置)
这 连接 Web UI中的选项卡使将Porch添加到AI客户端变得容易。
- 打开用户界面(
npm run ui) → 连接 标签 - 选择您的 平台 (macOS、Windows、Linux——自动检测)
- 选择您的 客户端 (光标、克劳德桌面、风帆、继续)
- 点击 简易安装 将配置写入正确的文件,同时保留现有的MCP
或使用 复制配置 手动粘贴JSON。保存后重新启动客户端。
| 客户端 | 配置路径(macOS) |
|---|---|
| 光标 | ~/.cursor/mcp.json |
| 克劳德桌面 | ~/Library/Application Support/Claude/claude_desktop_config.json |
| 风帆冲浪 | ~/.codeium/windsurf/mcp_config.json |
| 继续 | ~/.continue/config.json |
克劳德桌面笔记: Claude只支持stdio MCP,不支持HTTP。Easy Install使用内置的stdio桥(mcp-bridge.js)这样Claude就可以与编排器的HTTP端点进行通信。在打开Claude之前,确保MCP Orchestrator正在运行。
从mcp编排器目录运行 使用Easy Install时,桥路径会正确解析(例如。 cd mcp-orchestrator && npm run ui).
用作MCP
Porch是一流的MCP服务器。将其添加到任何MCP客户端(Cursor、Claude Desktop、Windsurf、Continue、MCP Inspector或自定义应用程序),并操作工作流、MCP、隧道和安装——所有这些都可以通过聊天完成,不需要web UI。
资源(请阅读这些内容以了解上下文)
orchestrator://glossary--首先阅读:每个工具的参考、参数、用法、示例(通过自定义docs/glossary.md)orchestrator://workflow-guide--创建工作流的指令集:手动运行、输出检查、占位符(请参见docs/creating-workflows.md)orchestrator://config--完整配置(mcps、工作流)orchestrator://status--MCP健康+隧道状态orchestrator://logs--最近日志
按类别划分的工具
| 类别 | 工具 |
|---|---|
| 工作流 | list_workflows, run_workflow, get_workflow, add_workflow, update_workflow, delete_workflow, schedule_workflow, unschedule_workflow |
| 单核细胞趋化蛋白 | list_mcps, get_mcp_status, add_mcp, remove_mcp, enable_mcp, disable_mcp, call_tool, list_tools |
| 隧道 | get_tunnel_status, start_tunnel, stop_tunnel, set_tunnel_domain, cloudflare_login, generate_tunnel_token, revoke_tunnel_token |
| 注册表 | search_registry, install_from_registry, install_npm_mcp |
| 可观测性 | get_config, get_logs, clear_logs |
直接MCP访问: 每个MCP的工具都公开为 mcpName__toolName (例如。 spotify__getNowPlaying, pieces__create_pieces_memory).直接给他们打电话——不需要工作流。使用 call_tool 当您需要显式指定mcp/tool时。
设置
将Porch添加为 流式HTTP 带URL的MCP http://localhost:3847/mcp (或 http://porch.local:3847/mcp 如果使用主机条目)。 最简单: 使用“连接”选项卡→ 易于安装。
光标,风帆,继续: 这些客户端支持HTTP MCP。添加URL http://localhost:3847/mcp 在客户端的MCP设置中,或使用Connect→ 易于安装。
克劳德桌面: Claude仅支持stdio MCP。使用连接→ 易于安装(它添加了一个stdio桥配置),或手动添加到 claude_desktop_config.json:
{
"mcpServers": {
"porch": {
"command": "node",
"args": ["/path/to/porch/build/mcp-bridge.js"],
"env": {
"PORCH_URI": "http://localhost:3847/mcp"
}
}
}
}
替换 /path/to/porch 使用您的安装路径。确保Porch服务器正在运行(npm run ui 或通过安装脚本)进行连接。
公共URL(隧道)
暴露 任何MCP 使用令牌身份验证连接到互联网。两种选择:
快速通道(无配置)
免费,无需注册。URL每次开始都会更改。
- 安装cloudflared:
brew install cloudflared - 打开 公共URL tab → 启动隧道
- 创建
https://xxx.trycloudflare.com - 根据MCP生成令牌;远程客户端使用URL+承载令牌
命名隧道(稳定URL)
需要Cloudflare帐户。每次都是相同的URL。
- 登录 --在“公共URL”选项卡中,单击 登录Cloudflare浏览器打开;登录并批准。
- 设置子域库 --输入您的域名(例如。
porch.sh)在“子域库”字段中单击“保存”。该域必须在您的Cloudflare帐户中。 - 启动隧道 --创建命名隧道,路由DNS(
spotify.porch.sh,pieces.porch.sh等),并运行。每个MCP都有自己的子域。
或者,使用基于令牌的命名隧道:set CLOUDFLARE_TUNNEL_TOKEN 和 CLOUDFLARE_TUNNEL_PUBLIC_URL (或秘密)。
URL MCP 通过编排器进行隧道传输; 标准 MCP 使用HTTP到stdio网桥。所有流量都使用每个MCP令牌进行代理和验证。没有令牌,访问将被拒绝。
示例(任何MCP客户端):
URL: https://your-tunnel.trycloudflare.com/tunnel/pieces
Authorization: Bearer <your-token>
安全:
- MCP令牌
porch.secrets.json.使用 撤销 无效。 - 隧道令牌/URL:使用env变量或secrets;永远不要承诺。
先决条件
- Node.js (v18+)
