ngrok
for AI agents.
ngrok integration for AI agents with secure authentication and server-side credential injection. Open Connector runs the OAuth, seals the token in an encrypted vault, and serves ngrok tools to your agent over MCP or a typed API — credentials injected server-side, every call audited, nothing leaving your infrastructure. Open source (AGPL-3.0) and self-hostable.
Real ngrok actions, managed and audited.
Your user connects ngrok once; your agent can then ngrok is developer infrastructure that routes and secures traffic to your apps, APIs, and AI models, wherever they run. Start on localhost, ship to prod — scoped to the OAuth permissions you grant and the tool allowlist you configure. Every action is least-privilege and written to a tamper-evident audit trail.
- 01Connect
Your user grants ngrok access once (OAuth) — the token lands in the vault.
- 02Call
Your agent calls a tool over MCP or the typed API; Open Connector injects the credential server-side.
- 03Audit
Every routed call appends a hash-chained audit record — nothing leaves your infra.
Supported ngrok tools.
Browse 251 tools in the ngrok catalog. Each action uses your configured authentication and tool allowlist.
Showing 251 tools.
- Create
- Creates a new abuse report which will be reviewed by our system and abuse response team. This API is only available to authorized accounts. Contact abuse@ngrok.com to request access
- AbuseReports
- Get
- Get the detailed status of abuse report by ID.
- AbuseReports
- Create
- Create a new Agent Ingress. The ngrok agent can be configured to connect to ngrok via the new set of addresses on the returned Agent Ingress.
- AgentIngresses
- Delete
- Delete an Agent Ingress by ID
- AgentIngresses
- Get
- Get the details of an Agent Ingress by ID.
- AgentIngresses
- List
- List all Agent Ingresses owned by this account
- AgentIngresses
- Update
- Update attributes of an Agent Ingress by ID.
- AgentIngresses
- Create
- Create a new AI Gateway API Key
- AIGatewayAPIKeys
- Delete
- Delete an AI Gateway API Key
- AIGatewayAPIKeys
- Get
- Get an AI Gateway API Key by ID
- AIGatewayAPIKeys
- List
- List all AI Gateway API Keys owned by account
- AIGatewayAPIKeys
- Update
- Update an existing AI Gateway API Key by ID
- AIGatewayAPIKeys
- Create
- Create a new AI Gateway Provider Key
- AIGatewayProviderKeys
- Delete
- Delete an AI Gateway Provider Key
- AIGatewayProviderKeys
- Get
- Get an AI Gateway Provider Key by ID
- AIGatewayProviderKeys
- List
- List AI Gateway Provider Keys
- AIGatewayProviderKeys
- Update
- Update an existing AI Gateway Provider Key by ID
- AIGatewayProviderKeys
- Create
- Create a new API key. The generated API key can be used to authenticate to the ngrok API.
- APIKeys
- Delete
- Delete an API key by ID
- APIKeys
- Get
- Get the details of an API key by ID.
- APIKeys
- List
- List all API keys owned by this account
- APIKeys
- Update
- Update attributes of an API key by ID.
- APIKeys
- Delete
- Delete an application session by ID.
- ApplicationSessions
- Get
- Get an application session by ID.
- ApplicationSessions
- List
- List all application sessions for this account.
- ApplicationSessions
- Delete
- Delete an application user by ID.
- ApplicationUsers
- Get
- Get an application user by ID.
- ApplicationUsers
- List
- List all application users for this account.
- ApplicationUsers
- Create
- Create a new bot user
- BotUsers
- Delete
- Delete a bot user by ID
- BotUsers
- Get
- Get the details of a Bot User by ID.
- BotUsers
- List
- List all bot users in this account.
- BotUsers
- Update
- Update attributes of a bot user by ID.
- BotUsers
- Create
- Upload a new Certificate Authority
- CertificateAuthorities
- Delete
- Delete a Certificate Authority
- CertificateAuthorities
- Get
- Get detailed information about a certificate authority
- CertificateAuthorities
- List
- List all Certificate Authority on this account
- CertificateAuthorities
- Update
- Update attributes of a Certificate Authority by ID
- CertificateAuthorities
- Create
- Create a new tunnel authtoken credential. This authtoken credential can be used to start a new tunnel session. The response to this API call is the only time the generated token is available. If you need it for future use, you must save it securely yourself.
- Credentials
- Delete
- Delete a tunnel authtoken credential by ID
- Credentials
- Get
- Get detailed information about a tunnel authtoken credential
- Credentials
- List
- List all tunnel authtoken credentials on this account
- Credentials
- Update
- Update attributes of an tunnel authtoken credential by ID
- Credentials
- Create
- Create an HTTPS Edge
- EdgesHTTPS
- Delete
- Delete an HTTPS Edge by ID
- EdgesHTTPS
- Get
- Get an HTTPS Edge by ID
- EdgesHTTPS
- List
- Returns a list of all HTTPS Edges on this account
- EdgesHTTPS
- Create
- Create an HTTPS Edge Route
- EdgesHTTPSRoutes
- Delete
- Delete an HTTPS Edge Route by ID
- EdgesHTTPSRoutes
- Get
- Get an HTTPS Edge Route by ID
- EdgesHTTPSRoutes
- Update
- Updates an HTTPS Edge Route by ID. If a module is not specified in the update, it will not be modified. However, each module configuration that is specified will completely replace the existing value. There is no way to delete an existing module via this API, instead use the delete module API.
- EdgesHTTPSRoutes
- Update
- Updates an HTTPS Edge by ID. If a module is not specified in the update, it will not be modified. However, each module configuration that is specified will completely replace the existing value. There is no way to delete an existing module via this API, instead use the delete module API.
- EdgesHTTPS
- Create
- Create a TCP Edge
- EdgesTCP
- Delete
- Delete a TCP Edge by ID
- EdgesTCP
- Get
- Get a TCP Edge by ID
- EdgesTCP
- List
- Returns a list of all TCP Edges on this account
- EdgesTCP
- Update
- Updates a TCP Edge by ID. If a module is not specified in the update, it will not be modified. However, each module configuration that is specified will completely replace the existing value. There is no way to delete an existing module via this API, instead use the delete module API.
- EdgesTCP
- Create
- Create a TLS Edge
- EdgesTLS
- Delete
- Delete a TLS Edge by ID
- EdgesTLS
- Get
- Get a TLS Edge by ID
- EdgesTLS
- List
- Returns a list of all TLS Edges on this account
- EdgesTLS
- Update
- Updates a TLS Edge by ID. If a module is not specified in the update, it will not be modified. However, each module configuration that is specified will completely replace the existing value. There is no way to delete an existing module via this API, instead use the delete module API.
- EdgesTLS
- Delete
- Delete
- EdgeRouteBackendModule
- Get
- Get
- EdgeRouteBackendModule
- Replace
- Replace
- EdgeRouteBackendModule
- Delete
- Delete
- EdgeRouteCircuitBreakerModule
- Get
- Get
- EdgeRouteCircuitBreakerModule
- Replace
- Replace
- EdgeRouteCircuitBreakerModule
- Delete
- Delete
- EdgeRouteCompressionModule
- Get
- Get
- EdgeRouteCompressionModule
- Replace
- Replace
- EdgeRouteCompressionModule
- Delete
- Delete
- EdgeRouteIPRestrictionModule
- Get
- Get
- EdgeRouteIPRestrictionModule
- Replace
- Replace
- EdgeRouteIPRestrictionModule
- Delete
- Delete
- EdgeRouteOAuthModule
- Get
- Get
- EdgeRouteOAuthModule
- Replace
- Replace
- EdgeRouteOAuthModule
- Delete
- Delete
- EdgeRouteOIDCModule
- Get
- Get
- EdgeRouteOIDCModule
- Replace
- Replace
- EdgeRouteOIDCModule
- Delete
- Delete
- EdgeRouteRequestHeadersModule
- Get
- Get
- EdgeRouteRequestHeadersModule
- Replace
- Replace
- EdgeRouteRequestHeadersModule
- Delete
- Delete
- EdgeRouteResponseHeadersModule
- Get
- Get
- EdgeRouteResponseHeadersModule
- Replace
- Replace
- EdgeRouteResponseHeadersModule
- Delete
- Delete
- EdgeRouteSAMLModule
- Get
- Get
- EdgeRouteSAMLModule
- Replace
- Replace
- EdgeRouteSAMLModule
- Delete
- Delete
- EdgeRouteTrafficPolicyModule
- Get
- Get
- EdgeRouteTrafficPolicyModule
- Replace
- Replace
- EdgeRouteTrafficPolicyModule
- Delete
- Delete
- EdgeRouteUserAgentFilterModule
- Get
- Get
- EdgeRouteUserAgentFilterModule
- Replace
- Replace
- EdgeRouteUserAgentFilterModule
- Delete
- Delete
- EdgeRouteWebhookVerificationModule
- Get
- Get
- EdgeRouteWebhookVerificationModule
- Replace
- Replace
- EdgeRouteWebhookVerificationModule
- Delete
- Delete
- EdgeRouteWebsocketTCPConverterModule
- Get
- Get
- EdgeRouteWebsocketTCPConverterModule
- Replace
- Replace
- EdgeRouteWebsocketTCPConverterModule
- Create
- Create an endpoint, currently available only for cloud endpoints
- Endpoints
- Delete
- Delete an Endpoint by ID, currently available only for cloud endpoints
- Endpoints
- Get
- Get the status of an endpoint by ID
- Endpoints
- List
- List all active endpoints on the account
- Endpoints
- Update
- Update an Endpoint by ID, currently available only for cloud endpoints
- Endpoints
- Create
- Create a new Event Destination. It will not apply to anything until it is associated with an Event Subscription.
- EventDestinations
- Delete
- Delete an Event Destination. If the Event Destination is still referenced by an Event Subscription.
- EventDestinations
- Get
- Get detailed information about an Event Destination by ID.
- EventDestinations
- List
- List all Event Destinations on this account.
- EventDestinations
- Update
- Update attributes of an Event Destination.
- EventDestinations
- Create
- Add an additional type for which this event subscription will trigger
- EventSources
- Delete
- Remove a type for which this event subscription will trigger
- EventSources
- Get
- Get the details for a given type that triggers for the given event subscription
- EventSources
- List
- List the types for which this event subscription will trigger
- EventSources
- Update
- Update the type for which this event subscription will trigger
- EventSources
- Create
- Create an Event Subscription.
- EventSubscriptions
- Delete
- Delete an Event Subscription.
- EventSubscriptions
- Get
- Get an Event Subscription by ID.
- EventSubscriptions
- List
- List this Account's Event Subscriptions.
- EventSubscriptions
- Update
- Update an Event Subscription.
- EventSubscriptions
- Create
- Create a new Failover backend
- FailoverBackends
- Delete
- Delete a Failover backend by ID.
- FailoverBackends
- Get
- Get detailed information about a Failover backend by ID
- FailoverBackends
- List
- List all Failover backends on this account
- FailoverBackends
- Update
- Update Failover backend by ID
- FailoverBackends
- Delete
- Delete
- HTTPSEdgeMutualTLSModule
- Get
- Get
- HTTPSEdgeMutualTLSModule
- Replace
- Replace
- HTTPSEdgeMutualTLSModule
- Delete
- Delete
- HTTPSEdgeTLSTerminationModule
- Get
- Get
- HTTPSEdgeTLSTerminationModule
- Replace
- Replace
- HTTPSEdgeTLSTerminationModule
- Create
- Create
- HTTPResponseBackends
- Delete
- Delete
- HTTPResponseBackends
- Get
- Get
- HTTPResponseBackends
- List
- List
- HTTPResponseBackends
- Update
- Update
- HTTPResponseBackends
- Create
- Create a new IP policy. It will not apply to any traffic until you associate to a traffic source via an endpoint configuration or IP restriction.
- IPPolicies
- Delete
- Delete an IP policy. If the IP policy is referenced by another object for the purposes of traffic restriction it will be treated as if the IP policy remains but has zero rules.
- IPPolicies
- Get
- Get detailed information about an IP policy by ID.
- IPPolicies
- List
- List all IP policies on this account
- IPPolicies
- Update
- Update attributes of an IP policy by ID
- IPPolicies
- Create
- Create a new IP policy rule attached to an IP Policy.
- IPPolicyRules
- Delete
- Delete an IP policy rule.
- IPPolicyRules
- Get
- Get detailed information about an IP policy rule by ID.
- IPPolicyRules
- List
- List all IP policy rules on this account
- IPPolicyRules
- Update
- Update attributes of an IP policy rule by ID
- IPPolicyRules
- Create
- Create a new IP restriction
- IPRestrictions
- Delete
- Delete an IP restriction
- IPRestrictions
- Get
- Get detailed information about an IP restriction
- IPRestrictions
- List
- List all IP restrictions on this account
- IPRestrictions
- Update
- Update attributes of an IP restriction by ID
- IPRestrictions
- Create
- Create a new reserved address.
- ReservedAddrs
- Delete
- Delete a reserved address.
- ReservedAddrs
- Get
- Get the details of a reserved address.
- ReservedAddrs
- List
- List all reserved addresses on this account.
- ReservedAddrs
- Update
- Update the attributes of a reserved address.
- ReservedAddrs
- Create
- Create a new reserved domain.
- ReservedDomains
- Delete
- Delete a reserved domain.
- ReservedDomains
- DeleteCertificate
- Detach the certificate attached to a reserved domain.
- ReservedDomains
- DeleteCertificateManagementPolicy
- Detach the certificate management policy attached to a reserved domain.
- ReservedDomains
- Get
- Get the details of a reserved domain.
- ReservedDomains
- List
- List all reserved domains on this account.
- ReservedDomains
- Update
- Update the attributes of a reserved domain.
- ReservedDomains
- Create
- Create a new Secret
- Secrets
- Delete
- Delete a Secret
- Secrets
- Get
- Get a Secret by ID
- Secrets
- List
- List all Secrets owned by account
- Secrets
- Update
- Update an existing Secret by ID
- Secrets
- Create
- Create a new service user
- ServiceUsers
- Delete
- Delete a service user by ID
- ServiceUsers
- Get
- Get the details of a Bot User by ID.
- ServiceUsers
- List
- List all service users in this account.
- ServiceUsers
- Update
- Update attributes of a service user by ID.
- ServiceUsers
- Create
- Create a new SSH Certificate Authority
- SSHCertificateAuthorities
- Delete
- Delete an SSH Certificate Authority
- SSHCertificateAuthorities
- Get
- Get detailed information about an SSH Certificate Authority
- SSHCertificateAuthorities
- List
- List all SSH Certificate Authorities on this account
- SSHCertificateAuthorities
- Update
- Update an SSH Certificate Authority
- SSHCertificateAuthorities
- Create
- Create 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.
- SSHCredentials
- Delete
- Delete an ssh_credential by ID
- SSHCredentials
- Get
- Get detailed information about an ssh_credential
- SSHCredentials
- List
- List all ssh credentials on this account
- SSHCredentials
- Update
- Update attributes of an ssh_credential by ID
- SSHCredentials
- Create
- Create a new SSH Host Certificate
- SSHHostCertificates
- Delete
- Delete an SSH Host Certificate
- SSHHostCertificates
- Get
- Get detailed information about an SSH Host Certificate
- SSHHostCertificates
- List
- List all SSH Host Certificates issued on this account
- SSHHostCertificates
- Update
- Update an SSH Host Certificate
- SSHHostCertificates
- Create
- Create a new SSH User Certificate
- SSHUserCertificates
- Delete
- Delete an SSH User Certificate
- SSHUserCertificates
- Get
- Get detailed information about an SSH User Certificate
- SSHUserCertificates
- List
- List all SSH User Certificates issued on this account
- SSHUserCertificates
- Update
- Update an SSH User Certificate
- SSHUserCertificates
- Create
- Create a new static backend
- StaticBackends
- Delete
- Delete a static backend by ID.
- StaticBackends
- Get
- Get detailed information about a static backend by ID
- StaticBackends
- List
- List all static backends on this account
- StaticBackends
- Update
- Update static backend by ID
- StaticBackends
- Delete
- Delete
- TCPEdgeBackendModule
- Get
- Get
- TCPEdgeBackendModule
- Replace
- Replace
- TCPEdgeBackendModule
- Delete
- Delete
- TCPEdgeIPRestrictionModule
- Get
- Get
- TCPEdgeIPRestrictionModule
- Replace
- Replace
- TCPEdgeIPRestrictionModule
- Delete
- Delete
- TCPEdgeTrafficPolicyModule
- Get
- Get
- TCPEdgeTrafficPolicyModule
- Replace
- Replace
- TCPEdgeTrafficPolicyModule
- Create
- Upload a new TLS certificate
- TLSCertificates
- Delete
- Delete a TLS certificate
- TLSCertificates
- Get
- Get detailed information about a TLS certificate
- TLSCertificates
- List
- List all TLS certificates on this account
- TLSCertificates
- Update
- Update attributes of a TLS Certificate by ID
- TLSCertificates
- Delete
- Delete
- TLSEdgeBackendModule
- Get
- Get
- TLSEdgeBackendModule
- Replace
- Replace
- TLSEdgeBackendModule
- Delete
- Delete
- TLSEdgeIPRestrictionModule
- Get
- Get
- TLSEdgeIPRestrictionModule
- Replace
- Replace
- TLSEdgeIPRestrictionModule
- Delete
- Delete
- TLSEdgeMutualTLSModule
- Get
- Get
- TLSEdgeMutualTLSModule
- Replace
- Replace
- TLSEdgeMutualTLSModule
- Delete
- Delete
- TLSEdgeTLSTerminationModule
- Get
- Get
- TLSEdgeTLSTerminationModule
- Replace
- Replace
- TLSEdgeTLSTerminationModule
- Delete
- Delete
- TLSEdgeTrafficPolicyModule
- Get
- Get
- TLSEdgeTrafficPolicyModule
- Replace
- Replace
- TLSEdgeTrafficPolicyModule
- Get
- Get the status of a tunnel by ID
- Tunnels
- List
- List all online tunnels currently running on the account.
- Tunnels
- Create
- Create a new TunnelGroup backend
- TunnelGroupBackends
- Delete
- Delete a TunnelGroup backend by ID.
- TunnelGroupBackends
- Get
- Get detailed information about a TunnelGroup backend by ID
- TunnelGroupBackends
- List
- List all TunnelGroup backends on this account
- TunnelGroupBackends
- Update
- Update TunnelGroup backend by ID
- TunnelGroupBackends
- Get
- Get the detailed status of a tunnel session by ID
- TunnelSessions
- List
- List all online tunnel sessions running on this account.
- TunnelSessions
- Restart
- Issues a command instructing the ngrok agent to restart. The agent restarts itself by calling exec() on platforms that support it. This operation is notably not supported on Windows. When an agent restarts, it reconnects with a new tunnel session ID.
- TunnelSessions
- Stop
- Issues a command instructing the ngrok agent that started this tunnel session to exit.
- TunnelSessions
- Update
- Issues a command instructing the ngrok agent to update itself to the latest version. After this call completes successfully, the ngrok agent will be in the update process. A caller should wait some amount of time to allow the update to complete (at least 10 seconds) before making a call to the Restart endpoint to request that the agent restart itself to start using the new code. This call will never update an ngrok agent to a new major version which could cause breaking compatibility issues. If you wish to update to a new major version, that must be done manually. Still, please be aware that updating your ngrok agent could break your integration. This call will fail in any of the following circumstances: there is no update available the ngrok agent's configuration disabled update checks the agent is currently in process of updating the agent has already successfully updated but has not yet been restarted
- TunnelSessions
- Create
- Create a new Vault
- Vaults
- Delete
- Delete a Vault
- Vaults
- Get
- Get a Vault by ID
- Vaults
- GetSecretsByVault
- Get Secrets by Vault ID
- Vaults
- List
- List all Vaults owned by account
- Vaults
- Update
- Update an existing Vault by ID
- Vaults
- Create
- Create a new Weighted backend
- WeightedBackends
- Delete
- Delete a Weighted backend by ID.
- WeightedBackends
- Get
- Get detailed information about a Weighted backend by ID
- WeightedBackends
- List
- List all Weighted backends on this account
- WeightedBackends
- Update
- Update Weighted backend by ID
- WeightedBackends
ngrok integration, answered
- How do AI agents use ngrok through Open Connector?
- Your user connects ngrok once with one of its cataloged authentication methods. Open Connector stores the credential in an encrypted vault and exposes ngrok tools to your agent over MCP or a typed API, with credentials injected server-side on each call.
- Is this a ngrok MCP server?
- Yes. Open Connector can serve ngrok as a named MCP server with a scoped allowlist and a per-user connection URL, so any MCP client can call ngrok actions with credentials injected server-side.
- Where do ngrok credentials live?
- In your own infrastructure. Open Connector keeps credentials in its own vault and injects them at call time, so they never leave your environment.
Give your agents ngrok — keep the keys.
Open source, self-hostable, with ngrok credentials that never leave your infrastructure. Run it from source today.