# Ngrok — how to use (mcp.ai)

Connect your Ngrok account and use 102 tools for developer tools straight from your AI agent. Connect with your own API key. Ngrok creates secure tunnels to locally hosted applications, enabling developers to share and test webhooks or services without configuring complex network settings.

## Option A — via MCP (recommended)
Remote MCP endpoint (HTTP, streamable): `https://api.mcp.ai/p_ngrok?ms=1787295900000`
Add it as a custom/remote MCP connector in your client (Claude, Cursor, VS Code…), then authenticate when prompted. Once connected, ask the agent to use the server's tools (e.g. `ngrok_create_api_key`).

## Option B — via direct REST API
Base URL: `https://api.mcp.ai/api/ngrok`
Auth: `Authorization: Bearer sk_live_…` — create a workspace API key at https://mcp.ai/settings/api-keys
Discover endpoints: `GET https://api.mcp.ai/api/ngrok/_endpoints`

### Endpoints
- `POST https://api.mcp.ai/api/ngrok/create/api/key` — Creates a new API key for authenticating with the ngrok API. This tool allows programmatic creation of API keys that can be used to access ngrok's API services.
  - body: { metadata?: string, owner_id?: string, description?: string }
- `POST https://api.mcp.ai/api/ngrok/create/credential` — Creates a new tunnel authtoken credential for authenticating ngrok agents. This authtoken credential can be used to start a new tunnel session. The response to this API call is the only time the gener
  - body: { acl?: string[], metadata?: string, owner_id?: string, description?: string }
- `POST https://api.mcp.ai/api/ngrok/create/endpoint` — Create a cloud endpoint on the ngrok account. Use when you need to set up a new cloud endpoint with custom traffic policies for handling HTTP traffic.
  - body: { url: string, type?: string, bindings?: string[], metadata?: string, description?: string, traffic_policy: string, pooling_enabled?: boolean }
- `POST https://api.mcp.ai/api/ngrok/create/event/source` — Add a new event source to an event subscription. Event sources define which types of events will trigger the subscription. Use this when you need to subscribe to additional event types for an existing
  - body: { type: string, subscription_id: string }
- `POST https://api.mcp.ai/api/ngrok/create/event/subscription` — Creates a new event subscription in ngrok. Event subscriptions allow you to be notified when specific events occur in your ngrok account. Use this when you need to set up webhooks or event-driven work
  - body: { sources: object[], metadata?: string, description?: string, destination_ids: string[] }
- `POST https://api.mcp.ai/api/ngrok/create/https/edge` — Creates a new HTTPS edge in your ngrok account. HTTPS edges define how ngrok handles HTTPS traffic for your domains. Use this when you need to set up a new HTTPS endpoint with custom TLS or mutual TLS
  - body: { metadata?: string, hostports?: string[], mutual_tls?: object, description?: string, tls_termination?: object }
- `POST https://api.mcp.ai/api/ngrok/create/https/edge/route` — Creates a new route on an HTTPS edge in ngrok. Routes define how traffic matching specific patterns should be handled and can include various security and transformation modules. Use when you need to 
  - body: { oidc?: object, saml?: object, match: string, oauth?: object, backend?: object, edge_id: string, metadata?: string, match_type: string, compression?: object, description?: string, ip_restriction?: object, traffic_policy?: object, circuit_breaker?: object, request_headers?: object, response_headers?: object, user_agent_filter?: object, webhook_verification?: object, websocket_tcp_converter?: object }
- `POST https://api.mcp.ai/api/ngrok/create/ssh/credential` — Creates a new SSH credential from an uploaded public SSH key. This SSH credential can be used to start new tunnels via ngrok's SSH gateway. Use when you need to authenticate SSH-based tunnel connectio
  - body: { acl?: string[], metadata?: string, owner_id?: string, public_key: string, description?: string }
- `POST https://api.mcp.ai/api/ngrok/create/vault` — Creates a new vault in your ngrok account. Vaults are used for securely storing and managing sensitive data such as secrets, credentials, and tokens.
  - body: { name?: string, metadata?: string, description?: string }
- `POST https://api.mcp.ai/api/ngrok/create/vault/secret` — Tool to create a new secret in an ngrok vault for secure storage of sensitive data like API keys, passwords, or tokens. Use when you need to securely store sensitive information that can be referenced
  - body: { name: string, value: string, metadata?: string, vault_id?: string, vault_name?: string, description?: string }
- `POST https://api.mcp.ai/api/ngrok/delete/api/key` — Delete an API key by its ID. This action permanently removes the specified API key from your ngrok account. This is an important security feature that allows users to revoke access when an API key is 
  - body: { id: string }
- `POST https://api.mcp.ai/api/ngrok/delete/credentials` — Delete a tunnel authtoken credential by ID. This action permanently removes the specified credential from your ngrok account.
  - body: { id: string }
- `POST https://api.mcp.ai/api/ngrok/delete/edge/route/circuit/breaker/module` — Delete the Circuit Breaker module from an HTTPS Edge Route. This action removes the circuit breaker configuration that protects upstream services from being overwhelmed by automatically rejecting requ
  - body: { id: string, edge_id: string }
- `POST https://api.mcp.ai/api/ngrok/delete/edge/route/compression/module` — Delete the compression module from an HTTPS edge route. Use this to remove compression settings from a specific route within an HTTPS edge configuration.
  - body: { id: string, edge_id: string }
- `POST https://api.mcp.ai/api/ngrok/delete/edge/route/request/headers/module` — Delete the request headers module from an HTTPS edge route. This removes any custom request header modifications configured for the specified route. Use this action when you need to stop modifying req
  - body: { id: string, edge_id: string }
- `POST https://api.mcp.ai/api/ngrok/delete/edge/route/response/headers/module` — Delete the response headers module from an HTTPS edge route. Use when you need to remove response header manipulation from a specific route.
  - body: { id: string, edge_id: string }
- `POST https://api.mcp.ai/api/ngrok/delete/edge/route/saml/module` — Delete the SAML module configuration from an HTTPS edge route. This action removes SAML authentication from the specified route, allowing traffic to pass through without SAML validation. The operation
  - body: { id: string, edge_id: string }
- `POST https://api.mcp.ai/api/ngrok/delete/edge/route/user/agent/filter/module` — Delete the user agent filter module from an HTTPS edge route. Use this to remove user agent filtering from a specific route within an HTTPS edge configuration.
  - body: { id: string, edge_id: string }
- `POST https://api.mcp.ai/api/ngrok/delete/edge/route/webhook/verification/module` — Delete the webhook verification module from an HTTPS edge route. This removes webhook signature verification configured for the specified route. Use this action when you need to stop verifying webhook
  - body: { id: string, edge_id: string }
- `POST https://api.mcp.ai/api/ngrok/delete/edge/route/websocket/tcp/converter/module` — Delete the WebSocket TCP converter module from an HTTPS edge route. Use when you need to remove WebSocket to TCP conversion functionality from a specific route. The operation is idempotent.
  - body: { id: string, edge_id: string }
- `POST https://api.mcp.ai/api/ngrok/delete/endpoint` — Delete an endpoint by ID. This action permanently removes the specified endpoint from your ngrok account. Currently only available for cloud endpoints. Cloud endpoints are those created through the ng
  - body: { id: string }
- `POST https://api.mcp.ai/api/ngrok/delete/event/source` — Delete an event source from an event subscription. This removes a specific event type from the subscription, so the subscription will no longer trigger for that event. Event sources define which types
  - body: { type: string, subscription_id: string }
- `POST https://api.mcp.ai/api/ngrok/delete/event/subscription` — Delete an event subscription by ID. This action permanently removes the specified event subscription from your ngrok account. Event subscriptions allow you to receive notifications when specific event
  - body: { id: string }
- `POST https://api.mcp.ai/api/ngrok/delete/https/edge` — Delete an HTTPS edge by ID. This action permanently removes the specified HTTPS edge configuration from your ngrok account. HTTPS edges define how ngrok handles HTTPS traffic for your domains. Once de
  - body: { id: string }
- `POST https://api.mcp.ai/api/ngrok/delete/https/edge/route` — Delete an HTTPS edge route by ID. This action permanently removes the specified route from an HTTPS edge configuration in your ngrok account. HTTPS edge routes define how traffic is handled for specif
  - body: { id: string, edge_id: string }
- `POST https://api.mcp.ai/api/ngrok/delete/reserved/domain/certificate` — Detach the certificate attached to a reserved domain. Use when you need to remove a certificate from a reserved domain without deleting the domain itself.
  - body: { id: string }
- `POST https://api.mcp.ai/api/ngrok/delete/reserved/domain/certificate/management/policy` — Detach the certificate management policy from a reserved domain. Use this action when you need to remove certificate management configuration from a domain.
  - body: { id: string }
- `POST https://api.mcp.ai/api/ngrok/delete/secret` — Delete a vault secret by ID. This action permanently removes the specified secret from your ngrok vault.
  - body: { id: string }
- `POST https://api.mcp.ai/api/ngrok/delete/ssh/credentials` — Delete an SSH credential by ID. This action permanently removes the specified SSH credential from your ngrok account. SSH credentials are used to authenticate SSH connections through ngrok. Once delet
  - body: { id: string }
- `POST https://api.mcp.ai/api/ngrok/delete/vault` — Delete a vault by ID. This action permanently removes the specified vault from your ngrok account.
  - body: { id: string }
- `POST https://api.mcp.ai/api/ngrok/get/api/key` — Get the details of an API key by ID. Use this tool to retrieve information about a specific ngrok API key, including its description, metadata, and creation timestamp.
  - body: { id: string }
- `POST https://api.mcp.ai/api/ngrok/get/credentials` — Tool to retrieve detailed information about a tunnel authtoken credential by ID. Use when you need to view the details, metadata, or ACL rules of an existing credential. Note: The token field will be 
  - body: { id: string }
- `POST https://api.mcp.ai/api/ngrok/get/edge/route/backend/module` — Retrieves the backend module configuration for an HTTPS edge route. Backend modules define where traffic is routed after passing through the edge route's modules. Use this to verify backend configurat
  - body: { id: string, edge_id: string }
- `POST https://api.mcp.ai/api/ngrok/get/edge/route/circuit/breaker/module` — Tool to retrieve the circuit breaker module configuration for a specific HTTPS edge route. Use when you need to check the current circuit breaker settings, verify protection parameters, or audit traff
  - body: { id: string, edge_id: string }
- `POST https://api.mcp.ai/api/ngrok/get/edge/route/compression/module` — Retrieves the compression module configuration for a specific HTTPS edge route. Use this to check if compression is enabled for the route.
  - body: { id: string, edge_id: string }
- `POST https://api.mcp.ai/api/ngrok/get/edge/route/ip/restriction/module` — Retrieves the IP restriction module configuration for a specific HTTPS edge route. Use this to check which IP policies are applied to control access to the route.
  - body: { id: string, edge_id: string }
- `POST https://api.mcp.ai/api/ngrok/get/edge/route/oidc/module` — Retrieves the OIDC (OpenID Connect) module configuration for a specific HTTPS edge route. OIDC modules enable authentication via OpenID Connect providers on your edge routes. This action fetches the c
  - body: { id: string, edge_id: string }
- `POST https://api.mcp.ai/api/ngrok/get/edge/route/request/headers/module` — Retrieves the request headers module configuration for a specific HTTPS edge route. The request headers module allows you to add and remove headers from HTTP requests before they are sent to your upst
  - body: { id: string, edge_id: string }
- `POST https://api.mcp.ai/api/ngrok/get/edge/route/response/headers/module` — Get the response headers module configuration for an HTTPS edge route. Use when you need to retrieve the current response header manipulation settings for a specific route.
  - body: { id: string, edge_id: string }
- `POST https://api.mcp.ai/api/ngrok/get/edge/route/saml/module` — Retrieves the SAML authentication module configuration for a specific HTTPS edge route. Use this to view SAML settings including identity provider configuration, session timeouts, and authorized group
  - body: { id: string, edge_id: string }
- `POST https://api.mcp.ai/api/ngrok/get/edge/route/traffic/policy` — Retrieves the Traffic Policy module configuration for a specific HTTPS edge route. Traffic policies define how ngrok handles requests and responses on the edge route. Use this to inspect current traff
  - body: { id: string, edge_id: string }
- `POST https://api.mcp.ai/api/ngrok/get/edge/route/user/agent/filter/module` — Retrieves the user agent filter module configuration for a specific HTTPS edge route. Use this to view filtering rules that control access based on User-Agent headers.
  - body: { id: string, edge_id: string }
- `POST https://api.mcp.ai/api/ngrok/get/edge/route/webhook/verification/module` — Retrieves the webhook verification module configuration for an HTTPS edge route. Webhook verification modules validate incoming webhooks from supported providers. Use this to verify webhook configurat
  - body: { id: string, edge_id: string }
- `POST https://api.mcp.ai/api/ngrok/get/edge/route/websocket/tcp/converter/module` — Retrieves the WebSocket TCP Converter module configuration for a specific HTTPS edge route. This module converts WebSocket connections to TCP streams. Use this to inspect whether the converter is enab
  - body: { id: string, edge_id: string }
- `POST https://api.mcp.ai/api/ngrok/get/endpoint` — Get the status of an endpoint by ID. Use this tool to retrieve detailed information about a specific ngrok endpoint, including its configuration, URLs, and associated resources.
  - body: { id: string }
- `POST https://api.mcp.ai/api/ngrok/get/event/source` — Get an event source by type for a specific event subscription. Use this tool to retrieve details about a specific event source type that triggers notifications for an event subscription.
  - body: { type: string, subscription_id: string }
- `POST https://api.mcp.ai/api/ngrok/get/https/edge` — Get the details of an HTTPS edge by ID. Use this to retrieve information about a specific HTTPS edge configuration including its hostports, TLS settings, and routes.
  - body: { id: string }
- `POST https://api.mcp.ai/api/ngrok/get/https/edge/mutual/tls/module` — Retrieves the mutual TLS module configuration for an HTTPS edge. Use this to check if mutual TLS is enabled and which certificate authorities are configured for client certificate validation.
  - body: { id: string }
- `POST https://api.mcp.ai/api/ngrok/get/https/edge/route` — Retrieves detailed information about a specific HTTPS edge route by its ID. HTTPS edge routes define how ngrok routes traffic based on path matching rules and apply various modules like authentication
  - body: { id: string, edge_id: string }
- `POST https://api.mcp.ai/api/ngrok/get/ip/restrictions` — Retrieves detailed information about a specific IP restriction by its ID. IP restrictions control which IP addresses can access various ngrok resources (dashboard, API, agents, or endpoints). This act
  - body: { restriction_id: string }
- `POST https://api.mcp.ai/api/ngrok/get/reserved/domain` — Get the details of a reserved domain by ID. Use this to retrieve information about a specific reserved domain including its hostname, certificate configuration, and DNS settings.
  - body: { id: string }
- `POST https://api.mcp.ai/api/ngrok/get/secret` — Tool to retrieve detailed information about a vault secret by ID. Use when you need to view the metadata, description, or vault information for an existing secret.
  - body: { id: string }
- `POST https://api.mcp.ai/api/ngrok/get/secrets/by/vault` — Tool to get all secrets in a vault by vault ID. Use this to retrieve the list of secrets stored in a specific ngrok vault. Supports pagination for large result sets.
  - body: { id: string, limit?: integer, before_id?: string }
- `POST https://api.mcp.ai/api/ngrok/get/ssh/credentials` — Tool to retrieve detailed information about an SSH credential by ID. Use when you need to view the details, public key, metadata, or ACL rules of an existing SSH credential.
  - body: { id: string }
- `POST https://api.mcp.ai/api/ngrok/get/vault` — Get the details of a vault by ID. Use this tool to retrieve information about a specific ngrok vault, including its name, description, metadata, and timestamps.
  - body: { id: string }
- `POST https://api.mcp.ai/api/ngrok/list/agent/ingresses` — List all Agent Ingresses owned by this account. Agent Ingresses are used to configure custom domains for ngrok agent connections, allowing you to use your own domain instead of the default ngrok domai
  - body: { limit?: integer, filter?: string, before_id?: string }
- `POST https://api.mcp.ai/api/ngrok/list/api/keys` — This tool lists all API keys owned by the user. The API keys are used to authenticate API requests to ngrok's REST API. The endpoint returns a paginated list of API keys.
  - body: { limit?: integer, before_id?: string }
- `POST https://api.mcp.ai/api/ngrok/list/bot/users` — Tool to list all bot users on this ngrok account. Use when you need to retrieve all bot users with their status and metadata.
  - body: { limit?: integer, before_id?: string }
- `POST https://api.mcp.ai/api/ngrok/list/cert/authorities` — List all certificate authorities on this account. Certificate authorities are x509 certificates used to sign other x509 certificates. Supports pagination and filtering via CEL expressions.
  - body: { limit?: integer, filter?: string, before_id?: string }
- `POST https://api.mcp.ai/api/ngrok/list/credentials` — List all tunnel authtoken credentials on the ngrok account. Use when you need to view all credentials that can authenticate ngrok agents and start tunnel sessions.
  - body: { limit?: string, filter?: string, before_id?: string }
- `POST https://api.mcp.ai/api/ngrok/list/endpoints` — List all active endpoints on the ngrok account. This tool will list all active endpoints on the ngrok account, providing visibility into running tunnels and endpoints. It requires no input parameters 
  - body: { limit?: integer, filter?: string, before_id?: string }
- `POST https://api.mcp.ai/api/ngrok/list/event/destinations` — List all Event Destinations on the ngrok account. Event Destinations define where and how ngrok should send event data (e.g., to AWS, Datadog, Azure). Use this to view configured event streaming targe
  - body: { limit?: string, filter?: string, before_id?: string }
- `POST https://api.mcp.ai/api/ngrok/list/event/subscription/sources` — Tool to list the types for which this event subscription will trigger. Use when you need to see all event sources configured for a specific event subscription.
  - body: { subscription_id: string }
- `POST https://api.mcp.ai/api/ngrok/list/event/subscriptions` — List all event subscriptions on the ngrok account. Event subscriptions allow you to be notified when specific events occur in your ngrok account. Use this to view all configured event subscriptions.
  - body: { limit?: string, filter?: string, before_id?: string }
- `POST https://api.mcp.ai/api/ngrok/list/failover/backends` — List all failover backends on this account. Failover backends define failover behavior within a list of referenced backends where traffic is sent to the first backend, and if that backend is offline, 
  - body: { limit?: integer, before_id?: string }
- `POST https://api.mcp.ai/api/ngrok/list/http/response/backends` — List all HTTP response backends on the account. Use this to retrieve all configured static HTTP response backends that return fixed responses with specific status codes.
  - body: { limit?: integer, before_id?: string }
- `POST https://api.mcp.ai/api/ngrok/list/https/edges` — Lists all HTTPS Edges in your ngrok account. HTTPS edges are configurations that tell ngrok how to handle HTTPS traffic. The action returns a paginated list of all HTTPS edges associated with your acc
  - body: { limit?: integer, before_id?: string }
- `POST https://api.mcp.ai/api/ngrok/list/ip/policies` — List all IP policies on this account. IP policies are reusable groups of CIDR ranges with an allow or deny action that can be attached to endpoints via the Endpoint Configuration IP Policy module. Sup
  - body: { limit?: string, filter?: string, before_id?: string }
- `POST https://api.mcp.ai/api/ngrok/list/ip/policy/rules` — This tool lists all IP policy rules associated with your ngrok account. It retrieves detailed information including rule id, creation timestamp, description, metadata, CIDR, the associated IP policy, 
  - body: { limit?: integer, before_id?: string }
- `POST https://api.mcp.ai/api/ngrok/list/ip/restrictions` — Lists all IP restrictions configured on the ngrok account. IP restrictions control which source CIDR blocks are permitted to access specific ngrok account features such as the dashboard, API, agents, 
  - body: { limit?: integer, filter?: string, before_id?: string }
- `POST https://api.mcp.ai/api/ngrok/list/reserved/addrs` — List all reserved addresses on this account. Use this to retrieve all TCP addresses that have been reserved for listening to traffic on your ngrok account.
  - body: { limit?: string, filter?: string, before_id?: string }
- `POST https://api.mcp.ai/api/ngrok/list/reserved/domains` — List all reserved domains on this account. Use this to retrieve all hostnames that have been reserved for listening to HTTP, HTTPS, and TLS traffic on your ngrok account.
  - body: { limit?: integer, filter?: string, before_id?: string }
- `POST https://api.mcp.ai/api/ngrok/list/service/users` — Tool to list all service users on this ngrok account. Use when you need to retrieve all service users with their status and metadata.
  - body: { limit?: string, filter?: string, before_id?: string }
- `POST https://api.mcp.ai/api/ngrok/list/ssh/certificate/authorities` — List all SSH Certificate Authorities on this account. SSH Certificate Authorities are pairs of SSH certificates and their private keys used to sign other SSH host and user certificates. Supports pagin
  - body: { limit?: string, filter?: string, before_id?: string }
- `POST https://api.mcp.ai/api/ngrok/list/ssh/credentials` — List all SSH credentials on the ngrok account. Use when you need to view all SSH public keys that can authenticate to start SSH tunnels.
  - body: { limit?: integer, filter?: string, before_id?: string }
- `POST https://api.mcp.ai/api/ngrok/list/ssh/host/certificates` — List all SSH Host Certificates issued on this account. SSH Host Certificates are used to sign SSH host keys and authenticate SSH servers. Supports pagination for efficient retrieval of large result se
  - body: { limit?: integer, before_id?: string }
- `POST https://api.mcp.ai/api/ngrok/list/ssh/user/certificates` — List all SSH user certificates on the ngrok account. Use when you need to view all SSH certificates that authenticate SSH clients to SSH servers.
  - body: { limit?: string, before_id?: string }
- `POST https://api.mcp.ai/api/ngrok/list/static/backends` — List all static backends on the account. Static backends forward traffic to TCP addresses (hostname and port) that are reachable on the public internet.
  - body: { limit?: integer, before_id?: string }
- `POST https://api.mcp.ai/api/ngrok/list/tcp/edges` — Lists all TCP Edges in your ngrok account. TCP edges are configurations that tell ngrok how to handle TCP traffic. The action returns a paginated list of all TCP edges associated with your account.
  - body: { limit?: string, before_id?: string }
- `POST https://api.mcp.ai/api/ngrok/list/tls/certificates` — List all TLS certificates on the ngrok account. Use when you need to retrieve information about uploaded TLS certificates including validity, domains, and metadata.
  - body: { limit?: integer, filter?: string, before_id?: string }
- `POST https://api.mcp.ai/api/ngrok/list/tls/edges` — Lists all TLS Edges in your ngrok account. TLS edges are configurations that tell ngrok how to handle TLS traffic. The action returns a paginated list of all TLS edges associated with your account.
  - body: { limit?: integer, before_id?: string }
- `POST https://api.mcp.ai/api/ngrok/list/tunnel/sessions` — List all online tunnel sessions running on this account. Tunnel sessions represent instances of ngrok agents or SSH reverse tunnel sessions connected to the ngrok service. Each tunnel session can incl
  - body: { limit?: string, filter?: string, before_id?: string }
- `POST https://api.mcp.ai/api/ngrok/list/tunnels` — List all active tunnels in the ngrok account. This tool lists all active tunnels in the ngrok account, providing details such as tunnel ID, public URL, start time, protocol, configuration details, and
  - body: { limit?: integer, before_id?: string }
- `POST https://api.mcp.ai/api/ngrok/list/vault/secrets` — List all vault secrets owned by the ngrok account. Use when you need to view all secrets stored in vaults for traffic policy configurations.
  - body: { limit?: integer, filter?: string, before_id?: string }
- `POST https://api.mcp.ai/api/ngrok/list/vaults` — List all vaults owned by the ngrok account. Vaults are used for securely storing and managing sensitive data such as secrets, credentials, and tokens.
  - body: { limit?: integer, filter?: string, before_id?: string }
- `POST https://api.mcp.ai/api/ngrok/list/weighted/backends` — List all weighted backends on the ngrok account. Weighted backends balance traffic among referenced backends proportionally based on their assigned weights.
  - body: { limit?: string, before_id?: string }
- `POST https://api.mcp.ai/api/ngrok/replace/edge/route/circuit/breaker/module` — Replaces the circuit breaker module configuration on an HTTPS edge route. Circuit breakers protect upstream applications by rejecting traffic when error rates exceed thresholds, giving systems time to
  - body: { id: string, edge_id: string, enabled?: boolean, num_buckets?: integer, rolling_window?: integer, tripped_duration?: integer, volume_threshold?: integer, error_threshold_percentage?: number }
- `POST https://api.mcp.ai/api/ngrok/replace/edge/route/compression/module` — Replaces the compression module configuration for an HTTPS edge route. Use this when you need to enable or disable automatic HTTP response compression for a specific route.
  - body: { id: string, edge_id: string, enabled: boolean }
- `POST https://api.mcp.ai/api/ngrok/replace/edge/route/request/headers/module` — Replaces the request headers module configuration for an HTTPS edge route. Use this to modify HTTP request headers before they are sent to your upstream application server. You can add new headers or 
  - body: { add?: object, remove?: string[], edge_id: string, enabled?: boolean, route_id: string }
- `POST https://api.mcp.ai/api/ngrok/replace/edge/route/response/headers/module` — Replaces the response headers module configuration for an HTTPS edge route. Use this to control which HTTP headers are added to or removed from responses sent to clients. This allows customization of 
  - body: { id: string, add?: object, remove?: string[], edge_id: string, enabled?: boolean }
- `POST https://api.mcp.ai/api/ngrok/replace/edge/route/traffic/policy` — Replaces the traffic policy module on an HTTPS edge route. Traffic policies allow you to control and modify HTTP traffic flowing through your ngrok endpoints. Use this action when you need to update o
  - body: { id: string, value: string, edge_id: string, enabled?: boolean }
- `POST https://api.mcp.ai/api/ngrok/replace/edge/route/user/agent/filter/module` — Replaces the user agent filter module configuration for an HTTPS edge route. Use this to control which User-Agent strings are allowed or denied access to your route based on regex patterns. Denied pat
  - body: { id: string, deny?: string[], allow?: string[], edge_id: string, enabled?: boolean }
- `POST https://api.mcp.ai/api/ngrok/replace/edge/route/webhook/verification/module` — Replaces the webhook verification module configuration for an HTTPS edge route. Use this to configure ngrok to automatically verify webhook signatures from supported providers. This ensures that only 
  - body: { id: string, secret?: string, edge_id: string, enabled?: boolean, provider?: string }
- `POST https://api.mcp.ai/api/ngrok/update/api/key` — Updates attributes of an API key by ID. Use this to modify the description or metadata of an existing API key without changing its token or credentials.
  - body: { id: string, metadata?: string, description?: string }
- `POST https://api.mcp.ai/api/ngrok/update/credentials` — Tool to update attributes of a tunnel authtoken credential by ID. Use when you need to modify the description, metadata, or ACL rules of an existing credential.
  - body: { id: string, acl?: string[], metadata?: string, description?: string }
- `POST https://api.mcp.ai/api/ngrok/update/endpoint` — Tool to update an Endpoint by ID, currently available only for cloud endpoints. Use this to modify the description, metadata, traffic policy, bindings, or other attributes of an existing endpoint.
  - body: { id: string, url?: string, bindings?: string[], metadata?: string, description?: string, traffic_policy?: string, pooling_enabled?: boolean }
- `POST https://api.mcp.ai/api/ngrok/update/event/subscription` — Tool to update attributes of an event subscription by ID. Use when you need to modify the description, metadata, destination IDs, or sources of an existing event subscription.
  - body: { id: string, sources?: object[], metadata?: string, description?: string, destination_ids?: string[] }
- `POST https://api.mcp.ai/api/ngrok/update/https/edge/route` — Tool to update an HTTPS edge route by ID. Use when you need to modify route configuration for HTTPS traffic handling. Updates can include match patterns, module settings, and metadata. Unspecified mod
  - body: { id: string, oidc?: object, saml?: object, match?: string, oauth?: object, backend?: object, edge_id: string, metadata?: string, match_type?: string, compression?: object, description?: string, ip_restriction?: object, traffic_policy?: object, circuit_breaker?: object, request_headers?: object, response_headers?: object, user_agent_filter?: object, webhook_verification?: object, websocket_tcp_converter?: object }
- `POST https://api.mcp.ai/api/ngrok/update/reserved/domain` — Tool to update the attributes of a reserved domain by ID. Use this to modify the description, metadata, certificate configuration, or DNS resolver targets of an existing reserved domain.
  - body: { id: string, metadata?: string, description?: string, resolves_to?: object[], certificate_id?: string, certificate_management_policy?: object }
- `POST https://api.mcp.ai/api/ngrok/update/secret` — Tool to update a vault secret by ID. Use when you need to modify the name, description, metadata, or value of an existing secret in the ngrok vault.
  - body: { id: string, name?: string, value?: string, metadata?: string, description?: string }
- `POST https://api.mcp.ai/api/ngrok/update/ssh/credential` — Tool to update attributes of an SSH credential by ID. Use when you need to modify the description, metadata, or ACL rules of an existing SSH credential.
  - body: { id: string, acl?: string[], metadata?: string, description?: string }
- `POST https://api.mcp.ai/api/ngrok/update/vault` — Tool to update attributes of a vault by ID. Use when you need to modify the name, description, or metadata of an existing vault.
  - body: { id: string, name?: string, metadata?: string, description?: string }

## Example prompts
- "What can I do in Ngrok?"
- "Show me a summary of my Ngrok account"

## More
- Page: https://mcp.ai/ngrok
- Agent spec (llms.txt): https://mcp.ai/ngrok/llms.txt
- Postman collection: https://mcp.ai/ngrok/postman.json
