mcpField
N
ngrok-engine

ngrok-engine

github.com/ngrok云与 DevOps18146 次安装4 天前更新
代码仓库

关于 ngrok-engine

ngrok-engine 是帮助 Agent 选择 ngrok 端点类型和协议,并设计相应 Traffic Policy 的技能。它将端点选择与配置应用位置区分开,并通过参考文件提供策略细节。

主要功能

  1. 01选择 Agent、云或内部端点
  2. 02说明 HTTP 与 TCP 的差异
  3. 03介绍 Traffic Policy 阶段和规则顺序
  4. 04列出 26 种策略动作
  5. 05提供动作配置参考
  6. 06建议使用 ngrok MCP 服务验证

适用场景

  1. 01为演示或生产服务选择端点
  2. 02让接收端不暴露于公共互联网
  3. 03编写有序的 HTTP 或 TCP 流量规则
  4. 04查找动作的有效配置

MCP 相关

技能说明,在连接 ngrok MCP 服务时,使用 gw_validate_traffic_policy 验证策略。它本身不提供 MCP 服务。

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/ngrok/skills --skill ngrok-engine

安装后在 Claude Code 中输入/ngrok-engine确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

references/
action-catalog.md
auth-actions.md
custom-response.md
endpoints.md
references/actions/
add-headers.md
basic-auth.md
circuit-breaker.md
close-connection.md
compress-response.md
custom-response.md
deny.md
forward-internal.md
http-request.md
jwt-validation.md
log.md
oauth.md
openid-connect.md
owasp-crs-request.md
owasp-crs-response.md
rate-limit.md
redirect.md
remove-headers.md
request-body-find-replace.md
response-body-find-replace.md
restrict-ips.md
set-vars.md
sse-find-replace.md
terminate-tls.md
url-rewrite.md
verify-webhook.md

详细介绍

ngrok 引擎:端点与流量策略

几乎所有 ngrok 任务都涉及两个决策:

  1. 选择哪种端点? Agent、云端还是内部端点——以及使用哪种协议。
  2. 流量应该如何处理? 即在边缘运行的流量策略。

本技能会在任务所需的层面回答这两个问题,并将详细内容放在 references/ 中。至于将结果应用到何处,则是另一个问题——请参阅 ngrok-surfaces。

请根据用户的意图做出这些决策。不要让用户选择端点类型;他们不需要了解这套分类。

1. 端点类型

  • Agent 端点——由正在运行的 Agent 或 SDK 进程创建,仅在该进程运行期间存在。适用于临时场景、本地使用、演示和测试。
  • 云端端点——通过 API、仪表板或 IaC 创建,不依赖任何 Agent。始终在线,URL 稳定。用于生产环境入口,以及第三方按自己的时间安排连接的任何场景。
  • 内部端点——没有公共 URL。只能通过 forward-internal 操作访问。接收方借此避免暴露在公共互联网中。

大多数任务最终会采用以下组合结构:

云端端点(公共端点,运行策略)-> forward-internal -> 内部端点 -> 本地服务

协议与类型是两个独立维度。HTTP 是默认协议;TCP(SSH、RDP、数据库)会带来若干变化——公共 TCP 端点需要预留地址,内部 TCP URL 需要显式指定端口,策略阶段会变为 on_tcp_connect,而 Kubernetes 操作器完全不支持 TCP。

完整的决策逻辑、绑定方式和 TCP 规则:references/endpoints.md。

2. 流量策略

按阶段分组的规则。每条规则都可选包含 CEL expressions,并包含一个 actions 列表。

on_http_request:
  - expressions:
      - "req.url.path.startsWith('/admin')"
    actions:
      - type: deny
  • 阶段: on_http_request、on_http_response、on_tcp_connect、on_event_stream_message。
  • 规则按顺序运行,终止操作会结束执行链。每个云端端点策略都必须以终止操作结束;Agent 端点则不必如此。
  • 在所有界面上,策略正文都相同。 只有附加方式不同。

语法、CEL 变量、Secrets 和 Vaults、最常用的七种操作,以及操作如何串联:references/traffic-policy.md。

操作词汇表

全部 26 种操作,让你无需获取其他内容也能了解有哪些操作:

  • 连接修改:deny、forward-internal、http-request、log、restrict-ips、set-vars、terminate-tls
  • 请求修改:add-headers、circuit-breaker、log、owasp-crs-request、rate-limit、redirect、remove-headers、request-body-find-replace、set-vars、url-rewrite
  • 响应修改:add-headers、compress-response、custom-response、log、owasp-crs-response、remove-headers、response-body-find-replace、set-vars、sse-find-replace
  • 安全:basic-auth、jwt-validation、oauth、openid-connect、owasp-crs-request、owasp-crs-response、restrict-ips、terminate-tls、verify-webhook
  • 流量控制:circuit-breaker、close-connection、deny、forward-internal、http-request、owasp-crs-request、owasp-crs-response、rate-limit

绝不要猜测操作的配置。 请分两步查阅:

  1. references/action-catalog.md——索引。每种操作占一行,列出阶段、是否会结束执行链,以及操作用途。
  2. references/actions/<action>.md——该操作的配置字段、结果变量和示例。

只阅读所需操作对应的文件;整个目录约有 12k 个 token,而单个操作的文档只有几百个 token。

面向 Agent 的注意事项

  • references/traffic-policy.md 中列出的七个操作只是现有任务技能恰好会用到的操作。它们并非最重要的部分——任务需要其他操作时,请查阅目录。
  • 许多操作会自行执行策略(rate-limit 会返回自身的 429,verify-webhook 则会默认拒绝)。添加重复的 deny 前,请先查看该操作的条目。
  • 将策略单独保存在 policy.yaml 中,这样用户日后添加第二个入口时,策略也能保留。
  • 如果已连接 ngrok MCP 服务,请在展示或应用你编写或编辑的每项策略前,使用 gw_validate_traffic_policy 进行验证。它会执行与保存时相同的检查,包括计划权益检查,并报告每个问题所在的行和列。如果策略针对云端、TCP 或内部端点,请传入 endpoint_type、scheme 和 binding。

评论

支持 Markdown