skills/asana/SKILL.md
Manage Asana tasks, projects, and workspaces via MCP
npx skillsauth add technickai/openclaw-config asanaInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Task and project management via the Asana MCP server.
Add to your OpenClaw config:
{
"env": {
"ASANA_ACCESS_TOKEN": "your-token-here"
}
}
mcporter config add asana \
--command "npx" \
--arg "-y" \
--arg "@roychri/mcp-server-asana" \
--env "ASANA_ACCESS_TOKEN=your-token-here" \
--scope home
# List all workspaces
mcporter call asana.asana_list_workspaces
# Search projects by name pattern
mcporter call asana.asana_search_projects workspace=<workspace_gid> name_pattern=".*"
# Get project details
mcporter call asana.asana_get_project project_id=<project_gid>
# Get project sections
mcporter call asana.asana_get_project_sections project_id=<project_gid>
# Get project task counts
mcporter call asana.asana_get_project_task_counts project_id=<project_gid>
# Create task
mcporter call asana.asana_create_task \
project_id=<project_gid> \
name="Task name" \
notes="Description" \
due_on="2026-02-10" \
assignee="me"
# Get task details
mcporter call asana.asana_get_task task_id=<task_gid>
# Update task
mcporter call asana.asana_update_task \
task_id=<task_gid> \
name="New name" \
completed=true
# Create subtask
mcporter call asana.asana_create_subtask \
parent_task_id=<task_gid> \
name="Subtask name"
# Get multiple tasks
mcporter call asana.asana_get_multiple_tasks_by_gid task_ids='["gid1","gid2"]'
# Add comment to task
mcporter call asana.asana_create_task_story \
task_id=<task_gid> \
text="Progress update: completed phase 1"
# Get task comments/stories
mcporter call asana.asana_get_task_stories task_id=<task_gid>
# Add dependencies (tasks this task depends on)
mcporter call asana.asana_add_task_dependencies \
task_id=<task_gid> \
dependencies='["dep_gid1","dep_gid2"]'
# Add dependents (tasks that depend on this task)
mcporter call asana.asana_add_task_dependents \
task_id=<task_gid> \
dependents='["dep_gid1"]'
# Get tags in workspace
mcporter call asana.asana_get_tags_for_workspace workspace_gid=<workspace_gid>
# Get tasks with tag
mcporter call asana.asana_get_tasks_for_tag tag_gid=<tag_gid>
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"}}'
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>"}}'
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>"}}'
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>"}}'
mcporter call asana.asana_search_tasks \
workspace=<workspace_gid> \
text="search term" \
completed=false
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>` |
This skill is designed to work with the task-steward workflow. See
workflows/task-steward/AGENT.md for:
development
A pause before an artifact goes into the world. Reviews external comms, money, calendar, public posts, or send-as-operator actions through a small panel of independent lenses (empathy first) and returns a verdict of pass / edit / hold / block.
development
Route real repo work to Claude Code instead of editing by hand. Triggers on "claude code" or "cc", and on any request to edit, fix, refactor, or open a PR in a repo outside ~/.openclaw/workspace. Claude Code picks up the repo's CLAUDE.md / AGENTS.md, applies its standards, and knows the /ai-coding-config:multi-review and /ai-coding-config:address-pr-comments workflows we want bug bots checking against.
testing
Drive a task all the way to a verified done state — write DoD first, verify each item with evidence, stop only at named stop conditions.
tools
Design, build, and maintain autonomous OpenClaw workflows (stewards). Use when creating new workflow agents, improving existing ones, evaluating automation opportunities, or debugging workflow reliability. Triggers on "build a workflow", "create a steward", "automate this process", "workflow audit", "what should I automate", "create a cron job", "schedule a recurring task", "build a scheduled job".