Ngrok

Learn how to use Ngrok with Composio

Overview

SLUG: NGROK

Description

Ngrok creates secure tunnels to locally hosted applications, enabling developers to share and test webhooks or services without configuring complex network settings

Authentication Details

full
stringDefaults to https://api.ngrok.comRequired
generic_api_key
stringRequired

Connecting to Ngrok

Create an auth config

Use the dashboard to create an auth config for the Ngrok toolkit. This allows you to connect multiple Ngrok accounts to Composio for agents to use.

1

Select App

Navigate to the Ngrok toolkit page and click “Setup Integration”.

2

Configure Auth Config Settings

Select among the supported auth schemes of and configure them here.

3

Create and Get auth config ID

Click “Create Integration”. After creation, copy the displayed ID starting with ac_. This is your auth config ID. This is not a sensitive ID — you can save it in environment variables or a database. This ID will be used to create connections to the toolkit for a given user.

Connect Your Account

Using API Key

1from composio import Composio
2from composio.types import auth_scheme
3
4# Replace these with your actual values
5ngrok_auth_config_id = "ac_YOUR_NGROK_CONFIG_ID" # Auth config ID created above
6user_id = "0000-0000-0000" # UUID from database/app
7
8composio = Composio()
9
10def authenticate_toolkit(user_id: str, auth_config_id: str):
11 # Replace this with a method to retrieve an API key from the user.
12 # Or supply your own.
13 user_api_key = input("[!] Enter API key")
14
15 connection_request = composio.connected_accounts.initiate(
16 user_id=user_id,
17 auth_config_id=auth_config_id,
18 config={"auth_scheme": "API_KEY", "val": user_api_key}
19 )
20
21 # API Key authentication is immediate - no redirect needed
22 print(f"Successfully connected Ngrok for user {user_id}")
23 print(f"Connection status: {connection_request.status}")
24
25 return connection_request.id
26
27
28connection_id = authenticate_toolkit(user_id, ngrok_auth_config_id)
29
30# You can verify the connection using:
31connected_account = composio.connected_accounts.get(connection_id)
32print(f"Connected account: {connected_account}")

Tools

Executing tools

To prototype you can execute some tools to see the responses and working on the Ngrok toolkit’s playground

Python
1from composio import Composio
2from openai import OpenAI
3import json
4
5openai = OpenAI()
6composio = Composio()
7
8# User ID must be a valid UUID format
9user_id = "0000-0000-0000" # Replace with actual user UUID from your database
10
11tools = composio.tools.get(user_id=user_id, toolkits=["NGROK"])
12
13print("[!] Tools:")
14print(json.dumps(tools))
15
16def invoke_llm(task = "What can you do?"):
17 completion = openai.chat.completions.create(
18 model="gpt-4o",
19 messages=[
20 {
21 "role": "user",
22 "content": task, # Your task here!
23 },
24 ],
25 tools=tools,
26 )
27
28 # Handle Result from tool call
29 result = composio.provider.handle_tool_calls(user_id=user_id, response=completion)
30 print(f"[!] Completion: {completion}")
31 print(f"[!] Tool call result: {result}")
32
33invoke_llm()

Tool List

Tool Name: Create API Key

Description

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.

Action Parameters

description
string
metadata
string
owner_id
string

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Delete API Key

Description

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 compromised or no longer needed. once deleted, the api key cannot be recovered and any services using it will lose access.

Action Parameters

id
stringRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Get IP Restriction Details

Description

This tool retrieves detailed information about a specific ip restriction by its id. it is used to control which ip addresses can access ngrok resources, including the api, by fetching complete details of the ip restriction. this action is essential for auditing and verification in ip restriction management.

Action Parameters

restriction_id
stringRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: List API Keys

Description

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.

Action Parameters

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: List All Endpoints

Description

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 beyond authentication and serves as a fundamental component for monitoring, managing, and referencing ngrok resources.

Action Parameters

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: List HTTPS Edges

Description

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 account.

Action Parameters

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: List IP Restrictions

Description

This tool retrieves a list of all ip restrictions configured on the ngrok account. it allows users to audit and review all ip-based access restrictions on their ngrok account for enhanced security management. the api endpoint supports pagination with optional parameters such as 'limit' and 'before id', and returns a detailed json response containing attributes like id, uri, created at, description, metadata, enforced, type, and associated ip policies.

Action Parameters

before_id
string
limit
string

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: List Active Tunnels

Description

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 metadata. it requires no input parameters beyond authentication and returns a paginated list of all running tunnels with their complete status information.

Action Parameters

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: List IP Policy Rules

Description

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, and the action (allow or deny) for each rule. it supports pagination with parameters 'limit' for the maximum number of results and 'before id' for pagination.

Action Parameters

before_id
string
limit
integer

Action Response

data
objectRequired
error
string
successful
booleanRequired