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

# Setting Up Asana OAuth App

> Complete guide to creating and configuring a Asana OAuth application

## Prerequisites

* Asana account (personal or business)
* Access to Asana Developer Portal

## Step 1: Create Asana Developer Account

1. Visit [https://asana.com/developers/](https://asana.com/developers)
2. Click **"Get started"** or **"Login"** if you already have an account
3. Sign in with your Asana account or create a new developer account

![Asana Developer Login](https://mintcdn.com/klavisai/2FN45VVIW760Qvl2/images/knowledge-base/asana_oauth_app/asana_step1_login.png?fit=max\&auto=format\&n=2FN45VVIW760Qvl2\&q=85\&s=3a744f037ae4cdedcd8846057b2c234a)

## Step 2: Create a New App

1. Once logged in, go to your settings -> **Apps**, and click **"Build new apps"**
2. Click **"Create new app"** under **"My apps"** section
3. Fill in the app details:
   * **App name**: Your application name (e.g., your brand name)
   * **Which best describes what your app will do?**: (Choose your preference)
   * **Asana API Terms**: Agree to the terms and conditions

![Asana App Creation Form](https://mintcdn.com/klavisai/2FN45VVIW760Qvl2/images/knowledge-base/asana_oauth_app/asana_step2_create_app.png?fit=max\&auto=format\&n=2FN45VVIW760Qvl2\&q=85\&s=10e697986910e05990898b98f3b440ff)

## Step 3: Configure OAuth Settings

1. After creating the app, you'll see:

* **Client ID**: Copy this value
* **Client Secret**: Copy this value (keep it secure!)

2. **Redirect URIs**: Add your callback URL:
   * `https://api.klavis.ai/oauth/asana/callback`

![OAuth Settings Configuration](https://mintcdn.com/klavisai/2FN45VVIW760Qvl2/images/knowledge-base/asana_oauth_app/asana_step3_oauth_and_redirect_url.png?fit=max\&auto=format\&n=2FN45VVIW760Qvl2\&q=85\&s=a28fa7f89407d16262231e73b225a5ef)

## Step 4: Request Scopes

> [!NOTE]
>
> Klavis Asana MCP Server uses the following OAuth scopes: `goals:read,project_templates:read,projects:read,projects:write,projects:delete,stories:read,task_templates:read,tasks:read,tasks:write,tasks:delete,teams:read,users:read,workspaces:read,workspaces.typeahead:read`

1. Scroll to **"Permission scopes"** tab from **"Oauth"** menu
2. **Scopes**: Select the scopes your application needs:

![Request Scopes](https://mintcdn.com/klavisai/2FN45VVIW760Qvl2/images/knowledge-base/asana_oauth_app/asana_step4_request_scopes.png?fit=max\&auto=format\&n=2FN45VVIW760Qvl2\&q=85\&s=77e629b24c70a02787fb08f7b84f06ce)

> [!TIP]
>
> You have successfully created an Asana OAuth application! You now have your Client ID, Client Secret, and Redirect Url ready for integration with Klavis AI.

## (Optional) Step 5: White Labeling

> [!NOTE]
>
> White labeling allows you to customize the OAuth experience with your own branding instead of Klavis AI's.

If you want to use your own Asana OAuth application with custom branding:

1. **Configure White Labeling**: Go to [https://www.klavis.ai/home/white-label](https://www.klavis.ai/home/white-label)
2. **Add Your Credentials**: Enter your Asana **Client ID** and **Client Secret** from Step 3
3. **Set Redirect URI**: Use `https://api.klavis.ai/oauth/asana/callback` or your custom callback URL
4. **Initiate OAuth**: Use your client ID when starting the OAuth flow:

   ```javascript without SDK theme={null}
   // Example: Initiating Asana OAuth with white-label
   const authUrl = `https://api.klavis.ai/oauth/asana/authorize?instance_id=${instanceId}&client_id=${yourClientId}`;
   window.location.href = authUrl;
   ```

   ```typescript TypeScript SDK theme={null}
   import { Klavis } from "@klavis/sdk";

   const klavis = new Klavis({
     apiKey: "YOUR_API_KEY"
   });

   // Example: Initiating Asana OAuth with white-label
   const oauthUrl = await klavis.mcpServer.getOAuthUrl({
     serverName: Klavis.McpServerName.Asana,
     instanceId: instanceId,
     clientId: yourClientId,
     // redirectUri: YOUR_REDIRECT_URI,
     // scope: "YOUR_SCOPES", 
   });

   window.location.href = oauthUrl;
   ```

   ```python Python SDK theme={null}
   import webbrowser
   from klavis import Klavis
   from klavis.types import McpServerName

   klavis = Klavis(api_key="YOUR_API_KEY")

   # Example: Initiating Asana OAuth with white-label
   oauth_url = klavis.mcp_server.get_oauth_url(
       server_name=McpServerName.ASANA,
       instance_id=instance_id,
       client_id=your_client_id,
       # redirect_uri="YOUR_REDIRECT_URI",
       # scope="YOUR_SCOPES"
   )

   # Open OAuth URL in user's default browser
   webbrowser.open(oauth_url)
   ```

> [!TIP]
>
> For detailed white labeling implementation and code examples, see our [OAuth & White Labeling guide](https://www.klavis.ai/docs/auth/white-label.md).

## Resources

* [Asana OAuth Documentation](https://developers.asana.com/docs/oauth)
* [Klavis OAuth & White Labeling Guide](https://www.klavis.ai/docs/auth/white-label.md)
* [Klavis White Label Dashboard](https://www.klavis.ai/home/white-label)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.