# Windsurf Integration Windsurf is an AI-powered code editor that supports MCP servers. This guide provides complete setup instructions for integrating the Ollama MCP server with Windsurf. ## Step 1: Configure MCP Server Add the Ollama MCP server to your Windsurf MCP configuration: **`%USERPROFILE%\.codeium\windsurf\mcp_config.json`** (Windows) **`~/.codeium/windsurf/mcp_config.json`** (macOS/Linux) ```json { "mcpServers": { "ollama": { "command": "py", "args": ["-m", "mcp_ollama_python"], "disabled": false, "env": {} }, "git": { "command": "py", "args": ["-m", "mcp_server_git"], "disabled": true, "env": {} } } } ``` **Alternative Configuration (with Poetry):** ```json { "mcpServers": { "ollama": { "command": "py", "args": ["-m", "poetry", "run", "mcp-ollama-python"], "cwd": "d:/path/to/mcp-ollama-python", "disabled": false, "env": {} } } } ``` **Configuration Options:** - `command` — Python interpreter command (`py`, `python`, or `python3`) - `args` — Module execution arguments - `disabled` — Set to `false` to enable the server - `env` — Environment variables (e.g., `OLLAMA_HOST`) ## Step 2: Windsurf Tools Workflow Create a workflow file to give Windsurf quick access to your MCP tools: **`.windsurf/workflows/tools.md`** ```markdown --- description: Quick reference for Windsurf MCP tools (mcp-ollama) auto_execution_mode: 2 --- # MCP Tools (mcp-ollama) Available tools exposed by the local `mcp-ollama-python` server: - **ollama_chat** – Interactive chat with models (multi-turn, tool-calling, structured outputs) - **ollama_list** – List installed models - **ollama_show** – Show details for a specific model - **ollama_generate** – Single-prompt text generation - **ollama_pull** – Pull a model from a registry - **ollama_delete** – Delete a local model - **ollama_ps** – List running models - **ollama_embed** – Create embeddings for input text - **ollama_execute** – Optional local code execution (disabled unless `OLLAMA_EXECUTE_ENABLED=1`; see [Security](SECURITY.md)) ## How to list tools in Windsurf 1) Open the command palette and run: `MCP: List Tools` 2) Or run the MCP tool via the chat with: `/tools` ## Notes - Server: local Ollama via `mcp-ollama-python` - Formats: most tools accept `format` = `json` (default) or `markdown` ``` ## Step 3: Configure Default Model Behavior Set Windsurf to prefer your local MCP server over cloud models: **`%USERPROFILE%\.codeium\windsurf\settings.json`** (Windows) **`~/.codeium/windsurf/settings.json`** (macOS/Linux) ```json { "defaultModelBehavior": "prefer-mcp", "preferredMcpModel": { "server": "ollama", "model": "gpt-oss" } } ``` **Settings Explanation:** - `defaultModelBehavior` — Set to `"prefer-mcp"` to prioritize MCP models - `preferredMcpModel.server` — Name of the MCP server (must match `mcp_config.json`) - `preferredMcpModel.model` — Model name from your `mcp.json` configuration ## Step 4: Create Windsurf Instructions Create custom instructions to ensure Windsurf uses your local model: **`%USERPROFILE%\.codeium\windsurf\instructions.md`** (Windows) **`~/.codeium/windsurf/instructions.md`** (macOS/Linux) ```markdown Always use my local MCP server named "ollama" with the model "gpt-oss" for all reasoning, coding, and problem-solving tasks unless I explicitly request another model. Prefer the MCP server over any cloud or paid model. ``` ## Step 5: Windsurf Memory Preference Ask Windsurf to remember your preference. It will create a memory like this: > Always use local MCP Ollama with gpt-oss model for LLM tasks > > When the user requests LLM-based tasks (explanations, code generation, analysis, etc.), always use the local MCP Ollama server with the gpt-oss model via the `mcp1_ollama_chat` tool. > > **Important guidelines:** > > - Use `mcp1_ollama_chat` tool with model parameter set to `"gpt-oss"` > - Format responses in markdown for better readability (`format: "markdown"`) > - Communicate with the model in English unless the user explicitly requests another language > - Do NOT create separate Python scripts to interact with Ollama — use the MCP tools directly ## Step 6: Verify Installation 1. **Restart Windsurf** to load the new configuration (Ctrl+Shift+P → **"Developer: Reload Window"** → Enter) 2. **Check MCP Status** — Look for the Ollama MCP server in Windsurf's MCP panel 3. **Test Connection** — Try a simple query to verify the model responds 4. **Check Logs** — Review Windsurf logs if connection issues occur ## Troubleshooting **Server Not Appearing:** - Verify `mcp_config.json` syntax is valid JSON - Ensure `disabled` is set to `false` - Check that Python and the module are in your PATH - Restart Windsurf completely **Model Not Available:** - Verify the model name in `settings.json` matches `mcp.json` - Ensure Ollama is running (`ollama serve`) - Check that the model is pulled (`ollama pull gpt-oss`) **Connection Errors:** - Verify `OLLAMA_HOST` environment variable if using custom host - Check Ollama server logs for errors - Ensure no firewall blocking localhost connections