{
 "$schema": "https://agentdrives.com/schemas/tool.schema.json",
 "id": "prd_01m57vgtgfyk8q3xkmekmycpns",
 "ids": {
  "org": "org_01m57vgtgf7kcwg76ynjffy4bp",
  "surfaces": {
   "web": "srf_01m5kty90yeyzey5jsmn9t5m7y",
   "api": "srf_01m5kty90ytya4fhs6xacc5rkd",
   "mcp": "srf_01m5kty90y4q330e7nphxzy74p",
   "cli": "srf_01m5kty90yt9q8pe5g79yghqpn",
   "sdk": "srf_01m5kty90yw25f8121ph9k5h8b"
  },
  "slugs": [
   "tinybird"
  ],
  "domain": "tinybird.co"
 },
 "slug": "tinybird",
 "name": "Tinybird",
 "url": "https://tinybird.co",
 "domain": "tinybird.co",
 "category": "data-warehouses",
 "category_name": "Data warehouses",
 "tested_at": "2026-10-23",
 "run": "20261023T070318Z",
 "draft": false,
 "reviewed": true,
 "owner_verified": null,
 "origin": "editorial",
 "history": [
  {
   "run": "20261023T070318Z",
   "date": "2026-10-23",
   "level": 1,
   "engine": {
    "runner": "omp",
    "model": "claude-opus-5-5",
    "driver": 4,
    "signed": true,
    "inbox": [
     "agentdrives.com"
    ],
    "robots": "skip"
   },
   "stop": "signup",
   "drives": 2
  }
 ],
 "level": 1,
 "level_name": "Needs a person",
 "level_selfhost": null,
 "entry": "closed",
 "door": {
  "passed": 0,
  "tries": 2,
  "self_start": false
 },
 "badges": [],
 "not_counted": null,
 "stages": [
  {
   "key": "in",
   "label": "Access",
   "state": "no",
   "text": "Can't get in on its own",
   "at": "signup"
  },
  {
   "key": "work",
   "label": "Use",
   "state": "unreached",
   "text": "Work not measured"
  },
  {
   "key": "pay",
   "label": "Pay",
   "state": "unreached",
   "text": "Payment not reached",
   "value": "unreached",
   "route": "portal"
  },
  {
   "key": "leave",
   "label": "Leave",
   "state": "unreached",
   "text": "Leaving not reached",
   "how": "no-account"
  }
 ],
 "outcomes": [
  {
   "key": "find",
   "label": "Learn",
   "state": "yes",
   "text": "Docs it can act on: llms.txt and an MCP server",
   "have": [
    "llms_txt",
    "mcp"
   ],
   "docs": "complete"
  },
  {
   "key": "access",
   "label": "Access",
   "state": "no",
   "text": "Can't get in on its own",
   "at": "signup",
   "stage": "in"
  },
  {
   "key": "use",
   "label": "Use",
   "state": "unreached",
   "text": "Work not measured",
   "stage": "work"
  },
  {
   "key": "pay",
   "label": "Pay",
   "state": "unreached",
   "text": "Payment not reached",
   "value": "unreached",
   "route": "portal",
   "stage": "pay"
  },
  {
   "key": "leave",
   "label": "Leave",
   "state": "unreached",
   "text": "Leaving not reached",
   "how": "no-account",
   "stage": "leave"
  }
 ],
 "access": [
  {
   "key": "person",
   "label": "A person sets it up",
   "routes": [],
   "minutes": null,
   "core": null
  }
 ],
 "minutes": null,
 "next": {
  "to": 2,
  "text": "Next: let an agent sign up on its own"
 },
 "stop": "signup",
 "core": "0/9",
 "scores": {
  "coverage": null,
  "reliability": null,
  "resilience": null,
  "setup": 75,
  "surface_coverage": null,
  "docs_accuracy": null,
  "docs_completeness": null
 },
 "parts": {
  "holds_up": null,
  "docs_match": null,
  "setup": 75,
  "security": null,
  "standards": []
 },
 "reliability_method": null,
 "resilience": null,
 "stress": [],
 "surface_audit": null,
 "coverage_core": null,
 "coverage_own": null,
 "after_wall": null,
 "coverage_source": "computed",
 "driver": {
  "version": 4,
  "model": "claude-opus-5-5",
  "profile": "full",
  "assisted": false,
  "handoff": false,
  "prompt_sha": "4557b0885929",
  "kb_version": "3+overlay-1c6cbb2182",
  "identity": "e8a92f24a9a8"
 },
 "methodology": 24,
 "rules_date": "2026-10-20",
 "engine": {
  "runner": "omp",
  "model": "claude-opus-5-5",
  "driver": 4,
  "signed": true,
  "inbox": [
   "agentdrives.com"
  ],
  "robots": "skip"
 },
 "same_level_drives": 1,
 "drives": 2,
 "same_stop_drives": 2,
 "works_assisted": null,
 "freshness": "fresh",
 "newer_drives": null,
 "nothing_to_pay": false,
 "core_gated": false,
 "profiles": {},
 "agent_check": {
  "rung": "signup",
  "vendor": "Cloudflare Turnstile (via Auth0 bot detection)",
  "visible": true,
  "type": "network",
  "human": "",
  "how": "Let verified bots and signed agents past the check on sign-up: in Cloudflare, add a WAF custom rule that skips the bot challenge on your sign-up paths for verified bots and for signed agents (rule field cf.bot_management.signed_agent; since 1 July 2026 signed agents count as verified bots), and render Turnstile only when the request is not from a verified agent.",
  "signed": true
 },
 "agent_pass": null,
 "who_gets_in": {
  "server": {
   "state": "form"
  },
  "signed": {
   "state": "page",
   "kind": "signup",
   "at": "2026-10-23"
  },
  "browser": {
   "state": "through",
   "measured": false
  },
  "our_key": "pending",
  "robots": null,
  "tip": false
 },
 "ladder": {
  "docs": {
   "status": "headless",
   "note": "docs/llms.txt indexes the Forward docs and API reference; every docs page answers Accept: text/markdown with text/markdown and Vary: Accept. The CLI install one-liner (curl https://tinybird.co | sh) returned the HTML home page to our user agent; the PyPI package tinybird 5.0.2 installed fine."
  },
  "signup": {
   "status": "human",
   "cause": "check",
   "via": "",
   "note": "The email sign-up form (Auth0 at auth.tinybird.co) shows a visible Cloudflare Turnstile 'Verify you are human' checkbox on Sign Up. We never tick it ourselves."
  },
  "verify": {
   "status": "",
   "note": "Not reached: the sign-up never went through, and no mail came to the agent's inbox.",
   "reached": false
  },
  "credentials": {
   "status": "",
   "cause": "check",
   "note": "Not reached. Tokens come from the web app, tb login (browser or --method code, both need an account) or POST /v0/tokens with an admin token.",
   "via": "",
   "reached": false
  },
  "first_call": {
   "status": "",
   "cause": "check",
   "note": "Not reached: the REST API and the MCP server answer 401 'Missing Tinybird token' without a token.",
   "route": "account",
   "reached": false
  },
  "first_action": {
   "status": "",
   "note": "Not reached: no token.",
   "reached": false
  },
  "pay": {
   "status": "",
   "grade": "P2",
   "rails": [
    "card checkout in the app's Billing page"
   ],
   "rail_ids": [
    "card"
   ],
   "first_party": true,
   "rail_scope": "none",
   "trial_path": "free tier",
   "route": "portal",
   "checkout": {
    "reached": "no",
    "processor": "other",
    "captcha": "none",
    "three_ds": "not_seen",
    "card_form": false,
    "phone_field": "none",
    "wallets": [],
    "rail_offer": "none",
    "price": "25.00",
    "currency": "USD",
    "period": "month",
    "plan": "Developer",
    "last_button": ""
   },
   "person": "none",
   "ours": "no account",
   "note": "Free plan, no card. Developer from $25/month: docs say upgrade in Organization settings → Billing → Upgrade after adding billing details; SaaS/Enterprise through sales. No x402/MPP 402 on any host (nothing paid), no billing API or CLI. Checkout not reached: no account (Turnstile at sign-up). From the docs only.",
   "reached": false
  },
  "cancel": {
   "status": "",
   "note": "Nothing to cancel: the drive started no plan. Docs: cancel the Developer plan in Organization settings → Billing → More actions → Cancel plan (web UI).",
   "docs_grade": "",
   "reached": false
  },
  "delete": {
   "status": "",
   "note": "No account or resource was made. Docs: tb workspace delete <name> --yes deletes a workspace; no account delete documented.",
   "account": false,
   "reached": false
  }
 },
 "routes": [
  {
   "route": "local",
   "offered": "documented",
   "tried": false,
   "not_tried": "policy",
   "result": null,
   "wall": null,
   "person": null,
   "brings": null,
   "fresh": null,
   "minutes": null,
   "browser": null
  },
  {
   "route": "email_password",
   "offered": "seen",
   "tried": true,
   "not_tried": null,
   "result": "walled",
   "wall": {
    "type": "challenge",
    "owner": "product"
   },
   "person": "each",
   "brings": "inbox",
   "fresh": true,
   "minutes": 4,
   "browser": null
  },
  {
   "route": "sso_github",
   "offered": "seen",
   "tried": false,
   "not_tried": "policy",
   "result": null,
   "wall": null,
   "person": null,
   "brings": null,
   "fresh": null,
   "minutes": null,
   "browser": null
  },
  {
   "route": "sso_google",
   "offered": "seen",
   "tried": false,
   "not_tried": "policy",
   "result": null,
   "wall": null,
   "person": null,
   "brings": null,
   "fresh": null,
   "minutes": null,
   "browser": null
  },
  {
   "route": "device_login",
   "offered": "documented",
   "tried": true,
   "not_tried": null,
   "result": "not_reached",
   "wall": null,
   "person": "none",
   "brings": "nothing",
   "fresh": true,
   "minutes": 0.5,
   "browser": null
  },
  {
   "route": "sso_microsoft",
   "offered": "seen",
   "tried": false,
   "not_tried": "policy",
   "result": null,
   "wall": null,
   "person": null,
   "brings": null,
   "fresh": null,
   "minutes": null,
   "browser": null
  },
  {
   "route": "sso_enterprise",
   "offered": "documented",
   "tried": false,
   "not_tried": "assisted_only",
   "result": null,
   "wall": null,
   "person": null,
   "brings": null,
   "fresh": null,
   "minutes": null,
   "browser": null
  },
  {
   "route": "marketplace",
   "offered": "documented",
   "tried": false,
   "not_tried": "policy",
   "result": null,
   "wall": null,
   "person": null,
   "brings": null,
   "fresh": null,
   "minutes": null,
   "browser": null
  }
 ],
 "checkout": {
  "reached": "no",
  "rail_offer": "none",
  "period": "month",
  "price": "25.00",
  "currency": "USD",
  "plan": "Developer"
 },
 "docs": {
  "at": "2026-10-23",
  "read": 331,
  "listed": 1332,
  "sampled": true,
  "overall": "complete",
  "getting_started": "found",
  "auth": "found",
  "errors": "found",
  "examples": "good",
  "freshness": "fresh",
  "newest": "2026-10-19",
  "core_pages": "9 of 9",
  "capabilities": "covered"
 },
 "claims": null,
 "pay_options": {
  "checked": "2026-10-23",
  "source": "probe",
  "options": [
   {
    "id": "mpp",
    "name": "MPP",
    "kind": "agent-rail",
    "first_party": true,
    "lead": true,
    "networks": [],
    "testnet": false
   }
  ],
  "agentic": [],
  "paid": null,
  "exercised": null,
  "detected_grade": null,
  "trial": {
   "no_card": true,
   "card_required": null,
   "free_plan": true
  },
  "owner_fixes": [
   {
    "title": "Accept x402 or MPP on your API",
    "how": "Answer an unpaid call with 402 and a payment challenge, so an agent pays per call or buys credits without an account or a card."
   },
   {
    "title": "List your plans on Stripe Projects",
    "how": "Agents buy a plan with `stripe projects add`, paid with a token under a spend cap the owner sets (projects.dev)."
   }
  ]
 },
 "surfaces": {
  "api": true,
  "openapi": false,
  "cli": true,
  "sdk": true,
  "mcp": "official",
  "llms_txt": true,
  "webhooks": false,
  "sandbox": false
 },
 "surface_notes": {
  "api": "REST v0 (Data Sources, Events, Query, Pipes, Tokens, Jobs, Variables, Analyze, Organizations, Sinks); token on every call",
  "cli": "tb 5.0.2 (PyPI tinybird); login by browser or one-time code; no sign-up",
  "mcp": "official remote server, Streamable HTTP, token auth"
 },
 "can_do": [
  "Install Tinybird's four Agent Skills for coding agents with npx skills add tinybirdco/tinybird-agent-skills, no account needed",
  "Read every docs page as Markdown by asking for text/markdown"
 ],
 "cannot_do": [
  {
   "what": "Create a Tinybird account",
   "why": "A visible Cloudflare Turnstile checkbox on the sign-up form; no sign-up API or CLI"
  },
  {
   "what": "Any workspace, Data Source, query, endpoint, MCP or CLI work",
   "why": "Every route needs a Tinybird token, and tokens need an account"
  },
  {
   "what": "Pay for a plan",
   "why": "Upgrade is only in the web app's Billing page; no agent rail or billing API"
  }
 ],
 "blockers": [
  "Visible Cloudflare Turnstile 'Verify you are human' on the sign-up form (auth.tinybird.co)"
 ],
 "tips_for_agents": [
  "You need a person to create the account (the sign-up has a visible Turnstile check); after that, a workspace admin token from the person unlocks REST, tb CLI and MCP.",
  "Install the CLI from PyPI (tinybird) with Python 3.13: on Python 3.14 confluent-kafka fails to build.",
  "Docs pages return Markdown on Accept: text/markdown; docs/llms.txt is the useful index, the root llms.txt is mostly blog links.",
  "MCP: https://mcp.tinybird.co?token=<token> or Bearer header; use a resource-scoped token."
 ],
 "selfhost": null,
 "summary": "Tinybird has a full agent surface on paper (REST API, tb CLI, an official MCP server, SDKs, Agent Skills, Markdown docs), but every route needs a token from an account, and the email sign-up shows a visible Cloudflare Turnstile check. Our agent made no account, so none of the core work could be tried; only the Agent Skills install worked without one.",
 "wall": "Cloudflare Turnstile on the sign-up form",
 "plan_scope": "",
 "robots_stop": null,
 "robots": {
  "rule": "star",
  "step": null,
  "seen": "2026-10-23",
  "held": false
 },
 "terms": null,
 "plain": {
  "summary": "Tinybird is a managed ClickHouse database service with a full documented API, CLI and MCP server, but every one of those requires a login token, and getting a token requires signing up first. On its own, the agent could not create an account because the sign-up form requires solving a 'prove you're human' puzzle, so none of the actual database, query or deployment features could be tested.",
  "can_do": [
   "Read all of the product's documentation as plain text",
   "Install Tinybird's ready-made coding-assistant add-ons without needing an account"
  ],
  "cannot_do": [
   {
    "what": "Create an account",
    "why": "A human verification puzzle blocks the sign-up form"
   },
   {
    "what": "Use any database, query, or deployment feature",
    "why": "All of them require a login token, which requires an account"
   },
   {
    "what": "Pay for a paid plan",
    "why": "Upgrading only happens inside the web dashboard, which needs an account"
   }
  ]
 },
 "plan_gated": [],
 "reply": null,
 "capabilities": [
  {
   "id": "cap-01",
   "capability": "Create a database (Workspace with managed ClickHouse)",
   "weight": "core",
   "plan": "free",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": "tb login / workspace create",
    "ui": "cloud.tinybird.co signup"
   },
   "check": "Workspace appears in Tinybird Cloud with a default admin token",
   "capability_id": "cap_9a3jhdb4",
   "unmapped": null,
   "source": "https://www.tinybird.co/docs/forward/core-concepts",
   "result": "blocked",
   "via": "cli"
  },
  {
   "id": "cap-02",
   "capability": "Create a table (Data Source) with a schema",
   "weight": "core",
   "plan": "free",
   "surfaces": {
    "api": "POST /v0/datasources",
    "mcp": "list_datasources (read)",
    "cli": "tb datasource create / tb deploy",
    "ui": "Workspace > Data Sources"
   },
   "check": "GET /v0/datasources shows the new Data Source with its schema",
   "capability_id": "cap_ec6ajdnd",
   "unmapped": null,
   "source": "https://www.tinybird.co/docs/forward/core-concepts; https://www.tinybird.co/docs/api-reference/datasource-api",
   "result": "blocked",
   "via": "api"
  },
  {
   "id": "cap-03",
   "capability": "Stream events into a Data Source via the Events API",
   "weight": "core",
   "plan": "free",
   "surfaces": {
    "api": "POST /v0/events",
    "mcp": null,
    "cli": null,
    "ui": null
   },
   "check": "Query API against the Data Source returns the newly posted rows",
   "capability_id": "cap_m34x9t4v",
   "unmapped": null,
   "source": "https://www.tinybird.co/docs/forward/quickstarts; https://www.tinybird.co/docs/api-reference/events-api",
   "result": "blocked",
   "via": "api"
  },
  {
   "id": "cap-04",
   "capability": "Run a database query (SQL via Query API)",
   "weight": "core",
   "plan": "free",
   "surfaces": {
    "api": "GET/POST /v0/sql",
    "mcp": "execute_query",
    "cli": "tb sql",
    "ui": "Playgrounds"
   },
   "check": "Response body contains the SQL result set as JSON/CSV",
   "capability_id": "cap_hw0v5ga0",
   "unmapped": null,
   "source": "https://www.tinybird.co/docs/forward/core-concepts; https://www.tinybird.co/docs/forward/query-data/mcp",
   "result": "blocked",
   "via": "api"
  },
  {
   "id": "cap-05",
   "capability": "Query a database over a REST API (publish a Pipe as an API Endpoint)",
   "weight": "core",
   "plan": "free",
   "surfaces": {
    "api": "GET /v0/pipes/{name}.json",
    "mcp": "call_endpoint",
    "cli": "tb pipe publish",
    "ui": "Workspace > Endpoints"
   },
   "check": "Calling the published Endpoint URL with a Token returns the Pipe's query result",
   "capability_id": "cap_53z76bgf",
   "unmapped": null,
   "source": "https://www.tinybird.co/docs/forward/core-concepts; https://www.tinybird.co/docs/api-reference/pipe-api",
   "result": "blocked",
   "via": "api"
  },
  {
   "id": "cap-06",
   "capability": "Query a database over the ClickHouse wire interface",
   "weight": "core",
   "plan": "free",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "ClickHouse interface connection details in Workspace"
   },
   "check": "A SQL client connected over the ClickHouse interface returns query rows",
   "capability_id": "cap_53z76bgf",
   "unmapped": null,
   "source": "https://www.tinybird.co/docs/forward/core-concepts",
   "result": "blocked",
   "via": "browser"
  },
  {
   "id": "cap-07",
   "capability": "Create a materialized view that keeps an aggregate table updated as data arrives",
   "weight": "core",
   "plan": "free",
   "surfaces": {
    "api": "POST /v0/pipes/{name}/nodes/{node}/materialization",
    "mcp": null,
    "cli": "tb pipe publish (type materialized)",
    "ui": "Workspace > Pipes"
   },
   "check": "GET /v0/datasources shows the target Data Source populated and growing as source rows are ingested",
   "capability_id": null,
   "unmapped": "own_feature",
   "source": "https://www.tinybird.co/docs/forward/core-concepts/pipes",
   "result": "blocked",
   "via": "api"
  },
  {
   "id": "cap-08",
   "capability": "Deploy a data project to Tinybird Cloud",
   "weight": "core",
   "plan": "free",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": "tb deploy",
    "ui": "Workspace > Deployments"
   },
   "check": "GET deployment status shows the new deployment live and serving traffic",
   "capability_id": "cap_5q1cx94d",
   "unmapped": null,
   "source": "https://www.tinybird.co/docs/forward/core-concepts",
   "result": "blocked",
   "via": "cli"
  },
  {
   "id": "cap-09",
   "capability": "Branch a database (create an isolated Cloud Branch with a production partition)",
   "weight": "core",
   "plan": "free",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": "tb branch create [--last-partition]",
    "ui": "Workspace > Branches"
   },
   "check": "tb branch create returns a new branch whose resources mirror production but whose writes don't affect it",
   "capability_id": "cap_d4dyktb1",
   "unmapped": null,
   "source": "https://www.tinybird.co/docs/forward/core-concepts/branches",
   "result": "blocked",
   "via": "cli"
  },
  {
   "id": "cap-10",
   "capability": "Connect a Kafka, S3, or GCS source to ingest data",
   "weight": "secondary",
   "plan": "free",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": "tb connection create <type>",
    "ui": "Workspace > Connections"
   },
   "check": "Data Source referencing the connection shows rows arriving from the external source",
   "capability_id": "cap_yr6whrah",
   "unmapped": null,
   "source": "https://www.tinybird.co/docs/forward/core-concepts/connections",
   "result": "blocked",
   "via": "cli"
  },
  {
   "id": "cap-11",
   "capability": "Upload a local file to create or populate a Data Source",
   "weight": "secondary",
   "plan": "free",
   "surfaces": {
    "api": "POST /v0/datasources (mode=append/replace)",
    "mcp": null,
    "cli": "tb datasource append",
    "ui": "Workspace > Data Sources > Import"
   },
   "check": "GET /v0/datasources shows row count increased after upload",
   "capability_id": "cap_a8damn1w",
   "unmapped": "access_step",
   "source": "https://www.tinybird.co/docs/forward/core-concepts",
   "result": "blocked",
   "via": "api"
  },
  {
   "id": "cap-12",
   "capability": "Send query results to cloud storage on a schedule (Sink)",
   "weight": "secondary",
   "plan": "paid",
   "surfaces": {
    "api": "POST /v0/pipes/{name}/sink",
    "mcp": null,
    "cli": "tb pipe publish (type sink)",
    "ui": "Workspace > Pipes"
   },
   "check": "The target bucket shows a new exported file after the Sink runs",
   "capability_id": "cap_vg87a3nt",
   "unmapped": null,
   "source": "https://www.tinybird.co/docs/forward/core-concepts; https://www.tinybird.co/docs/api-reference/sink-pipes-api",
   "result": "blocked",
   "via": "api"
  },
  {
   "id": "cap-13",
   "capability": "Create and use an API Token scoped to specific resources",
   "weight": "secondary",
   "plan": "free",
   "surfaces": {
    "api": "POST /v0/tokens",
    "mcp": null,
    "cli": "tb token create",
    "ui": "Workspace > Tokens"
   },
   "check": "GET /v0/tokens lists the Token with the configured scopes, and requests using it only reach the permitted resources",
   "capability_id": "cap_wbg916v9",
   "unmapped": "access_step",
   "source": "https://www.tinybird.co/docs/forward/core-concepts",
   "result": "blocked",
   "via": "api"
  },
  {
   "id": "cap-14",
   "capability": "Issue a short-lived JWT scoped to an Endpoint for a specific user/tenant",
   "weight": "secondary",
   "plan": "free",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": null
   },
   "check": "Calling the Endpoint with the JWT returns only the row-filtered data the JWT was scoped to",
   "capability_id": "cap_49bc6r5r",
   "unmapped": null,
   "source": "https://www.tinybird.co/docs/forward/core-concepts",
   "result": "blocked",
   "via": "browser"
  },
  {
   "id": "cap-15",
   "capability": "Convert a natural-language question into SQL",
   "weight": "secondary",
   "plan": "free",
   "surfaces": {
    "api": null,
    "mcp": "text_to_sql",
    "cli": null,
    "ui": "Explorations"
   },
   "check": "text_to_sql returns a SQL query string for the given natural-language question",
   "capability_id": null,
   "unmapped": "own_feature",
   "source": "https://www.tinybird.co/docs/forward/query-data/mcp",
   "result": "blocked",
   "via": "cli"
  },
  {
   "id": "cap-16",
   "capability": "List tracked Data Sources and their schema",
   "weight": "secondary",
   "plan": "free",
   "surfaces": {
    "api": "GET /v0/datasources",
    "mcp": "list_datasources",
    "cli": "tb datasource ls",
    "ui": "Workspace > Data Sources"
   },
   "check": "Response lists every Data Source in the Workspace with column types",
   "capability_id": "cap_xqrrtrx2",
   "unmapped": null,
   "source": "https://www.tinybird.co/docs/forward/query-data/mcp",
   "result": "blocked",
   "via": "api"
  },
  {
   "id": "cap-17",
   "capability": "Read service Data Sources for usage, performance, and query logs",
   "weight": "secondary",
   "plan": "free",
   "surfaces": {
    "api": "GET /v0/sql?q=SELECT ... FROM tinybird.*",
    "mcp": "list_service_datasources",
    "cli": null,
    "ui": "Workspace > Monitoring"
   },
   "check": "Querying tinybird.pipe_stats_rt returns recent request rows including MCP-originated ones (from=mcp)",
   "capability_id": "cap_dacsttk8",
   "unmapped": null,
   "source": "https://www.tinybird.co/docs/forward/query-data/mcp; https://www.tinybird.co/docs/forward/core-concepts",
   "result": "blocked",
   "via": "api"
  },
  {
   "id": "cap-18",
   "capability": "Get job status for ingestion, sink, or copy operations",
   "weight": "secondary",
   "plan": "free",
   "surfaces": {
    "api": "GET /v0/jobs/{job_id}",
    "mcp": null,
    "cli": null,
    "ui": "Workspace > Jobs"
   },
   "check": "GET /v0/jobs/{job_id} returns the job status field transitioning to done",
   "capability_id": "cap_tjrnstx4",
   "unmapped": null,
   "source": "https://www.tinybird.co/docs/api-reference",
   "result": "blocked",
   "via": "api"
  },
  {
   "id": "cap-19",
   "capability": "Analyze an uploaded file to auto-generate a Data Source schema",
   "weight": "secondary",
   "plan": "free",
   "surfaces": {
    "api": "POST /v0/analyze",
    "mcp": null,
    "cli": null,
    "ui": "Workspace > Data Sources > Import"
   },
   "check": "Response returns an inferred schema (column names and types) from the submitted NDJSON/CSV/Parquet sample",
   "capability_id": null,
   "unmapped": "own_feature",
   "source": "https://www.tinybird.co/docs/api-reference",
   "result": "blocked",
   "via": "api"
  },
  {
   "id": "cap-20",
   "capability": "Set environment variables for use in Pipes",
   "weight": "secondary",
   "plan": "free",
   "surfaces": {
    "api": "POST /v0/variables",
    "mcp": null,
    "cli": null,
    "ui": "Workspace > Settings"
   },
   "check": "GET /v0/variables lists the created variable and referencing Pipes resolve it at run time",
   "capability_id": "cap_92xmegfv",
   "unmapped": null,
   "source": "https://www.tinybird.co/docs/api-reference",
   "result": "blocked",
   "via": "api"
  },
  {
   "id": "cap-21",
   "capability": "Store connector/API credentials as secrets",
   "weight": "secondary",
   "plan": "free",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": "tb_secret in datafiles",
    "ui": "Workspace > Settings"
   },
   "check": "Deployed resource using tb_secret resolves the value at runtime without it appearing in source control",
   "capability_id": "cap_92xmegfv",
   "unmapped": null,
   "source": "https://www.tinybird.co/docs/forward/core-concepts/connections",
   "result": "blocked",
   "via": "cli"
  },
  {
   "id": "cap-22",
   "capability": "Install Tinybird Agent Skills for coding agents",
   "weight": "secondary",
   "plan": "free",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": "npx skills add tinybirdco/tinybird-agent-skills",
    "ui": null
   },
   "check": "Agent Skills directory with SKILL.md files appears in the coding agent's environment after install",
   "capability_id": null,
   "unmapped": "access_step",
   "source": "https://www.tinybird.co/docs/forward/quickstarts",
   "result": "done",
   "via": "cli"
  },
  {
   "id": "cap-23",
   "capability": "Run CI/CD deployments from Git",
   "weight": "secondary",
   "plan": "free",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": "tb deploy (in CI)",
    "ui": null
   },
   "check": "A CI pipeline run shows tb deploy completing and the Workspace deployment list updated",
   "capability_id": "cap_r6y9w5sx",
   "unmapped": null,
   "source": "https://www.tinybird.co/docs/forward/quickstarts",
   "result": "blocked",
   "via": "cli"
  },
  {
   "id": "cap-24",
   "capability": "Run Tinybird Local for offline development",
   "weight": "secondary",
   "plan": "free",
   "surfaces": {
    "api": "http://localhost:7181/v0/",
    "mcp": null,
    "cli": "tb dev",
    "ui": null
   },
   "check": "A request to the local API host returns a response from the locally running Tinybird container",
   "capability_id": null,
   "unmapped": "own_feature",
   "source": "https://www.tinybird.co/docs/api-reference",
   "result": "not_tried",
   "via": null
  },
  {
   "id": "cap-25",
   "capability": "Write a Playground to interactively test SQL",
   "weight": "secondary",
   "plan": "free",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "Workspace > Playgrounds"
   },
   "check": "Playground shows query results rendered inline after running SQL",
   "capability_id": "cap_hw0v5ga0",
   "unmapped": null,
   "source": "https://www.tinybird.co/docs/forward/core-concepts",
   "result": "blocked",
   "via": "browser"
  },
  {
   "id": "cap-26",
   "capability": "Explore data with AI-assisted analysis",
   "weight": "secondary",
   "plan": "free",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "Workspace > Explorations"
   },
   "check": "Exploration panel returns an AI-generated summary or chart from the selected Data Source",
   "capability_id": "cap_86eg48k6",
   "unmapped": null,
   "source": "https://www.tinybird.co/docs/forward/core-concepts",
   "result": "blocked",
   "via": "browser"
  },
  {
   "id": "cap-27",
   "capability": "Build a Time Series visualization of a metric",
   "weight": "secondary",
   "plan": "free",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "Workspace > Time Series"
   },
   "check": "Time Series view renders a chart for the selected metric over a date range",
   "capability_id": "cap_911r6a88",
   "unmapped": null,
   "source": "https://www.tinybird.co/docs/forward/core-concepts",
   "result": "blocked",
   "via": "browser"
  },
  {
   "id": "cap-28",
   "capability": "Copy data from one Data Source to another on demand or on a schedule (Copy Pipe)",
   "weight": "secondary",
   "plan": "free",
   "surfaces": {
    "api": "POST /v0/pipes/{name}/copy",
    "mcp": null,
    "cli": "tb pipe publish (type copy)",
    "ui": "Workspace > Pipes"
   },
   "check": "Target Data Source row count increases after the Copy job runs, matching the source query result",
   "capability_id": null,
   "unmapped": "own_feature",
   "source": "https://www.tinybird.co/docs/forward/core-concepts/pipes; https://www.tinybird.co/docs/api-reference/pipe-api",
   "result": "blocked",
   "via": "api"
  },
  {
   "id": "cap-29",
   "capability": "Query organization-wide usage and members",
   "weight": "peripheral",
   "plan": "paid",
   "surfaces": {
    "api": "GET /v0/organizations/{organization_id}/members",
    "mcp": null,
    "cli": null,
    "ui": "Organization settings"
   },
   "check": "GET response lists organization members with roles",
   "capability_id": null,
   "unmapped": "own_feature",
   "source": "https://www.tinybird.co/docs/api-reference",
   "result": "blocked",
   "via": "api"
  },
  {
   "id": "cap-30",
   "capability": "Invite a member to a Workspace or Organization",
   "weight": "peripheral",
   "plan": "free",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "Workspace > Members"
   },
   "check": "Member list shows the invited user with pending or active status",
   "capability_id": "cap_3w8sjh12",
   "unmapped": null,
   "source": "https://www.tinybird.co/docs/forward/core-concepts",
   "result": "blocked",
   "via": "browser"
  },
  {
   "id": "cap-31",
   "capability": "Change the subscription plan (Free/Developer/SaaS/Enterprise)",
   "weight": "peripheral",
   "plan": "free",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "/pricing, cloud.tinybird.co billing"
   },
   "check": "Workspace billing page shows the new plan active",
   "capability_id": "cap_0fp1r7vd",
   "unmapped": null,
   "source": "https://www.tinybird.co/pricing",
   "result": "blocked",
   "via": "browser"
  }
 ],
 "stale": false,
 "unreachable_since": null,
 "not_driven_since": null,
 "icon": "/logos/tinybird.png",
 "agent_kinds": {
  "browser": {
   "who": "An assistant in a browser",
   "passed": [],
   "stop": "signup",
   "why": "Cloudflare's bot check turns it away",
   "tone": "wall",
   "text": "Signing up needs a person: Cloudflare's bot check turns it away."
  },
  "direct": {
   "who": "An agent talking to it directly",
   "passed": [],
   "stop": "signup",
   "why": "Cloudflare's bot check turns it away",
   "tone": "wall",
   "text": "Signing up needs a person: Cloudflare's bot check turns it away."
  }
 },
 "stop_evidence": {
  "at": "signup",
  "date": "2026-10-23",
  "line": "The email sign-up form (Auth0 at auth.tinybird.co) shows a visible Cloudflare Turnstile 'Verify you are human' checkbox on Sign Up. We never tick it ourselves."
 },
 "stop_shot": null,
 "attempts_count": 73,
 "detail": {
  "public": false,
  "in": [
   "report",
   "api"
  ],
  "since": "2026-10-17"
 },
 "what_it_does": "Tinybird is a managed ClickHouse database service with a full documented API, CLI and MCP server.",
 "rules_version": "rules-2026-10-20-24",
 "rules_url": "https://agentdrives.com/method/changelog#rules-2026-10-20-24",
 "category_median": null,
 "verdict": null,
 "changes": {
  "source": "store",
  "drives": [
   {
    "run": "20261023T050150Z",
    "date": "2026-10-23",
    "level": 1,
    "stop": "signup",
    "entry": "closed",
    "driver": 4,
    "listed": true
   },
   {
    "run": "20261023T070318Z",
    "date": "2026-10-23",
    "level": 1,
    "stop": "signup",
    "entry": "closed",
    "driver": 4,
    "listed": true
   }
  ],
  "events": [],
  "feed": "https://agentdrives.com/api/tools/tinybird/changes.json"
 },
 "agreement": {
  "drives": 2,
  "agree": 2
 },
 "method_release": "2026-Q4.9",
 "rank": null,
 "rank_of": 0,
 "rank_change": null,
 "rank_since": null,
 "capability_matrix": [
  {
   "id": "cap-01",
   "name": "Create a database (Workspace with managed ClickHouse)",
   "core": true,
   "result": "blocked",
   "surfaces": {
    "api": "none",
    "mcp": "none",
    "cli": "blocked",
    "ui": "untried"
   }
  },
  {
   "id": "cap-02",
   "name": "Create a table (Data Source) with a schema",
   "core": true,
   "result": "blocked",
   "surfaces": {
    "api": "blocked",
    "mcp": "untried",
    "cli": "untried",
    "ui": "untried"
   }
  },
  {
   "id": "cap-03",
   "name": "Stream events into a Data Source via the Events API",
   "core": true,
   "result": "blocked",
   "surfaces": {
    "api": "blocked",
    "mcp": "none",
    "cli": "none",
    "ui": "none"
   }
  },
  {
   "id": "cap-04",
   "name": "Run a database query (SQL via Query API)",
   "core": true,
   "result": "blocked",
   "surfaces": {
    "api": "blocked",
    "mcp": "untried",
    "cli": "untried",
    "ui": "untried"
   }
  },
  {
   "id": "cap-05",
   "name": "Query a database over a REST API (publish a Pipe as an API Endpoint)",
   "core": true,
   "result": "blocked",
   "surfaces": {
    "api": "blocked",
    "mcp": "untried",
    "cli": "untried",
    "ui": "untried"
   }
  },
  {
   "id": "cap-06",
   "name": "Query a database over the ClickHouse wire interface",
   "core": true,
   "result": "blocked",
   "surfaces": {
    "api": "none",
    "mcp": "none",
    "cli": "none",
    "ui": "blocked"
   }
  },
  {
   "id": "cap-07",
   "name": "Create a materialized view that keeps an aggregate table updated as data arrives",
   "core": true,
   "result": "blocked",
   "surfaces": {
    "api": "blocked",
    "mcp": "none",
    "cli": "untried",
    "ui": "untried"
   }
  },
  {
   "id": "cap-08",
   "name": "Deploy a data project to Tinybird Cloud",
   "core": true,
   "result": "blocked",
   "surfaces": {
    "api": "none",
    "mcp": "none",
    "cli": "blocked",
    "ui": "untried"
   }
  },
  {
   "id": "cap-09",
   "name": "Branch a database (create an isolated Cloud Branch with a production partition)",
   "core": true,
   "result": "blocked",
   "surfaces": {
    "api": "none",
    "mcp": "none",
    "cli": "blocked",
    "ui": "untried"
   }
  },
  {
   "id": "cap-10",
   "name": "Connect a Kafka, S3, or GCS source to ingest data",
   "core": false,
   "result": "blocked",
   "surfaces": {
    "api": "none",
    "mcp": "none",
    "cli": "blocked",
    "ui": "untried"
   }
  },
  {
   "id": "cap-11",
   "name": "Upload a local file to create or populate a Data Source",
   "core": false,
   "result": "blocked",
   "surfaces": {
    "api": "blocked",
    "mcp": "none",
    "cli": "untried",
    "ui": "untried"
   }
  },
  {
   "id": "cap-12",
   "name": "Send query results to cloud storage on a schedule (Sink)",
   "core": false,
   "result": "blocked",
   "surfaces": {
    "api": "blocked",
    "mcp": "none",
    "cli": "untried",
    "ui": "untried"
   }
  },
  {
   "id": "cap-13",
   "name": "Create and use an API Token scoped to specific resources",
   "core": false,
   "result": "blocked",
   "surfaces": {
    "api": "blocked",
    "mcp": "none",
    "cli": "untried",
    "ui": "untried"
   }
  },
  {
   "id": "cap-14",
   "name": "Issue a short-lived JWT scoped to an Endpoint for a specific user/tenant",
   "core": false,
   "result": "blocked",
   "surfaces": {
    "api": "none",
    "mcp": "none",
    "cli": "none",
    "ui": "blocked"
   }
  },
  {
   "id": "cap-15",
   "name": "Convert a natural-language question into SQL",
   "core": false,
   "result": "blocked",
   "surfaces": {
    "api": "none",
    "mcp": "untried",
    "cli": "blocked",
    "ui": "untried"
   }
  },
  {
   "id": "cap-16",
   "name": "List tracked Data Sources and their schema",
   "core": false,
   "result": "blocked",
   "surfaces": {
    "api": "blocked",
    "mcp": "untried",
    "cli": "untried",
    "ui": "untried"
   }
  },
  {
   "id": "cap-17",
   "name": "Read service Data Sources for usage, performance, and query logs",
   "core": false,
   "result": "blocked",
   "surfaces": {
    "api": "blocked",
    "mcp": "untried",
    "cli": "none",
    "ui": "untried"
   }
  },
  {
   "id": "cap-18",
   "name": "Get job status for ingestion, sink, or copy operations",
   "core": false,
   "result": "blocked",
   "surfaces": {
    "api": "blocked",
    "mcp": "none",
    "cli": "none",
    "ui": "untried"
   }
  },
  {
   "id": "cap-19",
   "name": "Analyze an uploaded file to auto-generate a Data Source schema",
   "core": false,
   "result": "blocked",
   "surfaces": {
    "api": "blocked",
    "mcp": "none",
    "cli": "none",
    "ui": "untried"
   }
  },
  {
   "id": "cap-20",
   "name": "Set environment variables for use in Pipes",
   "core": false,
   "result": "blocked",
   "surfaces": {
    "api": "blocked",
    "mcp": "none",
    "cli": "none",
    "ui": "untried"
   }
  },
  {
   "id": "cap-21",
   "name": "Store connector/API credentials as secrets",
   "core": false,
   "result": "blocked",
   "surfaces": {
    "api": "none",
    "mcp": "none",
    "cli": "blocked",
    "ui": "untried"
   }
  },
  {
   "id": "cap-22",
   "name": "Install Tinybird Agent Skills for coding agents",
   "core": false,
   "result": "done",
   "surfaces": {
    "api": "none",
    "mcp": "none",
    "cli": "done",
    "ui": "none"
   }
  },
  {
   "id": "cap-23",
   "name": "Run CI/CD deployments from Git",
   "core": false,
   "result": "blocked",
   "surfaces": {
    "api": "none",
    "mcp": "none",
    "cli": "blocked",
    "ui": "none"
   }
  },
  {
   "id": "cap-24",
   "name": "Run Tinybird Local for offline development",
   "core": false,
   "result": "untried",
   "surfaces": {
    "api": "untried",
    "mcp": "none",
    "cli": "untried",
    "ui": "none"
   }
  },
  {
   "id": "cap-25",
   "name": "Write a Playground to interactively test SQL",
   "core": false,
   "result": "blocked",
   "surfaces": {
    "api": "none",
    "mcp": "none",
    "cli": "none",
    "ui": "blocked"
   }
  },
  {
   "id": "cap-26",
   "name": "Explore data with AI-assisted analysis",
   "core": false,
   "result": "blocked",
   "surfaces": {
    "api": "none",
    "mcp": "none",
    "cli": "none",
    "ui": "blocked"
   }
  },
  {
   "id": "cap-27",
   "name": "Build a Time Series visualization of a metric",
   "core": false,
   "result": "blocked",
   "surfaces": {
    "api": "none",
    "mcp": "none",
    "cli": "none",
    "ui": "blocked"
   }
  },
  {
   "id": "cap-28",
   "name": "Copy data from one Data Source to another on demand or on a schedule (Copy Pipe)",
   "core": false,
   "result": "blocked",
   "surfaces": {
    "api": "blocked",
    "mcp": "none",
    "cli": "untried",
    "ui": "untried"
   }
  },
  {
   "id": "cap-29",
   "name": "Query organization-wide usage and members",
   "core": false,
   "result": "blocked",
   "surfaces": {
    "api": "blocked",
    "mcp": "none",
    "cli": "none",
    "ui": "untried"
   }
  },
  {
   "id": "cap-30",
   "name": "Invite a member to a Workspace or Organization",
   "core": false,
   "result": "blocked",
   "surfaces": {
    "api": "none",
    "mcp": "none",
    "cli": "none",
    "ui": "blocked"
   }
  },
  {
   "id": "cap-31",
   "name": "Change the subscription plan (Free/Developer/SaaS/Enterprise)",
   "core": false,
   "result": "blocked",
   "surfaces": {
    "api": "none",
    "mcp": "none",
    "cli": "none",
    "ui": "blocked"
   }
  }
 ],
 "category_place": {
  "category": "data-warehouses",
  "products": 1,
  "higher": 0,
  "same_level": 0,
  "as_of": "2026-10-23",
  "stop": "signup",
  "rivals_by": "stop",
  "rivals": []
 },
 "page": "https://agentdrives.com/tools/tinybird?via=api"
}