# Setting Up Claude Desktop

Claude Desktop is Anthropic's desktop application for macOS and Windows. You can connect it to the Gathering Organiser MCP Server so that Claude can manage gatherings directly from your conversations.

### Option 1: HTTP mode (recommended)

This connects Claude Desktop to the hosted MCP server. No local setup required.

1. Open Claude Desktop
2. Go to **Settings** (click your profile icon, then **Settings**)
3. Click **Developer** in the sidebar, then **Edit Config**
4. This opens the configuration file. Add the following to the `mcpServers` section:

```json
{
  "mcpServers": {
    "gathering-organiser": {
      "url": "https://mcp-gatherings.junovy.com/mcp",
      "transport": "streamable-http"
    }
  }
}
```

5. Save the file and restart Claude Desktop
6. When you first use a gathering tool, you'll be prompted to sign in with your Junovy Account via Keycloak

### Option 2: stdio mode (local development)

This runs the MCP server on your own machine. Useful for developers working on the Riverland Faeries codebase.

**Prerequisites:**
- Node.js 22+ (via Volta)
- pnpm 10+
- The `tenant-riverland-faeries` repository cloned locally

**Steps:**

1. Build the MCP server:

```bash
cd tenant-riverland-faeries/apps/mcp
pnpm install
pnpm build
```

2. Open your Claude Desktop config file and add:

```json
{
  "mcpServers": {
    "gathering-organiser": {
      "command": "node",
      "args": ["/path/to/tenant-riverland-faeries/apps/mcp/dist/index.js"],
      "env": {
        "GATHERING_API_URL": "http://localhost:3000",
        "GATHERING_API_TOKEN": "your-api-token"
      }
    }
  }
}
```

Replace `/path/to/` with the actual path to your local repository, and `your-api-token` with a valid API token.

3. Save and restart Claude Desktop

### Config file locations

| Platform | Path |
|----------|------|
| **macOS** | `~/Library/Application Support/Claude/claude_desktop_config.json` |
| **Windows** | `%APPDATA%\Claude\claude_desktop_config.json` |

### Verifying the connection

After restarting Claude Desktop, you should see a hammer icon (🔨) in the input area. Click it to see the list of available gathering tools. If the tools appear, the connection is working.

Try asking Claude: "List all gatherings" to confirm everything is set up correctly.

### Troubleshooting

- **Tools don't appear**: check that the config JSON is valid (no trailing commas, correct brackets) and restart Claude Desktop
- **Authentication errors (HTTP mode)**: make sure you can sign in to `riverland.faeries.eu` with your Junovy Account; the MCP server uses the same Keycloak authentication
- **Connection refused (stdio mode)**: verify the path in `args` points to the built `dist/index.js` file, and that the API URL and token are correct
- **Server not responding**: check that the Riverland Faeries API is running (locally for stdio, or that `mcp-gatherings.junovy.com` is reachable for HTTP)