> ## Documentation Index
> Fetch the complete documentation index at: https://docs.cloudthinker.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Asana

> Connect Asana to review project health, investigate workload, and manage tasks after explicit approval

Connect Asana to let [Anna](/guide/agents/anna) review projects, workloads, due dates, and delivery status. Anna can also create, update, or delete one task after you approve the action.

Asana uses **OAuth** through its official hosted MCP server and an OAuth app that your workspace administrator creates. The selected workspace and authorizing user define what CloudThinker can reach.

## Prerequisites

* An **Asana account** with access to the workspace, teams, projects, and tasks you want CloudThinker to use.
* Permission to create an OAuth app in the [Asana developer console](https://app.asana.com/0/my-apps), or its client ID and client secret from an administrator.
* A CloudThinker workspace where Asana is not already connected.

<Info>
  Asana does not support dynamic client registration for its MCP server. Each CloudThinker workspace supplies its own OAuth app credentials.
</Info>

## Setup

<Steps>
  <Step title="Copy the redirect URL">
    In CloudThinker, navigate to **Connections → Asana**, then click **Connect**. Copy the redirect URL shown in step 1 and keep the dialog open.
  </Step>

  <Step title="Create and configure the Asana app">
    In step 2, click **Open Asana developer console**. Select **Create new app**, enter a name, choose **MCP app**, and create the app.

    Open **OAuth** in the Asana app, add the copied redirect URL, and save it. Then open **Manage distribution** and allow the workspaces that may authorize the app.

    Return to CloudThinker and click **Mark as Configured**.
  </Step>

  <Step title="Enter the app credentials">
    In step 3, copy the app's **Client ID** and **Client secret** from Asana into CloudThinker, then click **Connect**.

    Sign in to Asana, select the workspace CloudThinker should use, and approve access. CloudThinker shows a **Connected** status.
  </Step>
</Steps>

## Connection details

| Field                  | Description                                                                                                                                                                                 |
| ---------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Client ID**          | Identifies the Asana MCP app created for your CloudThinker workspace                                                                                                                        |
| **Client secret**      | Authenticates that app during the server-side token exchange; CloudThinker keeps it encrypted during OAuth, stores it with the encrypted connection, and never displays it after connection |
| **OAuth tokens**       | Issued by Asana and stored automatically                                                                                                                                                    |
| **Selected workspace** | The Asana workspace whose visible teams, projects, people, and tasks the connection can reach                                                                                               |

## Required permissions

Asana MCP access is user-based inside the selected workspace. Actions appear as the authorizing user, and CloudThinker can only reach projects and tasks that user can access.

* **Read operations** cover people, teams, projects, tasks, workload, due dates, and project status.
* **Write operations** cover task creation, task updates, and task deletion. Each operation requires explicit [approval](/guide/approval).
* **Excluded operations** include creating projects, adding comments, and posting project status updates.

<Tip>
  Authorize with an Asana user whose access matches the projects CloudThinker needs in the selected workspace.
</Tip>

## Agent capabilities

| Capability              | Description                                                                            |
| ----------------------- | -------------------------------------------------------------------------------------- |
| **Workspace discovery** | Identify the connected user, visible teams, projects, and assigned tasks               |
| **Project health**      | Review open work, ownership gaps, due dates, and delivery pressure for one project     |
| **Workload review**     | Find overdue, upcoming, and undated tasks assigned to the connected user               |
| **Task investigation**  | Inspect one current task and its project, assignee, dates, notes, and completion state |
| **Status review**       | Compare Asana status across visible projects that match a name or keyword              |
| **Task management**     | Create, rename, reassign, reschedule, complete, or delete one task after approval      |

<Warning>
  Deleting an Asana task through the MCP tool is permanent and cannot be undone. It also deletes subtasks unless a subtask belongs to another project. CloudThinker shows the task record and asks for approval first.
</Warning>

### Verify the connection

```text theme={null}
@anna #report discover my Asana workspace and summarize visible teams, projects, assigned tasks, and safe next actions
```

### Example prompts

```text theme={null}
@anna #report review the Generative model launch project and flag overdue or unassigned work
@anna #recommend review my Asana workload and rank the tasks that need attention this week
@anna create a task named Prepare launch checklist in the Generative model launch project
```

## Troubleshooting

<Accordion title="CloudThinker rejects the app credentials">
  Copy the client ID and client secret again from the same Asana app. Confirm that neither value contains spaces added during copying, then retry.
</Accordion>

<Accordion title="Asana reports a redirect URL mismatch">
  Open the Asana connection dialog again. Copy the complete redirect URL into the app's **Redirect URLs** setting and save the app. Return to CloudThinker, click **Mark as Configured**, then retry.
</Accordion>

<Accordion title="Asana says the app is unavailable">
  Open **Manage distribution** for the Asana app. Allow all workspaces or select the intended workspace. A specific-workspace policy with no selected workspace blocks authorization.
</Accordion>

<Accordion title="Expected projects or tasks are missing">
  The authorizing user may lack access, or another workspace may have been selected during OAuth. Confirm the user can open the resource in Asana, or reconnect and select the correct workspace.
</Accordion>

<Accordion title="A task cannot be found">
  The task may be deleted, unavailable to the authorizing user, or from another workspace. Ask Anna to discover the current workspace and resolve the project or task again.
</Accordion>

<Accordion title="A task change did not run">
  Task creation, updates, and deletion require approval. Approve the exact action in CloudThinker, then retry with a task and project from the current connection.
</Accordion>

<Accordion title="Asana reports a rate limit or temporary error">
  For a rate limit, wait for the time Asana requests before retrying. For another temporary error, retry the same request once and keep the error visible if it repeats.
</Accordion>

## Security

* **Least privilege** — grant only the permissions the agents need for your use case; start read-only and widen later.
* **Read-only by default** — use read-only credentials unless you want agents to make changes through this connection.
* **Rotate credentials** — rotate keys and tokens on your normal schedule; CloudThinker picks up the new value when you update the connection.
* **Revoke on offboarding** — remove the credential at the provider when you delete a connection or a teammate leaves.

- **OAuth app credentials** — keep the client secret out of source control. CloudThinker encrypts it during OAuth and in the saved connection environment.
- **Workspace scope** — limit app distribution and user access to the Asana workspaces and projects CloudThinker needs.

## Related

<CardGroup cols={2}>
  <Card title="Connections" icon="plug" href="/guide/connections/overview">
    Browse every service CloudThinker agents can use.
  </Card>

  <Card title="Approval" icon="shield-check" href="/guide/approval">
    See how CloudThinker asks before an agent changes connected services.
  </Card>
</CardGroup>
