diff --git a/.cursor-plugin/marketplace.json b/.cursor-plugin/marketplace.json index 1f2131732..052ee8f68 100644 --- a/.cursor-plugin/marketplace.json +++ b/.cursor-plugin/marketplace.json @@ -462,6 +462,11 @@ "grokbot": "0.49.0", "sand": "0.49.0" } + }, + { + "name": "tinyfish", + "source": "third_party/tinyfish", + "description": "Browse and automate the web with TinyFish: run multi-step web automations, search the web, extract clean page content, and drive remote stealth browser sessions." } ] } diff --git a/third_party/tinyfish/.cursor-plugin/plugin.json b/third_party/tinyfish/.cursor-plugin/plugin.json new file mode 100644 index 000000000..97b3286dd --- /dev/null +++ b/third_party/tinyfish/.cursor-plugin/plugin.json @@ -0,0 +1,36 @@ +{ + "name": "tinyfish", + "displayName": "TinyFish", + "version": "1.0.0", + "minClientVersions": { + "cursor": "3.13.0" + }, + "description": "Browse and automate the web with TinyFish: run multi-step web automations, search the web, extract clean page content, and drive remote stealth browser sessions.", + "author": { + "name": "Cursor", + "email": "plugins@cursor.com" + }, + "homepage": "https://docs.tinyfish.ai/mcp-integration", + "repository": "https://github.com/cursor/plugins", + "license": "MIT", + "logo": "assets/logo.png", + "keywords": [ + "tinyfish", + "web automation", + "browser agent", + "web search", + "scraping", + "content extraction", + "browser sessions", + "playwright", + "mcp" + ], + "category": "integrations", + "tags": [ + "tinyfish", + "web", + "automation", + "mcp" + ], + "mcpServers": "./mcp.json" +} diff --git a/third_party/tinyfish/CHANGELOG.md b/third_party/tinyfish/CHANGELOG.md new file mode 100644 index 000000000..f6dc437f0 --- /dev/null +++ b/third_party/tinyfish/CHANGELOG.md @@ -0,0 +1,9 @@ +# Changelog + +All notable changes to this plugin will be documented here. + +## 1.0.0 — initial release + +- Added the `tinyfish` MCP server pointing at TinyFish's hosted Streamable HTTP endpoint (`https://agent.tinyfish.ai/mcp`). +- Auth uses OAuth with TinyFish user login (PKCE, dynamic client registration via `clerk.tinyfish.ai`) — no API key or client ID to configure. Registration was verified to accept every Cursor redirect set, including Grok Bot mobile. +- Logo: TinyFish's official fish mark, from the app icon published on tinyfish.ai, on a 192×192 tile. diff --git a/third_party/tinyfish/LICENSE b/third_party/tinyfish/LICENSE new file mode 100644 index 000000000..ca2bba771 --- /dev/null +++ b/third_party/tinyfish/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2026 Cursor + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/third_party/tinyfish/README.md b/third_party/tinyfish/README.md new file mode 100644 index 000000000..c10c804ba --- /dev/null +++ b/third_party/tinyfish/README.md @@ -0,0 +1,64 @@ +# TinyFish + +Cursor plugin that connects agents to [TinyFish](https://www.tinyfish.ai) through TinyFish's official remote [Model Context Protocol](https://modelcontextprotocol.io/) server. + +Run multi-step web automations from a URL and a natural-language goal, search the web, extract clean content from pages, and open remote stealth browser sessions for direct Playwright, Puppeteer, or Selenium control. + +## Install + +1. Open **Cursor Settings → Plugins**. +2. Search for **TinyFish**. +3. Click **Install**, then complete the TinyFish sign-in prompt. + +Or run `/add-plugin tinyfish` in chat. + +## MCP + +```json +{ + "mcpServers": { + "tinyfish": { + "type": "http", + "url": "https://agent.tinyfish.ai/mcp" + } + } +} +``` + +Auth is OAuth. Cursor prompts for TinyFish sign-in when the plugin connects — there is no client ID or API key to configure. Each user signs in with their own TinyFish account. + +## Before you connect + +You need a TinyFish account ([sign up](https://agent.tinyfish.ai/api-keys)). Search and content extraction are free; web automation and browser sessions draw from your TinyFish wallet (plan credits on legacy accounts). See [Rates](https://docs.tinyfish.ai/mcp-integration#rates) for current pricing. + +## What agents can do + +| Category | Capabilities | +| --- | --- | +| Web automation | `run_web_automation` executes a multi-step task on a site from a URL and a goal (clicking, navigating, forms, logins) and streams progress; `run_web_automation_async` returns a `run_id` for long tasks, with `get_run`, `list_runs`, and `cancel_run` to follow up. Saved Browser Context Profiles (`use_profile`, `profile_id`) reuse login state for recurring authenticated workflows | +| Batch automation | `batch_status` and `batch_cancel` check or cancel up to 8 runs at once | +| Web search | `search` returns structured results with filters for recency, date range, domain type (web, news, research paper), location, language, and domain allow/deny lists; `get_search_usage` lists past searches | +| Content extraction | `fetch_content` renders and extracts clean Markdown, HTML, or JSON from up to 10 URLs per call, with CSS selector scoping and conditional-request support; `list_fetch_usage` lists past fetches | +| Browser sessions | `create_browser_session` opens a remote stealth Chrome session and returns CDP connection details; `list_browser_sessions` and `close_browser_session` manage them | +| Wallet | `get_wallet` reads balance, auto-reload state, and per-product rates (read-only) | + +The hosted runtime is the source of truth for tool names and schemas. + +## Notes + +- Web automations act on real websites with your saved profiles and credentials when you enable them. Review the goal before letting the agent run tasks that log in, submit forms, or make purchases. +- Sites with bot protection may need the `stealth` browser profile; complex automations can take 30–60 seconds. +- Runs and browser minutes are billed to your TinyFish wallet; `get_wallet` shows the current balance and rates. + +## Docs + +- MCP integration guide: https://docs.tinyfish.ai/mcp-integration +- Plugins overview: https://docs.tinyfish.ai/plugins +- API reference: https://docs.tinyfish.ai/api-reference +- Server URL: https://agent.tinyfish.ai/mcp + +Logo is TinyFish's official mark. + +## License + +MIT diff --git a/third_party/tinyfish/assets/logo.png b/third_party/tinyfish/assets/logo.png new file mode 100644 index 000000000..d898aa4cf Binary files /dev/null and b/third_party/tinyfish/assets/logo.png differ diff --git a/third_party/tinyfish/mcp.json b/third_party/tinyfish/mcp.json new file mode 100644 index 000000000..0d0ba6ca2 --- /dev/null +++ b/third_party/tinyfish/mcp.json @@ -0,0 +1,8 @@ +{ + "mcpServers": { + "tinyfish": { + "type": "http", + "url": "https://agent.tinyfish.ai/mcp" + } + } +}