# TinyFish MCP

AI-powered browser automation and web interaction agent. Enables AI to browse, interact with websites, and perform web tasks.

- **Category:** model context protocol
- **Auth:** DCR_OAUTH
- **Composio Managed App Available?** No
- **Tools:** 8
- **Triggers:** 0
- **Slug:** `TINYFISH_MCP`
- **Version:** 20260310_00

## Tools

### Cancel run

**Slug:** `TINYFISH_MCP_CANCEL_RUN`

Cancels a running or pending automation run by its ID. Idempotent: if the run is already in a terminal state (COMPLETED, FAILED, CANCELLED), returns the current status without error. Only PENDING and RUNNING runs will be actively cancelled.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | Run ID |

### Discover run

**Slug:** `TINYFISH_MCP_DISCOVER_RUN`

Discovers the currently running automation for this session. Returns runId if a run is active, or null if not yet started.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `session_id` | string | Yes | The session_id from the automation tool call |

### Get run

**Slug:** `TINYFISH_MCP_GET_RUN`

Retrieves details of a specific automation run by its ID. Returns status, result, error, and other metadata. IMPORTANT: Call this after run_web_automation errors or times out — the run is likely still executing. If you do not have a run_id, use list_runs to find it. Also use this to poll for completion after run_web_automation_async. Runs typically take a few minutes. Wait 30-60 seconds between polls.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | Run ID |

### Get steps

**Slug:** `TINYFISH_MCP_GET_STEPS`

Retrieves the steps taken during an automation run, including screenshots.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `runId` | string | Yes | The run ID to get steps for |

### List runs

**Slug:** `TINYFISH_MCP_LIST_RUNS`

Lists automation runs with optional filtering by status and pagination support. Returns an array of runs with their details. Use this to find a recently created run when you do not have its run_id (e.g., after run_web_automation timed out before returning a run_id). Filter by status=RUNNING to find active runs.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `goal` | string | No | Filter runs by goal text (case-insensitive partial match) |
| `limit` | integer | Yes | Maximum number of results to return (1-100) |
| `cursor` | string | No | Cursor for pagination (from previous response) |
| `status` | string ("PENDING" | "RUNNING" | "COMPLETED" | "FAILED" | "CANCELLED") | No | Filter by run status |
| `created_after` | string | No | Filter runs created after this ISO 8601 timestamp |
| `created_before` | string | No | Filter runs created before this ISO 8601 timestamp |
| `sort_direction` | string ("asc" | "desc") | Yes | Sort order by created_at |

### Poll status

**Slug:** `TINYFISH_MCP_POLL_STATUS`

Polls the current status of an automation run. Returns status, step, progress, and other metadata.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `runId` | string | Yes | The run ID to poll status for |

### Run web automation

**Slug:** `TINYFISH_MCP_RUN_WEB_AUTOMATION`

Executes web automation given a URL and a Natural Language description of the automation goal to be performed. Automation is mostly focused around navigating complex web pages and extracting data from web pages. Include _meta.progressToken in your request to receive progress notifications. WARNING: This tool may take several minutes. If it errors or times out, the run is STILL EXECUTING on the server. DO NOT call this tool again or call run_web_automation_async — both would create a duplicate run. Instead: if you have a run_id from progress notifications, call get_run. If you have no run_id, call list_runs to find it. Only create a new run after confirming the previous one finished.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `url` | string | Yes | Target website URL to automate |
| `goal` | string | Yes | Natural language description of what to accomplish on the website |
| `session_id` | string | Yes | A unique UUID v4 identifying this request. IMPORTANT: You MUST generate a new, random UUID for every single call — never reuse a previous value or the example. Reusing a session_id will break concurrent sessions. |
| `proxy_config` | object | No | Proxy configuration |
| `feature_flags` | object | No | Feature flags to enable for this run |
| `api_integration` | string | No | Name of the integration making this API call (e.g., "dify", "zapier", "n8n"). Used for analytics. |
| `browser_profile` | string ("lite" | "stealth") | No | Browser profile for execution. LITE uses standard browser, STEALTH uses anti-detection browser. |

### Run web automation async

**Slug:** `TINYFISH_MCP_RUN_WEB_AUTOMATION_ASYNC`

Starts a NEW web automation run asynchronously and returns a run_id immediately without waiting for completion. WARNING: Do NOT use this to retry a failed run_web_automation call — that run is still executing. Use get_run or list_runs to check its status instead. Only use this tool for genuinely new tasks. Workflow: 1) Call this tool to get a run_id. 2) Wait 30-60 seconds. 3) Call get_run with the run_id to check status. 4) Repeat step 2-3 until status is COMPLETED, FAILED, or CANCELLED.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `url` | string | Yes | Target website URL to automate |
| `goal` | string | Yes | Natural language description of what to accomplish on the website |
| `session_id` | string | Yes | A unique UUID v4 identifying this request. IMPORTANT: You MUST generate a new, random UUID for every single call — never reuse a previous value or the example. Reusing a session_id will break concurrent sessions. |
| `proxy_config` | object | No | Proxy configuration |
| `feature_flags` | object | No | Feature flags to enable for this run |
| `api_integration` | string | No | Name of the integration making this API call (e.g., "dify", "zapier", "n8n"). Used for analytics. |
| `browser_profile` | string ("lite" | "stealth") | No | Browser profile for execution. LITE uses standard browser, STEALTH uses anti-detection browser. |
