Back to the catalog

asana

Asana MCP server + Asana Admin Skill — keeps Asana up to date for CE workflows.

Open source Open in the app JSON README (API)

About

Asana MCP server + Asana Admin Skill — keeps Asana up to date for CE workflows.

Details

Kind
Plugins
Topic
Productivity
Publisher
mohan-the-octocat
Origin
gemini
Category
ferramentas
Version
1.1.0
Open pull requests
11
Last push
2026-08-12T20:49:11Z
Repository state
ativo
Language
TypeScript
Added
2026-08-30 14:13:39
Updated
2026-08-30 14:13:39
Origin id
mohan-the-octocat/asana-mcp-server

README

# Asana — Gemini CLI Extension

A Gemini CLI Extension that connects Asana to your Gmail, GChat, and other Workspace sources.
Includes a **PM Skill** that acts as an AI project manager — reading your communications and
keeping Asana up to date automatically.

---

## Extension Structure

```
asana-mcp-server/
├── gemini-extension.json          ← Extension manifest
├── GEMINI.md                      ← Always-on model context
├── src/index.ts                   ← Asana MCP server
│
├── skills/pm/
│   ├── SKILL.md                   ← PM Agent Skill
│   └── references/
│       ├── signal-taxonomy.md     ← CE signal classification guide
│       └── task-template.md       ← Asana task naming conventions
│
└── commands/
    ├── pm-sync.toml               ← /pm:sync slash command
    └── pm-brief.toml              ← /pm:brief slash command
```

---

## Asana Tools

| Tool | Description |
|---|---|
| `get_workspaces` | List all your Asana workspaces |
| `get_projects` | List all projects in a given workspace |
| `get_tasks` | List tasks in a specific project |
| `get_task_details` | Retrieve full details of a specific task |
| `create_task` | Create a new task in your workspace/project |
| `get_goals` | List goals within a workspace or team |
| `get_goal_details` | Retrieve full details of a specific goal |

---

## PM Skill

The PM Skill orchestrates Gmail, GChat, and Asana tools to act as your project manager.

### Slash Commands

| Command | Description |
|---|---|
| `/pm:sync [days]` | Scan last N days of Gmail & GChat, create Asana tasks for action items |
| `/pm:brief` | Read-only morning digest — Asana tasks + inbox highlights |

### How It Works

1. Reads Gmail and GChat via the Google Workspace MCP (must be installed separately)
2. Classifies signals using a CE-specific taxonomy (pre-sales: POCs, blockers, competitive; post-sales: adoption, renewal risk, expansion)
3. Deduplicates against existing Asana tasks
4. Creates tasks with consistent naming: `[TAG] Description — Customer`
5. Outputs a structured summary of everything it did

---

## Setup

### Prerequisites
- Node.js 18+
- An Asana Personal Access Token (Asana → My Settings → Apps → Personal Access Tokens)
- Gemini CLI installed
- Google Workspace MCP extension installed and authenticated (for the PM Skill)

### Install as Gemini CLI Extension

```bash
# Build the server
npm install
npm run build

# Link locally for development
gemini extensions link .

# OR install from GitHub
gemini extensions install https://github.com/<your-username>/asana-mcp-server
```

On first use, Gemini CLI will prompt for your `ASANA_ACCESS_TOKEN`.

### Verify
```bash
/skills list     # should show: pm
/commands list   # should show: pm:sync, pm:brief
```

---

## Testing with MCP Inspector

```bash
ASANA_ACCESS_TOKEN=<your-token> npx @modelcontextprotocol/inspector node dist/index.js
```

## Features

- **get_workspaces**: List all your Asana workspaces.
- **get_projects**: List all projects in a given workspace.
- **get_tasks**: List tasks in a specific project.
- **get_task_details**: Retrieve comprehensive details of a specific task.
- **create_task**: Create a new task in your workspace/project.
- **get_goals**: List goals within a specific workspace or team.
- **get_goal_details**: Retrieve comprehensive details of a specific goal.

## Setup

1. **Clone and Install:**
   ```bash
   git clone <repository-url>
   cd asana-mcp-server
   npm install
   npm run build
   ```

2. **Get an Asana Personal Access Token:**
   - Go to Asana -> My Settings -> Apps -> Manage Developer Apps -> Personal Access Tokens
   - Create a new token and save it.

## Configuration (Claude Desktop)

To use this with Claude Desktop, you must configure your `claude_desktop_config.json` file.

**macOS:** `~/Library/Application Support/Claude/claude_desktop_config.json`  
**Windows:** `%APPDATA%\Claude\claude_desktop_config.json`

Add the following to the `mcpServers` object, replacing `<ABSOLUTE_PATH_TO_ASANA_MCP_SERVER>` with the actual path to this repository, and `<YOUR_ASANA_PAT>` with your token:

```json
{
  "mcpServers": {
    "asana": {
      "command": "node",
      "args": ["<ABSOLUTE_PATH_TO_ASANA_MCP_SERVER>/dist/index.js"],
      "env": {
        "ASANA_ACCESS_TOKEN": "<YOUR_ASANA_PAT>"
      }
    }
  }
}
```

Restart Claude Desktop to load the new server.

## Testing with MCP Inspector

You can test the server locally using the official MCP inspector:

```bash
npx @modelcontextprotocol/inspector node dist/index.js
```

*(Ensure you pass your `ASANA_ACCESS_TOKEN` environment variable when running the inspector).*

More