feat: Goose integration + dedicated install command#3040
Conversation
Goose install via deeplink protocol (goose://extension?...). Uses uvx instead of uv run per Goose's requirements. Extracts shared open_deeplink to shared.py for reuse.
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: a135e18901
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
WalkthroughAdds Goose integration to docs and CLI: new docs/integrations/goose.mdx and docs.json/navigation entries, updates patterns and Python SDK install lists. Implements Goose install commands in src/fastmcp/cli/install/goose.py (deeplink generation, uvx command assembly, install_goose and goose_command) and registers the goose subcommand. Adds shared.open_deeplink in src/fastmcp/cli/install/shared.py and refactors cursor.open_deeplink to call it. Converts several integration docs to use hyperlink formatting. 🚥 Pre-merge checks | ✅ 2 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (2 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing touches
🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Actionable comments posted: 5
🧹 Nitpick comments (2)
docs/patterns/cli.mdx (2)
300-305: Use active voice and second person in the Goose entry.
Consider rephrasing to match the doc style guidelines.✍️ Suggested wording
-- **Goose** - Installs via deeplink that opens Goose for user confirmation (uses `uvx`) +- **Goose** - You install via a deeplink that opens Goose for confirmation (uses `uvx`)As per coding guidelines, use active voice over passive voice and write instructions in second person in MDX documentation.
387-389: Add expected outcome + fallback guidance for the Goose install example.
A short expected result and a likely failure path (deeplink not opening) will make this example more actionable.📝 Suggested add-on
# Install in Goose (uses uvx deeplink) fastmcp install goose server.py --with pandas + +# Expected: Goose opens the install dialog. +# If it doesn’t, copy the deeplink from the CLI output and open it manually, +# or use `fastmcp install mcp-json` for a manual config.As per coding guidelines, include expected outputs and troubleshooting for likely failure points in MDX documentation.
- warn when --env/--env-file passed to goose install - fix Claude Desktop link to download page - minor doc improvements
fastmcp install goose command
Adds Goose as an install target using its deeplink protocol. Running
fastmcp install goose server.pygenerates agoose://extension?...URL and opens it, prompting Goose to install the server.Goose requires
uvxrather thanuv run, so the command builds auvxinvocation instead of going throughUVEnvironment.build_command():fastmcp install goose server.py --with pandas --python 3.11 # opens: goose://extension?cmd=uvx&arg=--python&arg=3.11&arg=--with&arg=pandas&arg=fastmcp&arg=run&arg=server.py&id=server&name=server&description=...The platform-specific URL opener (
open/xdg-open/startfile) is extracted fromcursor.pyintoshared.pyso both Cursor and Goose deeplinks share it.Also adds links to each AI assistant's website in the integration docs opening paragraphs (Claude Code, Claude Desktop, ChatGPT, Cursor, Gemini CLI, Goose).