{
 "slug": "asana",
 "name": "Asana",
 "url": "https://asana.com",
 "domain": "asana.com",
 "category": "project-management",
 "category_name": "Project management",
 "tested_at": "2026-10-06",
 "run": "20261006T055620Z",
 "draft": false,
 "reviewed": true,
 "owner_verified": null,
 "origin": "editorial",
 "history": [
  {
   "run": "20261001T191251Z",
   "date": "2026-10-01",
   "level": 1,
   "engine": {
    "runner": "omp",
    "model": null,
    "driver": null,
    "signed": true,
    "inbox": [
     "agentdrives.com"
    ],
    "robots": "start"
   },
   "drives": 2
  },
  {
   "run": "20261006T055620Z",
   "date": "2026-10-06",
   "level": 1,
   "engine": {
    "runner": "omp",
    "model": "claude-opus-5-5",
    "driver": 2,
    "signed": true,
    "inbox": [
     "agentdrives.com"
    ],
    "robots": "start"
   }
  }
 ],
 "level": 1,
 "level_name": "Needs a person",
 "level_selfhost": null,
 "entry": "closed",
 "door": {
  "passed": 0,
  "tries": 3,
  "self_start": false
 },
 "badges": [],
 "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": "card_checkout"
  },
  {
   "key": "leave",
   "label": "Leave",
   "state": "unreached",
   "text": "Leaving not reached",
   "how": "no-account"
  }
 ],
 "outcomes": [
  {
   "key": "find",
   "label": "Find",
   "state": "yes",
   "text": "Docs agents can read: llms.txt, an OpenAPI and an MCP server",
   "have": [
    "llms_txt",
    "openapi",
    "mcp"
   ]
  },
  {
   "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": "card_checkout",
   "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/5",
 "scores": {
  "coverage": null,
  "reliability": null,
  "resilience": null,
  "setup": 100,
  "surface_coverage": null,
  "docs_accuracy": null,
  "docs_completeness": null
 },
 "parts": {
  "holds_up": null,
  "docs_match": null,
  "setup": 100,
  "security": null,
  "standards": [
   {
    "standard": "OpenAPI",
    "state": "behind",
    "behind": 2,
    "value": "3.0.0"
   }
  ]
 },
 "reliability_method": null,
 "resilience": null,
 "stress": [],
 "surface_audit": null,
 "coverage_core": null,
 "after_wall": null,
 "coverage_source": "computed",
 "driver": {
  "version": 2,
  "model": "claude-opus-5-5",
  "profile": "full",
  "assisted": false,
  "handoff": null,
  "prompt_sha": "f3d0adeeb256",
  "kb_version": "2+overlay-9e43028a2c",
  "identity": null
 },
 "methodology": 15,
 "rules_date": "2026-10-15",
 "engine": {
  "runner": "omp",
  "model": "claude-opus-5-5",
  "driver": 2,
  "signed": true,
  "inbox": [
   "agentdrives.com"
  ],
  "robots": "start"
 },
 "same_level_drives": 3,
 "drives": 3,
 "works_assisted": null,
 "freshness": "fresh",
 "nothing_to_pay": false,
 "core_gated": false,
 "profiles": {},
 "agent_check": {
  "rung": "signup",
  "vendor": "Google reCAPTCHA Enterprise (invisible score, then visible checkbox)",
  "visible": true,
  "type": "network",
  "human": null,
  "how": "Check the Web Bot Auth signature on the sign-up request and skip reCAPTCHA (or lower the score threshold) for signed agents; or offer a documented sign-up API with email verification.",
  "signed": true
 },
 "agent_pass": null,
 "who_gets_in": {
  "server": {
   "state": "form"
  },
  "signed": {
   "state": "page",
   "kind": "signup",
   "at": "2026-10-12"
  },
  "browser": {
   "state": "through",
   "measured": false
  },
  "our_key": "pending",
  "robots": null,
  "tip": false
 },
 "ladder": {
  "docs": {
   "status": "headless",
   "note": "developers.asana.com/llms.txt and .md pages (Accept: text/markdown -> text/markdown, Vary: Accept); OpenAPI github.com/Asana/openapi declares openapi 3.0.0, 251 operations"
  },
  "signup": {
   "status": "human",
   "note": "Web form only (asana.com/create-account). Invisible reCAPTCHA Enterprise rejected our agent's browser: POST app.asana.com/-/signup -> {\"recaptcha_invalid\":true}, then a visible reCAPTCHA checkbox."
  },
  "verify": {
   "status": "",
   "note": "Not reached: sign-up not completed",
   "reached": false
  },
  "credentials": {
   "status": "",
   "note": "PAT only from the web developer console (app.asana.com/0/my-apps); OAuth on app.asana.com needs a signed-in user (no device flow, no DCR/CIMD). DCR on the legacy MCP AS returned a client_id, but consent still needs an Asana login.",
   "via": "",
   "reached": false
  },
  "first_call": {
   "status": "",
   "note": "GET /api/1.0/users/me -> 401 Not Authorized; no unauthenticated endpoints",
   "reached": false
  },
  "first_action": {
   "status": "",
   "note": "No credential",
   "reached": false
  },
  "pay": {
   "status": "",
   "grade": "P1",
   "rails": [
    "in-app web checkout behind sign-up (processor not seen)"
   ],
   "rail_ids": [
    "card"
   ],
   "first_party": false,
   "rail_scope": "none",
   "trial_path": "free tier",
   "note": "Purchase now (Starter $10.99/user/month annual) opens the same reCAPTCHA-gated sign-up modal before any checkout; no 402, x402, MPP, UCP or billing API; x402./mpp./agents. subdomains redirect to /404; not in x402 Bazaar or mpp.dev. Checkout itself not reached.",
   "reached": false
  },
  "cancel": {
   "status": "",
   "note": "No plan started. Help Center: Admin console > Billing > Plan details > Cancel plan (web UI only); not tested",
   "docs_grade": "",
   "reached": false
  },
  "delete": {
   "status": "",
   "note": "No account created. Help Center: Settings > Account > Delete my account (web/mobile UI), deleted within 30 days; no API route found",
   "account": false,
   "reached": false
  }
 },
 "routes": [],
 "checkout": null,
 "docs": null,
 "claims": null,
 "pay_options": {
  "checked": "2026-10-06",
  "source": "drive",
  "options": [
   {
    "id": "card",
    "name": "Card checkout",
    "kind": "checkout",
    "first_party": false,
    "lead": false,
    "networks": [],
    "testnet": false
   }
  ],
  "agentic": [],
  "paid": null,
  "exercised": null,
  "detected_grade": null,
  "trial": {
   "no_card": null,
   "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": true,
  "cli": false,
  "mcp": "official",
  "llms_txt": true,
  "webhooks": true,
  "sandbox": true
 },
 "surface_notes": {
  "api": "REST, 251 operations, 401 errors as JSON errors[] with help link",
  "openapi": "github.com/Asana/openapi, openapi 3.0.0 (behind 3.2.x)",
  "mcp": "official v2 Streamable HTTP, OAuth with pre-registered clients",
  "sandbox": "developer sandbox by request form, up to one week"
 },
 "can_do": [
  "Read Asana's developer docs as Markdown (llms.txt, .md URLs, Accept: text/markdown)",
  "Discover the MCP server's OAuth metadata (RFC 9728 PRM)"
 ],
 "cannot_do": [
  {
   "what": "Create an Asana account",
   "why": "Sign-up is a web form; reCAPTCHA Enterprise rejected our agent's browser and showed a visible checkbox"
  },
  {
   "what": "Get an API token or MCP access",
   "why": "PAT only from the web console; OAuth needs a signed-in user; no device flow or CIMD"
  },
  {
   "what": "Buy a paid plan",
   "why": "Purchase starts with the same reCAPTCHA-gated sign-up; no agent payment rail or billing API"
  }
 ],
 "blockers": [
  "Visible reCAPTCHA Enterprise checkbox on the sign-up form after the invisible score rejected our agent's browser"
 ],
 "tips_for_owner": [
  "Let verified agents through sign-up",
  "Offer a headless credential path",
  "Support CIMD for MCP client registration",
  "Publish an MCP server card",
  "Retire the beta MCP authorization server"
 ],
 "tips_for_agents": [
  "You need a human-created Asana account; then get a PAT at app.asana.com/0/my-apps and call https://app.asana.com/api/1.0 with Authorization: Bearer",
  "Use MCP v2 at https://mcp.asana.com/v2/mcp with a pre-registered OAuth client; the beta /sse endpoint is announced as deprecated",
  "Read docs as Markdown: append .md or send Accept: text/markdown"
 ],
 "selfhost": null,
 "summary": "Asana has a large REST API, an official OAuth MCP server and agent-readable Markdown docs, but no way for an agent to get in: the sign-up form's reCAPTCHA Enterprise rejected our agent's browser and showed a visible checkbox. Credentials need the web developer console or a human OAuth consent, so no capability could be driven.",
 "wall": "reCAPTCHA checkbox on the sign-up form",
 "plan_scope": "",
 "robots_stop": null,
 "robots": null,
 "plain": {
  "summary": "Asana is a work-management tool with tasks, projects, goals and portfolios. An agent working on its own could only read the public developer docs and look at the sign-up page's security checks; it could not create an account because a visible \"I'm not a robot\" check appeared to click it. With no account, nothing in the product itself could be tried.",
  "can_do": [
   "Read Asana's developer documentation in a machine-friendly format",
   "See how the sign-up page's security check responds to an automated browser"
  ],
  "cannot_do": [
   {
    "what": "Create an Asana account",
    "why": "The sign-up form shows a visible \"I'm not a robot\" check after rejecting the automated attempt"
   },
   {
    "what": "Get an API key or connect an AI tool to Asana",
    "why": "Keys and tool connections need a signed-in account first, and only the website offers a way to get one"
   },
   {
    "what": "Buy a paid plan or use task dependencies, goals, portfolios, or AI features",
    "why": "Buying starts with the same blocked sign-up, and several features also require a paid plan the agent never reached"
   }
  ]
 },
 "plan_gated": [
  {
   "capability": "Task dependencies / critical path",
   "plan": "Starter (Advanced for critical path)",
   "evidence": "asana.com/pricing: Starter 'Timeline and Gantt views ... task dependencies'"
  },
  {
   "capability": "Goals",
   "plan": "Advanced",
   "evidence": "asana.com/pricing: Advanced 'Goals'"
  },
  {
   "capability": "Portfolios",
   "plan": "Advanced",
   "evidence": "asana.com/pricing: Advanced 'Unlimited portfolios'"
  },
  {
   "capability": "AI Teammates",
   "plan": "Starter+",
   "evidence": "asana.com/pricing: Starter 'AI Teammates and Asana Dash Includes 5 requests per user per month'"
  },
  {
   "capability": "AI Studio",
   "plan": "Starter+",
   "evidence": "asana.com/pricing: Starter 'AI Studio Includes 50K credits per billing account per month'"
  }
 ],
 "reply": null,
 "capabilities": [
  {
   "id": "cap-01",
   "group": "Project management essentials",
   "capability": "Create and manage tasks (assignee, due date, description, subtasks)",
   "weight": "core",
   "plan": "free",
   "surfaces": {
    "api": "POST /tasks",
    "mcp": null,
    "cli": null,
    "ui": "Project task list / My Tasks"
   },
   "check": "GET /tasks/{task_gid} returns the created/updated fields",
   "source": "https://developers.asana.com/reference/rest-api-reference; https://asana.com/pricing"
  },
  {
   "id": "cap-02",
   "group": "Project management essentials",
   "capability": "Create and organize projects",
   "weight": "core",
   "plan": "free",
   "surfaces": {
    "api": "POST /projects",
    "mcp": null,
    "cli": null,
    "ui": "Home > New project"
   },
   "check": "GET /projects/{project_gid} shows the project with its name/owner",
   "source": "https://developers.asana.com/reference/rest-api-reference; https://asana.com/pricing"
  },
  {
   "id": "cap-03",
   "group": "Project management essentials",
   "capability": "View work in List, Board, Calendar, Timeline/Gantt views",
   "weight": "core",
   "plan": "free (List/Board/Calendar); paid (Timeline/Gantt, Starter+)",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "Project view switcher"
   },
   "check": "UI-only: visually confirm layout toggles between list/board/calendar/timeline",
   "source": "https://asana.com/pricing"
  },
  {
   "id": "cap-04",
   "group": "Project management essentials",
   "capability": "Set task dependencies and critical path",
   "weight": "core",
   "plan": "paid (Starter for dependencies, Advanced for critical path)",
   "surfaces": {
    "api": "POST /tasks/{task_gid}/addDependencies",
    "mcp": null,
    "cli": null,
    "ui": "Task detail pane > Dependencies"
   },
   "check": "GET /tasks/{task_gid} includes dependencies/dependents array with linked task",
   "source": "https://developers.asana.com/reference/rest-api-reference; https://asana.com/pricing"
  },
  {
   "id": "cap-05",
   "group": "Project management essentials",
   "capability": "Comment and collaborate on tasks (Stories)",
   "weight": "core",
   "plan": "free",
   "surfaces": {
    "api": "POST /tasks/{task_gid}/stories",
    "mcp": null,
    "cli": null,
    "ui": "Task detail pane comment box"
   },
   "check": "GET /tasks/{task_gid}/stories lists the new comment",
   "source": "https://developers.asana.com/reference/rest-api-reference"
  },
  {
   "id": "cap-06",
   "group": "Project management essentials",
   "capability": "Mark tasks complete / track status",
   "weight": "core",
   "plan": "free",
   "surfaces": {
    "api": "PUT /tasks/{task_gid} (completed: true)",
    "mcp": null,
    "cli": null,
    "ui": "Task checkbox"
   },
   "check": "GET /tasks/{task_gid} shows completed:true and completed_at timestamp",
   "source": "https://developers.asana.com/reference/rest-api-reference"
  },
  {
   "id": "cap-07",
   "group": "Goals & portfolios",
   "capability": "Set and track Goals (company/team/individual, weighted, progress)",
   "weight": "core",
   "plan": "paid (Advanced)",
   "surfaces": {
    "api": "POST /goals",
    "mcp": null,
    "cli": null,
    "ui": "Goals tab"
   },
   "check": "GET /goals/{goal_gid} shows current progress metric",
   "source": "https://asana.com/pricing; https://developers.asana.com/reference/rest-api-reference"
  },
  {
   "id": "cap-08",
   "group": "Goals & portfolios",
   "capability": "Group projects into Portfolios with health/status reporting",
   "weight": "core",
   "plan": "paid (Advanced)",
   "surfaces": {
    "api": "POST /portfolios",
    "mcp": null,
    "cli": null,
    "ui": "Portfolios tab"
   },
   "check": "GET /portfolios/{portfolio_gid}/items lists member projects",
   "source": "https://asana.com/pricing; https://developers.asana.com/reference/rest-api-reference"
  },
  {
   "id": "cap-09",
   "group": "AI / Agentic",
   "capability": "Delegate work to an AI Teammate (prebuilt agent persona, e.g. Project Manager, Launch Coordinator)",
   "weight": "core",
   "plan": "paid (Starter+, limited monthly requests)",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "AI Teammates panel / @mention in task"
   },
   "check": "Task/project activity log shows an AI Teammate actor performing the requested action",
   "source": "https://asana.com/product/ai/ai-teammates; https://asana.com/pricing"
  },
  {
   "id": "cap-10",
   "group": "AI / Agentic",
   "capability": "Build custom agentic workflows with AI Studio (drag-and-drop automation + AI steps)",
   "weight": "core",
   "plan": "paid (Starter+, credit-metered)",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "AI Studio builder"
   },
   "check": "AI Studio workflow run log shows executed steps and credit consumption",
   "source": "https://asana.com/pricing; https://asana.com/product/ai"
  },
  {
   "id": "cap-11",
   "group": "AI / Agentic",
   "capability": "Get a daily AI-generated digest of meetings, emails, tasks (Asana Dash)",
   "weight": "secondary",
   "plan": "paid (Starter+, included admin tasks)",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "Asana Dash interface"
   },
   "check": "UI-only: Dash shows generated summary of connected meetings/emails/tasks",
   "source": "https://asana.com/pricing"
  },
  {
   "id": "cap-12",
   "group": "Workflows & automation",
   "capability": "Automate work with Rules (trigger/action workflow builder)",
   "weight": "secondary",
   "plan": "paid (Starter, unlimited rules)",
   "surfaces": {
    "api": "GET/POST /workspaces/{workspace_gid}/rules_triggers (via API explorer, limited)",
    "mcp": null,
    "cli": null,
    "ui": "Project > Customize > Add rule"
   },
   "check": "Rule execution shows in task Stories (e.g., auto-assignment applied)",
   "source": "https://asana.com/pricing"
  },
  {
   "id": "cap-13",
   "group": "Workflows & automation",
   "capability": "Collect structured requests via Forms (with branching logic)",
   "weight": "secondary",
   "plan": "paid (Starter; branching on Advanced)",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "Project > Forms tab"
   },
   "check": "Form submission creates a new task visible in the target project",
   "source": "https://asana.com/pricing"
  },
  {
   "id": "cap-14",
   "group": "Workflows & automation",
   "capability": "Create and reuse Custom Templates for projects/tasks",
   "weight": "secondary",
   "plan": "paid (Starter)",
   "surfaces": {
    "api": "POST /projects/{project_gid}/duplicate",
    "mcp": null,
    "cli": null,
    "ui": "Project header > Save as template"
   },
   "check": "New project instantiated from template contains the template's predefined tasks/sections",
   "source": "https://asana.com/pricing; https://developers.asana.com/reference/rest-api-reference"
  },
  {
   "id": "cap-15",
   "group": "Workflows & automation",
   "capability": "Request and track Approvals and Proofing on deliverables",
   "weight": "secondary",
   "plan": "paid (Advanced)",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "Task type: Approval; Attachment > Proof"
   },
   "check": "GET /tasks/{task_gid} shows approval_status field updated (approved/rejected)",
   "source": "https://asana.com/pricing; https://developers.asana.com/reference/rest-api-reference"
  },
  {
   "id": "cap-16",
   "group": "Reporting",
   "capability": "Build custom Dashboards and Charts from project/portfolio data",
   "weight": "secondary",
   "plan": "paid (Starter; portfolio dashboards Advanced)",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "Project/Portfolio > Dashboard tab"
   },
   "check": "UI-only: dashboard chart reflects the configured metric and filter",
   "source": "https://asana.com/pricing"
  },
  {
   "id": "cap-17",
   "group": "Reporting",
   "capability": "Search tasks/projects with Advanced Search and saved searches",
   "weight": "secondary",
   "plan": "paid (Starter)",
   "surfaces": {
    "api": "GET /workspaces/{workspace_gid}/tasks/search",
    "mcp": null,
    "cli": null,
    "ui": "Top search bar > Advanced search"
   },
   "check": "GET /workspaces/{gid}/tasks/search returns tasks matching applied filters",
   "source": "https://developers.asana.com/reference/rest-api-reference; https://asana.com/pricing"
  },
  {
   "id": "cap-18",
   "group": "Reporting",
   "capability": "Export project/portfolio data (CSV, PDF, PowerPoint)",
   "weight": "secondary",
   "plan": "free (CSV/PDF); paid Advanced (PowerPoint, portfolio PDF)",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "Project menu > Export"
   },
   "check": "Downloaded file opens with task rows/fields matching the project state",
   "source": "https://asana.com/pricing"
  },
  {
   "id": "cap-19",
   "group": "Reporting",
   "capability": "Post Status Updates on projects/portfolios/goals",
   "weight": "secondary",
   "plan": "free",
   "surfaces": {
    "api": "POST /status_updates",
    "mcp": null,
    "cli": null,
    "ui": "Project header > Status update"
   },
   "check": "GET /status_updates/{status_gid} returns the posted update text and color",
   "source": "https://developers.asana.com/reference/rest-api-reference"
  },
  {
   "id": "cap-20",
   "group": "Resource management",
   "capability": "Track time against tasks (time tracking)",
   "weight": "secondary",
   "plan": "paid (Advanced)",
   "surfaces": {
    "api": "POST /tasks/{task_gid}/time_tracking_entries",
    "mcp": null,
    "cli": null,
    "ui": "Task detail pane > Time tracking"
   },
   "check": "GET /tasks/{task_gid}/time_tracking_entries lists the logged duration",
   "source": "https://developers.asana.com/reference/rest-api-reference; https://asana.com/pricing"
  },
  {
   "id": "cap-21",
   "group": "Resource management",
   "capability": "Plan team capacity and workload across projects",
   "weight": "secondary",
   "plan": "paid (Advanced; universal resource mgmt on Enterprise)",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "Portfolio > Workload tab"
   },
   "check": "UI-only: workload view shows per-person task-hour allocation changing after reassignment",
   "source": "https://asana.com/pricing"
  },
  {
   "id": "cap-22",
   "group": "Collaboration",
   "capability": "Send Messages/updates within teams and projects",
   "weight": "secondary",
   "plan": "free",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "Project/Team > Messages tab"
   },
   "check": "UI-only: message appears in the team/project message feed",
   "source": "https://asana.com/pricing"
  },
  {
   "id": "cap-23",
   "group": "Collaboration",
   "capability": "Attach files to tasks (incl. Google Drive/Dropbox etc.)",
   "weight": "secondary",
   "plan": "free (100MB/file cap)",
   "surfaces": {
    "api": "POST /tasks/{task_gid}/attachments",
    "mcp": null,
    "cli": null,
    "ui": "Task detail pane > Attachment"
   },
   "check": "GET /tasks/{task_gid}/attachments lists the uploaded file",
   "source": "https://developers.asana.com/reference/rest-api-reference; https://asana.com/pricing"
  },
  {
   "id": "cap-24",
   "group": "Collaboration",
   "capability": "Tag/label tasks with Custom Fields",
   "weight": "secondary",
   "plan": "paid (Starter)",
   "surfaces": {
    "api": "POST /custom_fields; PUT /tasks/{task_gid}/addCustomFieldSettings",
    "mcp": null,
    "cli": null,
    "ui": "Task detail pane > + Add custom field"
   },
   "check": "GET /tasks/{task_gid} includes the custom_fields value set",
   "source": "https://developers.asana.com/reference/rest-api-reference; https://asana.com/pricing"
  },
  {
   "id": "cap-25",
   "group": "Collaboration",
   "capability": "Set up recurring tasks",
   "weight": "secondary",
   "plan": "free",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "Task detail pane > Due date > Repeat"
   },
   "check": "UI-only: new task instance auto-created once prior due date passes",
   "source": "https://asana.com/pricing"
  },
  {
   "id": "cap-26",
   "group": "Collaboration",
   "capability": "Invite guests to collaborate on shared projects",
   "weight": "secondary",
   "plan": "paid (Starter, unlimited free guests)",
   "surfaces": {
    "api": "POST /workspaces/{workspace_gid}/addUser (guest invite)",
    "mcp": null,
    "cli": null,
    "ui": "Project > Share > Invite by email"
   },
   "check": "GET /projects/{project_gid}/project_memberships lists the invited guest user",
   "source": "https://developers.asana.com/reference/rest-api-reference; https://asana.com/pricing"
  },
  {
   "id": "cap-27",
   "group": "Developer platform",
   "capability": "Build and authenticate custom apps via REST API/OAuth/PAT",
   "weight": "secondary",
   "plan": "free",
   "surfaces": {
    "api": "OAuth2 /oauth_token; multiple REST endpoints",
    "mcp": null,
    "cli": null,
    "ui": "app.asana.com/0/my-apps developer console"
   },
   "check": "A valid access token successfully authorizes a call to GET /users/me",
   "source": "https://developers.asana.com/docs/overview; https://developers.asana.com/docs/authentication"
  },
  {
   "id": "cap-28",
   "group": "Developer platform",
   "capability": "Subscribe to data changes via Webhooks",
   "weight": "secondary",
   "plan": "free",
   "surfaces": {
    "api": "POST /webhooks",
    "mcp": null,
    "cli": null,
    "ui": null
   },
   "check": "GET /webhooks lists the active webhook; triggering the resource change sends an HTTP POST to the target",
   "source": "https://developers.asana.com/docs/webhooks-guide"
  },
  {
   "id": "cap-29",
   "group": "Developer platform",
   "capability": "Embed Asana app components inside the Asana UI",
   "weight": "peripheral",
   "plan": "free",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "Task/project surfaces showing an installed app's component"
   },
   "check": "UI-only: component renders inside task pane after app install",
   "source": "https://developers.asana.com/docs/overview-of-app-components"
  },
  {
   "id": "cap-30",
   "group": "Integrations",
   "capability": "Install integrations from the App Directory (Slack, Google Workspace, Microsoft 365, Jira two-way sync, etc.)",
   "weight": "peripheral",
   "plan": "free (100+ integrations); paid for Jira two-way sync (Advanced)",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "Admin console > Apps, or asana.com/apps directory"
   },
   "check": "UI-only: installed integration appears under connected apps and syncs a test record",
   "source": "https://asana.com/pricing; https://asana.com/apps?category=all-apps"
  },
  {
   "id": "cap-31",
   "group": "Admin",
   "capability": "Manage members, roles, and access via Admin Console",
   "weight": "peripheral",
   "plan": "paid (Starter+)",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "Admin console > People"
   },
   "check": "UI-only: a member's role/permission change is reflected on their profile",
   "source": "https://asana.com/pricing"
  },
  {
   "id": "cap-32",
   "group": "Admin",
   "capability": "Configure SSO/SAML and SCIM user provisioning",
   "weight": "peripheral",
   "plan": "paid (SSO on Starter; SAML/SCIM on Enterprise)",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "Admin console > Security"
   },
   "check": "UI-only: a SCIM-provisioned user appears in the member list automatically",
   "source": "https://asana.com/pricing"
  },
  {
   "id": "cap-33",
   "group": "Admin",
   "capability": "View Audit Log / export via Audit Log API for SIEM integration",
   "weight": "peripheral",
   "plan": "paid (Enterprise add-on, included Enterprise+)",
   "surfaces": {
    "api": "GET /audit_log_api/{workspace_gid}/events",
    "mcp": null,
    "cli": null,
    "ui": "Admin console > Audit log"
   },
   "check": "GET /audit_log_api/{workspace_gid}/events returns recorded admin/user action events",
   "source": "https://asana.com/pricing; https://developers.asana.com/reference/rest-api-reference"
  },
  {
   "id": "cap-34",
   "group": "Admin",
   "capability": "Apply custom branding to the workspace",
   "weight": "peripheral",
   "plan": "paid (Enterprise)",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "Admin console > Branding"
   },
   "check": "UI-only: workspace logo/colors reflect configured branding",
   "source": "https://asana.com/pricing"
  }
 ],
 "attempts": [
  {
   "t": "01:57",
   "cap": "discovery",
   "capability": "MCP discover",
   "task": "POST server/discover (2026-07-28) to https://mcp.asana.com/v2/mcp",
   "route": "mcp",
   "documented": true,
   "result": "blocked",
   "verified": true,
   "evidence": "401 WWW-Authenticate: Bearer realm=\"Asana MCP\", resource_metadata=\"https://mcp.asana.com/.well-known/oauth-protected-resource/v2\", error_description=\"Authorization header is required for MCP V2 access\"",
   "notes": "auth required before discover; PRM v2 lists authorization_servers https://app.asana.com (no registration_endpoint; S256 only; ID-JAG grant profile). Legacy beta /sse and /mcp: PRM -> mcp.asana.com AS with DCR registration_endpoint, PKCE plain+S256; docs say beta server shut down 05/11/2026 yet it still answers 401."
  },
  {
   "t": "01:57",
   "cap": "discovery",
   "capability": "Agent cards / aipref / markdown",
   "task": "probe ai-catalog, agent-card, agent.json, mcp server-card, robots Content-Usage, markdown negotiation, llms.txt",
   "route": "api",
   "documented": true,
   "result": "done",
   "verified": true,
   "evidence": "asana.com/.well-known/{ai-catalog.json,agent-card.json,agent.json,mcp/server-card.json,ucp} 404 HTML; mcp.asana.com/v2/mcp/server-card 404; robots.txt has no Content-Usage/Content-signal lines; asana.com/llms.txt 200 and developers.asana.com/llms.txt 200; developers.asana.com/docs/using-asanas-mcp-server with Accept: text/markdown -> 200 text/markdown, Vary: Accept; .md URL also 200 text/markdown"
  },
  {
   "t": "01:57",
   "cap": "discovery",
   "capability": "Pay step probes",
   "task": "x402./mpp./agents. subdomains, /.well-known/ucp, /auth.md, /SKILL.md, unauthenticated API",
   "route": "api",
   "documented": true,
   "result": "done",
   "verified": true,
   "evidence": "x402.asana.com, mpp.asana.com, agents.asana.com -> 307 to asana.com/404; /.well-known/ucp, /auth.md, /SKILL.md 404 HTML; GET app.asana.com/api/1.0/users/me -> 401 JSON Not Authorized, no 402, no payment headers"
  },
  {
   "t": "02:21",
   "cap": "docs",
   "capability": "Find docs",
   "task": "Find API docs, OpenAPI, auth docs, llms.txt",
   "route": "api",
   "documented": true,
   "result": "done",
   "verified": true,
   "evidence": "developers.asana.com/llms.txt 200 lists guides + reference .md pages; OpenAPI at github.com/Asana/openapi defs/asana_oas.yaml declares openapi: 3.0.0, 251 operationIds; PAT doc says PAT is generated in developer console app.asana.com/0/my-apps (web UI); developer sandbox is a request form with up to 1 week processing",
   "quality": {
    "docs_match": "match"
   }
  },
  {
   "t": "07:12",
   "cap": "signup",
   "capability": "Sign up",
   "task": "Create a free account with the agent's inbox",
   "route": "browser",
   "documented": true,
   "result": "blocked",
   "verified": true,
   "evidence": "No documented API/CLI sign-up; web form asana.com/create-account. Invisible reCAPTCHA Enterprise rejected our agent's browser: POST app.asana.com/-/signup -> 200 {\"recaptcha_invalid\":true}; page then rendered a visible reCAPTCHA \"I am not a robot\" checkbox (browser/shots/008.png).",
   "notes": "visible reCAPTCHA Enterprise checkbox; handing off to a human"
  },
  {
   "t": "10:00",
   "cap": "signup",
   "capability": "Sign up (human handoff)",
   "task": "Ask a human to tick the reCAPTCHA checkbox in our agent's browser",
   "route": "browser",
   "documented": true,
   "result": "blocked",
   "verified": true,
   "evidence": "",
   "notes": "Visible reCAPTCHA Enterprise checkbox after invisible score rejection. Google/Microsoft SSO buttons need accounts we do not have."
  },
  {
   "t": "10:00",
   "cap": "verify",
   "capability": "Verify email",
   "task": "Verify sign-up email",
   "route": "none",
   "documented": true,
   "result": "blocked",
   "verified": false,
   "evidence": "no sign-up submitted, so no verification mail",
   "notes": "depends on sign-up"
  },
  {
   "t": "10:00",
   "cap": "credentials",
   "capability": "Get API credentials",
   "task": "Create a PAT or OAuth token",
   "route": "api",
   "documented": true,
   "result": "blocked",
   "verified": true,
   "evidence": "PAT is created only in the web developer console app.asana.com/0/my-apps (docs/personal-access-token.md); OAuth AS app.asana.com metadata: authorization_code/refresh_token/jwt-bearer (ID-JAG profile), no device_authorization_endpoint, no registration_endpoint, no CIMD flag; all paths need a signed-in Asana user",
   "notes": "no account, so no credential"
  },
  {
   "t": "10:00",
   "cap": "credentials",
   "capability": "MCP client registration",
   "task": "Register an OAuth client via DCR on the legacy MCP AS",
   "route": "mcp",
   "documented": true,
   "result": "partial",
   "verified": true,
   "evidence": "POST https://mcp.asana.com/register -> 201 with client_id (token_endpoint_auth_method none); DELETE registration_client_uri -> 404. The v2 server PRM points to app.asana.com which has no registration_endpoint and no client_id_metadata_document_supported",
   "notes": "client registered but user consent still needs an Asana login; registered client could not be deleted (404)",
   "quality": {
    "error_legibility": "vague"
   }
  },
  {
   "t": "10:00",
   "cap": "first_call",
   "capability": "First API call",
   "task": "GET /users/me without credentials",
   "route": "api",
   "documented": true,
   "result": "blocked",
   "verified": true,
   "evidence": "GET https://app.asana.com/api/1.0/users/me -> 401 application/json {\"errors\":[{\"message\":\"Not Authorized\",\"help\":\"...https://developers.asana.com/docs/errors\"}]} (not problem+json); no public unauthenticated endpoints",
   "quality": {
    "error_legibility": "clear"
   }
  },
  {
   "t": "10:00",
   "cap": "pay",
   "capability": "Pay step",
   "task": "Find how an agent could buy Starter",
   "route": "none",
   "documented": true,
   "result": "blocked",
   "verified": true,
   "evidence": "pricing page: Personal $0 Free forever; Starter $10.99/user/month annual, Purchase now -> asana.com/pricing#buy-starter which opens a sign-up modal (JS: buy-starter ModalBody with signup-modal-recaptcha-container); no 402 on API or x402./mpp./agents. subdomains (307 to /404); no /.well-known/ucp; developers llms.txt has 0 mentions of billing/x402/402/checkout; not listed in x402 Bazaar or mpp.dev services",
   "notes": "purchase goes through the same reCAPTCHA-gated sign-up, then an in-app web checkout we could not reach"
  },
  {
   "t": "10:00",
   "cap": "cancel",
   "capability": "Cancel plan",
   "task": "Cancel plan",
   "route": "none",
   "documented": true,
   "result": "skipped",
   "verified": false,
   "evidence": "no plan started; help.asana.com/s/article/how-to-cancel-your-asana-plan (via web search): Admin console > Billing > Plan details > Cancel plan (web UI)"
  },
  {
   "t": "10:00",
   "cap": "delete",
   "capability": "Delete account",
   "task": "Delete account",
   "route": "none",
   "documented": true,
   "result": "skipped",
   "verified": false,
   "evidence": "no account created; help.asana.com/s/article/delete-your-asana-account (via web search): Settings > Account > Delete my account (web/mobile UI), deletion within 30 days; no API route found in developers llms.txt"
  },
  {
   "t": "10:00",
   "cap": "cap-01",
   "capability": "Create and manage tasks (assignee, due date, description, subtasks)",
   "task": "drive on free plan",
   "route": "api",
   "documented": true,
   "result": "blocked",
   "verified": false,
   "evidence": "API returns 401 without a token"
  },
  {
   "t": "10:00",
   "cap": "cap-02",
   "capability": "Create and organize projects",
   "task": "drive on free plan",
   "route": "api",
   "documented": true,
   "result": "blocked",
   "verified": false,
   "evidence": "API returns 401 without a token"
  },
  {
   "t": "10:00",
   "cap": "cap-03",
   "capability": "View work in List, Board, Calendar, Timeline/Gantt views",
   "task": "drive on free plan",
   "route": "api",
   "documented": true,
   "result": "blocked",
   "verified": false,
   "evidence": "API returns 401 without a token"
  },
  {
   "t": "10:00",
   "cap": "cap-05",
   "capability": "Comment and collaborate on tasks (Stories)",
   "task": "drive on free plan",
   "route": "api",
   "documented": true,
   "result": "blocked",
   "verified": false,
   "evidence": "API returns 401 without a token"
  },
  {
   "t": "10:00",
   "cap": "cap-06",
   "capability": "Mark tasks complete / track status",
   "task": "drive on free plan",
   "route": "api",
   "documented": true,
   "result": "blocked",
   "verified": false,
   "evidence": "API returns 401 without a token"
  },
  {
   "t": "10:00",
   "cap": "cap-04",
   "capability": "Set task dependencies and critical path",
   "task": "drive",
   "route": "api",
   "documented": true,
   "result": "plan_gated",
   "verified": false,
   "evidence": "asana.com/pricing lists this under a paid tier (Starter: Timeline/Gantt + dependencies, AI Teammates/AI Studio requests and credits; Advanced: Portfolios, Goals); also no account to try"
  },
  {
   "t": "10:00",
   "cap": "cap-07",
   "capability": "Set and track Goals (company/team/individual, weighted, progress)",
   "task": "drive",
   "route": "api",
   "documented": true,
   "result": "plan_gated",
   "verified": false,
   "evidence": "asana.com/pricing lists this under a paid tier (Starter: Timeline/Gantt + dependencies, AI Teammates/AI Studio requests and credits; Advanced: Portfolios, Goals); also no account to try"
  },
  {
   "t": "10:00",
   "cap": "cap-08",
   "capability": "Group projects into Portfolios with health/status reporting",
   "task": "drive",
   "route": "api",
   "documented": true,
   "result": "plan_gated",
   "verified": false,
   "evidence": "asana.com/pricing lists this under a paid tier (Starter: Timeline/Gantt + dependencies, AI Teammates/AI Studio requests and credits; Advanced: Portfolios, Goals); also no account to try"
  },
  {
   "t": "10:00",
   "cap": "cap-09",
   "capability": "Delegate work to an AI Teammate (prebuilt agent persona, e.g. Project Manager, Launch Coordinator)",
   "task": "drive",
   "route": "api",
   "documented": true,
   "result": "plan_gated",
   "verified": false,
   "evidence": "asana.com/pricing lists this under a paid tier (Starter: Timeline/Gantt + dependencies, AI Teammates/AI Studio requests and credits; Advanced: Portfolios, Goals); also no account to try"
  },
  {
   "t": "10:00",
   "cap": "cap-10",
   "capability": "Build custom agentic workflows with AI Studio (drag-and-drop automation + AI steps)",
   "task": "drive",
   "route": "api",
   "documented": true,
   "result": "plan_gated",
   "verified": false,
   "evidence": "asana.com/pricing lists this under a paid tier (Starter: Timeline/Gantt + dependencies, AI Teammates/AI Studio requests and credits; Advanced: Portfolios, Goals); also no account to try"
  }
 ],
 "stale": false,
 "icon": "/logos/asana.png",
 "monitored": false,
 "verdict": "Needs a person, L1 · Needs a person, before any work starts. Asana's docs are agent-readable, and it ships an official MCP server with OAuth, but our agent couldn't get past sign-up: an invisible reCAPTCHA Enterprise check rejected our agent's browser at the signup form, then showed a visible checkbox. No account, no verification, no key, so our agent never reached a call. Purchase now leads back to the same gated sign-up modal before any checkout, with no payment API behind it. Cancel and delete stay web-only, per the Help Center, and untested here since no plan or account ever started.",
 "page": "https://agentdrives.com/tools/asana?via=api"
}