mcp-asana-minimal
v1.3.0
Published
Minimal Asana MCP server with essential task operations (11 tools)
Maintainers
Readme
mcp-asana-minimal
Minimal Asana MCP server with essential task operations (11 tools)
A lightweight Model Context Protocol (MCP) server for Asana that provides only the essential task management tools, designed to stay under Cursor's 40-tool limit.
Features
- ✅ 11 Essential Tools - Only what you need
- ✅ Personal Access Token Auth - Simple authentication
- ✅ TypeScript - Type-safe implementation
- ✅ Lightweight - Minimal dependencies
Tools
asana_create_task- Create a new task (supports section parameter)asana_update_task- Update an existing taskasana_get_task- Get task detailsasana_list_tasks- List tasks with filtersasana_list_projects- List projects in workspace(s)asana_add_comment- Add comments to tasksasana_create_section- Create a new section in a project (works for both list and board views)asana_list_sections- List all sections in a projectasana_add_task_to_section- Move an existing task to a different section/columnasana_create_subtask- Create a new subtask within an existing taskasana_list_subtasks- List all subtasks of a task
Installation
Get Asana Personal Access Token
- Go to: https://app.asana.com/0/my-apps
- Click "Create New Token" or "Personal Access Token"
- Give it a name (e.g., "Cursor IDE Integration")
- Copy the token
Set Environment Variable
export ASANA_ACCESS_TOKEN="your_token_here"Or add to your shell profile (~/.zshrc or ~/.bashrc):
echo 'export ASANA_ACCESS_TOKEN="your_token_here"' >> ~/.zshrc
source ~/.zshrcConfiguration
Add to your ~/.cursor/mcp.json:
{
"mcpServers": {
"asana-minimal": {
"command": "npx",
"args": ["-y", "mcp-asana-minimal"],
"env": {
"ASANA_ACCESS_TOKEN": "${ASANA_ACCESS_TOKEN}"
}
}
}
}Usage
After configuration, restart Cursor and use natural language commands:
- "Create a task in Asana called 'Review code'"
- "List my Asana tasks"
- "Update task ABC123 with status completed"
- "Get details for task XYZ789"
- "List all projects in my workspace"
- "Add a comment to task ABC123"
Development
Build
npm install
npm run buildRun Locally
npm startPublish to npm
npm publish --access publicTool Details
asana_create_task
Create a new task in Asana.
Parameters:
name(required) - Task namenotes(optional) - Task descriptionworkspace(optional) - Workspace GIDproject(optional) - Project GIDsection(optional) - Section GID to add task to (requires project)assignee(optional) - Assignee GIDdue_on(optional) - Due date (YYYY-MM-DD)
asana_update_task
Update an existing task.
Parameters:
task_id(required) - Task GIDname(optional) - New task namenotes(optional) - New descriptionassignee(optional) - Assignee GID (use "none" to unassign)due_on(optional) - Due date (use "none" to remove)completed(optional) - Mark as completed
asana_get_task
Get details of a specific task.
Parameters:
task_id(required) - Task GID
asana_list_tasks
List tasks with optional filters.
Parameters:
project(optional) - Filter by project GIDassignee(optional) - Filter by assignee GID (use "me" for current user)workspace(optional) - Filter by workspace GIDcompleted(optional) - Filter by completion statuslimit(optional) - Max results (default: 50, max: 100)
asana_list_projects
List projects in workspace(s).
Parameters:
workspace(optional) - Filter by workspace GID (lists all accessible projects if not provided)archived(optional) - Include archived projects (default: false)limit(optional) - Max results (default: 50, max: 100)
asana_add_comment
Add a comment (story) to an existing task.
Parameters:
task_id(required) - Task GIDtext(required) - Comment text
asana_create_section
Create a new section in an Asana project. Works for both list sections and board columns.
Parameters:
project(required) - Project GIDname(required) - Section name
asana_list_sections
List all sections (list sections or board columns) in a project.
Parameters:
project(required) - Project GID
asana_add_task_to_section
Move an existing task to a different section/column.
Parameters:
task_id(required) - The GID of the task to movesection_id(required) - The GID of the section to move the task to
asana_create_subtask
Create a new subtask within an existing task.
Parameters:
parent_task_id(required) - The GID of the parent taskname(required) - Name of the subtasknotes(optional) - Subtask description/notesassignee(optional) - User GID or "me" to assign the subtaskdue_on(optional) - Due date in YYYY-MM-DD format
asana_list_subtasks
List all subtasks of a task.
Parameters:
task_id(required) - The GID of the parent task
License
MIT
Created: 2025-12-11
