# Goal Nodes and MCP Integration Goal nodes are an advanced Cannoli feature that uses the [Model Context Protocol (MCP)](https://modelcontextprotocol.io/docs/getting-started/intro) to provide LLMs with tools created by third-party developers. These nodes enable your cannolis to perform actions by connecting to external services and tools. ## Getting Started ### 1. Start the Cannoli Server Follow the directions in the Cannoli Server section of the Cannoli settings pane to start your server. You'll need to install NodeJS. You can install Node [here](https://nodejs.org/en/download) Next, run the command shown in cannoli settings in your terminal. Your server will only be active as long as that terminal window is active. ![[Pasted image 20251027222209.png]] ### 2. Configure MCP Servers Once your server is running and connected, you'll need to add MCP server configurations. Here are two example configurations to get started. Note that both of these servers (and many others) use uvx, a python package manager that you'll need to install for them to work, see the install instructions [here](https://docs.astral.sh/uv/getting-started/installation/) **MCP-MCP Server** (for discovering other MCP servers): ```json { "id": "mcp-mcp", "name": "mcp-mcp", "enabled": true, "type": "stdio", "command": "uvx", "args": ["mcp-mcp"], "env": {} } ``` **Fetch Server** (for web requests): ```json { "id": "fetch", "name": "fetch", "enabled": true, "type": "stdio", "command": "uvx", "args": ["mcp-server-fetch"], "env": {} } ``` ![[Pasted image 20251027222115.png]] ## How Goal Nodes Work Goal nodes are action nodes that start with an "mcp" code block ![[Pasted image 20251027221914.png]] When a goal node executes, it will automatically utilize relevant MCP servers from your settings and execute the goal using the available tools.