mirror of
https://github.com/aljazceru/goose.git
synced 2025-12-18 06:34:26 +01:00
docs: Asana tutorial (#1806)
This commit is contained in:
@@ -36,7 +36,7 @@ With my tasks organized and estimated, Goose finds open time slots in my Google
|
|||||||
|
|
||||||
Within the first few minutes of the start of my week, my schedule is already mapped out, optimized for focus.
|
Within the first few minutes of the start of my week, my schedule is already mapped out, optimized for focus.
|
||||||
|
|
||||||
This has been so extremly helpful in increasing my productivity. Thanks, Goose! 🚀
|
This has been so extremely helpful in increasing my productivity. Thanks, Goose! 🚀
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -25,7 +25,6 @@ Here are the built-in extensions:
|
|||||||
2. **Computer Controller**: provides general computer control tools for webscraping, file caching, and automations.
|
2. **Computer Controller**: provides general computer control tools for webscraping, file caching, and automations.
|
||||||
3. **Memory**: teaches goose to remember your preferences as you use it
|
3. **Memory**: teaches goose to remember your preferences as you use it
|
||||||
4. **JetBrains**: provides an integration for working with JetBrains IDEs.
|
4. **JetBrains**: provides an integration for working with JetBrains IDEs.
|
||||||
5. **Google Drive**: provides an integration for working with Google Drive for file management and access.
|
|
||||||
|
|
||||||
|
|
||||||
#### Toggling Built-in Extensions
|
#### Toggling Built-in Extensions
|
||||||
@@ -274,7 +273,12 @@ You can remove installed extensions.
|
|||||||
|
|
||||||
## Starting Session with Extensions
|
## Starting Session with Extensions
|
||||||
|
|
||||||
You can start a tailored Goose session with specific extensions directly from the CLI. This will add and enable the extensions, so there's no need to do this if you already have the extensions enabled.
|
You can start a tailored Goose session with specific extensions directly from the CLI.
|
||||||
|
|
||||||
|
:::info Notes
|
||||||
|
* The extension will not be installed. It will only be enabled for the current session.
|
||||||
|
* There's no need to do this if you already have the extensions enabled.
|
||||||
|
:::
|
||||||
|
|
||||||
### Built-in Extensions
|
### Built-in Extensions
|
||||||
|
|
||||||
|
|||||||
@@ -67,7 +67,17 @@ goose configure
|
|||||||
goose session --with-extension <command>
|
goose session --with-extension <command>
|
||||||
```
|
```
|
||||||
|
|
||||||
Can also include environment variables (e.g., `'GITHUB_TOKEN={your_token} npx -y @modelcontextprotocol/server-github'`)
|
**Examples:**
|
||||||
|
|
||||||
|
```bash
|
||||||
|
goose session --with-extension "npx -y @modelcontextprotocol/server-memory"
|
||||||
|
```
|
||||||
|
|
||||||
|
With environment variable:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
goose session --with-extension "GITHUB_PERSONAL_ACCESS_TOKEN=<YOUR_TOKEN> npx -y @modelcontextprotocol/server-github"
|
||||||
|
```
|
||||||
|
|
||||||
- Start a session with the specified [built-in extension](/docs/getting-started/using-extensions#built-in-extensions) enabled (e.g. 'developer')
|
- Start a session with the specified [built-in extension](/docs/getting-started/using-extensions#built-in-extensions) enabled (e.g. 'developer')
|
||||||
|
|
||||||
@@ -81,6 +91,12 @@ goose configure
|
|||||||
goose session --with-builtin <id>
|
goose session --with-builtin <id>
|
||||||
```
|
```
|
||||||
|
|
||||||
|
**Example:**
|
||||||
|
|
||||||
|
```bash
|
||||||
|
goose session --with-builtin computercontroller
|
||||||
|
```
|
||||||
|
|
||||||
---
|
---
|
||||||
### session list [options]
|
### session list [options]
|
||||||
|
|
||||||
|
|||||||
@@ -174,12 +174,14 @@ Note that you'll need [uv](https://docs.astral.sh/uv/#installation) installed on
|
|||||||
{describe any environment setup, access controls, and what you want to accomplish.}
|
{describe any environment setup, access controls, and what you want to accomplish.}
|
||||||
|
|
||||||
### Goose Prompt
|
### Goose Prompt
|
||||||
```
|
|
||||||
{exact prompt}.
|
> _exact prompt_
|
||||||
```
|
|
||||||
|
|
||||||
### Goose Output
|
### Goose Output
|
||||||
|
|
||||||
```
|
:::note CLI
|
||||||
|
|
||||||
{exact output}
|
{exact output}
|
||||||
```
|
|
||||||
|
:::
|
||||||
289
documentation/docs/tutorials/asana-mcp.md
Normal file
289
documentation/docs/tutorials/asana-mcp.md
Normal file
@@ -0,0 +1,289 @@
|
|||||||
|
---
|
||||||
|
title: Asana Extension
|
||||||
|
description: Add Asana MCP Server as a Goose Extension
|
||||||
|
---
|
||||||
|
|
||||||
|
import Tabs from '@theme/Tabs';
|
||||||
|
import TabItem from '@theme/TabItem';
|
||||||
|
import YouTubeShortEmbed from '@site/src/components/YouTubeShortEmbed';
|
||||||
|
|
||||||
|
<!--<YouTubeShortEmbed videoUrl="https://www.youtube.com/embed/VIDEO_ID" />-->
|
||||||
|
|
||||||
|
|
||||||
|
This tutorial covers how to add the [Asana MCP Server](https://github.com/roychri/mcp-server-asana) as a Goose extension to enable task automation, project tracking, and team collaboration.
|
||||||
|
|
||||||
|
|
||||||
|
:::tip TLDR
|
||||||
|
|
||||||
|
**Command**
|
||||||
|
```sh
|
||||||
|
npx -y @roychri/mcp-server-asana
|
||||||
|
```
|
||||||
|
|
||||||
|
**Environment Variable**
|
||||||
|
```
|
||||||
|
ASANA_ACCESS_TOKEN: <YOUR_TOKEN>
|
||||||
|
```
|
||||||
|
:::
|
||||||
|
|
||||||
|
## Configuration
|
||||||
|
|
||||||
|
:::info
|
||||||
|
Note that you'll need [Node.js](https://nodejs.org/) installed on your system to run this command, as it uses `npx`.
|
||||||
|
:::
|
||||||
|
|
||||||
|
|
||||||
|
<Tabs groupId="interface">
|
||||||
|
<TabItem value="cli" label="Goose CLI" default>
|
||||||
|
1. Run the `configure` command:
|
||||||
|
```sh
|
||||||
|
goose configure
|
||||||
|
```
|
||||||
|
|
||||||
|
2. Choose to add a `Command-line Extension`
|
||||||
|
```sh
|
||||||
|
┌ goose-configure
|
||||||
|
│
|
||||||
|
◇ What would you like to configure?
|
||||||
|
│ Add Extension
|
||||||
|
│
|
||||||
|
◆ What type of extension would you like to add?
|
||||||
|
│ ○ Built-in Extension
|
||||||
|
// highlight-start
|
||||||
|
│ ● Command-line Extension (Run a local command or script)
|
||||||
|
// highlight-end
|
||||||
|
│ ○ Remote Extension
|
||||||
|
└
|
||||||
|
```
|
||||||
|
|
||||||
|
3. Give your extension a name
|
||||||
|
```sh
|
||||||
|
┌ goose-configure
|
||||||
|
│
|
||||||
|
◇ What would you like to configure?
|
||||||
|
│ Add Extension
|
||||||
|
│
|
||||||
|
◇ What type of extension would you like to add?
|
||||||
|
│ Command-line Extension
|
||||||
|
│
|
||||||
|
// highlight-start
|
||||||
|
◆ What would you like to call this extension?
|
||||||
|
│ Asana
|
||||||
|
// highlight-end
|
||||||
|
└
|
||||||
|
```
|
||||||
|
|
||||||
|
4. Enter the command
|
||||||
|
```sh
|
||||||
|
┌ goose-configure
|
||||||
|
│
|
||||||
|
◇ What would you like to configure?
|
||||||
|
│ Add Extension
|
||||||
|
│
|
||||||
|
◇ What type of extension would you like to add?
|
||||||
|
│ Command-line Extension
|
||||||
|
│
|
||||||
|
◇ What would you like to call this extension?
|
||||||
|
│ Asana
|
||||||
|
│
|
||||||
|
// highlight-start
|
||||||
|
◆ What command should be run?
|
||||||
|
│ npx -y @roychri/mcp-server-asana
|
||||||
|
// highlight-end
|
||||||
|
└
|
||||||
|
```
|
||||||
|
|
||||||
|
5. Enter the number of seconds Goose should wait for actions to complete before timing out. Default is 300s
|
||||||
|
```sh
|
||||||
|
┌ goose-configure
|
||||||
|
│
|
||||||
|
◇ What would you like to configure?
|
||||||
|
│ Add Extension
|
||||||
|
│
|
||||||
|
◇ What type of extension would you like to add?
|
||||||
|
│ Command-line Extension
|
||||||
|
│
|
||||||
|
◇ What would you like to call this extension?
|
||||||
|
│ Asana
|
||||||
|
│
|
||||||
|
◇ What command should be run?
|
||||||
|
│ npx -y @roychri/mcp-server-asana
|
||||||
|
│
|
||||||
|
// highlight-start
|
||||||
|
◆ Please set the timeout for this tool (in secs):
|
||||||
|
│ 300
|
||||||
|
// highlight-end
|
||||||
|
│
|
||||||
|
└
|
||||||
|
```
|
||||||
|
|
||||||
|
6. Obtain a [Asana Access Token](https://app.asana.com/0/my-apps) and paste it in.
|
||||||
|
:::info
|
||||||
|
See [Asana's developer docs](https://developers.asana.com/docs/personal-access-token) if you need detailed instructions on creating an access token.
|
||||||
|
:::
|
||||||
|
|
||||||
|
```sh
|
||||||
|
┌ goose-configure
|
||||||
|
│
|
||||||
|
◇ What would you like to configure?
|
||||||
|
│ Add Extension
|
||||||
|
│
|
||||||
|
◇ What type of extension would you like to add?
|
||||||
|
│ Command-line Extension
|
||||||
|
│
|
||||||
|
◇ What would you like to call this extension?
|
||||||
|
│ Asana
|
||||||
|
│
|
||||||
|
◇ What command should be run?
|
||||||
|
│ npx -y @roychri/mcp-server-asana
|
||||||
|
│
|
||||||
|
◇ Please set the timeout for this tool (in secs):
|
||||||
|
│ 300
|
||||||
|
│
|
||||||
|
// highlight-start
|
||||||
|
◆ Would you like to add environment variables?
|
||||||
|
│ Yes
|
||||||
|
│
|
||||||
|
◇ Environment variable name:
|
||||||
|
│ ASANA_ACCESS_TOKEN
|
||||||
|
│
|
||||||
|
◇ Environment variable value:
|
||||||
|
│ ▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪
|
||||||
|
│
|
||||||
|
◇ Add another environment variable?
|
||||||
|
│ No
|
||||||
|
// highlight-end
|
||||||
|
└ Added Asana extension
|
||||||
|
```
|
||||||
|
|
||||||
|
</TabItem>
|
||||||
|
<TabItem value="ui" label="Goose Desktop">
|
||||||
|
1. [Launch the installer](goose://extension?cmd=npx&arg=-y&arg=%40roychri%2Fmcp-server-asana&id=asana&name=Asana&description=enable%20task%20automation%2C%20project%20tracking%2C%20and%20team%20collaboration&env=ASANA_ACCESS_TOKEN%3DAsana%20Access%20Token)
|
||||||
|
2. Press `Yes` to confirm the installation
|
||||||
|
3. Obtain a [Asana Access Token](https://app.asana.com/0/my-apps) and paste it in
|
||||||
|
:::info
|
||||||
|
See [Asana's developer docs](https://developers.asana.com/docs/personal-access-token) if you need detailed instructions on creating an access token.
|
||||||
|
:::
|
||||||
|
4. Click `Save Configuration`
|
||||||
|
5. Scroll to the top and click `Exit` from the upper left corner
|
||||||
|
</TabItem>
|
||||||
|
</Tabs>
|
||||||
|
|
||||||
|
## Example Usage
|
||||||
|
|
||||||
|
:::info LLM
|
||||||
|
OpenAI's GPT-4o was used for this task. There's an [open bug](https://github.com/block/goose/issues/1804) for Amazon Bedrock models.
|
||||||
|
:::
|
||||||
|
|
||||||
|
### Goose Prompt
|
||||||
|
|
||||||
|
> _Goose, I have one hour. Look through uncompleted tasks assigned to me in Asana and show me ones that you estimate will take an hour or less. Order them by deadline._
|
||||||
|
|
||||||
|
|
||||||
|
### Goose Output
|
||||||
|
|
||||||
|
Note that IDs have been changed to generic ones
|
||||||
|
|
||||||
|
:::note CLI
|
||||||
|
|
||||||
|
<details>
|
||||||
|
<summary>Tool Calls</summary>
|
||||||
|
|
||||||
|
─── asana_search_tasks | abcdefgh ──────────────────────────
|
||||||
|
|
||||||
|
assignee.any: me
|
||||||
|
|
||||||
|
completed: false
|
||||||
|
|
||||||
|
workspace: 1234567890123
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
─── asana_get_task | abcdefgh ──────────────────────────
|
||||||
|
|
||||||
|
opt_fields: due_on,estimated_hours
|
||||||
|
|
||||||
|
task_id: 1100000000000001
|
||||||
|
|
||||||
|
|
||||||
|
─── asana_get_task | abcdefgh ──────────────────────────
|
||||||
|
|
||||||
|
opt_fields: due_on,estimated_hours
|
||||||
|
|
||||||
|
task_id: 1100000000000002
|
||||||
|
|
||||||
|
|
||||||
|
─── asana_get_task | abcdefgh ──────────────────────────
|
||||||
|
|
||||||
|
opt_fields: due_on,estimated_hours
|
||||||
|
|
||||||
|
task_id: 1100000000000003
|
||||||
|
|
||||||
|
|
||||||
|
─── asana_get_task | abcdefgh ──────────────────────────
|
||||||
|
|
||||||
|
opt_fields: due_on,estimated_hours
|
||||||
|
|
||||||
|
task_id: 1100000000000004
|
||||||
|
|
||||||
|
|
||||||
|
─── asana_get_task | abcdefgh ──────────────────────────
|
||||||
|
|
||||||
|
opt_fields: due_on,estimated_hours
|
||||||
|
|
||||||
|
task_id: 1100000000000005
|
||||||
|
|
||||||
|
|
||||||
|
─── asana_get_task | abcdefgh ──────────────────────────
|
||||||
|
|
||||||
|
opt_fields: due_on,estimated_hours
|
||||||
|
|
||||||
|
task_id: 1100000000000006
|
||||||
|
|
||||||
|
|
||||||
|
─── asana_get_task | abcdefgh ──────────────────────────
|
||||||
|
|
||||||
|
opt_fields: due_on,estimated_hours
|
||||||
|
|
||||||
|
task_id: 1100000000000007
|
||||||
|
|
||||||
|
|
||||||
|
─── asana_get_task | abcdefgh ──────────────────────────
|
||||||
|
|
||||||
|
opt_fields: due_on,estimated_hours
|
||||||
|
|
||||||
|
task_id: 1100000000000008
|
||||||
|
|
||||||
|
|
||||||
|
─── asana_get_task | abcdefgh ──────────────────────────
|
||||||
|
|
||||||
|
opt_fields: due_on,estimated_hours
|
||||||
|
|
||||||
|
task_id: 1100000000000009
|
||||||
|
|
||||||
|
|
||||||
|
─── asana_get_task | abcdefgh ──────────────────────────
|
||||||
|
|
||||||
|
opt_fields: due_on,estimated_hours
|
||||||
|
|
||||||
|
task_id: 1100000000000010
|
||||||
|
</details>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Here are your uncompleted tasks in Asana estimated to take an hour or less, ordered by their deadline:
|
||||||
|
|
||||||
|
1. **Task:** Review team meeting notes
|
||||||
|
- **Due Date:** 2025-03-21
|
||||||
|
|
||||||
|
2. **Task:** Draft quick status update
|
||||||
|
- **Due Date:** 2025-03-21
|
||||||
|
|
||||||
|
3. **Task:** Proofread blog post
|
||||||
|
- **Due Date:** 2025-03-21
|
||||||
|
|
||||||
|
4. **Task:** Send reminder to partners
|
||||||
|
- **Due Date:** 2025-03-27
|
||||||
|
|
||||||
|
Please let me know if you'd like more information or help with any specific task!
|
||||||
|
:::
|
||||||
Reference in New Issue
Block a user