Asana
Connect AI tools to your Asana workspace.
What it can do
- Get Attachments: List all attachments for a project, project brief, or task. Returns attachment names, IDs, and URLs (download_url, permanent_url, view_url). Use for accessing files attached to Asana
- Get Portfolio: Get detailed portfolio data by ID including name, owner, and projects. Use after finding portfolio ID via search_objects. Returns complete portfolio configuration. Essential for underst
- Get Portfolios: List portfolios in workspace owned by the current user. REQUIRES workspace parameter. Returns portfolio names and IDs for portfolios you own. Use for portfolio discovery and management
What data it sees
Do you need an account
No: the server works without sign-in
Connect AI tools to your Asana workspace. Create tasks, manage projects, and get insights through natural conversation.
How to connect
How to connect Asana to Claude
The server address to paste into Claude settings:
https://asana.run.tools
- Open Claude (claude.ai or the desktop app).
- Go to Settings → Connectors.
- Click Add custom connector.
- Paste the server address copied below into Remote MCP server URL and click Add.
- In a chat, click + → Connectors and switch the new connector on.
Custom connectors are available on Free, Pro, Max, Team and Enterprise plans (Free is limited to one). On Team and Enterprise an organization Owner adds the connector first under Organization settings → Connectors.
Authorization
After you click Add, a sign-in window for the service opens. Sign in with your own account and approve access. Claude never sees your password.
How to connect Asana to ChatGPT
The server address to paste into ChatGPT settings:
https://asana.run.tools
- Open ChatGPT in a browser (chatgpt.com). A Plus, Pro, Business, Enterprise or Edu plan is required.
- Turn on developer mode once: Settings → Apps → Advanced settings → Developer mode.
- Open Settings → Connectors and click Create.
- Fill in the form: Name (anything), Description (one line about what the service does), MCP server URL (copy it below).
- Under Authentication choose OAuth if the service requires sign-in, otherwise None. Click Create.
- In a new chat open + → Apps/Connectors and enable the connector.
OpenAI has renamed this section before (Connectors → Apps/Plugins). If the label differs, search settings for "developer mode". On Business/Enterprise workspaces an admin must allow custom connectors first.
Authorization
On first use ChatGPT opens the service's sign-in window. Sign in and approve access.
How to connect Asana to Cursor
The server address to paste into Cursor settings:
https://asana.run.tools
Fastest: click Open in Cursor below and confirm the prompt.
Manually:
- In Cursor open Settings → Cursor Settings → MCP and click Add new global MCP server.
- Paste the JSON copied below into
~/.cursor/mcp.json(per project:.cursor/mcp.jsonin the repo root). - Save the file. The server appears in the MCP list; authorize it there if asked.
Authorization
If the service needs sign-in, an authorize button appears next to the server in the MCP list.
Server tool list (10)
Raw names from tools/list. Only developers need these.
| get_attachments | List all attachments for a project, project brief, or task. Returns attachment names, IDs, and URLs (download_url, permanent_url, view_url). Use for accessing files attached to Asana objects. Supports pagination for objects with many attachments. |
| get_portfolio | Get detailed portfolio data by ID including name, owner, and projects. Use after finding portfolio ID via search_objects. Returns complete portfolio configuration. Essential for understanding portfolio context and content. |
| get_portfolios | List portfolios in workspace owned by the current user. REQUIRES workspace parameter. Returns portfolio names and IDs for portfolios you own. Use for portfolio discovery and management. Supports pagination for workspaces with many portfolios. |
| get_items_for_portfolio | List projects, goals, and other items in a portfolio. Returns item names, IDs, and types. Use for portfolio content exploration and management. Supports pagination for portfolios with many items. |
| get_project | Get detailed project data including name, description, owner, members, and current status. Also returns task counts (num_tasks, num_incomplete_tasks, num_completed_tasks) and optionally sections. A null task_counts or sections value means the data could not be retrieved and should not be interpreted as zero or empty. |
| get_projects | List projects in a workspace, optionally filtered by team. Returns project names, IDs, owner info, and task counts (num_tasks, num_incomplete_tasks, num_completed_tasks). A null task_counts value means counts could not be retrieved and should not be interpreted as zero. |
| create_project_status_update | Post a status update to a project or portfolio. Use for project health updates, milestone documentation, or blocker reporting. Returns created status with gid, parent, title, status_type, author, created_at, permalink_url. One of text or html_text must be provided. |
| create_project | Create a new project with optional sections and tasks in a single operation. Optionally pass sections, each with a sectionName and an optional list of tasks (with name, assignee, due_on, etc.), to set up the full project structure at creation time. Tasks are nested within their sections and will be assigned to the corresponding section automatically. If a team is not provided, the new project will be associated with a default team. Returns the created project ID, permalink, and results for any sections and tasks created. |
| get_status_overview | Get status overview and progress reports for initiatives/projects. Use this tool as a standalone when users ask for: status updates, status reports, project status, work overview, progress overview, initiative status, identified blockers, or any status-related queries. This tool searches projects and portfolios, extracts tasks and status updates, and returns aggregated project details, tasks, and status information. IMPORTANT: Call this tool directly with keywords - do NOT call other search tools first. This tool handles all searching and aggregation internally. |
| search_tasks | Premium accounts only. Advanced task search with full-text and complex filters. Searches task names, descriptions, and comments. Returns tasks with gid, name, assignee, due_on, completed. When the user asks about tasks assigned to them, use assignee_any="me" for best results. Use get_tasks for non-Premium workspaces. |