| name | asana |
| version | 0.2.0 |
| description | Manage Asana tasks, projects, and workspaces via MCP |
| triggers | ["asana","task management","project management","todo list","assign task","create task"] |
| metadata | {"openclaw":{"emoji":"📋","homepage":"https://github.com/TechNickAI/openclaw-config/tree/main/skills/asana","category":"productivity","apiKey":{"env":"ASANA_ACCESS_TOKEN","getFrom":"https://app.asana.com/0/my-apps"}}} |
Asana 📋
Task and project management via the Asana MCP server.
Setup
1. Get API Token
- Go to https://app.asana.com/0/my-apps
- Click "Create new token"
- Name it (e.g., "OpenClaw")
- Copy the token
2. Configure Gateway
Add to your OpenClaw config:
{
"env": {
"ASANA_ACCESS_TOKEN": "your-token-here"
}
}
3. Configure MCP Server
mcporter config add asana \
--command "npx" \
--arg "-y" \
--arg "@roychri/mcp-server-asana" \
--env "ASANA_ACCESS_TOKEN=your-token-here" \
--scope home
MCP Tools Reference
Workspaces
mcporter call asana.asana_list_workspaces
Projects
mcporter call asana.asana_search_projects workspace=<workspace_gid> name_pattern=".*"
mcporter call asana.asana_get_project project_id=<project_gid>
mcporter call asana.asana_get_project_sections project_id=<project_gid>
mcporter call asana.asana_get_project_task_counts project_id=<project_gid>
Tasks
mcporter call asana.asana_create_task \
project_id=<project_gid> \
name="Task name" \
notes="Description" \
due_on="2026-02-10" \
assignee="me"
mcporter call asana.asana_get_task task_id=<task_gid>
mcporter call asana.asana_update_task \
task_id=<task_gid> \
name="New name" \
completed=true
mcporter call asana.asana_create_subtask \
parent_task_id=<task_gid> \
name="Subtask name"
mcporter call asana.asana_get_multiple_tasks_by_gid task_ids='["gid1","gid2"]'
Comments/Stories
mcporter call asana.asana_create_task_story \
task_id=<task_gid> \
text="Progress update: completed phase 1"
mcporter call asana.asana_get_task_stories task_id=<task_gid>
Dependencies
mcporter call asana.asana_add_task_dependencies \
task_id=<task_gid> \
dependencies='["dep_gid1","dep_gid2"]'
mcporter call asana.asana_add_task_dependents \
task_id=<task_gid> \
dependents='["dep_gid1"]'
Tags
mcporter call asana.asana_get_tags_for_workspace workspace_gid=<workspace_gid>
mcporter call asana.asana_get_tasks_for_tag tag_gid=<tag_gid>
Direct API (for operations MCP doesn't support)
Create Section
curl -X POST "https://app.asana.com/api/1.0/projects/<project_gid>/sections" \
-H "Authorization: Bearer $ASANA_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{"data": {"name": "Section Name"}}'
Move Task to Section
curl -X POST "https://app.asana.com/api/1.0/sections/<section_gid>/addTask" \
-H "Authorization: Bearer $ASANA_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{"data": {"task": "<task_gid>"}}'
Add Tag to Task
curl -X POST "https://app.asana.com/api/1.0/tasks/<task_gid>/addTag" \
-H "Authorization: Bearer $ASANA_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{"data": {"tag": "<tag_gid>"}}'
Remove Tag from Task
curl -X POST "https://app.asana.com/api/1.0/tasks/<task_gid>/removeTag" \
-H "Authorization: Bearer $ASANA_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{"data": {"tag": "<tag_gid>"}}'
Search Tasks (requires paid plan)
mcporter call asana.asana_search_tasks \
workspace=<workspace_gid> \
text="search term" \
completed=false
Local Configuration
Store your specific workspace/project IDs in TOOLS.md:
## Asana
### Workspace & Project
- **Workspace:** Your Workspace (`<workspace_gid>`)
- **Project:** Your Project (`<project_gid>`)
### Sections
| Section | GID |
| ----------- | --------------- |
| TODO | `<section_gid>` |
| IN PROGRESS | `<section_gid>` |
| DONE | `<section_gid>` |
### Tags
| Tag | GID |
| ------- | ----------- |
| urgent | `<tag_gid>` |
| blocked | `<tag_gid>` |
Workflow Integration
This skill is designed to work with the task-steward workflow. See
workflows/task-steward/AGENT.md for:
- Task classification (Q&A vs delegated task)
- Work execution with incremental comments
- Quality verification before delivery
- Periodic task review and nudging