diff --git a/documentation/blog/2025-03-20-asana-calendar-mcp/index.md b/documentation/blog/2025-03-20-asana-calendar-mcp/index.md index 6aeff4bf2848..708df688775f 100644 --- a/documentation/blog/2025-03-20-asana-calendar-mcp/index.md +++ b/documentation/blog/2025-03-20-asana-calendar-mcp/index.md @@ -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. -This has been so extremly helpful in increasing my productivity. Thanks, Goose! 🚀 +This has been so extremely helpful in increasing my productivity. Thanks, Goose! 🚀 diff --git a/documentation/docs/getting-started/using-extensions.md b/documentation/docs/getting-started/using-extensions.md index 09baeb4d4aba..808d633f113a 100644 --- a/documentation/docs/getting-started/using-extensions.md +++ b/documentation/docs/getting-started/using-extensions.md @@ -25,7 +25,6 @@ Here are the built-in extensions: 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 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 @@ -274,7 +273,12 @@ You can remove installed 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 diff --git a/documentation/docs/guides/goose-cli-commands.md b/documentation/docs/guides/goose-cli-commands.md index 864672e63c03..4c2203dd819d 100644 --- a/documentation/docs/guides/goose-cli-commands.md +++ b/documentation/docs/guides/goose-cli-commands.md @@ -67,7 +67,17 @@ goose configure goose session --with-extension ``` - 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= 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') @@ -81,6 +91,12 @@ goose configure goose session --with-builtin ``` + **Example:** + + ```bash + goose session --with-builtin computercontroller + ``` + --- ### session list [options] diff --git a/documentation/docs/tutorials/_template_.md b/documentation/docs/tutorials/_template_.md index 37e634f1f25a..7364f5264549 100644 --- a/documentation/docs/tutorials/_template_.md +++ b/documentation/docs/tutorials/_template_.md @@ -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.} ### Goose Prompt -``` -{exact prompt}. -``` + +> _exact prompt_ + ### Goose Output -``` +:::note CLI + {exact output} -``` \ No newline at end of file + +::: \ No newline at end of file diff --git a/documentation/docs/tutorials/asana-mcp.md b/documentation/docs/tutorials/asana-mcp.md new file mode 100644 index 000000000000..241513e3b09e --- /dev/null +++ b/documentation/docs/tutorials/asana-mcp.md @@ -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'; + + + + +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: +``` +::: + +## Configuration + +:::info +Note that you'll need [Node.js](https://nodejs.org/) installed on your system to run this command, as it uses `npx`. +::: + + + + + 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 + ``` + + + + 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 + + + +## 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 + +
+ Tool Calls + + ─── 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 +
+ + + +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! +::: \ No newline at end of file