# Asana MCP Server (`scraper_guru/asana-mcp-server`) Actor

A Model Context Protocol (MCP) server that enables AI assistants to interact with Asana. Create, search, update tasks, manage projects, and more, directly from Claude, Cursor, or any MCP client.

- **URL**: https://apify.com/scraper\_guru/asana-mcp-server.md
- **Developed by:** [LIAICHI MUSTAPHA](https://apify.com/scraper_guru) (community)
- **Categories:** MCP servers, AI, Developer tools
- **Stats:** 1 total users, 0 monthly users, 0.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $50.00 / 1,000 get projects

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

## 🎯 Asana MCP Server

**The Model Context Protocol (MCP) server that connects your AI assistant directly to Asana — manage workspaces, projects, tasks, and columns without ever leaving your AI chat.**

[![Apify Actor](https://img.shields.io/badge/Apify-Actor-blue)](https://apify.com/scraper_guru/asana-mcp-server)
[![MCP](https://img.shields.io/badge/Protocol-MCP-green)](https://modelcontextprotocol.io/)
[![Asana API](https://img.shields.io/badge/Asana-REST%20API%20v1-DA5A47)](https://developers.asana.com/docs/)

> **About this MCP Server**: To understand how to connect to and use this MCP server, please refer to the official Model Context Protocol documentation at [mcp.apify.com](https://mcp.apify.com).

***

### ⚡ What It Does

The Asana MCP Server runs as an **Apify Actor in standby mode**, serving as a persistent MCP endpoint. It authenticates with Asana using your Personal Access Token and exposes 9 powerful tools to any MCP-compatible AI assistant.

#### 🛠️ Available Tools

| Tool | Description |
|---|---|
| `get_workspaces` | List all Asana workspaces accessible to your account |
| `get_projects` | Get all projects in a workspace |
| `get_tasks` | Get all tasks within a specific project |
| `get_task` | Full task details including description (notes) and status |
| `create_task` | Create a new task in any project with optional description and due date |
| `update_task` | Update task name, description, due date, or mark it as complete |
| `add_comment` | Post a comment against a task |
| `get_sections` | Get all columns/sections in a project to enable moving tasks |
| `move_task_section` | Move a task to a different column/section within a project |

***

### 🔗 Connection URL

```
https://mcp-servers--asana-mcp-server.apify.actor/mcp?token=YOUR_APIFY_TOKEN
```

Replace `YOUR_APIFY_TOKEN` with your [Apify API token](https://console.apify.com/account#/integrations).

***

### 🚀 Setup Guide

#### Step 1 — Get Your Asana Access Token

1. Go to your [Asana Developer Console](https://app.asana.com/0/developer-console)
2. Click **+ New token** under "Personal Access Tokens"
3. Give it a name (e.g. "MCP Server") and copy the string provided.

#### Step 2 — Enter Token in Actor Input

When running this Actor on Apify, enter your **Asana Access Token** in the Actor input form. The server authenticates using this token for the duration of the Actor run.

#### Step 3 — Connect Your AI Assistant

##### 🖱️ Cursor

Add to `~/.cursor/mcp.json`:

```json
{
  "mcpServers": {
    "asana": {
      "url": "https://mcp-servers--asana-mcp-server.apify.actor/mcp?token=YOUR_APIFY_TOKEN"
    }
  }
}
```

##### 🤖 Claude Desktop

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

```json
{
  "mcpServers": {
    "asana": {
      "url": "https://mcp-servers--asana-mcp-server.apify.actor/mcp?token=YOUR_APIFY_TOKEN"
    }
  }
}
```

***

### 💡 Example Prompts

Try these once connected to your AI assistant:

| Say this... | Tool(s) Used |
|---|---|
| *"What Asana workspaces do I have?"* | `get_workspaces` |
| *"Show me the projects in my Marketing workspace"* | `get_projects` |
| *"What tasks are currently open in the Website Redesign project?"* | `get_tasks` |
| *"Create a task 'Add hero illustration' due next Friday"* | `create_task` |
| *"Mark task \[ID] as complete"* | `update_task` |
| *"Move task \[ID] to the 'In Review' section"* | `get_sections` + `move_task_section` |

***

### 🤖 Programmatic API & Automation

#### Trigger via Apify API

You can trigger the actor programmatically and use it as an Asana integration in your own automations:

##### Node.js

```javascript
import { ApifyClient } from 'apify-client';

const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });

// Start the Asana MCP Server
const run = await client.actor('scraper_guru/asana-mcp-server').start({
    asanaAccessToken: 'YOUR_ASANA_PAT',
});

console.log(`MCP Server running at: ${run.defaultDatasetId}`);
```

##### Python

```python
from apify_client import ApifyClient

client = ApifyClient('YOUR_APIFY_TOKEN')

run = client.actor('scraper_guru/asana-mcp-server').start(
    run_input={
        'asanaAccessToken': 'YOUR_ASANA_PAT',
    }
)
```

***

### 💰 Pricing

This Actor uses the **Pay per event** pricing model. Each tool call is charged individually:

| Event | Price per call |
|---|---|
| Actor start | $0.00005 |
| `get_workspaces` | $0.05 |
| `get_projects` | $0.05 |
| `get_tasks` | $0.05 |
| `get_task` | $0.05 |
| `create_task` | $0.08 |
| `update_task` | $0.08 |
| `add_comment` | $0.05 |
| `get_sections` | $0.05 |
| `move_task_section` | $0.08 |

Plus standard [Apify platform usage costs](https://apify.com/pricing).

***

### 🌐 The Project Management MCP Suite

This server is part of the **Project Management MCP Suite** built by Scraper Guru. Equip your AI assistant with the ultimate productivity stack by combining these MCP servers:

- 📘 **[Trello MCP Server](https://apify.com/scraper_guru/trello-mcp-server)** — Manage boards, lists, and cards seamlessly.
- 🧭 **[Jira MCP Server](https://apify.com/scraper_guru/jira-mcp-server)** — Track issues, sprints, and epic progress.
- 📄 **[Confluence MCP Server](https://apify.com/scraper_guru/confluence-mcp-server)** — Search, read, and write documentation.
- 🎯 **[Asana MCP Server](https://apify.com/scraper_guru/asana-mcp-server)** — Manage cross-functional team workflows.

***

### 🛡️ Security

- API tokens are **never stored** by the actor — they are provided per-user via Actor input.
- Tokens are transmitted over HTTPS and used only for the duration of the Actor run.
- The Actor runs in an isolated container on Apify's platform.
- Your Asana data is never cached or shared.

***

**Built with ❤️ by [MuLIAICHI](https://apify.com/muliaichi)**

# Actor input Schema

## `asanaAccessToken` (type: `string`):

Your Asana Personal Access Token (PAT). Create one in your Asana Developer Console.

## Actor input object example

```json
{}
```

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {};

// Run the Actor and wait for it to finish
const run = await client.actor("scraper_guru/asana-mcp-server").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {}

# Run the Actor and wait for it to finish
run = client.actor("scraper_guru/asana-mcp-server").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{}' |
apify call scraper_guru/asana-mcp-server --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,scraper_guru/asana-mcp-server"
        }
    }
}

```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/dbx46hsarsWbCLdDm/builds/qoEYGjUnGcCzN16VK/openapi.json
