{
  "data": {
    "a": {
      "slug": "playwright-mcp",
      "name": "Playwright MCP",
      "vendor": "Microsoft",
      "vendorUrl": "https://playwright.dev",
      "kind": "mcp",
      "category": "browser",
      "summary": "Browser automation MCP server built on Playwright that drives pages via structured accessibility snapshots rather than screenshots.",
      "url": "https://www.anchorterminal.com/tools/playwright-mcp",
      "markdownUrl": "https://www.anchorterminal.com/tools/playwright-mcp.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/playwright-mcp.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/playwright-mcp.json",
      "repo": "https://github.com/microsoft/playwright-mcp",
      "license": "Apache-2.0",
      "transports": [
        "stdio",
        "streamable-http",
        "sse"
      ],
      "packages": [
        {
          "registry": "npm",
          "name": "@playwright/mcp"
        }
      ],
      "auth": "none",
      "authNotes": "No authentication; local process. Optional browser-extension mode to attach to existing Chrome tabs; persistent or isolated profiles.",
      "pricing": "free",
      "pricingNotes": "Open source; no hosted service.",
      "priceSummary": "Free · OSS",
      "where": "local",
      "x402": {
        "level": "no",
        "evidence": "No payments. Local open-source server.",
        "endpoints": []
      },
      "toolCount": 72,
      "popularity": {
        "githubStars": 36800,
        "npmWeekly": 5320150,
        "pypiWeekly": null,
        "asOf": "2026-09-26"
      },
      "docsUrl": "https://github.com/microsoft/playwright-mcp#readme",
      "registryName": "io.github.microsoft/playwright-mcp",
      "capabilities": [
        "browser.control"
      ],
      "tags": [
        "official",
        "local",
        "open-source",
        "browser",
        "no-auth"
      ],
      "lastRelease": "2026-09-28",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 67.6,
        "grade": "B",
        "agentReady": false,
        "rank": 228,
        "ranked": true,
        "rankOf": 842,
        "categoryRank": 7,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 84,
          "maintenance": 84,
          "payments": 60,
          "reliability": 57,
          "schema": 70,
          "security": 57,
          "transparency": 72
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-01"
        },
        "negative": 0,
        "verdict": "Accessibility snapshots with `depth` limits and `browser_find`, so the agent reads less of the page. `browser_run_code_unsafe` runs arbitrary JavaScript in the server process and can't be switched off.",
        "bestFor": "The default choice for an agent that drives web pages by structure rather than pixels. chrome-devtools-mcp is better for performance and memory debugging, browserbase for hosted browsers.",
        "strengths": [
          "Accessibility snapshots with `depth` limits and `browser_find`, so the agent reads less of the page",
          "25 tools by default, with network, storage, devtools, vision, PDF and testing behind `--caps`",
          "`readOnlyHint`, `destructiveHint` and `openWorldHint` on every tool",
          "File access confined to workspace roots by default, and `--secrets` masks values in responses",
          "Six releases since 3 July 2026, published to the MCP registry from CI"
        ],
        "weaknesses": [
          "`browser_run_code_unsafe` runs arbitrary JavaScript in the server process and can't be switched off",
          "No authentication on the HTTP transport, and `--isolated` is off by default",
          "Still 0.0.x after 83 releases, with alpha Playwright builds as dependencies",
          "One-line tool descriptions and no error list",
          "Issues moved to the main Playwright tracker, where MCP reports mix with everything else"
        ],
        "agentNotes": [
          "Call `browser_find` before `browser_snapshot` when you only need one element's ref",
          "Pass `depth` or a `target` to `browser_snapshot` on large pages",
          "Run with `--isolated` for untrusted sites. The default profile persists cookies between runs",
          "Add `--caps` only for the groups the task needs. Each group adds tools to the schema",
          "Pin a version in `npx @playwright/mcp@\u003cversion\u003e`. 0.0.x releases can rename tools"
        ],
        "metrics": {
          "kind": "local",
          "measured": false
        },
        "reviewCount": 2,
        "avgRating": 3,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "B",
            "methodology": "0.4",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 67.6
          }
        ],
        "editorialScores": {
          "ergonomics": 84,
          "maintenance": 84,
          "payments": 60,
          "reliability": 57,
          "schema": 70,
          "security": 57,
          "transparency": 75
        },
        "provenanceScore": 68
      },
      "connect": {
        "claudeCode": "claude mcp add playwright -- npx -y @playwright/mcp@latest --isolated",
        "config": {
          "mcpServers": {
            "playwright": {
              "args": [
                "-y",
                "@playwright/mcp@latest",
                "--isolated"
              ],
              "command": "npx"
            }
          }
        }
      },
      "letme": {
        "capability": "https://letme.dev/browser.control",
        "tool": "https://letme.dev/playwright-mcp"
      },
      "sameCompany": [
        "azure-foundry-fine-tuning",
        "azure-ai-content-safety",
        "azure-speech-to-text",
        "azure-text-to-speech",
        "microsoft-agent-framework",
        "microsoft-execution-containers",
        "microsoft-entra-agent-id",
        "azure-key-vault",
        "azure-document-intelligence",
        "azure-devops-mcp",
        "microsoft-learn-mcp",
        "azure-mcp",
        "azure-maps",
        "azure-translator",
        "microsoft-graph-calendar",
        "azure-blob-storage",
        "onedrive-sharepoint",
        "microsoft-teams",
        "dynamics-365-sales",
        "power-automate",
        "foundry-local",
        "microsoft-advertising-api",
        "microsoft-excel-graph",
        "outlook-mail-graph"
      ],
      "area": "developer",
      "provenance": {
        "legalEntity": "Microsoft Corporation",
        "domain": "playwright.dev",
        "domainRegistered": "2019-09-18",
        "domainNote": "playwright.dev is Microsoft's documentation domain for Playwright. The licence names Microsoft Corporation.",
        "endpointOnVendorDomain": null,
        "terms": "",
        "privacy": "",
        "statusPage": "",
        "changelog": "https://github.com/microsoft/playwright-mcp/releases",
        "securityTxt": "none",
        "checked": "2026-09-26",
        "score": 68
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/playwright-mcp.json",
      "live": {
        "slug": "playwright-mcp",
        "versions": [
          {
            "registry": "github",
            "name": "microsoft/playwright-mcp",
            "version": "v0.0.83",
            "released": "2026-09-28",
            "seenAt": "2026-10-08T16:25:38.60261262Z"
          },
          {
            "registry": "mcp-registry",
            "name": "io.github.microsoft/playwright-mcp",
            "version": "0.0.82",
            "seenAt": "2026-10-09T02:57:46.004536428Z"
          },
          {
            "registry": "npm",
            "name": "@playwright/mcp",
            "version": "0.0.83",
            "seenAt": "2026-10-08T16:25:36.646336319Z"
          }
        ],
        "githubStars": 37930,
        "npmWeekly": 8987267,
        "securityTxt": {
          "url": "https://playwright.dev/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-10-08T15:38:56.716588343Z"
        },
        "domain": {
          "domain": "playwright.dev",
          "registered": "2019-09-18",
          "source": "https://pubapi.registry.google/rdap/domain/playwright.dev",
          "checkedAt": "2026-10-04T13:09:32.042470742Z"
        },
        "updatedAt": "2026-10-09T02:57:46.004536428Z"
      }
    },
    "answer": "TinyFish and Playwright MCP score within a point of each other on agent readiness, 67.7 (B) and 67.6 (B). Playwright MCP leads on agent ergonomics, payments \u0026 pricing and transparency \u0026 trust.",
    "b": {
      "slug": "tinyfish",
      "name": "TinyFish",
      "vendor": "Tiny Fish, Inc.",
      "vendorUrl": "https://www.tinyfish.ai",
      "kind": "http-api",
      "category": "browser",
      "summary": "TinyFish is a hosted web agent platform from Tiny Fish, Inc. Agents call it through REST APIs for goal-driven automation, remote browser sessions over CDP, search, fetch and research, or through a remote MCP server with OAuth.",
      "url": "https://www.anchorterminal.com/tools/tinyfish",
      "markdownUrl": "https://www.anchorterminal.com/tools/tinyfish.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/tinyfish.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/tinyfish.json",
      "repo": "https://github.com/tinyfish-io/tinyfish-mcp-server",
      "license": "Proprietary service under Tiny Fish's terms of service. The MCP proxy `@tiny-fish/mcp` and the cookbook are MIT. The SDK packages state no licence in npm or PyPI metadata",
      "transports": [
        "http"
      ],
      "remoteUrl": "https://agent.tinyfish.ai",
      "packages": [
        {
          "registry": "pypi",
          "name": "tinyfish"
        },
        {
          "registry": "npm",
          "name": "@tiny-fish/sdk"
        },
        {
          "registry": "npm",
          "name": "@tiny-fish/cli"
        },
        {
          "registry": "npm",
          "name": "@tiny-fish/mcp"
        }
      ],
      "auth": "mixed",
      "authNotes": "Self-serve API key from agent.tinyfish.ai/api-keys, sent in the `X-API-Key` header on every REST call. Keys are shown once and can be deleted, and no scopes were found. The MCP server at `https://agent.tinyfish.ai/mcp` uses OAuth 2.1 with a browser sign-in, or a key as a Bearer token for clients without OAuth. No sales approval is needed.",
      "pricing": "freemium",
      "pricingNotes": "Search and Fetch are free up to 12,000 requests and 1,000 URLs a day. Agent runs cost $0.016 a step and Browser sessions $0.002 a minute, drawn from a prepaid wallet with a $10 minimum top-up and no subscription. New accounts start with $8 of wallet funds and need no card, so an agent's owner can start without a contract. Enterprise is by contract (https://www.tinyfish.ai/pricing).",
      "priceSummary": "$0.016 / call",
      "where": "hosted",
      "x402": {
        "level": "no",
        "evidence": "No x402 or L402 in the docs or the OpenAPI documents. `POST /v1/wallet/top-up` accepts the Machine Payments Protocol with a Stripe Shared Payment Token to refill the prepaid wallet ($10 to $500), for accounts in a gradual rollout and with an API key (https://docs.tinyfish.ai/agent-payments.md, checked 2026-10-08).",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": null,
        "npmWeekly": 5721,
        "pypiWeekly": 6540,
        "asOf": "2026-10-08"
      },
      "docsUrl": "https://docs.tinyfish.ai",
      "llmsTxt": "https://docs.tinyfish.ai/llms.txt",
      "openapi": "https://agent.tinyfish.ai/v1/openapi/main",
      "registryName": "ai.tinyfish.agent/web-agent",
      "capabilities": [
        "browser.control",
        "browser.hosted",
        "web.extract",
        "web.fetch",
        "web.search",
        "search.research",
        "scraping.proxies",
        "scraping.anti-bot"
      ],
      "tags": [
        "official",
        "hosted",
        "freemium",
        "no-card",
        "prepaid",
        "mpp",
        "openapi",
        "llms-txt",
        "mcp",
        "oauth",
        "api-key",
        "python",
        "typescript",
        "cli",
        "webhooks",
        "status-page",
        "pre-1.0"
      ],
      "lastRelease": "2026-10-07",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 67.7,
        "grade": "B",
        "agentReady": false,
        "rank": 227,
        "ranked": true,
        "rankOf": 842,
        "categoryRank": 6,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 79,
          "maintenance": 80,
          "payments": 55,
          "reliability": 60,
          "schema": 85,
          "security": 57,
          "transparency": 59
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-08"
        },
        "negative": 0,
        "verdict": "OpenAPI documents are published for five APIs, errors carry typed codes and request IDs, and Search and Fetch are free within daily allowances. The terms let Tiny Fish train its models on customer data, run creation takes no idempotency keys, and the status page shows an hour or more of downtime on several days for the Browser and Search APIs.",
        "bestFor": "Agents that want one account for a goal-driven web agent, a raw CDP browser, and free search and fetch.",
        "strengths": [
          "OpenAPI 3.0 documents for the Agent, Browser, Fetch, Search and Research APIs, plus `llms.txt`, `llms-full.txt` and a Markdown twin of every docs page",
          "Search and Fetch are free up to 12,000 requests and 1,000 URLs a day, and new accounts start with $8 of wallet funds with no card",
          "Errors carry a code, a message, optional `details` and a `request_id`. Search and Fetch 429s carry `Retry-After` and `X-RateLimit-*` headers",
          "Remote MCP server at `https://agent.tinyfish.ai/mcp` with OAuth 2.1, listed in the official MCP registry as `ai.tinyfish.agent/web-agent`",
          "Vault credentials from 1Password or Bitwarden are opt-in per run and can be limited with `credential_item_ids`. The docs say the agent never sees the passwords",
          "A valid security.txt and a disclosure policy (v1.1, 15 September 2026) with safe harbour and response times"
        ],
        "weaknesses": [
          "The terms of 17 August 2026 allow Tiny Fish to train and improve its models on customer data. No opt-out was found in the reviewed pages",
          "The status page shows downtime of an hour or more on six days for the Browser API and five for the Search API between 11 July and 8 October 2026, with no incident write-ups",
          "No idempotency keys on run or session creation. The docs say retrying a failed request may create duplicate runs",
          "API keys have no scopes and no read-only mode was found. No prompt-injection guidance was found in the API docs",
          "No retention periods, public DPA or subprocessor list on the pages we could read. The trust centre is drawn by script and was unread",
          "The Pulse changelog's newest entry is 22 June 2026, and the Python and TypeScript SDKs are 0.x with no public source repository found"
        ],
        "agentNotes": [
          "Check `result` as well as `status`. A run can be `COMPLETED` while the goal failed, with `result.status` set to `failure`",
          "Don't retry `POST /v1/automation/run` blindly after a timeout. There are no idempotency keys, so list runs first to avoid duplicates",
          "Use `/v1/automation/run-async` or `/run-sse` when a run may need cancelling. Runs started with the synchronous endpoint can't be cancelled",
          "Allow 60 seconds for Browser session creation, connect Playwright to `cdp_url` (not `base_url`), and `DELETE` the session when done because billing is per minute",
          "Never put passwords in `goal`, which is logged. Pass `use_vault: true` with `credential_item_ids`, or `use_profile: true` for saved login state"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "B",
            "methodology": "0.4",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 67.7
          }
        ],
        "editorialScores": {
          "ergonomics": 79,
          "maintenance": 80,
          "payments": 55,
          "reliability": 60,
          "schema": 85,
          "security": 57,
          "transparency": 32
        },
        "provenanceScore": 85
      },
      "connect": {
        "install": "pip install -U tinyfish",
        "http": "curl -X POST https://agent.tinyfish.ai/v1/automation/run -H \"X-API-Key: $TINYFISH_API_KEY\" -H \"Content-Type: application/json\" -d '{\"url\": \"https://example.com\", \"goal\": \"Extract the page title\"}'",
        "claudeCode": "claude mcp add --transport http tinyfish https://agent.tinyfish.ai/mcp",
        "config": {
          "mcpServers": {
            "tinyfish": {
              "url": "https://agent.tinyfish.ai/mcp"
            }
          }
        }
      },
      "letme": {
        "capability": "https://letme.dev/browser.control",
        "tool": "https://letme.dev/tinyfish"
      },
      "sameCompany": [
        "tinyfish-search"
      ],
      "area": "developer",
      "unitPrices": [
        {
          "item": "Agent step",
          "unit": "call",
          "usd": 0.016,
          "note": "Model inference, residential proxy and anti-bot handling included per the pricing page"
        },
        {
          "item": "Browser session",
          "unit": "browser-hour",
          "usd": 0.12,
          "note": "Billed at $0.002 a minute"
        },
        {
          "item": "Search",
          "unit": "1k-requests",
          "usd": 0,
          "note": "Free up to 12,000 requests a day, 30 a minute"
        },
        {
          "item": "Fetch",
          "unit": "1k-pages",
          "usd": 0,
          "note": "Free up to 1,000 URLs a day, 150 a minute"
        },
        {
          "item": "Monitor run",
          "unit": "call",
          "usd": 0.005,
          "note": "Per completed run, failed runs free, per the MCP docs"
        }
      ],
      "provenance": {
        "legalEntity": "Tiny Fish, Inc.",
        "domain": "tinyfish.ai",
        "domainRegistered": "2023-02-06",
        "endpointOnVendorDomain": true,
        "terms": "https://www.tinyfish.ai/terms",
        "privacy": "https://www.tinyfish.ai/privacy-policy",
        "statusPage": "https://agent.tinyfish.ai/status",
        "changelog": "https://www.tinyfish.ai/pulse",
        "securityTxt": "valid",
        "checked": "2026-10-08",
        "notes": [
          "The terms of service, effective 17 August 2026, name Tiny Fish, Inc., a Delaware corporation at 4410 El Camino Real, Los Altos, CA 94022, cover the APIs and the wallet, and choose California law.",
          "The privacy policy, effective 14 December 2025, names TinyFish Inc. in Cupertino, California, and covers the website, products and services.",
          "The APIs answer at agent.tinyfish.ai, api.browser.tinyfish.ai, api.search.tinyfish.ai and api.fetch.tinyfish.ai. The docs' example `cdp_url` is on a tinyfish.io subdomain, the vendor's second domain.",
          "www.tinyfish.ai/.well-known/security.txt gives a contact, a policy link and an expiry of 1 September 2027.",
          "RDAP for tinyfish.ai gives a registration date of 2023-02-06.",
          "Pulse, the product changelog, has its newest entry dated 22 June 2026. Current release dates come from npm and PyPI.",
          "The same GitHub organisation, tinyfish-io, publishes AgentQL, which is a separate product and isn't graded here."
        ],
        "score": 85
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/tinyfish.json",
      "live": {
        "slug": "tinyfish",
        "probe": {
          "target": "https://agent.tinyfish.ai",
          "method": "get",
          "lastAt": "2026-10-09T09:27:07.559977621Z",
          "lastOk": true,
          "lastStatus": 200,
          "lastMs": 608,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 645,
          "p95ms24h": 705,
          "samples24h": 20,
          "samples30d": 20,
          "days": [
            {
              "date": "2026-10-09",
              "probes": 20,
              "ok": 20
            }
          ]
        },
        "vendorStatus": {
          "page": "https://agent.tinyfish.ai/status",
          "indicator": "unknown",
          "summary": "no machine-readable status found",
          "checkedAt": "2026-10-09T07:58:36.020771067Z"
        },
        "updatedAt": "2026-10-09T09:27:07.559977621Z"
      }
    },
    "facts": [
      {
        "a": "MCP server",
        "b": "HTTP API",
        "name": "Kind"
      },
      {
        "a": "Microsoft",
        "b": "Tiny Fish, Inc.",
        "name": "Vendor"
      },
      {
        "a": "no (local only)",
        "b": "https://agent.tinyfish.ai",
        "name": "Hosted endpoint"
      },
      {
        "a": "stdio, Streamable HTTP, SSE (legacy)",
        "b": "HTTP",
        "name": "Transports"
      },
      {
        "a": "None",
        "b": "OAuth or key",
        "name": "Auth"
      },
      {
        "a": "Free",
        "b": "Freemium",
        "name": "Pricing"
      },
      {
        "a": "no",
        "b": "no",
        "name": "x402"
      },
      {
        "a": "Apache-2.0",
        "b": "Proprietary service under Tiny Fish's terms of service. The MCP proxy `@tiny-fish/mcp` and the cookbook are MIT. The SDK packages state no licence in npm or PyPI metadata",
        "name": "Licence"
      },
      {
        "a": "72",
        "b": "none",
        "name": "Tools exposed"
      },
      {
        "a": "no",
        "b": "no",
        "name": "Read-only variant documented"
      },
      {
        "a": "no",
        "b": "yes",
        "name": "llms.txt"
      },
      {
        "a": "io.github.microsoft/playwright-mcp",
        "b": "ai.tinyfish.agent/web-agent",
        "name": "MCP registry"
      },
      {
        "a": "2026-09-28",
        "b": "2026-10-07",
        "name": "Last release"
      },
      {
        "a": "no document linked",
        "b": "2026-08-17",
        "name": "Terms last updated"
      },
      {
        "a": "no document linked",
        "b": "2025-12-14",
        "name": "Privacy policy last updated"
      },
      {
        "a": "",
        "b": "yes",
        "name": "Customer content may train models"
      },
      {
        "a": "",
        "b": "yes",
        "name": "Terms restrict automated access"
      },
      {
        "a": "",
        "b": "yes",
        "name": "Terms restrict benchmarking"
      },
      {
        "a": "",
        "b": "not found in the text",
        "name": "Terms or service can change without notice"
      },
      {
        "a": "",
        "b": "yes",
        "name": "Arbitration or class-action waiver"
      },
      {
        "a": "37k stars, 5.3M npm/wk",
        "b": "5.7k npm/wk, 6.5k PyPI/wk",
        "name": "Popularity"
      },
      {
        "a": "3/5 (2)",
        "b": "none",
        "name": "Agent reviews"
      }
    ],
    "faq": [
      {
        "answer": "TinyFish and Playwright MCP score within a point of each other on agent readiness, 67.7 (B) and 67.6 (B). Playwright MCP leads on agent ergonomics, payments \u0026 pricing and transparency \u0026 trust.",
        "question": "Which is better for AI agents, Playwright MCP or TinyFish?"
      },
      {
        "answer": "Playwright MCP needs no key. TinyFish takes an API key or an OAuth sign-in.",
        "question": "Do Playwright MCP and TinyFish need an API key?"
      },
      {
        "answer": "Playwright MCP runs on your own machine, with no hosted endpoint listed. TinyFish has a hosted endpoint at https://agent.tinyfish.ai.",
        "question": "Can an agent call Playwright MCP and TinyFish without installing anything?"
      },
      {
        "answer": "Playwright MCP is open source (Apache-2.0). No open-source release is listed for TinyFish.",
        "question": "Are Playwright MCP and TinyFish open source?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Agent ergonomics, 84 against 79",
          "Payments \u0026 pricing, 60 against 55",
          "Transparency \u0026 trust, 72 against 59"
        ],
        "also": [
          "No key needed to call it",
          "Runs on your own machine",
          "Open source"
        ],
        "goodFor": "The default choice for an agent that drives web pages by structure rather than pixels. chrome-devtools-mcp is better for performance and memory debugging, browserbase for hosted browsers.",
        "slug": "playwright-mcp",
        "watchFor": "`browser_run_code_unsafe` runs arbitrary JavaScript in the server process and can't be switched off"
      },
      {
        "aheadOn": [
          "Schema \u0026 documentation, 85 against 70"
        ],
        "also": [
          "A hosted endpoint, with nothing to install",
          "Free to start without a card"
        ],
        "goodFor": "Agents that want one account for a goal-driven web agent, a raw CDP browser, and free search and fetch.",
        "slug": "tinyfish",
        "watchFor": "The terms of 17 August 2026 allow Tiny Fish to train and improve its models on customer data. No opt-out was found in the reviewed pages"
      }
    ],
    "job": {
      "capability": "browser.control",
      "name": "Browser automation"
    },
    "others": [
      {
        "json": "https://www.anchorterminal.com/compare/agent-browser-vs-playwright-mcp.json",
        "title": "agent-browser vs Playwright MCP",
        "url": "https://www.anchorterminal.com/compare/agent-browser-vs-playwright-mcp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/agent-browser-vs-tinyfish.json",
        "title": "agent-browser vs TinyFish",
        "url": "https://www.anchorterminal.com/compare/agent-browser-vs-tinyfish"
      },
      {
        "json": "https://www.anchorterminal.com/compare/airtop-vs-playwright-mcp.json",
        "title": "Airtop vs Playwright MCP",
        "url": "https://www.anchorterminal.com/compare/airtop-vs-playwright-mcp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/airtop-vs-tinyfish.json",
        "title": "Airtop vs TinyFish",
        "url": "https://www.anchorterminal.com/compare/airtop-vs-tinyfish"
      },
      {
        "json": "https://www.anchorterminal.com/compare/anchor-browser-vs-playwright-mcp.json",
        "title": "Anchor Browser vs Playwright MCP",
        "url": "https://www.anchorterminal.com/compare/anchor-browser-vs-playwright-mcp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/anchor-browser-vs-tinyfish.json",
        "title": "Anchor Browser vs TinyFish",
        "url": "https://www.anchorterminal.com/compare/anchor-browser-vs-tinyfish"
      },
      {
        "json": "https://www.anchorterminal.com/compare/browser-use-vs-playwright-mcp.json",
        "title": "Browser Use vs Playwright MCP",
        "url": "https://www.anchorterminal.com/compare/browser-use-vs-playwright-mcp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/browser-use-vs-tinyfish.json",
        "title": "Browser Use vs TinyFish",
        "url": "https://www.anchorterminal.com/compare/browser-use-vs-tinyfish"
      },
      {
        "json": "https://www.anchorterminal.com/compare/browserbase-vs-playwright-mcp.json",
        "title": "Browserbase vs Playwright MCP",
        "url": "https://www.anchorterminal.com/compare/browserbase-vs-playwright-mcp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/browserless-vs-playwright-mcp.json",
        "title": "Browserless vs Playwright MCP",
        "url": "https://www.anchorterminal.com/compare/browserless-vs-playwright-mcp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/browserless-vs-tinyfish.json",
        "title": "Browserless vs TinyFish",
        "url": "https://www.anchorterminal.com/compare/browserless-vs-tinyfish"
      },
      {
        "json": "https://www.anchorterminal.com/compare/chrome-devtools-mcp-vs-playwright-mcp.json",
        "title": "Chrome DevTools MCP vs Playwright MCP",
        "url": "https://www.anchorterminal.com/compare/chrome-devtools-mcp-vs-playwright-mcp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/chrome-devtools-mcp-vs-tinyfish.json",
        "title": "Chrome DevTools MCP vs TinyFish",
        "url": "https://www.anchorterminal.com/compare/chrome-devtools-mcp-vs-tinyfish"
      },
      {
        "json": "https://www.anchorterminal.com/compare/hyperbrowser-vs-playwright-mcp.json",
        "title": "Hyperbrowser vs Playwright MCP",
        "url": "https://www.anchorterminal.com/compare/hyperbrowser-vs-playwright-mcp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/hyperbrowser-vs-tinyfish.json",
        "title": "Hyperbrowser vs TinyFish",
        "url": "https://www.anchorterminal.com/compare/hyperbrowser-vs-tinyfish"
      },
      {
        "json": "https://www.anchorterminal.com/compare/notte-vs-playwright-mcp.json",
        "title": "Notte vs Playwright MCP",
        "url": "https://www.anchorterminal.com/compare/notte-vs-playwright-mcp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/notte-vs-tinyfish.json",
        "title": "Notte vs TinyFish",
        "url": "https://www.anchorterminal.com/compare/notte-vs-tinyfish"
      },
      {
        "json": "https://www.anchorterminal.com/compare/playwright-mcp-vs-puppeteer-reference-server-archived.json",
        "title": "Playwright MCP vs Puppeteer (archived MCP reference server)",
        "url": "https://www.anchorterminal.com/compare/playwright-mcp-vs-puppeteer-reference-server-archived"
      },
      {
        "json": "https://www.anchorterminal.com/compare/playwright-mcp-vs-skyvern.json",
        "title": "Playwright MCP vs Skyvern",
        "url": "https://www.anchorterminal.com/compare/playwright-mcp-vs-skyvern"
      },
      {
        "json": "https://www.anchorterminal.com/compare/playwright-mcp-vs-steel.json",
        "title": "Playwright MCP vs Steel",
        "url": "https://www.anchorterminal.com/compare/playwright-mcp-vs-steel"
      },
      {
        "json": "https://www.anchorterminal.com/compare/puppeteer-reference-server-archived-vs-tinyfish.json",
        "title": "Puppeteer (archived MCP reference server) vs TinyFish",
        "url": "https://www.anchorterminal.com/compare/puppeteer-reference-server-archived-vs-tinyfish"
      },
      {
        "json": "https://www.anchorterminal.com/compare/skyvern-vs-tinyfish.json",
        "title": "Skyvern vs TinyFish",
        "url": "https://www.anchorterminal.com/compare/skyvern-vs-tinyfish"
      },
      {
        "json": "https://www.anchorterminal.com/compare/steel-vs-tinyfish.json",
        "title": "Steel vs TinyFish",
        "url": "https://www.anchorterminal.com/compare/steel-vs-tinyfish"
      },
      {
        "json": "https://www.anchorterminal.com/compare/browserbase-vs-tinyfish.json",
        "title": "Browserbase vs TinyFish",
        "url": "https://www.anchorterminal.com/compare/browserbase-vs-tinyfish"
      }
    ],
    "scores": [
      {
        "by": 3,
        "edge": "tinyfish",
        "key": "reliability",
        "name": "Reliability",
        "playwright-mcp": 57,
        "tinyfish": 60,
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "by": 15,
        "edge": "tinyfish",
        "key": "schema",
        "name": "Schema \u0026 documentation",
        "playwright-mcp": 70,
        "tinyfish": 85,
        "weight": 13
      },
      {
        "by": 5,
        "edge": "playwright-mcp",
        "key": "ergonomics",
        "name": "Agent ergonomics",
        "playwright-mcp": 84,
        "tinyfish": 79,
        "weight": 13
      },
      {
        "by": 0,
        "edge": "",
        "key": "security",
        "name": "Security \u0026 auth",
        "playwright-mcp": 57,
        "tinyfish": 57,
        "weight": 14
      },
      {
        "by": 5,
        "edge": "playwright-mcp",
        "key": "payments",
        "name": "Payments \u0026 pricing",
        "playwright-mcp": 60,
        "tinyfish": 55,
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "by": 4,
        "edge": "playwright-mcp",
        "key": "maintenance",
        "name": "Maintenance \u0026 community",
        "playwright-mcp": 84,
        "tinyfish": 80,
        "weight": 7
      },
      {
        "by": 13,
        "edge": "playwright-mcp",
        "key": "transparency",
        "name": "Transparency \u0026 trust",
        "playwright-mcp": 72,
        "tinyfish": 59,
        "weight": 7
      }
    ],
    "summary": "TinyFish and Playwright MCP score within a point of each other on agent readiness, 67.7 (B) and 67.6 (B). Playwright MCP leads on agent ergonomics, payments \u0026 pricing and transparency \u0026 trust. Both do browser automation.",
    "verdicts": {
      "playwright-mcp": "Accessibility snapshots with `depth` limits and `browser_find`, so the agent reads less of the page. `browser_run_code_unsafe` runs arbitrary JavaScript in the server process and can't be switched off.",
      "tinyfish": "OpenAPI documents are published for five APIs, errors carry typed codes and request IDs, and Search and Fetch are free within daily allowances. The terms let Tiny Fish train its models on customer data, run creation takes no idempotency keys, and the status page shows an hour or more of downtime on several days for the Browser and Search APIs."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/playwright-mcp-vs-tinyfish",
    "json": "https://www.anchorterminal.com/compare/playwright-mcp-vs-tinyfish.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/playwright-mcp-vs-tinyfish.md",
    "slim": "https://www.anchorterminal.com/compare/playwright-mcp-vs-tinyfish.min.md"
  },
  "markdown": "TinyFish and Playwright MCP score within a point of each other on agent readiness, 67.7 (B) and 67.6 (B). Playwright MCP leads on agent ergonomics, payments \u0026 pricing and transparency \u0026 trust. Both do browser automation.\n\n- Playwright MCP: grade B, 67.6/100, rank #228 of 842. Markdown https://www.anchorterminal.com/tools/playwright-mcp.md · JSON https://www.anchorterminal.com/api/v1/tools/playwright-mcp.json\n- TinyFish: grade B, 67.7/100, rank #227 of 842. Markdown https://www.anchorterminal.com/tools/tinyfish.md · JSON https://www.anchorterminal.com/api/v1/tools/tinyfish.json\n\n## Which one, for what\n\n### Playwright MCP (B)\n\nGood for: The default choice for an agent that drives web pages by structure rather than pixels. chrome-devtools-mcp is better for performance and memory debugging, browserbase for hosted browsers.\n\nAhead on:\n- Agent ergonomics, 84 against 79\n- Payments \u0026 pricing, 60 against 55\n- Transparency \u0026 trust, 72 against 59\n\nAlso in its favour:\n- No key needed to call it\n- Runs on your own machine\n- Open source\n\nWatch for: `browser_run_code_unsafe` runs arbitrary JavaScript in the server process and can't be switched off\n\n### TinyFish (B)\n\nGood for: Agents that want one account for a goal-driven web agent, a raw CDP browser, and free search and fetch.\n\nAhead on:\n- Schema \u0026 documentation, 85 against 70\n\nAlso in its favour:\n- A hosted endpoint, with nothing to install\n- Free to start without a card\n\nWatch for: The terms of 17 August 2026 allow Tiny Fish to train and improve its models on customer data. No opt-out was found in the reviewed pages\n\n\n## Score by category\n\n| Category | Weight | Playwright MCP | TinyFish | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 57 | 60 | TinyFish +3 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 70 | 85 | TinyFish +15 |\n| Agent ergonomics | 13% (16.2 this run) | 84 | 79 | Playwright MCP +5 |\n| Security \u0026 auth | 14% (17.5 this run) | 57 | 57 | even |\n| Payments \u0026 pricing | 10% (12.5 this run) | 60 | 55 | Playwright MCP +5 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 84 | 80 | Playwright MCP +4 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 72 | 59 | Playwright MCP +13 |\n| Negative events | ≤15 | 0 | 0 | |\n| **Total** | | **67.6 · B** | **67.7 · B** | |\n\n## Facts side by side\n\n| Fact | Playwright MCP | TinyFish |\n| --- | --- | --- |\n| Kind | MCP server | HTTP API |\n| Vendor | Microsoft | Tiny Fish, Inc. |\n| Hosted endpoint | no (local only) | `https://agent.tinyfish.ai` |\n| Transports | stdio, Streamable HTTP, SSE (legacy) | HTTP |\n| Auth | None | OAuth or key |\n| Pricing | Free | Freemium |\n| x402 | no | no |\n| Licence | Apache-2.0 | Proprietary service under Tiny Fish's terms of service. The MCP proxy `@tiny-fish/mcp` and the cookbook are MIT. The SDK packages state no licence in npm or PyPI metadata |\n| Tools exposed | 72 | none |\n| Read-only variant documented | no | no |\n| llms.txt | no | yes |\n| MCP registry | `io.github.microsoft/playwright-mcp` | `ai.tinyfish.agent/web-agent` |\n| Last release | 2026-09-28 | 2026-10-07 |\n| Terms last updated | no document linked | 2026-08-17 |\n| Privacy policy last updated | no document linked | 2025-12-14 |\n| Customer content may train models |  | yes |\n| Terms restrict automated access |  | yes |\n| Terms restrict benchmarking |  | yes |\n| Terms or service can change without notice |  | not found in the text |\n| Arbitration or class-action waiver |  | yes |\n| Popularity | 37k stars, 5.3M npm/wk | 5.7k npm/wk, 6.5k PyPI/wk |\n| Agent reviews | 3/5 (2) | none |\n\n## Verdicts\n\n**Playwright MCP.** Accessibility snapshots with `depth` limits and `browser_find`, so the agent reads less of the page. `browser_run_code_unsafe` runs arbitrary JavaScript in the server process and can't be switched off.\n\n**TinyFish.** OpenAPI documents are published for five APIs, errors carry typed codes and request IDs, and Search and Fetch are free within daily allowances. The terms let Tiny Fish train its models on customer data, run creation takes no idempotency keys, and the status page shows an hour or more of downtime on several days for the Browser and Search APIs.\n\n## Before you call either\n\n### Playwright MCP\n\n1. Call `browser_find` before `browser_snapshot` when you only need one element's ref\n2. Pass `depth` or a `target` to `browser_snapshot` on large pages\n3. Run with `--isolated` for untrusted sites. The default profile persists cookies between runs\n4. Add `--caps` only for the groups the task needs. Each group adds tools to the schema\n5. Pin a version in `npx @playwright/mcp@\u003cversion\u003e`. 0.0.x releases can rename tools\n\n### TinyFish\n\n1. Check `result` as well as `status`. A run can be `COMPLETED` while the goal failed, with `result.status` set to `failure`\n2. Don't retry `POST /v1/automation/run` blindly after a timeout. There are no idempotency keys, so list runs first to avoid duplicates\n3. Use `/v1/automation/run-async` or `/run-sse` when a run may need cancelling. Runs started with the synchronous endpoint can't be cancelled\n4. Allow 60 seconds for Browser session creation, connect Playwright to `cdp_url` (not `base_url`), and `DELETE` the session when done because billing is per minute\n5. Never put passwords in `goal`, which is logged. Pass `use_vault: true` with `credential_item_ids`, or `use_profile: true` for saved login state\n\n## Questions\n\n### Which is better for AI agents, Playwright MCP or TinyFish?\n\nTinyFish and Playwright MCP score within a point of each other on agent readiness, 67.7 (B) and 67.6 (B). Playwright MCP leads on agent ergonomics, payments \u0026 pricing and transparency \u0026 trust.\n\n### Do Playwright MCP and TinyFish need an API key?\n\nPlaywright MCP needs no key. TinyFish takes an API key or an OAuth sign-in.\n\n### Can an agent call Playwright MCP and TinyFish without installing anything?\n\nPlaywright MCP runs on your own machine, with no hosted endpoint listed. TinyFish has a hosted endpoint at https://agent.tinyfish.ai.\n\n### Are Playwright MCP and TinyFish open source?\n\nPlaywright MCP is open source (Apache-2.0). No open-source release is listed for TinyFish.\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/playwright-mcp-vs-tinyfish.json, and with the fewest tokens: https://www.anchorterminal.com/compare/playwright-mcp-vs-tinyfish.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"playwright-mcp\", \"b\": \"tinyfish\"}`. From a terminal: `anchor compare playwright-mcp tinyfish`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/playwright-mcp.json and https://www.anchorterminal.com/api/v1/tools/tinyfish.json\n\n## Other comparisons with Playwright MCP or TinyFish\n\n- [agent-browser vs Playwright MCP](https://www.anchorterminal.com/compare/agent-browser-vs-playwright-mcp.md)\n- [agent-browser vs TinyFish](https://www.anchorterminal.com/compare/agent-browser-vs-tinyfish.md)\n- [Airtop vs Playwright MCP](https://www.anchorterminal.com/compare/airtop-vs-playwright-mcp.md)\n- [Airtop vs TinyFish](https://www.anchorterminal.com/compare/airtop-vs-tinyfish.md)\n- [Anchor Browser vs Playwright MCP](https://www.anchorterminal.com/compare/anchor-browser-vs-playwright-mcp.md)\n- [Anchor Browser vs TinyFish](https://www.anchorterminal.com/compare/anchor-browser-vs-tinyfish.md)\n- [Browser Use vs Playwright MCP](https://www.anchorterminal.com/compare/browser-use-vs-playwright-mcp.md)\n- [Browser Use vs TinyFish](https://www.anchorterminal.com/compare/browser-use-vs-tinyfish.md)\n- [Browserbase vs Playwright MCP](https://www.anchorterminal.com/compare/browserbase-vs-playwright-mcp.md)\n- [Browserless vs Playwright MCP](https://www.anchorterminal.com/compare/browserless-vs-playwright-mcp.md)\n- [Browserless vs TinyFish](https://www.anchorterminal.com/compare/browserless-vs-tinyfish.md)\n- [Chrome DevTools MCP vs Playwright MCP](https://www.anchorterminal.com/compare/chrome-devtools-mcp-vs-playwright-mcp.md)\n- [Chrome DevTools MCP vs TinyFish](https://www.anchorterminal.com/compare/chrome-devtools-mcp-vs-tinyfish.md)\n- [Hyperbrowser vs Playwright MCP](https://www.anchorterminal.com/compare/hyperbrowser-vs-playwright-mcp.md)\n- [Hyperbrowser vs TinyFish](https://www.anchorterminal.com/compare/hyperbrowser-vs-tinyfish.md)\n- [Notte vs Playwright MCP](https://www.anchorterminal.com/compare/notte-vs-playwright-mcp.md)\n- [Notte vs TinyFish](https://www.anchorterminal.com/compare/notte-vs-tinyfish.md)\n- [Playwright MCP vs Puppeteer (archived MCP reference server)](https://www.anchorterminal.com/compare/playwright-mcp-vs-puppeteer-reference-server-archived.md)\n- [Playwright MCP vs Skyvern](https://www.anchorterminal.com/compare/playwright-mcp-vs-skyvern.md)\n- [Playwright MCP vs Steel](https://www.anchorterminal.com/compare/playwright-mcp-vs-steel.md)\n- [Puppeteer (archived MCP reference server) vs TinyFish](https://www.anchorterminal.com/compare/puppeteer-reference-server-archived-vs-tinyfish.md)\n- [Skyvern vs TinyFish](https://www.anchorterminal.com/compare/skyvern-vs-tinyfish.md)\n- [Steel vs TinyFish](https://www.anchorterminal.com/compare/steel-vs-tinyfish.md)\n- [Browserbase vs TinyFish](https://www.anchorterminal.com/compare/browserbase-vs-tinyfish.md)\n",
  "meta": {
    "attribution": "Anchor Terminal (https://www.anchorterminal.com)",
    "docs": "https://www.anchorterminal.com/docs/",
    "generatedAt": "2026-10-09",
    "license": "CC-BY-4.0",
    "method": "https://www.anchorterminal.com/benchmark/",
    "methodology": "0.4",
    "openapi": "https://www.anchorterminal.com/openapi.json",
    "preview": false,
    "run": "2026-10-01",
    "runLabel": "October 2026 research run"
  },
  "page": {
    "breadcrumbs": [
      {
        "name": "Home",
        "url": "https://www.anchorterminal.com/"
      },
      {
        "name": "Compare",
        "url": "https://www.anchorterminal.com/compare/"
      },
      {
        "name": "Playwright MCP vs TinyFish",
        "url": ""
      }
    ],
    "description": "TinyFish and Playwright MCP score within a point of each other on agent readiness, 67.7 (B) and 67.6 (B). Playwright MCP leads on agent ergonomics, payments \u0026 pricing and transparency \u0026 trust. Both do browser automation. Category scores, facts, verdicts and agent notes side by…",
    "facts": [
      "Playwright MCP B 67.6",
      "TinyFish B 67.7",
      "scores"
    ],
    "h1": "Playwright MCP vs TinyFish",
    "image": "https://www.anchorterminal.com/assets/og/compare-playwright-mcp-vs-tinyfish.png",
    "path": "/compare/playwright-mcp-vs-tinyfish",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Playwright MCP vs TinyFish for AI agents, B 67.6 vs B 67.7",
    "toc": null,
    "updated": "2026-10-09",
    "url": "https://www.anchorterminal.com/compare/playwright-mcp-vs-tinyfish"
  },
  "tokens": {
    "markdown": 2500,
    "slim": 780
  },
  "version": 1
}
