diff --git a/documentation/docs/mcp/kiwi-flight-search.md b/documentation/docs/mcp/kiwi-flight-search.md new file mode 100644 index 000000000000..fd23464bf3ed --- /dev/null +++ b/documentation/docs/mcp/kiwi-flight-search.md @@ -0,0 +1,111 @@ +--- +title: Kiwi Flight Search Extension +description: Add Kiwi Flight Search MCP Server as a Goose Extension +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; +import YouTubeShortEmbed from '@site/src/components/YouTubeShortEmbed'; +import CLIExtensionInstructions from '@site/src/components/CLIExtensionInstructions'; +import GooseDesktopInstaller from '@site/src/components/GooseDesktopInstaller'; +import GooseBuiltinInstaller from '@site/src/components/GooseBuiltinInstaller'; +import { PanelLeft } from 'lucide-react'; + + +This tutorial covers how to add the [Kiwi Flight Search MCP Server](https://mcp.kiwi.com) as a Goose extension to enable flight search and price comparison. + +:::tip TLDR + + + Use `Add custom extension` in Settings → Extensions to add a `Streamable HTTP` extension type with: + + + Use `goose configure` to add a `Remote Extension (Streaming HTTP)` extension type with: + + + + **Endpoint URL** + ``` + https://mcp.kiwi.com + ``` +::: + +## Configuration + + + + 1. Click the button in the top-left to open the sidebar + 2. Click `Extensions` + 3. Click `Add custom extension` + 4. On the `Add custom extension` modal, enter the following: + - **Extension Name**: Kiwi Flight Search + - **Type**: Streamable HTTP + - **Endpoint**: `https://mcp.kiwi.com` + 5. Click `Add Extension` to save the extension + 6. Navigate to the chat + + + + + + + + +## Example Usage + +Let's search for flights between any two locations on specific dates. You can search by city names or airport codes, and the extension will find available flights with pricing, duration, and booking links. + +### Goose Prompt + +``` +Can you help me search for a flight from Paris to Rome for August 9? +``` + +### Goose Output + +``` +I'd be happy to help you search for flights from Paris to Rome for August 9th! Let me search for available options for you. + +## ✈️ Flight Options: Paris → Rome (August 9, 2025) + +### 💰 **Best Prices** (Cheapest Options) + +| Route | Departure → Arrival | Class | Price | Book | +|-------|-------------------|-------|-------|------| +| Paris ORY → Rome FCO | 09/08 22:10 → 00:10+1 (2h 0m) | Economy | €138 | [Book Now](https://on.kiwi.com/ZyIJ2r) | +| Paris ORY → Rome FCO | 09/08 09:05 → 11:10 (2h 5m) | Economy | €154 | [Book Now](https://on.kiwi.com/31IDMW) | +| Paris ORY → Rome FCO | 09/08 06:25 → 08:25 (2h 0m) | Economy | €157 | [Book Now](https://on.kiwi.com/2dNs3f) | + +### ⚡ **Shortest Flights** (Fastest Duration) + +| Route | Departure → Arrival | Class | Price | Book | +|-------|-------------------|-------|-------|------| +| Paris ORY → Rome FCO | 09/08 06:25 → 08:25 (2h 0m) | Economy | €157 | [Book Now](https://on.kiwi.com/2dNs3f) | +| Paris ORY → Rome FCO | 09/08 22:10 → 00:10+1 (2h 0m) | Economy | €138 | [Book Now](https://on.kiwi.com/ZyIJ2r) | +| Paris CDG → Rome FCO | 09/08 21:10 → 23:10 (2h 0m) | Economy | €187 | [Book Now](https://on.kiwi.com/62jyt7) | + +### 🕐 **Other Good Options** + +| Route | Departure → Arrival | Class | Price | Book | +|-------|-------------------|-------|-------|------| +| Paris ORY → Rome FCO | 09/08 12:00 → 14:05 (2h 5m) | Economy | €164 | [Book Now](https://on.kiwi.com/m55oIC) | +| Paris ORY → Rome FCO | 09/08 21:10 → 23:10 (2h 0m) | Economy | €165 | [Book Now](https://on.kiwi.com/tkAU0T) | + +## 📋 **Summary & Recommendations** + +**🏆 Best Overall Value:** The **€138 evening flight** (ORY 22:10 → FCO 00:10+1) offers the best price with the shortest flight time, though it arrives after midnight. + +**🌅 Best Morning Option:** The **€157 early flight** (ORY 06:25 → FCO 08:25) gets you to Rome early in the day with a quick 2-hour flight. + +**⏰ Best Daytime Flight:** The **€154 mid-morning flight** (ORY 09:05 → FCO 11:10) offers great value and convenient timing. + +All direct flights are around 2 hours, departing from either Paris Orly (ORY) or Charles de Gaulle (CDG) to Rome Fiumicino (FCO). + +Have a wonderful trip to Rome! 🇮🇹 Fun fact: Rome has more fountains than any other city in the world - over 2,000 of them! Don't forget to toss a coin into the Trevi Fountain to ensure your return to the Eternal City! ⛲✨ + +``` diff --git a/documentation/src/pages/extensions/index.tsx b/documentation/src/pages/extensions/index.tsx index d96496977ab3..53348adb5f79 100644 --- a/documentation/src/pages/extensions/index.tsx +++ b/documentation/src/pages/extensions/index.tsx @@ -95,27 +95,60 @@ export default function HomePage() { : "No servers available."} ) : ( -
- {servers - .sort((a, b) => { - // Sort built-in servers first - if (a.is_builtin && !b.is_builtin) return -1; - if (!a.is_builtin && b.is_builtin) return 1; - return 0; - }) - .map((server) => ( - - - - ))} +
+ {/* Built-in Extensions */} + {servers.filter(server => server.is_builtin).length > 0 && ( +
+

+ Built-in Extensions +

+
+ {servers + .filter(server => server.is_builtin) + .sort((a, b) => a.name.localeCompare(b.name)) + .map((server) => ( + + + + ))} +
+
+ )} + + {/* Community Extensions */} + {servers.filter(server => !server.is_builtin).length > 0 && ( +
+

+ Community Extensions +

+
+ {servers + .filter(server => !server.is_builtin) + .sort((a, b) => a.name.localeCompare(b.name)) + .map((server) => ( + + + + ))} +
+
+ )}
)} diff --git a/documentation/static/servers.json b/documentation/static/servers.json index 99f9ad950d16..3b39f564885e 100644 --- a/documentation/static/servers.json +++ b/documentation/static/servers.json @@ -1,149 +1,4 @@ [ - { - "id": "developer", - "name": "Developer", - "description": "Built-in developer tools for file editing and shell command execution", - "command": "", - "link": "https://github.com/block/goose/tree/main/crates/goose-mcp/src/developer", - "installation_notes": "This is a built-in extension that comes with Goose by default. No installation required.", - "is_builtin": true, - "endorsed": true, - "environmentVariables": [] - }, - { - "id": "computercontroller", - "name": "Computer Controller", - "description": "Built-in computer controls for webscraping, file caching, and automations", - "command": "", - "link": "https://github.com/block/goose/tree/main/crates/goose-mcp/src/computercontroller", - "installation_notes": "This is a built-in extension that comes with Goose and can be enabled on the Extensions page.", - "is_builtin": true, - "endorsed": true, - "environmentVariables": [] - }, - { - "id": "memory", - "name": "Memory", - "description": "Built-in memory system for persistent context and information storage", - "command": "", - "link": "https://github.com/block/goose/tree/main/crates/goose-mcp/src/memory", - "installation_notes": "This is a built-in extension that comes with Goose and can be enabled on the Extensions page.", - "is_builtin": true, - "endorsed": true, - "environmentVariables": [] - }, - { - "id": "knowledge_graph_memory", - "name": "Knowledge Graph Memory", - "description": "Graph-based memory system for persistent knowledge storage", - "command": "npx -y @modelcontextprotocol/server-memory", - "link": "https://github.com/modelcontextprotocol/servers/tree/main/src/memory", - "installation_notes": "Install using npx package manager. Note: Default memory graph location may be hard to find where npx installs the module.", - "is_builtin": false, - "endorsed": true, - "environmentVariables": [] - }, - { - "id": "fetch", - "name": "Fetch", - "description": "Web content fetching and processing capabilities", - "command": "uvx mcp-server-fetch", - "link": "https://github.com/modelcontextprotocol/servers/tree/main/src/fetch", - "installation_notes": "Install using uvx package manager. Note: Some sites may block access via robots.txt.", - "is_builtin": false, - "endorsed": true, - "environmentVariables": [] - }, - { - "id": "tavily", - "name": "Tavily Web Search", - "description": "Web search capabilities powered by Tavily", - "command": "npx -y tavily-mcp", - "link": "https://github.com/tavily-ai/tavily-mcp", - "installation_notes": "Install using uvx package manager. Requires Tavily API key.", - "is_builtin": false, - "endorsed": true, - "environmentVariables": [ - { - "name": "TAVILY_API_KEY", - "description": "API key for Tavily web search service", - "required": true - } - ] - }, - { - "id": "figma", - "name": "Figma", - "description": "Figma design tool integration", - "command": "npx -y @hapins/figma-mcp", - "link": "https://github.com/hapins/figma-mcp", - "installation_notes": "Install using npx package manager. Requires Figma access token from user settings.", - "is_builtin": false, - "endorsed": false, - "environmentVariables": [ - { - "name": "FIGMA_ACCESS_TOKEN", - "description": "Access token from Figma user settings", - "required": true - } - ] - }, - { - "id": "pdf_read", - "name": "PDF Reader", - "description": "Read large and complex PDF documents", - "command": "uvx mcp-read-pdf", - "link": "https://github.com/michaelneale/mcp-read-pdf", - "installation_notes": "Install using uvx package manager.", - "is_builtin": false, - "endorsed": true, - "environmentVariables": [] - }, - { - "id": "vscode", - "name": "VSCode", - "description": "Provides a VSCode IDE integration for development workflows", - "command": "npx vscode-mcp-server", - "link": "https://github.com/block/vscode-mcp", - "installation_notes": "Install using npx package manager.", - "is_builtin": false, - "endorsed": true, - "environmentVariables": [] - }, - { - "id": "speech_mcp", - "name": "Speech Interface", - "description": "Voice interaction with audio visualization for Goose - enables real-time voice interaction, audio/video transcription, text-to-speech conversion, and multi-speaker audio generation", - "command": "uvx -p 3.10.14 speech-mcp@latest", - "link": "https://github.com/Kvadratni/speech-mcp", - "installation_notes": "Install using uvx package manager. Requires PortAudio to be installed on your system for PyAudio to capture audio from your microphone.", - "is_builtin": false, - "endorsed": true, - "environmentVariables": [] - }, - { - "id": "pieces", - "name": "Pieces", - "description": "Provides access to your Pieces long-term memory. You need to have Pieces installed to use this.", - "url": "http://localhost:39300/model_context_protocol/2024-11-05/sse", - "link": "https://pieces.app?utm_source=goose&utm_medium=collab&utm_campaign=mcp", - "installation_notes": "You need to install Pieces first, and have this running.", - "is_builtin": false, - "endorsed": true, - "environmentVariables": [], - "type": "remote" - }, - { - "id": "playwright", - "name": "Playwright", - "description": "Interact with web pages through structured accessibility snapshots using Playwright", - "command": "npx @playwright/mcp@latest", - "link": "https://github.com/microsoft/playwright-mcp", - "installation_notes": "Install using npx package manager.", - "is_builtin": false, - "endorsed": true, - "environmentVariables": [] - }, { "id": "agentql-mcp", "name": "AgentQL", @@ -295,6 +150,28 @@ "endorsed": false, "environmentVariables": [] }, + { + "id": "computercontroller", + "name": "Computer Controller", + "description": "Built-in computer controls for webscraping, file caching, and automations", + "command": "", + "link": "https://github.com/block/goose/tree/main/crates/goose-mcp/src/computercontroller", + "installation_notes": "This is a built-in extension that comes with Goose and can be enabled on the Extensions page.", + "is_builtin": true, + "endorsed": true, + "environmentVariables": [] + }, + { + "id": "container-use", + "name": "Container Use", + "description": "Integrate container workflows with Goose using the Container-Use MCP", + "command": "npx -y mcp-remote https://container-use.com/mcp", + "link": "https://container-use.com", + "installation_notes": "Requires Node.js and Docker.", + "is_builtin": false, + "endorsed": true, + "environmentVariables": [] + }, { "id": "context7", "name": "Context7", @@ -306,6 +183,17 @@ "endorsed": true, "environmentVariables": [] }, + { + "id": "developer", + "name": "Developer", + "description": "Built-in developer tools for file editing and shell command execution", + "command": "", + "link": "https://github.com/block/goose/tree/main/crates/goose-mcp/src/developer", + "installation_notes": "This is a built-in extension that comes with Goose by default. No installation required.", + "is_builtin": true, + "endorsed": true, + "environmentVariables": [] + }, { "id": "elevenlabs-mcp", "name": "ElevenLabs", @@ -323,6 +211,34 @@ } ] }, + { + "id": "fetch", + "name": "Fetch", + "description": "Web content fetching and processing capabilities", + "command": "uvx mcp-server-fetch", + "link": "https://github.com/modelcontextprotocol/servers/tree/main/src/fetch", + "installation_notes": "Install using uvx package manager. Note: Some sites may block access via robots.txt.", + "is_builtin": false, + "endorsed": true, + "environmentVariables": [] + }, + { + "id": "figma", + "name": "Figma", + "description": "Figma design tool integration", + "command": "npx -y @hapins/figma-mcp", + "link": "https://github.com/hapins/figma-mcp", + "installation_notes": "Install using npx package manager. Requires Figma access token from user settings.", + "is_builtin": false, + "endorsed": false, + "environmentVariables": [ + { + "name": "FIGMA_ACCESS_TOKEN", + "description": "Access token from Figma user settings", + "required": true + } + ] + }, { "id": "filesystem-mcp", "name": "Filesystem", @@ -352,6 +268,16 @@ ], "type": "streamable-http" }, + { + "id": "gitmcp", + "name": "GitMCP", + "description": "Gets latest documentation for any GitHub project", + "command": "npx -y mcp-remote https://gitmcp.io/docs", + "link": "https://github.com/idosal/git-mcp", + "is_builtin": false, + "endorsed": false, + "environmentVariables": [] + }, { "id": "google-drive-mcp", "name": "Google Drive", @@ -386,6 +312,16 @@ } ] }, + { + "id": "goose-docs", + "name": "Goose Docs", + "description": "GitMCP for Goose documentation", + "command": "npx mcp-remote https://block.gitmcp.io/goose/", + "link": "https://github.com/idosal/git-mcp", + "is_builtin": false, + "endorsed": false, + "environmentVariables": [] + }, { "id": "jetbrains", "name": "JetBrains", @@ -397,6 +333,29 @@ "endorsed": true, "environmentVariables": [] }, + { + "id": "kiwi-flight-search", + "name": "Kiwi Flight Search", + "description": "Search for flights", + "url": "https://mcp.kiwi.com", + "link": "https://mcp-install-instructions.alpic.cloud/servers/kiwi-com-flight-search", + "installation_notes": "This is a remote extension. Configure using the endpoint URL in Goose settings.", + "is_builtin": false, + "endorsed": true, + "environmentVariables": [], + "type": "streamable-http" + }, + { + "id": "knowledge_graph_memory", + "name": "Knowledge Graph Memory", + "description": "Graph-based memory system for persistent knowledge storage", + "command": "npx -y @modelcontextprotocol/server-memory", + "link": "https://github.com/modelcontextprotocol/servers/tree/main/src/memory", + "installation_notes": "Install using npx package manager. Note: Default memory graph location may be hard to find where npx installs the module.", + "is_builtin": false, + "endorsed": true, + "environmentVariables": [] + }, { "id": "mbot-mcp", "name": "MBot", @@ -408,6 +367,17 @@ "endorsed": false, "environmentVariables": [] }, + { + "id": "memory", + "name": "Memory", + "description": "Built-in memory system for persistent context and information storage", + "command": "", + "link": "https://github.com/block/goose/tree/main/crates/goose-mcp/src/memory", + "installation_notes": "This is a built-in extension that comes with Goose and can be enabled on the Extensions page.", + "is_builtin": true, + "endorsed": true, + "environmentVariables": [] + }, { "id": "mongodb", "name": "MongoDB", @@ -458,6 +428,40 @@ "endorsed": false, "environmentVariables": [] }, + { + "id": "pdf_read", + "name": "PDF Reader", + "description": "Read large and complex PDF documents", + "command": "uvx mcp-read-pdf", + "link": "https://github.com/michaelneale/mcp-read-pdf", + "installation_notes": "Install using uvx package manager.", + "is_builtin": false, + "endorsed": true, + "environmentVariables": [] + }, + { + "id": "pieces", + "name": "Pieces", + "description": "Provides access to your Pieces long-term memory. You need to have Pieces installed to use this.", + "url": "http://localhost:39300/model_context_protocol/2024-11-05/sse", + "link": "https://pieces.app?utm_source=goose&utm_medium=collab&utm_campaign=mcp", + "installation_notes": "You need to install Pieces first, and have this running.", + "is_builtin": false, + "endorsed": true, + "environmentVariables": [], + "type": "remote" + }, + { + "id": "playwright", + "name": "Playwright", + "description": "Interact with web pages through structured accessibility snapshots using Playwright", + "command": "npx @playwright/mcp@latest", + "link": "https://github.com/microsoft/playwright-mcp", + "installation_notes": "Install using npx package manager.", + "is_builtin": false, + "endorsed": true, + "environmentVariables": [] + }, { "id": "postgres-mcp", "name": "PostgreSQL", @@ -530,6 +534,17 @@ "endorsed": false, "environmentVariables": [] }, + { + "id": "speech_mcp", + "name": "Speech Interface", + "description": "Voice interaction with audio visualization for Goose - enables real-time voice interaction, audio/video transcription, text-to-speech conversion, and multi-speaker audio generation", + "command": "uvx -p 3.10.14 speech-mcp@latest", + "link": "https://github.com/Kvadratni/speech-mcp", + "installation_notes": "Install using uvx package manager. Requires PortAudio to be installed on your system for PyAudio to capture audio from your microphone.", + "is_builtin": false, + "endorsed": true, + "environmentVariables": [] + }, { "id": "square-mcp", "name": "Square", @@ -552,6 +567,23 @@ } ] }, + { + "id": "tavily", + "name": "Tavily Web Search", + "description": "Web search capabilities powered by Tavily", + "command": "npx -y tavily-mcp", + "link": "https://github.com/tavily-ai/tavily-mcp", + "installation_notes": "Install using uvx package manager. Requires Tavily API key.", + "is_builtin": false, + "endorsed": true, + "environmentVariables": [ + { + "name": "TAVILY_API_KEY", + "description": "API key for Tavily web search service", + "required": true + } + ] + }, { "id": "tutorial-mcp", "name": "Tutorial", @@ -563,6 +595,17 @@ "endorsed": false, "environmentVariables": [] }, + { + "id": "vscode", + "name": "VSCode", + "description": "Provides a VSCode IDE integration for development workflows", + "command": "npx vscode-mcp-server", + "link": "https://github.com/block/vscode-mcp", + "installation_notes": "Install using npx package manager.", + "is_builtin": false, + "endorsed": true, + "environmentVariables": [] + }, { "id": "youtube-transcript-mcp", "name": "YouTube Transcript", @@ -573,36 +616,5 @@ "is_builtin": false, "endorsed": false, "environmentVariables": [] - }, - { - "id": "goose-docs", - "name": "Goose Docs", - "description": "GitMCP for Goose documentation", - "command": "npx mcp-remote https://block.gitmcp.io/goose/", - "link": "https://github.com/idosal/git-mcp", - "is_builtin": false, - "endorsed": false, - "environmentVariables": [] - }, - { - "id": "gitmcp", - "name": "GitMCP", - "description": "Gets latest documentation for any GitHub project", - "command": "npx -y mcp-remote https://gitmcp.io/docs", - "link": "https://github.com/idosal/git-mcp", - "is_builtin": false, - "endorsed": false, - "environmentVariables": [] - }, - { - "id": "container-use", - "name": "Container Use", - "description": "Integrate container workflows with Goose using the Container-Use MCP", - "command": "npx -y mcp-remote https://container-use.com/mcp", - "link": "https://container-use.com", - "installation_notes": "Requires Node.js and Docker.", - "is_builtin": false, - "endorsed": true, - "environmentVariables": [] } -] +] \ No newline at end of file