Clean up stale documentation audit findings (#10114)

Co-authored-by: Douwe M Osinga <douwe@sidewalklabs.com>
This commit is contained in:
Douwe Osinga
2026-07-17 13:36:58 +02:00
committed by GitHub
parent b7c78623f4
commit ceb94b24dc
66 changed files with 472 additions and 1558 deletions
@@ -139,4 +139,4 @@ Download [goose](https://goose-docs.ai/docs/getting-started/installation/), and
<meta name="twitter:title" content="How to Vibe Code Responsibly (with goose)" />
<meta name="twitter:description" content="Vibe coding feels magical until it isn't. Learn how to flow with goose while protecting your code, your team, and your future self." />
<meta name="twitter:image" content="http://goose-docs.ai/assets/images/responsible-vibe-code-a77f5e24a879edda943cc76f1fc0bd2a.png" />
</head>
</head>
@@ -110,7 +110,7 @@ This starts up a local web server (the command line output will tell you which p
## Goose learns how to drive!
Following our [mbot MCP tutorial](/docs/mcp/mbot-mcp/) we can set up our MCP extension just like we ran our Java JAR file with the environment variables.
Following the [mbotmcp project setup](https://github.com/deemkeen/mbotmcp), we can set up our MCP extension just like we ran our Java JAR file with the environment variables.
Now we can give Goose commands like "drive in a square pattern by making left turns and moving forward, and beeping before you turn" and it will send the commands to the mbot2 rover via MQTT.
@@ -20,7 +20,7 @@ Let's break down what's new.
**The headline feature of v1.25.0 is security sandboxing for goose Desktop on macOS.**
When you give an AI agent access to your shell and file system, trust matters. With this release, goose Desktop now runs inside a [macOS sandbox](https://goose-docs.ai/docs/guides/sandbox) powered by [seatbelt](https://github.com/michaelneale/agent-seatbelt-sandbox), the same underlying technology Apple uses to sandbox its own apps.
When you give an AI agent access to your shell and file system, trust matters. With this release, goose Desktop now runs inside a macOS sandbox powered by [seatbelt](https://github.com/michaelneale/agent-seatbelt-sandbox), the same underlying technology Apple uses to sandbox its own apps.
What does this mean in practice?
@@ -33,13 +33,15 @@ goose operates autonomously by default. Combined with the Developer extension's
### Built-in Platform Extensions
Platform extensions are built-in extensions that provide global features like conversation search, task tracking, and extension management. These extensions are always available and can be toggled on or off as needed.
Platform extensions are built-in extensions that provide global features like code analysis, conversation search, task tracking, and extension management. They can be toggled on or off as needed.
- [Analyze](/docs/guides/codebase-analysis): Analyze code structure, file details, and symbol call graphs (enabled by default)
- [Apps](/docs/mcp/apps-mcp): Create, manage, and launch custom HTML apps in standalone windows
- [Chat Recall](/docs/mcp/chatrecall-mcp): Search conversation content across all your session history
- [Code Mode](/docs/mcp/code-mode-mcp): Execute JavaScript code for tool discovery and tool calling
- [Code Mode](/docs/mcp/code-mode-mcp): Execute JavaScript code for tool discovery and tool calling, when included in the current build
- [Extension Manager](/docs/mcp/extension-manager-mcp): Discover, enable, and disable extensions dynamically during sessions (enabled by default)
- [Summon](/docs/mcp/summon-mcp): Load skills and recipes, and delegate tasks to subagents (enabled by default)
- [Skills](/docs/guides/context-engineering/using-skills): Discover and load skill instructions from built-in and filesystem skills (enabled by default)
- [Summon](/docs/mcp/summon-mcp): Load knowledge sources and delegate tasks to subagents (enabled by default)
- [Todo](/docs/mcp/todo-mcp): Manage task lists and track progress across sessions (enabled by default)
- [Top of Mind](/docs/mcp/tom-mcp): Inject persistent instructions into goose's working memory every turn
@@ -5,7 +5,7 @@ description: Understand codebases with semantic analysis and call graphs
sidebar_position: 111
---
The [Developer extension](/docs/mcp/developer-mcp) includes an `analyze` tool that helps you understand code structure, track symbol usage, and explore call graphs across your codebase. It's automatically available when the Developer extension is enabled and supports file types for [multiple programming languages](https://github.com/aaif-goose/goose/blob/main/crates/goose-mcp/src/developer/analyze/languages/mod.rs).
The Analyze platform extension provides an `analyze` tool that helps you understand code structure, track symbol usage, and explore call graphs across your codebase. It is enabled by default and supports file types for [multiple programming languages](https://github.com/aaif-goose/goose/blob/main/crates/goose/src/agents/platform_extensions/analyze/languages.rs).
<details>
<summary>Example analysis: Tracking a function across files</summary>
@@ -103,13 +103,13 @@ analyze path="." focus="UserClass" follow_depth=3
| `focus` | None | Name of the symbol to track. For cross-file tracking, `path` must be a directory. |
| `follow_depth` | 2 | How many steps to trace from the focused symbol (0=where defined, 1=immediate callers/callees, 2=their callers/callees, etc.). Used with the `focus` parameter. |
| `max_depth` | 3 | How many subdirectory levels to analyze when `path` is a directory (0=unlimited) |
| `force` | false | Receive full analysis results (otherwise, only a warning message is shown when the results exceed 1000 lines) |
| `force` | false | Receive full analysis results (otherwise, only a warning message is shown when the results exceed 50,000 characters) |
## Best Practices
### Handling Large Outputs
If the analysis results exceed 1000 lines, the tool returns a warning message instead of the analysis. Options for managing large outputs:
If the analysis results exceed 50,000 characters, the tool returns a warning message instead of the analysis. Options for managing large outputs:
- **Use `force=true`** to bypass the warning and see the full output (may consume significant conversation context)
- **Narrow your scope** by analyzing a specific subdirectory or file
@@ -120,4 +120,4 @@ If the analysis results exceed 1000 lines, the tool returns a warning message in
- Start with smaller scopes (specific files or subdirectories) before analyzing entire projects
- Use `max_depth=1` or `max_depth=2` to limit directory traversal depth
- Use `.gitignore` files to exclude unnecessary files from analysis, such as `node_modules/` and build artifacts
- Use `.gitignore` files to exclude unnecessary files from analysis, such as `node_modules/` and build artifacts
@@ -98,6 +98,8 @@ The following default templates can be customized.
| [plan.md](https://github.com/aaif-goose/goose/blob/main/crates/goose/src/prompts/plan.md) | Instructions for creating detailed, actionable plans with clarifying questions | CLI only |
| [recipe.md](https://github.com/aaif-goose/goose/blob/main/crates/goose/src/prompts/recipe.md) | Prompt for generating recipe files from conversations | Desktop and CLI |
| [subagent_system.md](https://github.com/aaif-goose/goose/blob/main/crates/goose/src/prompts/subagent_system.md) | System prompt for subagents spawned to handle specific tasks | Desktop and CLI |
| [tiny_model_system.md](https://github.com/aaif-goose/goose/blob/main/crates/goose/src/prompts/tiny_model_system.md) | System prompt for tiny local models using shell command emulation | CLI |
| [session_name.md](https://github.com/aaif-goose/goose/blob/main/crates/goose/src/prompts/session_name.md) | Prompt for generating short session names from conversation history | Desktop and CLI |
Customizable templates are enumerated in the `TEMPLATE_REGISTRY` array in [`prompt_template.rs`](https://github.com/aaif-goose/goose/blob/main/crates/goose/src/prompt_template.rs).
@@ -7,17 +7,21 @@ sidebar_label: Agent Skills
Skills are reusable sets of instructions and resources that teach goose how to perform specific tasks. A skill can range from a simple checklist to a detailed workflow with domain expertise, and can include supporting files like scripts or templates. Example use cases include deployment procedures, code review checklists, and API integration guides.
:::info
This functionality requires the built-in [Summon extension](/docs/mcp/summon-mcp), available in v1.25.0+.
This functionality uses the built-in Skills platform extension, which is enabled by default.
:::
When a session starts, goose adds any skills that it discovers to its instructions. During the session, goose automatically loads a skill when:
When a session starts, goose adds discovered skill names and descriptions to its instructions. During the session, goose can load a skill's full instructions when:
- Your request clearly matches a skill's purpose
- You explicitly ask to use a skill, for example:
- "Use the code-review skill to review this PR"
- "Follow the new-service skill to set up the auth service"
- "Apply the deployment skill"
You can also ask goose what skills are available, or use the CLI `/skills` command to list available skills and load one or more by name (e.g. `/skills code-review edge-case-finder`).
You can also ask goose what skills are available, run `goose skills list`, or use the CLI `/skills` command to list available skills and load one or more by name:
```bash
/skills code-review edge-case-finder
```
:::info Claude Compatibility
goose skills are compatible with Claude Desktop and other [agents that support Agent Skills](https://agentskills.io/home#adoption).
+159 -4
View File
@@ -8,7 +8,7 @@ toc_max_heading_level: 4
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
goose provides a command-line interface (CLI) with several commands for managing sessions, configurations and extensions. This guide covers all available CLI commands and interactive session features.
goose provides a command-line interface (CLI) with commands for managing sessions, configurations and extensions. This guide covers the main CLI commands and interactive session features.
## Flag Naming Conventions
@@ -466,6 +466,51 @@ goose run --recipe recipe.yaml --max-turns 10
---
#### review [options] [range]
Review the current git diff using goose. By default, `goose review` reviews the working tree against `HEAD`; pass a range such as `main...HEAD` to review a specific diff.
`goose review` can discover review checks from `.agents/checks/*.md` and scoped review instructions from `.agents/REVIEW.md`.
**Options:**
- **`--prompt <FILE>`**: Use a custom base review prompt
- **`--model <MODEL>`**: Set the default model for the main review agent and checks that do not declare their own model
- **`--provider <PROVIDER>`**: Set the provider for the main review agent
- **`--override-model <MODEL>`**: Force every discovered check to use this model
- **`--turn-limit <N>`**: Set the default turn limit for orchestrated review subprocesses and checks
- **`--dry-run`**: Print the assembled review prompt and discovered checks without running the review
- **`-q, --quiet`**: Suppress non-result output from the underlying agent
- **`--no-orchestrate`**: Disable the default Rust-driven parallel orchestrator and use the single-prompt path
- **`-i, --instructions <TEXT>`**: Add free-form review instructions
- **`-f, --files <FILE>...`**: Restrict the review to specific files
- **`-c, --check-filter <NAME>...`**: Run only checks with matching names
- **`-s, --check-scope <DIR>`**: Search a specific directory for `.agents/checks/*.md`
- **`--checks-only`**: Skip the main correctness pass and run only check subagents
- **`--summary-only`**: Print only the diff summary
- **`--severity <LEVEL>`**: Minimum severity to display. Defaults to `medium`; use `low` to show every finding
**Usage:**
```bash
# Review the working tree against HEAD
goose review
# Review a branch range
goose review main...HEAD
# Add review intent
goose review --instructions "This is a refactor; flag behavior changes"
# Review only selected files
goose review --files crates/goose/src/agents/agent.rs documentation/docs/guides/goose-cli-commands.md
# Preview the assembled prompt and discovered checks
goose review --dry-run
# Run only named checks
goose review --check-filter security performance --checks-only
```
---
#### recipe
Used to validate recipe files, manage recipe sharing, list available recipes, and open recipes in goose desktop.
@@ -538,6 +583,52 @@ Installed plugins are stored under `~/.agents/plugins/<plugin-name>/`. For more
---
#### skills
List skills available to the goose agent.
**Commands:**
- **`list`**: List installed and discoverable skills, including token counts and source locations
**Usage:**
```bash
goose skills list
```
---
#### local-models
Search, download, list, and delete local inference models.
:::info
This command is available in goose builds that include local inference support.
:::
**Commands:**
- **`search <QUERY>`**: Search Hugging Face for compatible GGUF and MLX models
- **`-l, --limit <NUMBER>`**: Maximum number of results to show. Defaults to `10`
- **`download <SPEC>`**: Download and register a model from a search result, such as `user/repo:Q4_K_M`
- **`list`**: List downloaded local models
- **`delete <ID>`**: Delete a downloaded local model
**Alias:** `lm`
**Usage:**
```bash
# Search for local models
goose local-models search qwen --limit 5
# Download a model from a search result
goose local-models download 'user/repo:Q4_K_M'
# List downloaded models
goose local-models list
# Delete a downloaded model
goose local-models delete user/repo:Q4_K_M
```
---
#### schedule
Automate recipes by running them on a [schedule](/docs/guides/recipes/session-recipes.md#schedule-recipe).
@@ -603,10 +694,40 @@ This command is automatically invoked by ACP-compatible clients and is not typic
---
#### serve [options]
Start goose as an Agent Client Protocol (ACP) server over HTTP and WebSocket.
**Options:**
- **`--host <HOST>`**: Host to bind to. Defaults to `127.0.0.1`
- **`--port <PORT>`**: Port to listen on. Defaults to `3284`
- **`--with-builtin <NAME>`**: Enable built-in extensions by name. Can be passed multiple times or as a comma-separated list. Defaults to `developer` when omitted.
- **`--dangerously-unauthenticated`**: Run without ACP authentication. Use only for local trusted clients.
**Usage:**
```bash
# Set a secret before starting the server
export GOOSE_SERVER__SECRET_KEY=$(openssl rand -hex 32)
# Start the ACP server on localhost:3284
goose serve
# Bind to a different host and port
goose serve --host 0.0.0.0 --port 3284
# Start with specific built-in extensions
goose serve --with-builtin developer,memory
```
:::warning
`goose serve` requires `GOOSE_SERVER__SECRET_KEY` unless you pass `--dangerously-unauthenticated`. Only use `--dangerously-unauthenticated` with local trusted clients.
:::
---
### Project Management
#### project
Start working on your last project or create a new one. For detailed usage examples and workflows, see [Managing Projects Guide](/docs/guides/managing-projects).
Start working on your last project or create a new one.
**Alias**: `p`
@@ -631,8 +752,42 @@ goose projects
### Terminal Integration
#### term
Set up and use terminal-integrated sessions. Terminal integration gives each shell a persistent goose session through `AGENT_SESSION_ID`, and can create the `@goose` and `@g` aliases.
**Commands:**
- **`init <SHELL>`** - Print the shell integration script for `bash`, `zsh`, `fish`, `nu`, or `powershell`
- **`run <PROMPT...>`** - Send a prompt to the terminal-integrated session
- **`info`** - Print compact session information for shell prompt integration
**Options:**
- **`-n, --name <NAME>`** - Set the terminal session name when running `init`
- **`--default`** - Ask goose to handle unknown commands in supported shells
**Usage:**
```bash
# Set up zsh integration
eval "$(goose term init zsh)"
# Set up zsh integration and ask goose about unknown commands
eval "$(goose term init zsh --default)"
# Set up nushell integration
let init = ($nu.cache-dir | path join "goose-term-init.nu")
goose term init nu | save --force $init
source $init
# Send a prompt to the current terminal session
goose term run why did the last command fail
# Print session info for prompt integration
goose term info
```
---
#### @goose / @g
Ask goose questions directly from your shell prompt, with command history included in the context. These aliases are created when you set up [terminal integration](/docs/guides/terminal-integration.md).
Ask goose questions directly from your shell prompt, with command history included in the context. These aliases are created by `goose term init` when you set up [terminal integration](/docs/guides/terminal-integration.md).
**Examples:**
```bash
@@ -664,7 +819,7 @@ Once you're in an interactive session (via `goose session` or `goose run --inter
- **`/recipe [filepath]`** - Generate a recipe from the current conversation and save it to the specified filepath (must end with .yaml). If no filepath is provided, it will be saved to ./recipe.yaml
- **`/compact`** - Compact and summarize the current conversation to reduce context length while preserving key information
- **`/r`** - Toggle full tool output display (show complete tool parameters without truncation)
- **`/skills`** - List available skills
- **`/skills [<name>...]`** - List available skills, or load one or more skills by name
- **`/t`** - Toggle between `light`, `dark`, and `ansi` themes. [More info](#themes).
- **`/t <name>`** - Set theme directly (light, dark, ansi)
@@ -1,114 +0,0 @@
---
sidebar_position: 5
title: Managing Projects
sidebar_label: Managing Projects
---
goose Projects automatically track your working directories and associated sessions, making it easy to resume work across multiple codebases with full context preservation.
A **project** in goose is a record of a working directory where you've used goose. Every time you run goose, it automatically tracks the current directory as a project, storing:
- **Path**: The absolute path to the project directory
- **Last accessed**: When you last worked on this project
- **Last instruction**: The most recent command you gave to goose
- **Session ID**: The associated session for context continuity
Projects are stored in `~/.local/share/goose/projects.json`.
:::info CLI Only Feature
Projects are currently available only through the goose CLI. Desktop support is planned for future releases.
:::
## Basic Usage
**Resume your most recent project:**
```bash
goose project
```
**Browse all your projects:**
```bash
goose projects
```
:::tip
When resuming a project, you can continue the previous session or start fresh in that directory.
:::
For complete command syntax and options, see the [CLI Commands Guide](/docs/guides/goose-cli-commands#project).
## Workflow Example
Let's follow Sarah, a developer working on multiple projects throughout her day:
### Morning: API Development
```bash
cd ~/projects/ecommerce-api
goose session --name "api-auth-work"
```
*Sarah asks goose to help implement JWT token refresh logic*
### Mid-Morning: Mobile App Bug Fix
```bash
cd ~/projects/mobile-app
goose session
```
*Sarah gets help debugging an iOS crash in the login screen*
### Afternoon: Admin Dashboard
```bash
cd ~/projects/admin-dashboard
goose session --name "dashboard-ui"
```
*Sarah works on creating user management interface components*
### Next Day: Quick Resume
```bash
# From any directory, quickly resume the most recent project
goose project
```
goose shows:
```
┌ goose Project Manager
│
◆ Choose an option:
│ ○ Resume project with session: .../admin-dashboard
│ Continue with the previous session
│ ○ Resume project with fresh session: .../admin-dashboard
│ Change to the project directory but start a new session
│ ○ Start new project in current directory: /Users/sarah
│ Stay in the current directory and start a new session
└
```
### Later: Browse All Projects
```bash
goose projects
```
goose displays:
```
┌ goose Project Manager
│
◆ Select a project:
│ ○ 1 .../admin-dashboard (2025-01-07 09:15:30) [create user management interface]
│ ○ 2 .../mobile-app (2025-01-06 11:45:20) [login screen crashing on iOS]
│ ○ 3 .../ecommerce-api (2025-01-06 09:30:15) [JWT token refresh logic]
│ ○ Cancel
└
```
Sarah can see her recent projects with timestamps and context, making it easy to choose where to continue working.
## Benefits
:::tip Time Savings
Projects eliminate the typical 2-5 minutes lost when switching between codebases, especially valuable for developers working on multiple projects daily.
:::
- **Eliminate context switching friction** - Jump between projects instantly without manual navigation
- **Preserve work context** - Resume exactly where you left off with full conversation history
- **Seamless session integration** - Maintain continuity across different codebases
-222
View File
@@ -1,222 +0,0 @@
---
title: macOS Sandbox for goose Desktop
sidebar_label: Sandbox for goose Desktop
description: Optional sandboxing for goose Desktop to control file access, filter network traffic, and enforce security policies on macOS
---
goose Desktop includes an optional macOS sandbox that you can enable when you need stricter control and visibility over what goose can access on your system. Use it to:
- **Restrict file system access** — Block writes to SSH keys, shell configs, and goose configuration files
- **Control network connections** — Force all traffic through a filtering proxy that blocks unapproved domains
- **Prevent security bypasses** — Block tunneling tools, raw sockets, and other techniques that could circumvent restrictions
- **Audit and enforce policies** — Log all network activity and enforce compliance requirements
goose runs with full tool access, but the sandbox uses two layers of protection:
- **File access control** - Apple's `sandbox-exec` restricts file and network access at the system level
- **Outbound connections** - A local egress proxy filters and logs outgoing connections
:::info macOS Requirement
The sandbox relies on `/usr/bin/sandbox-exec`, which is only available on macOS and is also known as Apple's seatbelt technology.
:::
## Quick Start
To enable the sandbox, launch goose Desktop from the terminal with the environment variable set. For example:
```bash
export GOOSE_SANDBOX=true
open -a Goose
```
When the app starts with sandboxing enabled, it will:
1. Generate a seatbelt sandbox profile
2. Start a local HTTP CONNECT proxy on localhost
3. Launch the `goosed` backend for goose Desktop inside `sandbox-exec`, forcing all traffic through the proxy
The sandbox remains active until you quit goose Desktop. To disable it, quit the app and relaunch normally (or set `GOOSE_SANDBOX=false` when opening from the terminal).
## Configuration
All configuration is via environment variables. Defaults are designed to be secure out of the box, but you can adjust them to match your security requirements.
### Core
| Variable | Default | Description |
|----------|---------|-------------|
| `GOOSE_SANDBOX` | `false` | Set to `true` or `1` to enable the sandbox. See [Quick Start](#quick-start) for launch instructions. |
----
### File System
The [seatbelt sandbox profile](https://github.com/aaif-goose/goose/blob/main/ui/desktop/src/sandbox/index.ts) blocks write operations to these sensitive files:
- `~/.ssh/` - Prevent SSH key tampering
- `~/.bashrc`, `~/.zshrc`, `~/.bash_profile`, `~/.zprofile` - Prevent shell config injection
- `~/.config/goose/sandbox/` - Protect sandbox config from the sandboxed process
- `~/.config/goose/config.yaml` - Protect goose config
#### Environment Variables
| Variable | Default | Description |
|----------|---------|-------------|
| `GOOSE_SANDBOX_PROTECT_FILES` | `true` | Write-protect sensitive files listed above. Set to `false` to disable |
----
### Direct Network Access
The seatbelt sandbox denies all direct network access, forcing traffic through the proxy. The only allowed connections are:
- **Localhost** — Allows the `goosed` process to reach the egress proxy and its own server port
- **Unix sockets** — For local inter-process communication (IPC)
- **mDNSResponder** — For DNS resolution
:::info Not Configurable
These restrictions are always active when the sandbox is enabled.
:::
----
### Process Restrictions
The seatbelt sandbox blocks tools and system calls that could bypass security controls:
- **Tunneling tools** — `nc`, `ncat`, `netcat`, `socat`, `telnet` are blocked to prevent bypassing the proxy
- **Raw sockets** — `SOCK_RAW` on `AF_INET`/`AF_INET6` is blocked to prevent raw packet crafting
- **Kernel extensions** — `system-kext-load` is denied
#### Environment Variables
| Variable | Default | Description |
|----------|---------|-------------|
| `GOOSE_SANDBOX_BLOCK_RAW_SOCKETS` | `true` | Block `SOCK_RAW`. Set to `false` to disable |
| `GOOSE_SANDBOX_BLOCK_TUNNELING` | `true` | Block `nc`/`netcat`/`socat`/`telnet`. Set to `false` to disable |
----
### Network Filtering
The egress proxy inspects and filters all outgoing connections. You can customize filtering rules through the blocklist file and configuration variables.
The egress proxy checks connections in this order:
1. **Loopback detection** — Prevents using the proxy as a relay back to localhost
2. **Raw IP blocking** — Connections to bare IP addresses (no domain) are blocked
3. **Domain blocklist** — Domains listed in `blocked.txt` are denied (including all subdomains)
4. **SSH/Git host restrictions** — SSH ports (22, 2222, 7999) are restricted to known git hosts
For optional LaunchDarkly-based egress control, see [LaunchDarkly](#launchdarkly-optional).
#### Environment Variables
| Variable | Default | Description |
|----------|---------|-------------|
| `GOOSE_SANDBOX_ALLOW_IP` | `false` | Set to `true` to allow connections to raw IP addresses |
| `GOOSE_SANDBOX_BLOCK_LOOPBACK` | `false` | Set to `true` to block loopback relay through the proxy |
| `GOOSE_SANDBOX_ALLOW_SSH` | `true` | Set to `false` to block all SSH traffic |
| `GOOSE_SANDBOX_GIT_HOSTS` | built-in list | Comma-separated list of allowed SSH git hosts (e.g. `github.com,gitlab.com`) |
| `GOOSE_SANDBOX_SSH_ALL_HOSTS` | `false` | Set to `true` to allow SSH to any host (not just git hosts) |
#### Managing the Domain Blocklist
The file `~/.config/goose/sandbox/blocked.txt` controls which domains are blocked by the proxy. It's created automatically on first run from a bundled template.
```
# One domain per line. Subdomains are blocked automatically.
# Lines starting with # are comments.
evil.com # blocks evil.com and *.evil.com
pastebin.com
transfer.sh
webhook.site
```
:::tip Live Reload
Changes to `blocked.txt` take effect immediately — the proxy watches the file with `fs.watch` and reloads it automatically. No restart needed.
:::
#### Using Git Over SSH
SSH git operations (e.g. `git clone git@github.com:...`) work through the sandbox via a bundled `connect-proxy.pl` script that acts as an SSH `ProxyCommand`. This routes SSH connections through the egress proxy, which then applies the same allowlist rules.
By default, SSH is only allowed to well-known git hosting domains (e.g. GitHub, GitLab, Bitbucket). To customize:
```bash
# Add custom git hosts
export GOOSE_SANDBOX_GIT_HOSTS="github.com,gitlab.com,your-gitea.internal.com"
# Or allow SSH to all hosts
export GOOSE_SANDBOX_SSH_ALL_HOSTS=true
```
----
### LaunchDarkly (Optional)
For enterprise environments, LaunchDarkly provides optional dynamic egress control. If not configured, the sandbox uses the local `blocked.txt` blocklist.
#### Environment Variables
| Variable | Default | Description |
|----------|---------|-------------|
| `LAUNCHDARKLY_CLIENT_ID` | — | LD client SDK key to enable dynamic egress control |
| `GOOSE_SANDBOX_LD_FAILOVER` | — | Failover mode if LD is unreachable: `allow`, `deny`, or `blocklist` |
## Example Configurations
### Maximum security
```bash
export GOOSE_SANDBOX=true
# All protections enabled (defaults)
```
### Allow raw IP connections (e.g. for internal APIs)
```bash
export GOOSE_SANDBOX=true
export GOOSE_SANDBOX_ALLOW_IP=true
```
### Disable SSH entirely
```bash
export GOOSE_SANDBOX=true
export GOOSE_SANDBOX_ALLOW_SSH=false
```
### Relaxed mode (fewer restrictions)
```bash
export GOOSE_SANDBOX=true
export GOOSE_SANDBOX_PROTECT_FILES=false
export GOOSE_SANDBOX_BLOCK_RAW_SOCKETS=false
export GOOSE_SANDBOX_BLOCK_TUNNELING=false
export GOOSE_SANDBOX_ALLOW_IP=true
export GOOSE_SANDBOX_SSH_ALL_HOSTS=true
```
### With LaunchDarkly egress control
```bash
export GOOSE_SANDBOX=true
export LAUNCHDARKLY_CLIENT_ID=sdk-your-key-here
export GOOSE_SANDBOX_LD_FAILOVER=blocklist # fall back to local blocklist if LD is down
```
## Troubleshooting
- **Error: "GOOSE_SANDBOX=true but sandbox-exec is not available (macOS only)"**
You're not on macOS, or `/usr/bin/sandbox-exec` is missing. The sandbox only works on macOS.
- **Extensions or tools can't reach the network**
Check if the destination domain is in `~/.config/goose/sandbox/blocked.txt`, or if you need to enable `GOOSE_SANDBOX_ALLOW_IP=true` for IP-based endpoints.
- **git clone over SSH fails**
The target host may not be in the default Git hosts allowlist. Add it with `GOOSE_SANDBOX_GIT_HOSTS=your-host.com` or set `GOOSE_SANDBOX_SSH_ALL_HOSTS=true`.
- **Want to inspect what the proxy is blocking?**
Check the [Desktop application logs](/docs/guides/logs#desktop-application-log). Blocked connections are logged with the prefix `[sandbox-proxy]` and include the reason for blocking.
@@ -30,11 +30,6 @@ import styles from '@site/src/components/Card/styles.module.css';
description="API specification for self-hosting ML-based prompt injection detection endpoints."
link="/docs/guides/security/classification-api-spec"
/>
<Card
title="macOS Sandbox for goose Desktop"
description="Control file access, network connections, and process restrictions for goose Desktop using Apple's sandbox technology."
link="/docs/guides/sandbox"
/>
</div>
</div>
@@ -329,7 +329,7 @@ While you can resume sessions, we recommend creating new sessions for new tasks
Project-based sessions are only available through the CLI.
</TabItem>
<TabItem value="cli" label="goose CLI">
You can use the [`project`](/docs/guides/goose-cli-commands#project) and [`projects`](/docs/guides/goose-cli-commands#projects) commands to start or resume sessions from a project, which is a tracked working directory with session metadata. For a complete guide to using Projects, see [Managing Projects Guide](/docs/guides/managing-projects).
You can use the [`project`](/docs/guides/goose-cli-commands#project) and [`projects`](/docs/guides/goose-cli-commands#projects) commands to start or resume sessions from a project, which is a tracked working directory with session metadata.
</TabItem>
</Tabs>
@@ -19,13 +19,13 @@ When working with [Large Language Models (LLMs)](/docs/getting-started/providers
## How goose Manages Context
goose uses a two-tiered approach to context management:
1. **Auto-Compaction**: Proactively summarizes conversation when approaching token limits
1. **Auto-Compaction**: Proactively compacts conversation history when approaching token limits
2. **Context Strategies**: Backup strategy used if the context limit is still exceeded after auto-compaction
This layered approach lets goose handle token and context limits gracefully.
## Automatic Compaction
goose automatically compacts (summarizes) older parts of your conversation when approaching token limits, allowing you to maintain long-running sessions without manual intervention.
goose automatically compacts older parts of your conversation into a summary when approaching token limits, allowing you to maintain long-running sessions without manual intervention.
Auto-compaction is triggered by default when you reach 80% of the token limit in goose Desktop and the goose CLI.
Control the auto-compaction behavior with the `GOOSE_AUTO_COMPACT_THRESHOLD` [environment variable](/docs/guides/environment-variables.md#session-management).
@@ -39,14 +39,14 @@ export GOOSE_AUTO_COMPACT_THRESHOLD=0.6
When you reach the auto-compaction threshold:
1. goose will automatically start compacting the conversation to make room.
2. Once complete, you'll see a confirmation message that the conversation was compacted and summarized.
3. Continue the session. Your previous conversation remains visible, but only the compacted conversion is included in the active context for goose.
3. Continue the session. Your previous conversation remains visible, but only the compacted conversation is included in the active context for goose.
:::tip Customize Compaction
You can customize how goose summarizes conversations during compaction by editing the `compaction.md` [prompt template](/docs/guides/context-engineering/prompt-templates).
:::
:::tip Tool Output Summarization
To help maintain efficient context usage, goose summarizes older tool call outputs in the background while keeping recent calls in full detail. By default, this happens when you have more than 10 tool calls in a session. For advanced tuning, see [`GOOSE_TOOL_CALL_CUTOFF`](/docs/guides/environment-variables#session-management).
To help maintain efficient context usage, goose summarizes older tool call outputs in the background while keeping recent calls in full detail. By default, goose computes the cutoff from the model context limit and auto-compaction threshold. For advanced tuning, see [`GOOSE_TOOL_CALL_CUTOFF`](/docs/guides/environment-variables#session-management).
:::
### Manual Compaction
@@ -58,7 +58,7 @@ You can also trigger compaction manually before reaching context or token limits
1. Point to the token usage indicator dot next to the model name at the bottom of the app
2. Click <ScrollText className="inline" size={16} /> `Compact now` in the context window that appears
3. Once complete, you'll see a confirmation message that the conversation was compacted and summarized.
4. Continue the session. Your previous conversation remains visible, but only the compacted conversion is included in the active context for goose.
4. Continue the session. Your previous conversation remains visible, but only the compacted conversation is included in the active context for goose.
:::info
You must send at least one message in the chat before the `Compact now` button is enabled.
@@ -67,18 +67,20 @@ You can also trigger compaction manually before reaching context or token limits
</TabItem>
<TabItem value="cli" label="goose CLI" default>
To proactively trigger summarization before reaching context limits, use the `/summarize` command:
To proactively compact the conversation before reaching context limits, use the `/compact` command:
```sh
( O)> /summarize
◇ Are you sure you want to summarize this conversation? This will condense the message history.
( O)> /compact
◇ Are you sure you want to compact this conversation? This will condense the message history.
│ Yes
│
Summarizing conversation...
Conversation has been summarized.
Compacting conversation...
Conversation has been compacted.
Key information has been preserved while reducing context length.
```
`/summarize` still works as a deprecated alias for `/compact`, but `/compact` is the command to use in new docs and workflows.
</TabItem>
</Tabs>
+3
View File
@@ -36,6 +36,9 @@ Consider enabling [Code Mode](/docs/guides/managing-tools/code-mode), an alterna
### Teach goose your preferences
Help goose remember how you like to work by using [`.goosehints` or other context files](/docs/guides/context-engineering/using-goosehints) or [skills](/docs/guides/context-engineering/using-skills) for permanent project preferences and the [Memory extension](/docs/mcp/memory-mcp) for things you want goose to dynamically recall later. Both can help save valuable context window space while keeping your preferences available.
### Protect sensitive files
Use [permission modes](/docs/guides/managing-tools/goose-permissions) and [tool permissions](/docs/guides/managing-tools/tool-permissions) when working around files you do not want goose to change.
### Version Control
Commit your code changes early and often. This allows you to rollback any unexpected changes.
-1
View File
@@ -64,7 +64,6 @@ Note that you'll need [uv](https://docs.astral.sh/uv/#installation) installed on
type="stdio"
command="npx"
args={["-y", "@package/name"]}
timeout={300}
envVars={[
{ name: "API_KEY", label: "Description or placeholder value" }
]}
+3 -3
View File
@@ -16,7 +16,7 @@ This tutorial covers how to add the [AgentQL MCP Server](https://github.com/tiny
<Tabs groupId="interface">
<TabItem value="ui" label="goose Desktop" default>
[Launch the installer](goose://extension?cmd=npx&arg=-y&arg=agentql-mcp&id=agentql&name=AgentQL&description=Transform%20unstructured%20web%20content%20into%20structured%20data&env=AGENTQL_API_KEY%3DAgentQL%20API%20Key)
[Launch the installer](goose://extension?cmd=npx&arg=-y&arg=agentql-mcp&id=agentql-mcp&name=AgentQL&description=Transform%20unstructured%20web%20content%20into%20structured%20data&env=AGENTQL_API_KEY%3DAgentQL%20API%20Key)
</TabItem>
<TabItem value="cli" label="goose CLI">
**Command**
@@ -40,7 +40,7 @@ Note that you'll need [Node.js](https://nodejs.org/) installed on your system to
<Tabs groupId="interface">
<TabItem value="ui" label="goose Desktop" default>
<GooseDesktopInstaller
extensionId="agentql"
extensionId="agentql-mcp"
extensionName="AgentQL"
description="Transform unstructured web content into structured data"
command="npx"
@@ -193,4 +193,4 @@ For 2025-2026 planning, I recommend:
- Keep track of multi-track conferences as they might have different CFP deadlines for different tracks
Would you like me to focus on any specific aspect of these patterns or provide more detailed information about particular conferences?
```
```
+3 -3
View File
@@ -22,7 +22,7 @@ You'll need a lightning wallet that supports [NWC](https://nwc.dev). If you don'
:::tip Quick Install
<Tabs groupId="interface">
<TabItem value="ui" label="goose Desktop" default>
[Launch the installer](goose://extension?cmd=npx&arg=-y&arg=%40getalby%2Fmcp&id=alby&name=Alby&description=Connect%20goose%20to%20your%20Bitcoin%20Lightning%20Wallet&env=NWC_CONNECTION_STRING%3DNWC%20Connection%20Secret)
[Launch the installer](goose://extension?cmd=npx&arg=-y&arg=%40getalby%2Fmcp&id=alby-mcp&name=Alby&description=Connect%20goose%20to%20your%20Bitcoin%20Lightning%20Wallet&env=NWC_CONNECTION_STRING%3DNWC%20Connection%20Secret)
</TabItem>
<TabItem value="cli" label="goose CLI">
**Command**
@@ -50,7 +50,7 @@ You'll need [Node.js](https://nodejs.org/) installed on your system to run this
<Tabs>
<TabItem value="local" label="Local" default>
<GooseDesktopInstaller
extensionId="alby"
extensionId="alby-mcp"
extensionName="Alby"
description="Connect goose to your Bitcoin Lightning Wallet"
command="npx"
@@ -172,4 +172,4 @@ I've successfully sent $1 USD (935 sats) to Rene at `reneaaron@getalby.com` with
- Payment hash: `cd30642470d81c2e8eb04c9ac95e679c53778537aecdf5554b15288ac42fe129`
Rene will receive the message "Thanks, sats received!" as confirmation of the payment.
:::
:::
+1 -1
View File
@@ -22,7 +22,7 @@ This tutorial covers how to add the [Apify MCP server](https://mcp.apify.com) as
[Launch the installer](goose://extension?type=streamable_http&url=https%3A%2F%2Fmcp.apify.com&id=apify&name=Apify&description=Extract%20data%20from%20any%20website%20with%20thousands%20of%20scrapers%2C%20crawlers%2C%20and%20automations%20on%20Apify%20Store&header=Authorization%3DBearer%20YOUR_APIFY_TOKEN)
</TabItem>
<TabItem value="cli" label="goose CLI">
Add a `Remote Extension (Streaming HTTP)` extension type with:
Add a `Remote Extension (Streamable HTTP)` extension type with:
**Endpoint URL**
```
+3 -3
View File
@@ -17,7 +17,7 @@ This tutorial covers how to add the [Asana MCP Server](https://github.com/roychr
:::tip Quick Install
<Tabs groupId="interface">
<TabItem value="ui" label="goose Desktop" default>
[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)
[Launch the installer](goose://extension?cmd=npx&arg=-y&arg=%40roychri%2Fmcp-server-asana&id=asana-mcp&name=Asana&description=enable%20task%20automation%2C%20project%20tracking%2C%20and%20team%20collaboration&env=ASANA_ACCESS_TOKEN%3DAsana%20Access%20Token)
</TabItem>
<TabItem value="cli" label="goose CLI">
**Command**
@@ -42,7 +42,7 @@ Note that you'll need [Node.js](https://nodejs.org/) installed on your system to
<Tabs groupId="interface">
<TabItem value="ui" label="goose Desktop" default>
<GooseDesktopInstaller
extensionId="asana"
extensionId="asana-mcp"
extensionName="Asana"
description="Enable task automation, project tracking, and team collaboration"
command="npx"
@@ -187,4 +187,4 @@ Here are your uncompleted tasks in Asana estimated to take an hour or less, orde
- **Due Date:** 2025-03-27
Please let me know if you'd like more information or help with any specific task!
:::
:::
-2
View File
@@ -48,7 +48,6 @@ uv tool install beads-mcp --with packaging
type="stdio"
command="uvx"
args={["beads-mcp"]}
timeout={300}
/>
</TabItem>
<TabItem value="cli" label="goose CLI">
@@ -421,4 +420,3 @@ To test it, run: open index.html
Or start a local server: python3 -m http.server 8000 and visit http://localhost:8000
```
+3 -3
View File
@@ -16,7 +16,7 @@ This tutorial covers how to add the [Blender MCP Server](https://github.com/ahuj
:::tip Quick Install
<Tabs groupId="interface">
<TabItem value="ui" label="goose Desktop" default>
[Launch the installer](goose://extension?cmd=uvx&arg=blender-mcp&id=blender&name=Blender&description=Blender%203D%20scene%20creation%20integration)
[Launch the installer](goose://extension?cmd=uvx&arg=blender-mcp&id=blender-mcp&name=Blender&description=Blender%203D%20scene%20creation%20integration)
</TabItem>
<TabItem value="cli" label="goose CLI">
**Command**
@@ -54,7 +54,7 @@ Note that you'll need [uv](https://docs.astral.sh/uv/#installation) installed on
<Tabs groupId="interface">
<TabItem value="ui" label="goose Desktop" default>
<GooseDesktopInstaller
extensionId="blender"
extensionId="blender-mcp"
extensionName="Blender"
description="Blender 3D scene creation integration"
command="uvx"
@@ -135,4 +135,4 @@ Just let me know and I'll help you refine the scene further!
#### Blender Image
![Blender MCP Scene](/img/blender.png)
![Blender MCP Scene](/img/blender.png)
+13 -10
View File
@@ -14,12 +14,12 @@ This tutorial covers how to add the Browserbase MCP Server as a goose extension
<Tabs groupId="interface">
<TabItem value="ui" label="goose Desktop" default>
[Launch the installer](goose://extension?cmd=npx&arg=@browserbasehq/mcp&id=browserbase&name=Browserbase&description=Automate%20web%20browsing%20and%20data%20extraction&env=BROWSERBASE_PROJECT_ID%3DBrowserbase%20Project%20ID&env=BROWSERBASE_API_KEY%3DBrowserbase%20API%20Key)
[Launch the installer](goose://extension?cmd=npx&arg=-y&arg=%40browserbasehq%2Fmcp&id=browserbase-mcp&name=Browserbase&description=Automate%20web%20browsing%20and%20data%20extraction&env=BROWSERBASE_PROJECT_ID%3DBrowserbase%20Project%20ID&env=BROWSERBASE_API_KEY%3DBrowserbase%20API%20Key&env=GEMINI_API_KEY%3DGemini%20API%20Key)
</TabItem>
<TabItem value="cli" label="goose CLI">
**Command**
```sh
npx @browserbasehq/mcp
npx -y @browserbasehq/mcp
```
</TabItem>
</Tabs>
@@ -27,6 +27,7 @@ This tutorial covers how to add the Browserbase MCP Server as a goose extension
```
BROWSERBASE_PROJECT_ID: <YOUR_PROJECT_ID>
BROWSERBASE_API_KEY: <YOUR_API_KEY>
GEMINI_API_KEY: <YOUR_GEMINI_API_KEY>
```
:::
@@ -39,14 +40,15 @@ Note that you'll need [Node.js](https://nodejs.org/) installed on your system to
<Tabs groupId="interface">
<TabItem value="ui" label="goose Desktop" default>
<GooseDesktopInstaller
extensionId="browserbase"
extensionId="browserbase-mcp"
extensionName="Browserbase"
description="Automate web browsing and data extraction"
command="npx"
args={["@browserbasehq/mcp"]}
args={["-y", "@browserbasehq/mcp"]}
envVars={[
{ name: "BROWSERBASE_PROJECT_ID", label: "Browserbase Project ID" },
{ name: "BROWSERBASE_API_KEY", label: "Browserbase API Key" }
{ name: "BROWSERBASE_API_KEY", label: "Browserbase API Key" },
{ name: "GEMINI_API_KEY", label: "Gemini API Key" }
]}
apiKeyLink="https://browserbase.io/dashboard"
apiKeyLinkText="Browserbase credentials"
@@ -56,14 +58,15 @@ Note that you'll need [Node.js](https://nodejs.org/) installed on your system to
<CLIExtensionInstructions
name="Browserbase"
description="Automate web browsing and data extraction"
command="npx @browserbasehq/mcp"
command="npx -y @browserbasehq/mcp"
envVars={[
{ key: "BROWSERBASE_PROJECT_ID", value: "▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪" },
{ key: "BROWSERBASE_API_KEY", value: "▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪" }
{ key: "BROWSERBASE_PROJECT_ID", value: "▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪" },
{ key: "BROWSERBASE_API_KEY", value: "▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪" },
{ key: "GEMINI_API_KEY", value: "▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪" }
]}
infoNote={
<>
Obtain your <a href="https://browserbase.io/dashboard" target="_blank" rel="noopener noreferrer">Browserbase credentials</a> and paste them in.
Obtain your <a href="https://browserbase.io/dashboard" target="_blank" rel="noopener noreferrer">Browserbase credentials</a> and <a href="https://aistudio.google.com/app/apikey" target="_blank" rel="noopener noreferrer">Gemini API key</a> and paste them in.
</>
}
/>
@@ -131,4 +134,4 @@ Let's use the Browserbase extension to gather information about trending MCP-rel
**Stars Today**: 10.2k stars
**README Excerpt**: A Model Context Protocol (MCP) server that provides browser automation capabilities using Playwright. This server enables LLMs to interact with web pages through structured accessibility snapshots, bypassing the need for screenshots or visually-tuned models.
```
```
@@ -16,7 +16,7 @@ This tutorial covers how to add the Chrome DevTools MCP Server as a goose extens
:::tip Quick Install
<Tabs groupId="interface">
<TabItem value="ui" label="goose Desktop" default>
[Launch the installer](goose://extension?cmd=npx&arg=-y&arg=chrome-devtools-mcp%40latest&id=chrome-devtools&name=Chrome%20DevTools&description=Browser%20automation%20and%20web%20performance%20testing%20capabilities)
[Launch the installer](goose://extension?cmd=npx&arg=-y&arg=chrome-devtools-mcp%40latest&id=chrome-devtools-mcp&name=Chrome%20DevTools&description=Browser%20automation%20and%20web%20performance%20testing%20capabilities)
</TabItem>
<TabItem value="cli" label="goose CLI">
**Command**
@@ -36,13 +36,11 @@ Note that you'll need [Node.js](https://nodejs.org/) installed on your system to
<Tabs groupId="interface">
<TabItem value="ui" label="goose Desktop" default>
<GooseDesktopInstaller
extensionId="chrome-devtools"
extensionId="chrome-devtools-mcp"
extensionName="Chrome DevTools"
description="Browser automation and web performance testing capabilities"
command="npx"
args={["-y", "chrome-devtools-mcp@latest"]}
cliCommand="npx -y chrome-devtools-mcp@latest"
timeout={300}
/>
</TabItem>
<TabItem value="cli" label="goose CLI">
@@ -17,7 +17,7 @@ This tutorial covers how to add the [Cloudinary Asset Management MCP Server](htt
<Tabs groupId="interface">
<TabItem value="ui" label="goose Desktop" default>
[Launch the installer](goose://extension?cmd=npx&arg=-y&arg=--package&arg=@cloudinary/asset-management&arg=--&arg=mcp&arg=start&id=cloudinary&name=Cloudinary%20Asset%20Management&description=Powerful%20media%20processing%20and%20transformation&env=CLOUDINARY_URL%3DCloudinary%20URL)
[Launch the installer](goose://extension?cmd=npx&arg=-y&arg=--package&arg=@cloudinary/asset-management&arg=--&arg=mcp&arg=start&id=cloudinary-asset-management-mcp&name=Cloudinary%20Asset%20Management&description=Powerful%20media%20processing%20and%20transformation&env=CLOUDINARY_URL%3DCloudinary%20URL)
</TabItem>
<TabItem value="cli" label="goose CLI">
**Command**
@@ -41,7 +41,7 @@ Note that you'll need [Node.js](https://nodejs.org/) installed on your system to
<Tabs groupId="interface">
<TabItem value="ui" label="goose Desktop" default>
<GooseDesktopInstaller
extensionId="cloudinary"
extensionId="cloudinary-asset-management-mcp"
extensionName="Cloudinary Asset Management"
description="Powerful media processing and transformation"
command="npx"
@@ -136,4 +136,3 @@ The transformed image now has:
You can click on the transformed URL to see the final result!
```
-119
View File
@@ -1,119 +0,0 @@
---
title: Cognee Extension
description: Add Cognee MCP Server as a goose Extension
---
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import CLIExtensionInstructions from '@site/src/components/CLIExtensionInstructions';
This tutorial covers how to add the [Cognee MCP Server](https://github.com/topoteretes/cognee/tree/main/cognee-mcp) as a goose extension to enable knowledge graph memory capabilities, connecting to over 30 data sources for enhanced context and retrieval.
:::tip Quick Install
**Command**
```sh
uv --directory /path/to/cognee-mcp run python src/server.py
```
**Environment Variables**
```
LLM_API_KEY: <YOUR_OPENAI_API_KEY>
```
:::
## Configuration
:::info
Note that you'll need [uv](https://docs.astral.sh/uv/#installation) installed on your system to run this command, as it uses `uv`.
:::
<Tabs groupId="interface">
<TabItem value="cli" label="goose CLI" default>
**Install Cognee:**
```bash
# Clone and install Cognee
git clone https://github.com/topoteretes/cognee
cd cognee/cognee-mcp
uv sync --dev --all-extras --reinstall
# On Linux, install additional dependencies
sudo apt install -y libpq-dev python3-dev
```
**Configure the extension:**
<CLIExtensionInstructions
name="Cognee"
description="Knowledge graph memory capabilities with 30+ data source connections"
command="uv --directory /path/to/cognee-mcp run python src/server.py"
envVars={[
{ key: "LLM_API_KEY", value: "▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪" }
]}
commandNote={
<>
Replace <code>/path/to/cognee-mcp</code> with the actual path to your cloned cognee-mcp directory.
</>
}
infoNote={
<>
Obtain an API key for your LLM provider and paste it in. By default, this is an <a href="https://platform.openai.com/api-keys" target="_blank" rel="noopener noreferrer">OpenAI API key</a>.
</>
}
/>
</TabItem>
</Tabs>
:::info
See the [Cognee MCP documentation](https://docs.cognee.ai/how-to-guides/deployment/mcp) for supported configuration options.
:::
## Example Usage
Cognee provides knowledge graph memory capabilities for goose, allowing it to remember and connect information across conversations and documents.
### goose Prompt
> _goose, please cognify this information: "I prefer Python for data analysis and use pandas extensively. My current project involves analyzing customer behavior data." Then search for information about my programming preferences._
### goose Output
:::note CLI
<details>
<summary>Tool Calls</summary>
─── cognee_cognify | abcdefgh ──────────────────────────
data: I prefer Python for data analysis and use pandas extensively. My current project involves analyzing customer behavior data.
─── cognee_search | abcdefgh ──────────────────────────
search_query: programming preferences Python data analysis
search_type: GRAPH_COMPLETION
</details>
I'll help you store that information in the knowledge graph and then search for your programming preferences.
First, let me cognify the information about your preferences:
**Cognify Status:**
Background process launched due to MCP timeout limitations. The information about your Python and pandas preferences for data analysis has been added to the knowledge graph.
Now let me search for information about your programming preferences:
**Search Results:**
Based on the knowledge graph, I found information about your programming preferences:
- **Language Preference**: You prefer Python for data analysis
- **Key Libraries**: You use pandas extensively for data manipulation
- **Current Focus**: Your current project involves analyzing customer behavior data
- **Domain**: Data science and analytics workflows
- **Technical Stack**: Python + pandas for data analysis tasks
The knowledge graph has successfully stored and can now retrieve your programming preferences and project context for future conversations.
:::
@@ -44,9 +44,6 @@ You'll need [Docker](https://www.docker.com/) installed on your system. If you w
description="Run container automation with container-use"
command="npx"
args={["-y", "mcp-remote", "https://container-use.com/mcp"]}
cliCommand="npx -y mcp-remote https://container-use.com/mcp"
timeout={300}
note="Requires Node.js and Docker installed; see [container-use.com/quickstart](https://container-use.com/quickstart)."
/>
</TabItem>
<TabItem value="cli" label="goose CLI">
@@ -70,9 +67,6 @@ You'll need [Docker](https://www.docker.com/) installed on your system. If you w
description="Run container automation with container-use"
command="container-use"
args={["stdio"]}
cliCommand="container-use stdio"
timeout={300}
note="Requires Docker installed; see [container-use.com/quickstart](https://container-use.com/quickstart)."
/>
</TabItem>
<TabItem value="cli" label="goose CLI">
-2
View File
@@ -43,8 +43,6 @@ Note that you'll need [Node.js](https://nodejs.org/) installed on your system to
description="Context7 MCP server for up-to-date code and docs"
command="npx"
args={["-y", "@upstash/context7-mcp"]}
cliCommand="npx -y @upstash/context7-mcp"
timeout={300}
/>
</TabItem>
<TabItem value="cli" label="goose CLI">
-2
View File
@@ -68,7 +68,6 @@ Note that you'll need [uv](https://docs.astral.sh/uv/#installation) installed on
type="stdio"
command="uvx"
args={["mcp-server-datahub@latest"]}
timeout={300}
envVars={[
{ name: "DATAHUB_GMS_URL", label: "DataHub GMS URL (e.g., https://your-instance.acryl.io or http://localhost:8080)" },
{ name: "DATAHUB_GMS_TOKEN", label: "DataHub Personal Access Token" }
@@ -255,4 +254,3 @@ If `uvx` is not found:
1. Ensure `uv` is installed: `curl -LsSf https://astral.sh/uv/install.sh | sh`
2. Restart your terminal or source your shell configuration
3. Verify installation: `which uvx`
+1 -1
View File
@@ -20,7 +20,7 @@ This tutorial covers how to add the [Dev.to MCP Server](https://github.com/nicky
[Launch the installer](goose://extension?type=streamable_http&url=http%3A%2F%2Flocalhost%3A3000%2Fmcp&id=dev-to&name=Dev.to&description=Access%20Dev.to%20articles%20and%20content)
</TabItem>
<TabItem value="cli" label="goose CLI">
Use `goose configure` to add a `Remote Extension (Streaming HTTP)` extension type with:
Use `goose configure` to add a `Remote Extension (Streamable HTTP)` extension type with:
**Endpoint URL**
+6 -4
View File
@@ -184,10 +184,12 @@ The Developer extension provides these tools:
| Tool | Description | Use Cases | Risk Level |
|------|-------------|-----------|------------|
| `shell` | Execute shell commands | Running tests, installing packages, git operations | ⚠️ High<br />Can run any system command with your user privileges |
| `text_editor` | Read, write, and edit files | Code refactoring, creating files, updating configs | ⚠️ High<br />Can modify any accessible file |
| `analyze` | Analyze code structure | Understanding codebase, finding dependencies | ✅ Low<br />Read-only code analysis |
| `screen_capture` | Take screenshots | Debugging UI issues, documenting state | ✅ Low<br />Visual information only |
| `image_processor` | Process and resize images | Optimizing assets, format conversion | ✅ Low<br />Image manipulation only |
| `write` | Create or overwrite files | Creating files, updating generated assets, writing configs | ⚠️ High<br />Can modify any accessible file |
| `edit` | Replace exact text in files | Code refactoring, targeted edits, deleting matched text | ⚠️ High<br />Can modify any accessible file |
| `tree` | List directory trees with line counts | Understanding project structure before reading files | ✅ Low<br />Read-only file listing |
| `read_image` | Read a local or remote image for model inspection | Inspecting screenshots, diagrams, and visual assets | ✅ Low<br />Read-only image access |
For code structure analysis, use the separate [Analyze platform extension](/docs/guides/codebase-analysis).
### Access Control Features
+3 -3
View File
@@ -17,7 +17,7 @@ This tutorial covers how to add the [ElevenLabs MCP Server](https://github.com/e
:::tip Quick Install
<Tabs groupId="interface">
<TabItem value="ui" label="goose Desktop" default>
[Launch the installer](goose://extension?cmd=uvx&arg=elevenlabs-mcp&id=elevenlabs&name=ElevenLabs&description=ElevenLabs%20voice%20synthesis%20server&env=ELEVENLABS_API_KEY)
[Launch the installer](goose://extension?cmd=uvx&arg=elevenlabs-mcp&id=elevenlabs-mcp&name=ElevenLabs&description=ElevenLabs%20voice%20synthesis%20server&env=ELEVENLABS_API_KEY)
</TabItem>
<TabItem value="cli" label="goose CLI">
**Command**
@@ -42,7 +42,7 @@ Note that you'll need [uv](https://docs.astral.sh/uv/#installation) installed on
<Tabs groupId="interface">
<TabItem value="ui" label="goose Desktop" default>
<GooseDesktopInstaller
extensionId="elevenlabs"
extensionId="elevenlabs-mcp"
extensionName="ElevenLabs"
description="ElevenLabs voice synthesis server"
command="uvx"
@@ -128,4 +128,4 @@ Press play and hear it for yourself! 🔊
Your browser does not support the audio element.
</audio>
:::
:::
+1 -2
View File
@@ -19,7 +19,7 @@ This tutorial covers how to add the [Excalidraw MCP App](https://github.com/exca
[Launch the installer](goose://extension?cmd=http&id=excalidraw&name=Excalidraw&url=https%3A%2F%2Fexcalidraw-mcp-app.vercel.app%2Fmcp&description=Excalidraw%20MCP%20App%20for%20AI-powered%20diagramming)
</TabItem>
<TabItem value="cli" label="goose CLI">
Add a `Remote Extension (Streaming HTTP)` extension type with:
Add a `Remote Extension (Streamable HTTP)` extension type with:
**Endpoint URL**
```
@@ -75,4 +75,3 @@ Hey Goose review my video automation recipe and create a visual of the automatio
```
![excalidraw image](/img/excalidrawImage.png)
+2 -2
View File
@@ -22,7 +22,7 @@ The MCP Server requires a Dev or Full seat on Professional, Organization, or Ent
[Launch the installer](goose://extension?type=streamable_http&url=http%3A%2F%2F127.0.0.1%3A3845%2Fmcp&id=figma&name=Figma&description=Convert%20Figma%20designs%20into%20code%20and%20extract%20design%20context)
</TabItem>
<TabItem value="cli" label="goose CLI">
Use `goose configure` to add a `Remote Extension (Streaming HTTP)` extension type with:
Use `goose configure` to add a `Remote Extension (Streamable HTTP)` extension type with:
**Endpoint URL**
@@ -162,4 +162,4 @@ export default function Component2() {
The component maintains the exact visual hierarchy and styling from your Figma design while being fully responsive and ready to integrate into a React application with Tailwind CSS.
:::
:::
+4 -4
View File
@@ -16,10 +16,10 @@ This tutorial covers how to add the [GitHub MCP Server](https://github.com/githu
:::tip Quick Install
<Tabs groupId="interface">
<TabItem value="ui" label="goose Desktop" default>
[Launch the installer](goose://extension?type=streamable_http&url=https%3A%2F%2Fapi.githubcopilot.com%2Fmcp%2F&id=github&name=GitHub&description=GitHub%20repository%20management%20and%20operations&header=Authorization%3DBearer%20YOUR_GITHUB_PERSONAL_ACCESS_TOKEN)
[Launch the installer](goose://extension?type=streamable_http&url=https%3A%2F%2Fapi.githubcopilot.com%2Fmcp%2F&id=github-mcp&name=GitHub&description=GitHub%20repository%20management%20and%20operations&header=Authorization%3DBearer%20YOUR_GITHUB_PERSONAL_ACCESS_TOKEN)
</TabItem>
<TabItem value="cli" label="goose CLI">
Add a `Remote Extension (Streaming HTTP)` extension type with:
Add a `Remote Extension (Streamable HTTP)` extension type with:
**Endpoint URL**
```
@@ -40,7 +40,7 @@ These steps configure the Remote MCP Server. For other deployment options, see t
<Tabs groupId="interface">
<TabItem value="ui" label="goose Desktop" default>
<GooseDesktopInstaller
extensionId="github"
extensionId="github-mcp"
extensionName="GitHub"
description="GitHub repository management and operations"
type="http"
@@ -135,4 +135,4 @@ Great! I've completed all the requested tasks:
You can view the pull request at: https://github.com/angiejones/goose-demo/pull/1
The pull request is now ready for your review. Would you like me to do anything else with it?
```
```
+3 -6
View File
@@ -34,14 +34,11 @@ This tutorial covers how to add the [Git MCP Server](https://github.com/idosal/g
<Tabs groupId="interface">
<TabItem value="ui" label="goose Desktop" default>
<GooseDesktopInstaller
extensionId="Git-mcp"
extensionName="Git mcp"
extensionId="gitmcp"
extensionName="GitMCP"
description="Git MCP server for up-to-date docs and project insights"
command="npx"
args={["-y", "mcp-remote" , "https://gitmcp.io/docs"]}
cliCommand="npx -y mcp-remote https://gitmcp.io/docs"
timeout={300}
note="Note that you'll need Node.js installed on your system to run this command, as it uses npx."
/>
</TabItem>
<TabItem value="cli" label="goose CLI">
@@ -175,4 +172,4 @@ Models are cached locally, so subsequent runs are much faster.
Whisper is released under the **MIT License**, making it free to use for both personal and commercial projects.
:::
:::
+1 -4
View File
@@ -36,9 +36,6 @@ This tutorial covers how to add the [goose Docs MCP Server](https://github.com/i
description="GitMCP for goose documentation"
command="npx"
args={["mcp-remote", "https://block.gitmcp.io/goose/"]}
cliCommand="npx mcp-remote https://block.gitmcp.io/goose/"
timeout={300}
note="Note that you'll need Node.js installed on your system to run this command, as it uses npx."
/>
</TabItem>
<TabItem value="cli" label="goose CLI">
@@ -554,4 +551,4 @@ response:
```
</details>
</details>
-93
View File
@@ -1,93 +0,0 @@
---
title: I Ching Extension
description: Add I Ching MCP Server as a goose Extension
---
This tutorial covers how to add the [I Ching MCP Server](https://github.com/threemachines/i-ching) as a goose extension to enable traditional I Ching divination readings.
:::tip Quick Install
1. Install: `cargo install i-ching`
2. Configure: [Add I Ching Extension](goose://extension?cmd=i-ching-mcp-server&id=i-ching&name=I%20Ching&description=I%20Ching%20divination%20readings)
:::
## Installation
This extension requires Rust 1.85.1 or later. Check your version:
```bash
rustc --version
```
If you need to install or update Rust, visit [rustup.rs](https://rustup.rs/).
:::tip Use goose to Help!
If you're unsure about any of these steps, you can ask goose to help you check your system and guide you through the Rust installation process.
:::
Once Rust is ready, install the I Ching crate from crates.io:
```bash
cargo install i-ching
```
Then click the link above to configure it in goose.
## Example Usage
### goose Prompt
> Our team is facing a challenging decision about our product roadmap. Could you consult the I Ching for some perspective on how to approach this choice?
### goose Output
:::note Desktop
I'd be happy to consult the I Ching for guidance on your team's product roadmap decision. Let me cast a hexagram for you using the traditional three coins method.
─── cast_hexagram | iching ──────────────────────────
Now let me get a detailed interpretation of this reading for your situation:
─── interpret_reading | iching ─────────────────────────
changing_lines:
&#45;
5
hexagram: 29
transformed_hexagram: 13
#### I Ching Guidance for Your Product Roadmap Decision
The oracle has given you **Hexagram 29 - Darkness (The Abysmal)** with a changing line in the 5th position, transforming to **Hexagram 13 - Seeking Harmony (Fellowship with Men)**.
**Key Insights for Your Team's Situation:**
**Current Challenge (Hexagram 29):**
- Your team is facing what the I Ching recognizes as a "repetition of danger" - this suggests you're in a challenging situation that requires careful navigation
- Like water in a ravine, you need to find the natural path forward rather than forcing your way through
- The emphasis is on **sincerity and thoroughness** - whatever decision you make, commit to it fully and execute it properly
**Strategic Approach:**
1. **Flow Like Water**: Don't try to overcome obstacles through force. Instead, find the path of least resistance that still moves you toward your goal
2. **Fill Every Depression**: Address all the foundational issues before moving forward. Don't skip steps or leave gaps in your planning
3. **Consistency Over Ambition**: The changing line warns against being "too ambitious." Focus on steady, sustainable progress rather than dramatic leaps
**The Transformation (Hexagram 13):**
The situation naturally evolves toward **Fellowship with Men** - suggesting that the key to resolving your roadmap challenge lies in:
- **Building consensus** among team members
- **Open collaboration** rather than closed-door decisions
- **Crossing the great water** - taking on significant challenges, but doing so together
**Practical Recommendations:**
1. **Acknowledge the Difficulty**: Don't minimize the complexity of your roadmap decision. Accept that it's genuinely challenging.
2. **Seek Team Alignment**: The transformation to "Fellowship" suggests your answer lies in bringing the team together rather than having leadership decide alone.
3. **Take the Conservative Path**: The 5th line specifically advises against overambition. Choose the roadmap option that gets you "out of danger" rather than the most aggressive one.
4. **Focus on Execution**: Once you decide, commit fully. The hexagram emphasizes that success comes from thorough implementation, not perfect strategy.
The I Ching suggests this challenging decision will ultimately strengthen your team's unity and collaboration if approached with patience, sincerity, and collective wisdom.
:::
+1 -1
View File
@@ -24,7 +24,7 @@ This tutorial covers how to add the [Kiwi Flight Search MCP Server](https://mcp.
Use `Add custom extension` in Settings → Extensions to add a `Streamable HTTP` extension type with:
</TabItem>
<TabItem value="cli" label="goose CLI">
Use `goose configure` to add a `Remote Extension (Streaming HTTP)` extension type with:
Use `goose configure` to add a `Remote Extension (Streamable HTTP)` extension type with:
</TabItem>
</Tabs>
+120 -122
View File
@@ -60,174 +60,172 @@ In this example, I'll show you how goose can become an intelligent security revi
This means goose doesn't just spot issues - it understands how vulnerabilities connect to real world impacts and can suggest comprehensive solutions.
### Step 1: Teach goose About Security Patterns
#### goose Prompt #1
```
goose, learn these security vulnerability patterns and their relationships:
1. SQL Injection relates to:
#### goose Prompt #1
- Unvalidated database inputs
- Data theft risks
- Parameterized query solutions
2. XSS Vulnerabilities connect to:
```text
goose, learn these security vulnerability patterns and their relationships:
- Unescaped user output
- Session hijacking risks
- Content sanitization fixes
3.Authentication Weaknesses link to:
1. SQL Injection relates to:
- Session management
- Account compromise
- JWT-based solutions
```
- Unvalidated database inputs
- Data theft risks
- Parameterized query solutions
#### goose Output
2. XSS Vulnerabilities connect to:
```
I'll store this security knowledge in the Knowledge Graph Memory with proper entities and relationships
- Unescaped user output
- Session hijacking risks
- Content sanitization fixes
[.... Create Entities .....]
3. Authentication Weaknesses link to:
Now, let's create the relationships between these security concepts:
- Session management
- Account compromise
- JWT-based solutions
```
[.... Create Relations .....]
#### goose Output
Let me verify what's been stored:
```text
I'll store this security knowledge in the Knowledge Graph Memory with proper entities and relationships
[... Read Graph ...]
[.... Create Entities .....]
I've now stored your security knowledge in the graph with:
Now, let's create the relationships between these security concepts:
1. Vulnerability Entities:
[.... Create Relations .....]
- SQL Injection (with observations about unvalidated inputs and data theft)
- XSS Vulnerabilities (with observations about unescaped output and session risks)
- Authentication Weaknesses (with observations about session management)
2. Solution Entities:
Let me verify what's been stored:
- Parameterized Queries
- Content Sanitization
- JWT Authentication
3. Connected Relationships:
[... Read Graph ...]
- Vulnerabilities → their potential impacts
- Solutions → the vulnerabilities they mitigate
The knowledge is now structured in a way that I can:
I've now stored your security knowledge in the graph with:
1. Vulnerability Entities:
- SQL Injection (with observations about unvalidated inputs and data theft)
- XSS Vulnerabilities (with observations about unescaped output and session risks)
- Authentication Weaknesses (with observations about session management)
2. Solution Entities:
- Parameterized Queries
- Content Sanitization
- JWT Authentication
3. Connected Relationships:
- Vulnerabilities -> their potential impacts
- Solutions -> the vulnerabilities they mitigate
The knowledge is now structured in a way that I can:
- Trace vulnerability impact chains
- Identify appropriate solutions for each vulnerability
- Understand how different security issues are related
```
- Trace vulnerability impact chains
- Identify appropriate solutions for each vulnerability
- Understand how different security issues are related
```
### Step 2: Use Connected Knowledge for Code Review
#### goose Prompt # 2
```
Review this API endpoint for security issues:
```
```js
app.post('/api/login', (req, res) => {
const { username, password } = req.body;
const query = `SELECT * FROM users WHERE username = '${username}'`;
db.query(query, (err, result) => {
if (err) throw err;
if (result.length > 0) {
#### goose Prompt #2
Review this API endpoint for security issues:
```js
app.post('/api/login', (req, res) => {
const { username, password } = req.body;
const query = `SELECT * FROM users WHERE username = '${username}'`;
db.query(query, (err, result) => {
if (err) throw err;
if (result.length > 0) {
res.cookie('user', username);
res.json({ success: true });
}
});
}
});
```
#### goose Output
```
I'll analyze this code using our connected knowledge graph to trace security vulnerabilities and their implications:
});
```
[.... Search Nodes ... Open Nodes ...]
#### goose Output
Based on our knowledge graph analysis, I've found multiple critical security issues:
```text
I'll analyze this code using our connected knowledge graph to trace security vulnerabilities and their implications:
1. SQL Injection Vulnerability:
- Issue: Using string concatenation in query WHERE username = '${username}'
- Impact Chain: SQL Injection → Data Theft
- Risk Level: Critical
- Solution (from parameterized_queries): Use parameterized queries instead
2. Authentication Weakness:
- Issue: Using basic cookie-based session res.cookie('user', username)
- Impact Chain: Auth Weakness → Account Compromise
- Risk Level: High
- Solution (from jwt_auth): Implement JWT with proper expiration
```
[.... Search Nodes ... Open Nodes ...]
```js
Here's the secure implementation based on our stored patterns:
Based on our knowledge graph analysis, I've found multiple critical security issues:
app.post('/api/login', async (req, res) => {
try {
// Input validation
if (!req.body.username || !req.body.password) {
1. SQL Injection Vulnerability:
- Issue: Using string concatenation in query WHERE username = '${username}'
- Impact Chain: SQL Injection -> Data Theft
- Risk Level: Critical
- Solution (from parameterized_queries): Use parameterized queries instead
2. Authentication Weakness:
- Issue: Using basic cookie-based session res.cookie('user', username)
- Impact Chain: Auth Weakness -> Account Compromise
- Risk Level: High
- Solution (from jwt_auth): Implement JWT with proper expiration
```
Here's the secure implementation based on our stored patterns:
```js
app.post('/api/login', async (req, res) => {
try {
if (!req.body.username || !req.body.password) {
return res.status(400).json({
success: false,
error: 'Username and password required'
});
}
}
// Parameterized query (prevents SQL injection)
const query = 'SELECT * FROM users WHERE username = ?';
const result = await db.query(query, [req.body.username]);
const query = 'SELECT * FROM users WHERE username = ?';
const result = await db.query(query, [req.body.username]);
if (!result.length) {
if (!result.length) {
return res.status(401).json({
success: false,
error: 'Invalid credentials'
});
}
}
// Password verification would go here
// const validPassword = await bcrypt.compare(req.body.password, result[0].password);
// JWT-based session management (prevents session hijacking)
const token = jwt.sign(
const token = jwt.sign(
{ userId: result[0].id },
process.env.JWT_SECRET,
{ expiresIn: '1h' }
);
);
res.json({
res.json({
success: true,
token: token
});
} catch (error) {
res.status(500).json({
});
} catch (error) {
res.status(500).json({
success: false,
error: 'Internal server error'
});
}
});
```
```
The fixes address the vulnerability chains our knowledge graph identified:
});
}
});
```
1. SQL Injection → Data Theft: Mitigated by parameterized queries
2. Auth Weakness → Account Compromise: Mitigated by JWT implementation
Additional security improvements based on connected patterns:
```text
The fixes address the vulnerability chains our knowledge graph identified:
- Added input validation
- Proper error handling
- No exposure of internal errors
- Token-based instead of cookie-based auth
- Expiration time on authentication
Would you like me to:
1. SQL Injection -> Data Theft: Mitigated by parameterized queries
2. Auth Weakness -> Account Compromise: Mitigated by JWT implementation
1. Explain any of these security relationships in more detail?
2. Show how to implement additional security patterns?
3. Analyze another endpoint?
```
Additional security improvements based on connected patterns:
- Added input validation
- Proper error handling
- No exposure of internal errors
- Token-based instead of cookie-based auth
- Expiration time on authentication
Would you like me to:
1. Explain any of these security relationships in more detail?
2. Show how to implement additional security patterns?
3. Analyze another endpoint?
```
@@ -44,7 +44,6 @@ Note that you'll need [uv](https://docs.astral.sh/uv/#installation) installed on
type="stdio"
command="uvx"
args={["linux-mcp-server"]}
timeout={300}
/>
@@ -78,4 +77,4 @@ Follow the instructions on how to use the Linux MCP Server for system diagnostic
🤖 LLM output 🤖
I’ll help you diagnose your WiFi connectivity issues by examining the system logs for error messages related to your network interfaces and wireless connectivity. Let me start by gathering information about your system and checking the relevant logs.
:::
:::
-98
View File
@@ -1,98 +0,0 @@
---
title: mbot Extension
description: Control a MakeBlock mbot2 rover through MQTT and MCP as a goose Extension
---
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import YouTubeShortEmbed from '@site/src/components/YouTubeShortEmbed';
import GooseDesktopInstaller from '@site/src/components/GooseDesktopInstaller';
import CLIExtensionInstructions from '@site/src/components/CLIExtensionInstructions';
<YouTubeShortEmbed videoUrl="https://www.youtube.com/embed/QKg2Q6YCzdw" />
This tutorial will get you started with [deemkeen's MQTT MCP server](https://github.com/deemkeen/mbotmcp) for the [MakeBlock mbot2 rover](https://www.makeblock.com/products/buy-mbot2), and outline some code changes we made along the way.
:::tip Quick Install
**Command**
```sh
/path/to/java -jar /path/to/mbotmcp-0.0.1-SNAPSHOT.jar
```
**Environment Variables**
```
MQTT_SERVER_URI: tcp://1.2.3.4:1883
MQTT_PASSWORD: <string or blank>
MQTT_USERNAME: <string or blank>
```
:::
## Configuration
<Tabs groupId="interface">
<TabItem value="cli" label="goose CLI">
<CLIExtensionInstructions
name="mbot2"
description="Control a MakeBlock mbot2 rover through MQTT and MCP"
command="/path/to/java -jar /path/to/mbotmcp-0.0.1-SNAPSHOT.jar"
envVars={[
{ key: "MQTT_SERVER_URI", value: "▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪" },
{ key: "MQTT_USERNAME", value: "▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪" },
{ key: "MQTT_PASSWORD", value: "▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪" }
]}
commandNote={
<>
Replace <code>/path/to/java</code> and <code>/path/to/mbotmcp-0.0.1-SNAPSHOT.jar</code> with your actual Java installation and JAR file paths.
</>
}
infoNote={
<>
MQTT_SERVER_URI has a value like <code>tcp://1.2.3.4:1883</code>. MQTT_USERNAME and MQTT_PASSWORD are required to exist, but can be empty strings if your MQTT server does not require authentication.
</>
}
/>
</TabItem>
</Tabs>
## Example Usage
The available commands allow you to drive the mbot2 rover around, including:
- "turn left" or "turn right""
- drive "forward" or "backward"
- "explore" randomly
- "stop" exploring
- "beep"
The default distance to travel is 70cm (about 27 inches), and the turn angles are set to 90 degrees. You can change these values in the [Python code on the mbot2](https://github.com/deemkeen/mbotmcp/blob/main/assets/mbot-mqtt.py). The mbot2 has a lot of other capabilities with the proximity sensors, lights, and color detection sensor on the bottom of the unit that you can add to the Python code, and will need to update [the Java code](https://github.com/deemkeen/mbotmcp/blob/main/src/main/java/de/emkeen/mbotmcp/service/BotService.java) to include those commands via MCP.
#### goose Interaction
```
( O)> Let my mbot2 explore the area
Okay, let's get the mbot2 rover moving. I will send it on a mission to explore the area.
> Mbotexplore
( O)> stop the rover, turn left and move forward
Alright, I will stop the rover, turn to the left, and then move it forward.
> Mbotstop
> Mbotleft
> Mbotforward
( O)> let's move backward and beep so I know when it's finished
Sure, I will move the rover backward and beep when it's done.
> Mbotbackward
> Mbotbeep
Okay, the mbot2 has moved and beeped. What else would you like to do with the rover?
```
+5 -5
View File
@@ -13,12 +13,12 @@ The [MongoDB MCP Server](https://github.com/mongodb-js/mongodb-mcp-server) exten
:::tip Quick Install
<Tabs groupId="interface">
<TabItem value="ui" label="goose Desktop" default>
[Launch the installer](goose://extension?cmd=npx&arg=-y&arg=mongodb-mcp-server&arg=--connection-string&arg=mongodb://localhost:27017&id=mongodb&name=MongoDB&description=MongoDB%20database%20integration)
[Launch the installer](goose://extension?cmd=npx&arg=-y&arg=mongodb-mcp-server&arg=--connectionString&arg=mongodb://localhost:27017&id=mongodb&name=MongoDB&description=MongoDB%20database%20integration)
</TabItem>
<TabItem value="cli" label="goose CLI">
**Command**
```sh
npx -y mongodb-mcp-server --connection-string mongodb://localhost:27017
npx -y mongodb-mcp-server --connectionString mongodb://localhost:27017
```
</TabItem>
</Tabs>
@@ -26,7 +26,7 @@ The [MongoDB MCP Server](https://github.com/mongodb-js/mongodb-mcp-server) exten
## Customizing Your Connection
The MongoDB MCP server connects to a single MongoDB database instance using a connection string. The connection string must be specified using the `--connection-string` flag. We're using `mongodb://localhost:27017` as an example here to access a local MongoDB instance, but you can configure this for your own environment.
The MongoDB MCP server connects to a single MongoDB database instance using a connection string. The connection string must be specified using the `--connectionString` flag. We're using `mongodb://localhost:27017` as an example here to access a local MongoDB instance, but you can configure this for your own environment.
The MongoDB connection string follows this format:
```
@@ -62,7 +62,7 @@ Note that you'll need [Node.js](https://nodejs.org/) installed on your system to
extensionName="MongoDB"
description="MongoDB database integration"
command="npx"
args={["-y", "mongodb-mcp-server", "--connection-string", "mongodb://localhost:27017"]}
args={["-y", "mongodb-mcp-server", "--connectionString", "mongodb://localhost:27017"]}
/>
:::info Configure Your Connection String
@@ -74,7 +74,7 @@ Note that you'll need [Node.js](https://nodejs.org/) installed on your system to
<CLIExtensionInstructions
name="MongoDB"
description="MongoDB database integration"
command="npx -y mongodb-mcp-server --connection-string mongodb://localhost:27017"
command="npx -y mongodb-mcp-server --connectionString mongodb://localhost:27017"
commandNote={
<>
Replace <code>mongodb://localhost:27017</code> with the actual MongoDB connection string that matches your <a href="#customizing-your-connection">MongoDB environment</a>.
+2 -2
View File
@@ -18,7 +18,7 @@ This tutorial covers how to add the [Nano Banana MCP Server](https://github.com/
:::tip Quick Install
<Tabs groupId="interface">
<TabItem value="ui" label="goose Desktop" default>
[Launch the installer](goose://extension?cmd=npx&arg=nano-banana-mcp&id=nano-banana&name=Nano%20Banana&description=Image%20generation%20with%20Gemini)
[Launch the installer](goose://extension?cmd=npx&arg=nano-banana-mcp&id=nano-banana-mcp&name=Nano%20Banana&description=Image%20generation%20with%20Gemini)
</TabItem>
<TabItem value="cli" label="goose CLI">
**Command**
@@ -42,7 +42,7 @@ Note that you'll need [Node.js](https://nodejs.org/) installed on your system to
<Tabs groupId="interface">
<TabItem value="ui" label="goose Desktop" default>
<GooseDesktopInstaller
extensionId="nano-banana"
extensionId="nano-banana-mcp"
extensionName="Nano Banana"
description="Image generation with Gemini"
type="stdio"
+1 -1
View File
@@ -30,7 +30,7 @@ The Neon MCP Server grants powerful database management capabilities and is inte
[Launch the installer](goose://extension?type=streamable_http&url=https%3A%2F%2Fmcp.neon.tech%2Fmcp&id=neon&name=Neon&description=Manage%20Neon%20Postgres%20databases%2C%20projects%2C%20and%20branches)
</TabItem>
<TabItem value="cli" label="goose CLI">
Use `goose configure` to add a `Remote Extension (Streaming HTTP)` extension type with:
Use `goose configure` to add a `Remote Extension (Streamable HTTP)` extension type with:
**Endpoint URL**
```
+4 -3
View File
@@ -16,7 +16,7 @@ This tutorial covers how to add the [Netlify MCP Server](https://github.com/netl
:::tip Quick Install
<Tabs groupId="interface">
<TabItem value="ui" label="goose Desktop" default>
[Launch the installer](goose://extension?cmd=npx&arg=-y&arg=%40netlify%2Fmcp&id=netlify&name=Netlify&description=Build%2C%20deploy%2C%20and%20manage%20sites%20with%20Netlify%27s%20official%20MCP%20server.)
[Launch the installer](goose://extension?cmd=npx&arg=-y&arg=%40netlify%2Fmcp&id=netlify-mcp&name=Netlify&description=Build%2C%20deploy%2C%20and%20manage%20sites%20with%20Netlify%27s%20official%20MCP%20server.)
</TabItem>
<TabItem value="cli" label="goose CLI">
**Command**
@@ -44,7 +44,7 @@ Note that you'll need [Node.js](https://nodejs.org/) installed on your system to
<Tabs groupId="interface">
<TabItem value="ui" label="goose Desktop" default>
<GooseDesktopInstaller
extensionId="netlify"
extensionId="netlify-mcp"
extensionName="Netlify"
description="Build, deploy, and manage sites with Netlify's official MCP server."
command="npx"
@@ -119,6 +119,7 @@ In this example, I’ll show you how to use goose with the Netlify Extension to
&nbsp;&nbsp;&nbsp;&nbsp;params:<br/>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;siteId: 1731e49e-1d0a-49a3-ad95-975b550f324a
</details>
:::
🎉 **Success! Your tic-tac-toe game has been deployed to Netlify!**
@@ -156,4 +157,4 @@ Since your code is deployed from your local directory, if you want to make chang
Would you like me to help you set up continuous deployment from your GitHub repository so that future changes are automatically deployed?
Your tic-tac-toe game is now live and ready to play! 🎮
Your tic-tac-toe game is now live and ready to play! 🎮
+4 -5
View File
@@ -15,7 +15,7 @@ This tutorial covers how to add the [Nostrbook MCP Server](https://gitlab.com/so
:::tip Quick Install
<Tabs groupId="interface">
<TabItem value="ui" label="goose Desktop" default>
[Launch the installer](goose://extension?cmd=npx&arg=-y&arg=%40nostrbook%2Fmcp&id=nostrbook&name=Nostrbook&description=A%20comprehensive%20registry%20of%20Nostr%20documentation%20with%20structured%20knowledge)
[Launch the installer](goose://extension?cmd=npx&arg=-y&arg=%40nostrbook%2Fmcp%40latest&id=nostrbook-mcp&name=NostrBook&description=A%20comprehensive%20registry%20of%20Nostr%20documentation%20with%20structured%20knowledge)
</TabItem>
<TabItem value="cli" label="goose CLI">
**Command**
@@ -36,11 +36,11 @@ Note that you'll need [Node.js](https://nodejs.org/) installed on your system to
<Tabs groupId="interface">
<TabItem value="ui" label="goose Desktop" default>
<GooseDesktopInstaller
extensionId="nostrbook"
extensionId="nostrbook-mcp"
extensionName="Nostrbook"
description="A comprehensive registry of Nostr documentation with structured knowledge"
command="npx"
args={["-y", "@nostrbook/mcp"]}
args={["-y", "@nostrbook/mcp@latest"]}
/>
</TabItem>
<TabItem value="cli" label="goose CLI">
@@ -75,7 +75,6 @@ Note that IDs have been changed to generic ones
</details>
# NIP-61: Implementing Nutzaps
NIP-61 defines "Nutzaps," which are P2PK Cashu tokens where the payment itself acts as the receipt. This protocol allows for Bitcoin micropayments through the Nostr ecosystem using Cashu tokens.
@@ -212,4 +211,4 @@ When testing your implementation:
By following these steps, you can implement a complete nutzap solution that allows users to send and receive Bitcoin micropayments through the Nostr protocol using Cashu tokens.
:::
:::
+3 -3
View File
@@ -18,7 +18,7 @@ This tutorial covers how to add the [Reddit MCP Server](https://github.com/adhik
:::tip Quick Install
<Tabs groupId="interface">
<TabItem value="ui" label="goose Desktop" default>
[Launch the installer](goose://extension?cmd=uvx&arg=--from&arg=git%2Bhttps%3A%2F%2Fgithub.com%2Fadhikasp%2Fmcp-reddit.git&arg=mcp-reddit&id=reddit&name=Reddit&description=Fetch%20and%20analyze%20Reddit%20content)
[Launch the installer](goose://extension?cmd=uvx&arg=--from&arg=git%2Bhttps%3A%2F%2Fgithub.com%2Fadhikasp%2Fmcp-reddit.git&arg=mcp-reddit&id=reddit-mcp&name=Reddit&description=Fetch%20and%20analyze%20Reddit%20content)
</TabItem>
<TabItem value="cli" label="goose CLI">
**Command**
@@ -38,7 +38,7 @@ Note that you'll need [uv](https://docs.astral.sh/uv/#installation) installed on
<Tabs groupId="interface">
<TabItem value="ui" label="goose Desktop" default>
<GooseDesktopInstaller
extensionId="reddit"
extensionId="reddit-mcp"
extensionName="Reddit"
description="Fetch and analyze Reddit content"
command="uvx"
@@ -98,4 +98,4 @@ Let me know if you'd like to make any adjustments to:
Any other features!
Also, if you're having any issues viewing the page, please let me know and I'll help troubleshoot.
:::
:::
+3 -3
View File
@@ -15,10 +15,10 @@ This tutorial covers how to add the [Rendex MCP Server](https://github.com/coppe
:::tip Quick Install
<Tabs groupId="interface">
<TabItem value="ui" label="goose Desktop" default>
[Launch the installer](goose://extension?type=streamable_http&url=https%3A%2F%2Fmcp.rendex.dev%2Fmcp&id=rendex&name=Rendex&description=Capture%20screenshots%2C%20generate%20PDFs%2C%20and%20render%20HTML%20to%20images%20via%20AI%20agents&header=Authorization%3DBearer%20YOUR_RENDEX_API_KEY)
[Launch the installer](goose://extension?type=streamable_http&url=https%3A%2F%2Fmcp.rendex.dev%2Fmcp&id=rendex-mcp&name=Rendex&description=Capture%20screenshots%2C%20generate%20PDFs%2C%20and%20render%20HTML%20to%20images%20via%20AI%20agents&header=Authorization%3DBearer%20YOUR_RENDEX_API_KEY)
</TabItem>
<TabItem value="cli" label="goose CLI">
Add a `Remote Extension (Streaming HTTP)` extension type with:
Add a `Remote Extension (Streamable HTTP)` extension type with:
**Endpoint URL**
```
@@ -36,7 +36,7 @@ This tutorial covers how to add the [Rendex MCP Server](https://github.com/coppe
<Tabs groupId="interface">
<TabItem value="ui" label="goose Desktop" default>
<GooseDesktopInstaller
extensionId="rendex"
extensionId="rendex-mcp"
extensionName="Rendex"
description="Capture screenshots, generate PDFs, and render HTML to images via AI agents"
type="http"
+3 -3
View File
@@ -17,7 +17,7 @@ This tutorial covers how to add the [Repomix MCP Server](https://github.com/yama
:::tip Quick Install
<Tabs groupId="interface">
<TabItem value="ui" label="goose Desktop" default>
[Launch the installer](goose://extension?cmd=npx&arg=-y&arg=repomix&arg=--mcp&id=repomix&name=Repomix&description=Pack%20repositories%20into%20AI-friendly%20formats%20for%20goose)
[Launch the installer](goose://extension?cmd=npx&arg=-y&arg=repomix&arg=--mcp&id=repomix-mcp&name=Repomix&description=Pack%20repositories%20into%20AI-friendly%20formats%20for%20goose)
</TabItem>
<TabItem value="cli" label="goose CLI">
**Command**
@@ -37,7 +37,7 @@ Note that you'll need [Node.js](https://nodejs.org/) installed on your system to
<Tabs groupId="interface">
<TabItem value="ui" label="goose Desktop" default>
<GooseDesktopInstaller
extensionId="repomix"
extensionId="repomix-mcp"
extensionName="Repomix"
description="Pack repositories into AI-friendly formats for goose"
command="npx"
@@ -362,4 +362,4 @@ class InterceptorChain {
These improvements would make the code more maintainable and easier to test, while also improving error handling and separation of concerns.
The current test coverage is good but could be improved in these specific areas to ensure more robust functionality. The suggested new tests and refactoring opportunities would help catch edge cases and make the code more maintainable.
:::
:::
+5 -5
View File
@@ -7,17 +7,16 @@ import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import CLIExtensionInstructions from '@site/src/components/CLIExtensionInstructions';
import GooseDesktopInstaller from '@site/src/components/GooseDesktopInstaller';
import { PanelLeft } from 'lucide-react';
This tutorial covers how to add [Rube](https://rube.app) as a goose extension to enable seamless integration with 500+ apps including Slack, Gmail, Notion, Google Workspace, Microsoft Office, GitHub, and many more.
:::tip Quick Install
<Tabs groupId="interface">
<TabItem value="ui" label="goose Desktop" default>
[Launch the installer](goose://extension?type=streamable_http&url=https%3A%2F%2Frube.app%2Fmcp&id=rube&name=Rube&description=Seamlessly%20connect%20across%20500%2B%20applications%20including%20Slack%2C%20Gmail%2C%20Notion%2C%20Google%20Workspace%2C%20Microsoft%20Office%2C%20GitHub%2C%20and%20many%20more)
[Launch the installer](goose://extension?type=streamable_http&url=https%3A%2F%2Frube.app%2Fmcp&id=rube-mcp&name=Rube&description=Seamlessly%20connect%20across%20500%2B%20applications%20including%20Slack%2C%20Gmail%2C%20Notion%2C%20Google%20Workspace%2C%20Microsoft%20Office%2C%20GitHub%2C%20and%20many%20more)
</TabItem>
<TabItem value="cli" label="goose CLI">
Use `goose configure` to add a `Remote Extension (Streaming HTTP)` extension type with:
Use `goose configure` to add a `Remote Extension (Streamable HTTP)` extension type with:
**Endpoint URL**
```
@@ -25,6 +24,7 @@ This tutorial covers how to add [Rube](https://rube.app) as a goose extension to
```
</TabItem>
</Tabs>
:::
:::info OAUTH FLOW
An OAuth window will open in your browser. Follow the prompts to authorize access to your Rube account.
@@ -39,7 +39,7 @@ Rube is a platform powered by Composio that provides unified access to 500+ apps
<Tabs groupId="interface">
<TabItem value="ui" label="goose Desktop" default>
<GooseDesktopInstaller
extensionId="rube"
extensionId="rube-mcp"
extensionName="Rube"
description="Seamlessly connect across 500+ applications including Slack, Gmail, Notion, Google Workspace, Microsoft Office, GitHub, and many more"
type="http"
@@ -108,4 +108,4 @@ The first time you use tools for a specific service, you'll be prompted to authe
## Getting Help
- Visit [rube.app](https://rube.app) for documentation and support for integration-specific questions
- Check the Rube status page for any service interruptions
- Check the Rube status page for any service interruptions
@@ -40,7 +40,6 @@ You'll need [Node.js](https://nodejs.org/) installed (the command uses `npx`). *
type="stdio"
command="npx"
args={["-y", "scholar-sidekick-mcp@latest"]}
timeout={300}
/>
</TabItem>
<TabItem value="cli" label="goose CLI">
-3
View File
@@ -4,8 +4,6 @@ description: Add Speech MCP Server as a goose Extension
unlisted: true
---
Unlist per https://github.com/aaif-goose/goose/issues/5431
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import YouTubeShortEmbed from '@site/src/components/YouTubeShortEmbed';
@@ -253,4 +251,3 @@ I understand! In that case, I can help you use voice commands instead. I'll laun
style={{ position: "absolute", top: 0, left: 0, width: "100%", height: "100%" }}
></iframe>
</div>
+2 -3
View File
@@ -78,7 +78,7 @@ Note that you'll need [Node.js](https://nodejs.org/) installed on your system to
:::tip Quick Install
<Tabs groupId="interface">
<TabItem value="ui" label="goose Desktop" default>
[Launch the installer](goose://extension?cmd=npx&arg=square-mcp-server&arg=start&id=mcp_square_api&name=Square%20MCP%20Server&description=Square%20API%20MCP%20Server&env=ACCESS_TOKEN%3DYour%20Access%20Token&env=SANDBOX%3Dtrue)
[Launch the installer](goose://extension?cmd=npx&arg=square-mcp-server&arg=start&id=square-mcp&name=Square%20MCP%20Server&description=Square%20API%20MCP%20Server&env=ACCESS_TOKEN%3DYour%20Access%20Token&env=SANDBOX%3Dtrue)
</TabItem>
<TabItem value="cli" label="goose CLI">
@@ -101,7 +101,7 @@ Note that you'll need [Node.js](https://nodejs.org/) installed on your system to
<Tabs groupId="interface">
<TabItem value="ui" label="goose Desktop" default>
<GooseDesktopInstaller
extensionId="mcp_square_api"
extensionId="square-mcp"
extensionName="Square MCP Server"
description="Square API MCP Server"
command="npx"
@@ -183,4 +183,3 @@ Here's a summary of what was created:
All items are now available in your Square catalog and ready for use in your point of sale system. Each burger includes its complete description and comes with a "Regular" variation at the specified price. The items are set as both sellable and stockable by default, and they're available at all locations.
```
-127
View File
@@ -1,127 +0,0 @@
---
title: Sugar Extension
description: Add Sugar MCP Server as a goose Extension
---
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import CLIExtensionInstructions from '@site/src/components/CLIExtensionInstructions';
import GooseDesktopInstaller from '@site/src/components/GooseDesktopInstaller';
This tutorial covers how to add the [Sugar MCP Server](https://github.com/cdnsteve/sugar) as a goose extension to delegate development tasks to an autonomous AI system that runs in the background.
:::tip Quick Install
<Tabs groupId="interface">
<TabItem value="ui" label="goose Desktop" default>
[Launch the installer](goose://extension?cmd=npx&arg=-y&arg=sugarai-mcp&id=sugar&name=Sugar&description=Autonomous%20AI%20development%20system%20-%20delegate%20tasks%20and%20run%2024%2F7&env=SUGAR_PROJECT_ROOT%3DProject%20directory%20(optional%2C%20defaults%20to%20current))
When prompted, set `SUGAR_PROJECT_ROOT` to your project path.
</TabItem>
<TabItem value="cli" label="goose CLI">
**Command**
```sh
npx -y sugarai-mcp
```
Runs in your current directory by default.
</TabItem>
</Tabs>
:::
## Configuration
:::info
Note that you'll need [Node.js](https://nodejs.org/) installed on your system to run this command, as it uses `npx`.
:::
:::info
Sugar requires Python 3.11+ and the Sugar CLI installed in your project. Install with `pip install sugarai` and initialize with `sugar init`.
:::
<Tabs groupId="interface">
<TabItem value="ui" label="goose Desktop" default>
<GooseDesktopInstaller
extensionId="sugar"
extensionName="Sugar"
description="Autonomous AI development system - delegate tasks and run 24/7"
command="npx"
args={["-y", "sugarai-mcp"]}
timeout={300}
customStep3="Set SUGAR_PROJECT_ROOT to your project directory (/path/to/your/project), or Sugar will use the current working directory"
envVars={[
{ name: "SUGAR_PROJECT_ROOT", label: "Project directory (optional, defaults to current)" }
]}
/>
</TabItem>
<TabItem value="cli" label="goose CLI">
<CLIExtensionInstructions
name="Sugar"
description="Autonomous AI development system - delegate tasks and run 24/7"
command="npx -y sugarai-mcp"
envVars={[
{ key: "SUGAR_PROJECT_ROOT", value: "/path/to/your/project" }
]}
infoNote={
<>
Set SUGAR_PROJECT_ROOT to your project directory, or Sugar will use the current working directory.
</>
}
/>
</TabItem>
</Tabs>
## Example Usage
Sugar lets you delegate development tasks to an autonomous AI that works in the background. Tasks are queued and executed independently, so you can continue working while Sugar handles them.
<Tabs groupId="interface">
<TabItem value="ui" label="goose Desktop" default>
1. Open a new session in goose Desktop
</TabItem>
<TabItem value="cli" label="goose CLI">
1. Open a terminal and start a new goose session:
```sh
goose session
```
</TabItem>
</Tabs>
### goose Prompt
> Create a task to add input validation to the user registration form. Priority 4.
### goose Output
:::note Desktop
I'll create a Sugar task for adding input validation to the user registration form.
-------- createTask -------
Task created successfully:
- **ID**: a1b2c3d4-5678-90ab-cdef-ghijklmnopqr
- **Title**: Add input validation to the user registration form
- **Type**: feature
- **Priority**: P4 (High)
- **Status**: pending
The task has been queued. Sugar will pick it up and work on it autonomously. You can check the status anytime with `getStatus` or `listTasks`.
:::
### Available Tools
Sugar exposes the following tools through MCP:
| Tool | Description |
|------|-------------|
| `createTask` | Create a new development task |
| `listTasks` | List tasks with optional filtering |
| `viewTask` | View detailed task information |
| `updateTask` | Update task properties |
| `removeTask` | Remove a task from the queue |
| `getStatus` | Get system status and metrics |
| `runOnce` | Execute one autonomous development cycle |
| `initSugar` | Initialize Sugar in a project |
+40 -66
View File
@@ -1,6 +1,6 @@
---
title: Summon Extension
description: Load skills and delegate tasks to subagents
description: Load sources and delegate tasks to subagents
---
import Tabs from '@theme/Tabs';
@@ -8,13 +8,14 @@ import TabItem from '@theme/TabItem';
import { PlatformExtensionNote } from '@site/src/components/PlatformExtensionNote';
import GooseBuiltinInstaller from '@site/src/components/GooseBuiltinInstaller';
The Summon extension lets you load knowledge into goose's context and delegate tasks to [subagents](/docs/guides/context-engineering/subagents).
The Summon extension lets you load reusable task sources into goose's context and delegate work to [subagents](/docs/guides/context-engineering/subagents).
You can load different types of sources:
- [**Skills**](/docs/guides/context-engineering/using-skills) - Reusable instruction sets that teach goose specific workflows
- [**Recipes**](/docs/guides/recipes) - Automated task definitions with prompts and parameters
- **Agents** - Reusable agent definitions stored in agent directories
- **Subrecipes** - Recipe-local tasks available from the current recipe
This is useful for teaching goose how to perform tasks and running work in parallel through subagents.
This is useful when you want goose to reuse a task definition, hand work to another agent, or run read-only research in parallel. Skills are loaded by the separate [Skills platform extension](/docs/guides/context-engineering/using-skills).
:::info
This extension is available in v1.25.0+.
@@ -28,7 +29,7 @@ This extension is available in v1.25.0+.
<TabItem value="ui" label="goose Desktop" default>
<GooseBuiltinInstaller
extensionName="Summon"
description="Load knowledge and delegate tasks to subagents"
description="Load sources and delegate tasks to subagents"
/>
</TabItem>
<TabItem value="cli" label="goose CLI">
@@ -56,83 +57,56 @@ This extension is available in v1.25.0+.
## Example Usage
In this example, we'll create a custom skill that teaches goose a 90s web aesthetic, then use Summon to load that skill and delegate a subagent to build a retro homepage.
In this example, we'll create a reusable recipe and use Summon to delegate it to a subagent.
### Create a Skill
### Create a Recipe
```markdown title=".agents/skills/retro/SKILL.md"
---
name: retro
description: Creates content with 90s web aesthetic
---
# Retro Web Guidelines
Channel the 90s internet:
1. Bright colors, especially neon
2. Comic Sans or pixel fonts
3. Animated GIF energy (use emojis as a substitute)
4. "Under construction" vibes
5. Visitor counters, guestbook mentions
6. Marquee-style excitement
```yaml title=".agents/recipes/release-notes.yaml"
title: Release Notes
description: Draft release notes from recent git changes
instructions: |
Review the recent git history and changed files.
Write concise release notes with:
- user-facing changes
- fixes
- migration notes, if any
prompt: Draft release notes for the current branch.
```
### goose Prompt
```
Load the retro skill with summon. Then delegate a subagent to create an HTML page called my-site.html for a personal homepage.
Use summon to delegate the release-notes recipe for this branch.
```
### goose Output
```
─── load | summon ───────────────────────────────────────────
source: retro
# Loaded: retro (skill)
## retro (skill)
Creates content with 90s web aesthetic
### Content
# Retro Web Guidelines
Channel the 90s internet:
1. Bright colors, especially neon
2. Comic Sans or pixel fonts
3. Animated GIF energy (use emojis as substitute)
4. "Under construction" vibes
5. Visitor counters, guestbook mentions
6. Marquee-style excitement
---
This knowledge is now available in your context.
─── delegate | summon ───────────────────────────────────────
instructions: Create an HTML file called my-site.html for a personal homepage
using the 90s web aesthetic...
source: release-notes
I've created your 90s-style personal homepage at `my-site.html`! 🌟
The release-notes subagent reviewed the branch and drafted release notes:
The page includes all the classic retro web elements:
## User-facing changes
- Added support for configuring project-specific extensions.
- Improved error messages when extension startup fails.
- **Marquee tags** - Scrolling welcome message and bouncing text
- **Neon colors** - Hot pink, lime green, cyan, yellow on a navy blue background
- **Comic Sans font** - The quintessential 90s typeface
- **Visitor counter** - You're visitor #001337 with a blinking effect
- **"Under Construction" section** - With 🚧 emojis
- **About Me box** - With neon border styling
- **Favorite Links table** - Classic link collection
- **Guestbook section** - Sign and view options
- **Retro badges** - "Best viewed in Netscape Navigator 4.0"
- **Lots of emojis** - 🌟✨💫🔥⭐🌈🎉 throughout
Open it in your browser to experience the full nostalgic glory! 🎉
## Fixes
- Fixed stale extension state after disabling an extension.
```
### Results
## Common Summon Commands
![Retro 90s Homepage](/img/summon-retro-site.png)
Ask goose to use Summon in natural language, or call the tools directly:
```text
load()
load(source: "release-notes")
delegate(source: "release-notes")
delegate(instructions: "Review these docs and report stale links")
delegate(source: "release-notes", async: true)
load(source: "20260219_1", peek: true)
load(source: "20260219_1")
```
Calling `load()` with no arguments lists available sources. For background tasks, `delegate(..., async: true)` returns a task id, and `load(source: "<task_id>")` waits for the result.
+3 -3
View File
@@ -16,7 +16,7 @@ This tutorial covers how to add the [Supabase MCP Server](https://github.com/sup
[Launch the installer](goose://extension?type=streamable_http&url=https%3A%2F%2Fmcp.supabase.com%2Fmcp&id=supabase&name=Supabase&description=Connect%20your%20Supabase%20projects%20to%20AI%20assistants.%20Manage%20tables%2C%20query%20data%2C%20deploy%20Edge%20Functions%2C%20and%20interact%20with%20your%20Supabase%20backend%20directly%20from%20your%20MCP%20client.)
</TabItem>
<TabItem value="cli" label="goose CLI">
Use `goose configure` to add a `Remote Extension (Streaming HTTP)` extension type with:
Use `goose configure` to add a `Remote Extension (Streamable HTTP)` extension type with:
**Endpoint URL**
```
@@ -188,14 +188,14 @@ JWT Verification: Enabled
Created: November 8, 2025
Function code:
```typescript
~~~typescript
Deno.serve(async (req) => {
return new Response(
JSON.stringify({ message: "Hello World!" }),
{ headers: { "Content-Type": "application/json" } },
)
})
```
~~~
Endpoint:
https://tabowbdrhvtlvzvfyinw.supabase.co/functions/v1/hello-world
@@ -70,7 +70,6 @@ vmware-aiops doctor
type="stdio"
command="uvx"
args={["--from", "vmware-aiops", "vmware-aiops-mcp"]}
timeout={300}
envVars={[
{ name: "VMWARE_AIOPS_CONFIG", label: "Path to config.yaml (e.g. /Users/you/.vmware-aiops/config.yaml)" }
]}
@@ -16,7 +16,7 @@ This tutorial covers how to add the [YouTube Transcript MCP Server](https://gith
:::tip Quick Install
<Tabs groupId="interface">
<TabItem value="ui" label="goose Desktop" default>
[Launch the installer](goose://extension?cmd=uvx&arg=--from&arg=git%2Bhttps%3A%2F%2Fgithub.com%2Fjkawamoto%2Fmcp-youtube-transcript&arg=mcp-youtube-transcript&id=youtube-transcript&name=YouTube%20Transcript&description=Access%20YouTube%20video%20transcripts)
[Launch the installer](goose://extension?cmd=uvx&arg=--from&arg=git%2Bhttps%3A%2F%2Fgithub.com%2Fjkawamoto%2Fmcp-youtube-transcript&arg=mcp-youtube-transcript&id=youtube-transcript-mcp&name=YouTube%20Transcript&description=Access%20YouTube%20video%20transcripts)
</TabItem>
<TabItem value="cli" label="goose CLI">
**Command**
@@ -37,7 +37,7 @@ Note that you'll need [uv](https://docs.astral.sh/uv/#installation) installed on
<Tabs groupId="interface">
<TabItem value="ui" label="goose Desktop" default>
<GooseDesktopInstaller
extensionId="youtube-transcript"
extensionId="youtube-transcript-mcp"
extensionName="YouTube Transcript"
description="Access YouTube video transcripts"
command="uvx"
@@ -1,303 +0,0 @@
---
title: Advanced Cognee Usage with goose
description: Advanced patterns for using Cognee knowledge graph with goose for enhanced memory and automation
---
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
# Advanced Cognee Usage with goose
This tutorial covers advanced usage patterns for the Cognee extension with goose, including automated memory management, knowledge graph optimization, and various integration strategies.
## Overview
While the basic [Cognee MCP setup](../mcp/cognee-mcp.md) gets you started, this tutorial explores how to make goose autonomously use the knowledge graph and optimize your workflow.
## Key Concepts
### Knowledge Graph Memory
Cognee creates a structured knowledge graph that:
- Interconnects conversations, documents, images, and audio transcriptions
- Supports over 30 data sources
- Replaces traditional RAG systems with dynamic relationship mapping
- Enables complex multi-hop reasoning
### Search Types
Understanding Cognee's search types is crucial for effective usage:
| Search Type | Use Case | Description |
|-------------|----------|-------------|
| `SUMMARIES` | Summary requests | High-level overviews |
| `INSIGHTS` | Relationship queries | Connections between entities |
| `CHUNKS` | Specific facts | Raw text segments |
| `COMPLETION` | Explanations | LLM-generated responses |
| `GRAPH_COMPLETION` | Complex relations | Multi-hop reasoning |
| `GRAPH_SUMMARY` | Concise answers | Brief, focused responses |
| `GRAPH_COMPLETION_COT` | Multi-hop Q&A | Chain-of-thought reasoning |
| `GRAPH_CONTEXT_EXT` | Context extension | Expanded context |
| `CODE` | Code examples | Programming-related queries |
## Automation Strategies
<Tabs>
<TabItem value="method1" label="Method 1 (Slow)" default>
### Instruction Files
Use instruction files for consistent behavior across sessions. This method uses fewer tokens but has slower startup.
Create `~/.config/goose/cognee-instructions.md`:
````markdown
You are an LLM agent with access to a Cognee knowledge graph for memory.
**IMPORTANT RULES:**
- Never call the `prune` command
- Always search memory before responding to user queries
- Automatically cognify new information you learn about the user
**Memory Workflow:**
1. **Before each response**: Search the knowledge graph
- Map user request to appropriate search type:
- Summary → SUMMARIES
- Relationships → INSIGHTS
- Specific facts → CHUNKS
- Explanations → COMPLETION
- Complex relations → GRAPH_COMPLETION
- Code examples → CODE
2. **Search command**:
```text
cognee-mcp__search(\{
search_query: "user prompt",
search_type: "mapped type"
\})
```
3. **Incorporate results** into your response
**Memory Updates:**
- When you learn new facts, preferences, or relationships about the user
- Call: `cognee-mcp__cognify(\{ data: "information" \})`
- Monitor with: `cognee-mcp__cognify_status()`
**Code Analysis:**
- When asked to analyze code repositories
- Use: `cognee-mcp__codify(\{ repo_path: "path" \})`
- Only process files returned by `rg --files`
````
Start goose with instructions:
```bash
goose run -i ~/.config/goose/cognee-instructions.md -s
```
</TabItem>
<TabItem value="method2" label="Method 2">
### goosehints File
For faster startup with higher token usage, add to your `.goosehints` file:
```text
COGNEE_MEMORY_SYSTEM:
You have access to a Cognee knowledge graph for persistent memory.
MEMORY_RETRIEVAL_PROTOCOL:
- Before responding, determine request type and map to search type
- Search types: SUMMARIES, INSIGHTS, CHUNKS, COMPLETION, GRAPH_COMPLETION, CODE
- Always call: cognee-mcp__search with search_query and search_type parameters
- Incorporate memory results into responses
MEMORY_STORAGE_PROTOCOL:
- Auto-cognify new user facts, preferences, relationships
- Call: cognee-mcp__cognify with data parameter
- Never use prune command
CODE_ANALYSIS_PROTOCOL:
- For repositories: cognee-mcp__codify with repo_path parameter
- Only process files from rg --files output
```
</TabItem>
</Tabs>
### Strategy 3: Memory MCP Integration
Combine with the [Memory MCP extension](../mcp/memory-mcp.md) for hybrid approach:
1. Store Cognee usage patterns as memories
2. Use Memory MCP to trigger Cognee searches
3. Lower token usage than goosehints
4. More reliable than pure instruction files
## Advanced Workflows
### Developer Workflow
For software development projects:
```bash
# Start goose with Cognee
goose session
# In goose, analyze your codebase
> goose, please codify this repository and then help me understand the architecture
```
goose will:
1. Run `cognee-mcp__codify` on your repository
2. Build a code knowledge graph
3. Answer architecture questions using the graph
### Research Workflow
For research and documentation:
```bash
# Cognify research documents
> goose, please cognify the contents of these research papers: paper1.pdf, paper2.pdf, paper3.pdf
# Later, query relationships
> What are the connections between the methodologies in these papers?
```
### Personal Assistant Workflow
For personal productivity:
```bash
# Store preferences
> Remember that I prefer morning meetings, work best with 2-hour focused blocks, and need 15-minute breaks between calls
# Query later
> Based on my preferences, how should I structure tomorrow's schedule?
```
## Performance Optimization
### Server Configuration
For optimal performance, run Cognee as a separate server:
```bash
# Create optimized startup script
cat > start-cognee-optimized.sh << 'EOF'
#!/bin/bash
set -e
# Performance settings
export DEBUG=false
export LOG_LEVEL=WARNING
export RATE_LIMIT_INTERVAL=30
# Model configuration
export LLM_API_KEY=${OPENAI_API_KEY}
export LLM_MODEL=openai/gpt-4o-mini # Faster, cheaper model
export EMBEDDING_API_KEY=${OPENAI_API_KEY}
export EMBEDDING_MODEL=openai/text-embedding-3-small # Faster embedding
# Server settings
export HOST=0.0.0.0
export PORT=8000
cd /path/to/cognee-mcp
uv run python src/server.py --transport sse
EOF
chmod +x start-cognee-optimized.sh
```
### Memory Management
Monitor and manage your knowledge graph:
```bash
# Check status
> goose, what's the status of the cognify pipeline?
# Selective pruning (if needed)
> goose, can you help me identify outdated information in the knowledge graph?
```
## Troubleshooting
### Common Issues
1. **Slow startup**: Use Method 2 (separate server) configuration
2. **Memory not persisting**: Check file permissions and paths
3. **Search returning empty results**: Ensure data was properly cognified
4. **High token usage**: Use instruction files instead of goosehints
### Debug Commands
```bash
# Check Cognee logs
tail -f ~/.local/share/cognee/logs/cognee.log
# Test server connection
curl http://localhost:8000/health
# Verify knowledge graph status
# In goose session:
> goose, run cognify_status and codify_status
```
## Best Practices
### Data Organization
1. **Use nodesets** for organizing different types of information:
```bash
# Developer rules
> goose, add these coding standards to the 'developer_rules' nodeset
# Project-specific info
> goose, cognify this project documentation with nodeset 'project_alpha'
```
2. **Regular maintenance**:
- Review and update stored information monthly
- Remove outdated preferences and facts
- Optimize search queries based on usage patterns
### Integration Patterns
1. **Layered approach**: Use both Memory MCP and Cognee for different purposes
2. **Context switching**: Different instruction files for different workflows
3. **Selective automation**: Not every interaction needs knowledge graph queries
## Examples
### Code Review Assistant
```bash
# Setup
> goose, codify this repository and remember that I prefer: functional programming patterns, comprehensive tests, and clear documentation
# Usage
> Review this pull request and check it against my coding preferences
```
### Meeting Assistant
```bash
# Before meeting
> goose, cognify the agenda and participant backgrounds from these documents
# During/after meeting
> Based on the knowledge graph, what are the key action items and how do they relate to our previous discussions?
```
### Research Assistant
```bash
# Literature review
> goose, cognify these 10 research papers and create a knowledge graph of the relationships between their methodologies
# Synthesis
> What are the emerging patterns in the research and what gaps exist?
```
This advanced usage guide should help you maximize the potential of Cognee with goose for sophisticated knowledge management and automation workflows.
+1 -6
View File
@@ -1,13 +1,9 @@
---
title: Using Subagents
description: Spin up a team of subagents to build a fully functional app
image: /assets/images/tutorial-using-subagents-ef265627024db73e73d80e5799ed0c1a.png
image: /img/tutorial-using-subagents.png
---
<div style={{display: 'none'}}>
![](/img/tutorial-using-subagents.png)
</div>
This tutorial walks you through how to spin up a team of AI [subagents](/docs/guides/context-engineering/subagents/) and guide them through building a fully functional app.
You'll build **AI BriefMe**, an app that generates a structured executive style briefing based on any topic.
@@ -390,4 +386,3 @@ Don't expect your app to be production ready. This workshop shows how vibe codin
- `http://localhost:3000/index.html`
- `http://localhost:3000/style.css`
- `http://localhost:3000/script.js`
-4
View File
@@ -334,10 +334,6 @@ const config: Config = {
from: "/docs/tutorials/knowledge-graph-mcp",
to: "/docs/mcp/knowledge-graph-mcp",
},
{
from: "/docs/tutorials/mbot-mcp",
to: "/docs/mcp/mbot-mcp",
},
{
from: "/docs/tutorials/memory-mcp",
to: "/docs/mcp/memory-mcp",
+7 -16
View File
@@ -4,7 +4,6 @@ description: $100K grants for open source devs building the future of agentic AI
---
import Link from "@docusaurus/Link";
import { Button } from "@site/src/components/ui/button";
![](/img/goose-grant-program.png)
@@ -17,9 +16,7 @@ We’ve created a grant program to accelerate goose in the open source community
</Link>
<br/>
<Link className="button button--primary button-grant">
## what makes a good proposal
</Link>
## what makes a good proposal
<br/>
We're looking for clear, compelling, and ambitious ideas that align with goose’s values: openness, modularity, and user empowerment.
@@ -35,9 +32,7 @@ Above all, we want to fund work that aligns with these values and demonstrates a
<br/>
<Link className="button button--primary button-grant">
## grant details
</Link>
## grant details
<br/>
- **Project Length:** 12 months
@@ -47,9 +42,7 @@ Above all, we want to fund work that aligns with these values and demonstrates a
_subject to applicable law_
<br/>
<Link className="button button--primary button-grant">
## faq
</Link>
## faq
<br/>
**When are proposals accepted?**
@@ -93,9 +86,7 @@ Anyone. We welcome individuals, working on their own or in small teams, as long
<br/>
<Link className="button button--primary button-grant">
## contact us
</Link>
## contact us
<br/>
If you have additional questions, feel free to reach out in [Discord](https://discord.com/channels/1287729918100246654/1397943505216868444) in the #goose-grants forum.
@@ -105,10 +96,10 @@ If you have additional questions, feel free to reach out in [Discord](https://di
<meta property="og:type" content="article" />
<meta property="og:url" content="https://goose-docs.ai/grants" />
<meta property="og:description" content="$100K grants for open source devs building the future of agentic AI." />
<meta property="og:image" content="https://goose-docs.ai/assets/images/goose-grant-program-3ede164a454d9f29e779108c63773416.png" />
<meta property="og:image" content="https://goose-docs.ai/img/goose-grant-program.png" />
<meta name="twitter:card" content="summary_large_image" />
<meta property="twitter:domain" content="goose-docs.ai" />
<meta name="twitter:title" content="goose grant program" />
<meta name="twitter:description" content="$100K grants for open source devs building the future of agentic AI." />
<meta name="twitter:image" content="https://goose-docs.ai/assets/images/goose-grant-program-3ede164a454d9f29e779108c63773416.png" />
</head>
<meta name="twitter:image" content="https://goose-docs.ai/img/goose-grant-program.png" />
</head>
-7
View File
@@ -1,7 +0,0 @@
---
title: Markdown page example
---
# Markdown page example
You don't need React to write simple standalone pages.
+18 -93
View File
@@ -104,16 +104,26 @@
"id": "browserbase-mcp",
"name": "Browserbase",
"description": "Browser automation and web scraping",
"command": "npx -y @browserbasehq/mcp-server-browserbase",
"command": "npx -y @browserbasehq/mcp",
"link": "https://github.com/browserbase/mcp-server-browserbase",
"installation_notes": "Install using npx package manager.",
"is_builtin": false,
"endorsed": true,
"environmentVariables": [
{
"name": "BROWSERBASE_PROJECT_ID",
"description": "Required environment variable",
"required": true
},
{
"name": "BROWSERBASE_API_KEY",
"description": "Required environment variable",
"required": true
},
{
"name": "GEMINI_API_KEY",
"description": "Required environment variable",
"required": true
}
]
},
@@ -145,24 +155,6 @@
}
]
},
{
"id": "cognee-mcp",
"name": "Cognee",
"description": "Knowledge graph and cognitive AI capabilities (requires local server setup)",
"command": "uv --directory /path/to/cognee-mcp run python src/server.py",
"link": "https://github.com/topoteretes/cognee",
"installation_notes": "This is a local extension. You must first clone and install the Cognee MCP server locally before using this extension. Update the placeholder path before running the 'goose session' command.",
"is_builtin": false,
"endorsed": true,
"show_install_link": false,
"environmentVariables": [
{
"name": "LLM_API_KEY",
"description": "API key for your LLM provider",
"required": true
}
]
},
{
"id": "computercontroller",
"name": "Computer Controller",
@@ -381,17 +373,6 @@
"endorsed": false,
"environmentVariables": []
},
{
"id": "i-ching",
"name": "I Ching",
"description": "I Ching divination readings with Wilhelm-Baynes translation - provides traditional three coins method divination with complete hexagram meanings, judgments, and line interpretations",
"command": "i-ching-mcp-server",
"link": "https://github.com/threemachines/i-ching",
"installation_notes": "Install from crates.io using: cargo install i-ching",
"is_builtin": false,
"endorsed": false,
"environmentVariables": []
},
{
"id": "jetbrains",
"name": "JetBrains",
@@ -443,34 +424,6 @@
}
]
},
{
"id": "mbot-mcp",
"name": "MBot",
"description": "Control a MakeBlock mbot2 rover through MQTT (requires local setup)",
"command": "/path/to/java -jar /path/to/mbotmcp-0.0.1-SNAPSHOT.jar",
"link": "https://github.com/deemkeen/mbotmcp",
"installation_notes": "This is a local extension. You must first download the JAR file from the repository, install Java, and update the placeholder paths before running the 'goose session' command.",
"is_builtin": false,
"endorsed": false,
"show_install_link": false,
"environmentVariables": [
{
"name": "MQTT_SERVER_URI",
"description": "MQTT server URI (example: tcp://1.2.3.4:1883)",
"required": true
},
{
"name": "MQTT_USERNAME",
"description": "MQTT username (empty string if no auth required)",
"required": true
},
{
"name": "MQTT_PASSWORD",
"description": "MQTT password (empty string if no auth required)",
"required": true
}
]
},
{
"id": "memory",
"name": "Memory",
@@ -486,9 +439,9 @@
"id": "mongodb",
"name": "MongoDB",
"description": "MongoDB database integration",
"command": "npx -y mongodb-mcp-server --connection-string mongodb://localhost:27017",
"command": "npx -y mongodb-mcp-server --connectionString mongodb://localhost:27017",
"link": "https://github.com/mongodb-js/mongodb-mcp-server",
"installation_notes": "Install using npx package manager. Update connection-string as needed to match your MongoDB environment.",
"installation_notes": "Install using npx package manager. Update connectionString as needed to match your MongoDB environment.",
"is_builtin": false,
"endorsed": true,
"environmentVariables": []
@@ -633,23 +586,12 @@
"id": "reddit-mcp",
"name": "Reddit",
"description": "Reddit API integration for posts and comments",
"command": "npx -y reddit-mcp",
"command": "uvx --from git+https://github.com/adhikasp/mcp-reddit.git mcp-reddit",
"link": "https://github.com/adhikasp/mcp-reddit",
"installation_notes": "Install using npx package manager.",
"installation_notes": "Install using uvx.",
"is_builtin": false,
"endorsed": false,
"environmentVariables": [
{
"name": "REDDIT_CLIENT_ID",
"description": "Required environment variable",
"required": true
},
{
"name": "REDDIT_CLIENT_SECRET",
"description": "Required environment variable",
"required": true
}
]
"environmentVariables": []
},
{
"id": "rendex-mcp",
@@ -675,7 +617,7 @@
"id": "repomix-mcp",
"name": "Repomix",
"description": "Repository analysis and code organization",
"command": "npx -y repomix-mcp",
"command": "npx -y repomix --mcp",
"link": "https://github.com/yamadashy/repomix",
"installation_notes": "Install using npx package manager.",
"is_builtin": false,
@@ -698,7 +640,7 @@
"id": "selenium-mcp",
"name": "Selenium",
"description": "Web browser automation and testing",
"command": "npx -y selenium-mcp",
"command": "npx -y @angiejones/mcp-selenium",
"link": "https://github.com/angiejones/mcp-selenium",
"installation_notes": "Install using npx package manager.",
"is_builtin": false,
@@ -756,23 +698,6 @@
}
]
},
{
"id": "sugar",
"name": "Sugar",
"description": "Autonomous AI development system - delegate tasks, run 24/7, auto-discover work from errors and GitHub issues",
"command": "npx -y sugarai-mcp",
"link": "https://github.com/cdnsteve/sugar",
"installation_notes": "Requires Python 3.11+ and Sugar CLI: pip install sugarai && sugar init",
"is_builtin": false,
"endorsed": false,
"environmentVariables": [
{
"name": "SUGAR_PROJECT_ROOT",
"description": "Project directory for Sugar operations (defaults to current directory)",
"required": false
}
]
},
{
"id": "tavily",
"name": "Tavily Web Search",
@@ -106,25 +106,6 @@ describe('ExtensionInstallModal', () => {
expect(screen.getAllByRole('button')).toHaveLength(3);
});
it('should handle i-ching-mcp-server as allowed command', async () => {
mockElectron.getAllowedExtensions.mockResolvedValue([]);
renderWithIntl(<ExtensionInstallModal addExtension={mockAddExtension} setView={mockSetView} />);
const eventHandler = getAddExtensionEventHandler();
await act(async () => {
await eventHandler(
{},
'goose://extension?cmd=i-ching-mcp-server&id=i-ching&name=I%20Ching&description=I%20Ching%20divination'
);
});
expect(screen.getByRole('dialog')).toBeInTheDocument();
expect(screen.getByText('Confirm Extension Installation')).toBeInTheDocument();
expect(screen.getByText(/I Ching extension/)).toBeInTheDocument();
expect(screen.getAllByRole('button')).toHaveLength(3);
});
it('should handle blocked extension', async () => {
mockElectron.getAllowedExtensions.mockResolvedValue(['uvx allowed-package']);
@@ -21,7 +21,6 @@ function getStdioConfig(
'uvx',
'goose',
'npx.cmd',
'i-ching-mcp-server',
];
if (!allowedCommands.includes(cmd)) {
toastService.handleError(