Ollama MCP Server

by rawveg

167 stars
1.4k downloads
Not rated
GitHub

About

Integrates Ollama's local LLM models with MCP-compatible applications. Requires a local Ollama installation.

Details

Author
rawveg
GitHub stars
167
Downloads
1,427
Categories
Developer Tools, AI

- 14 tools covering model management, operations, and web utilities
- Hot-swap architecture for automatic tool discovery
- Zero external dependencies – minimal footprint
- Hybrid mode: use local and cloud models simultaneously
- Web search and fetch tools via Ollama Cloud (requires API key)
- Type-safe implementation with TypeScript and Zod validation

Setting up with Highlight

This MCP is not yet compatible with Highlight’s one-click setup. However, you can still use it with Highlight by following these steps:

  1. Download and install Highlight from highlightai.com/download
  2. Navigate to the plugins tab and select "Add Custom Plugin"
  3. Configure the plugin with the settings below
    Plugin Name Ollama MCP Server
    Command (node, npx, python, etc.)

    Please refer to the README for specific instructions on how to obtain API keys or other required environment variables.

  4. Enable "Start Automatically" if you want the plugin to start when Highlight launches

From the repository

Install via npm (npm install -g ollama-mcp or npx -y ollama-mcp), then add it to your MCP client's configuration (e.g., Claude Desktop's claude_desktop_config.json or Cline's cline_mcp_settings.json). Set environment variables OLLAMA_HOST (default http://127.0.0.1:11434) and optionally OLLAMA_API_KEY for cloud features. Run the server via the configured command; tools are automatically discovered.

ollama_chat

Chat with a model using conversation messages. Supports system messages, multi-turn conversations, tool calling, and generation options.

ollama_copy

Copy a model. Creates a duplicate of an existing model with a new name.

ollama_create

Create a new model with structured parameters. Allows customization of model behavior, system prompts, and templates.

ollama_delete

Delete a model from local storage. Removes the model and frees up disk space.

ollama_embed

Generate embeddings for text input. Returns numerical vector representations.

ollama_generate

Generate completion from a prompt. Simpler than chat, useful for single-turn completions.

ollama_list

List all available Ollama models installed locally. Returns model names, sizes, and modification dates.

ollama_ps

List running models. Shows which models are currently loaded in memory.

ollama_pull

Pull a model from the Ollama registry. Downloads the model to make it available locally.

ollama_push

Push a model to the Ollama registry. Uploads a local model to make it available remotely.

ollama_show

Show detailed information about a specific model including modelfile, parameters, and architecture details.

ollama_web_fetch

Fetch a web page by URL using Ollama's web fetch API. Returns the page title, content, and links. Requires OLLAMA_API_KEY environment variable.

ollama_web_search

Perform a web search using Ollama's web search API. Augments models with latest information to reduce hallucinations. Requires OLLAMA_API_KEY environment variable.

Claude Desktop / Cursor

Paste into your MCP client config file to install this server.

{
    "mcpServers": {
        "ollama mcp server": {
            "ollama": {
                "command": "npx",
                "args": [
                    "-y",
                    "ollama-mcp"
                ]
            }
        }
    }
}

McpServers

{
    "ollama": {
        "command": "npx",
        "args": [
            "-y",
            "ollama-mcp"
        ]
    }
}

🦙 Ollama MCP Server

Supercharge your AI assistant with local LLM access

License: AGPL-3.0
TypeScript
MCP
Coverage

An MCP (Model Context Protocol) server that exposes the complete Ollama SDK as MCP tools, enabling seamless integration between your local LLM models and MCP-compatible applications like Claude Desktop and Cline.

FeaturesInstallationAvailable ToolsConfigurationRetry BehaviorDevelopment

</div>

---

✨ Features

- ☁️ Ollama Cloud Support - Full integration with Ollama's cloud platform
- 🔧 14 Comprehensive Tools - Full access to Ollama's SDK functionality
- 🔄 Hot-Swap Architecture - Automatic tool discovery with zero-config
- 🎯 Type-Safe - Built with TypeScript and Zod validation
- 📊 High Test Coverage - 96%+ coverage with comprehensive test suite
- 🚀 Zero Dependencies - Minimal footprint, maximum performance
- 🔌 Drop-in Integration - Works with Claude Desktop, Cline, and other MCP clients
- 🌐 Web Search & Fetch - Real-time web search and content extraction via Ollama Cloud
- 🔀 Hybrid Mode - Use local and cloud models seamlessly in one server

💡 Level Up Your Ollama Experience with Claude Code and Desktop

The Complete Package: Tools + Knowledge

This MCP server gives Claude the tools to interact with Ollama - but you'll get even more value by also installing the Ollama Skill from the Skillsforge Marketplace:

- 🚗 This MCP = The Car - All the tools and capabilities
- 🎓 Ollama Skill = Driving Lessons - Expert knowledge on how to use them effectively

The Ollama Skill teaches Claude:
- Best practices for model selection and configuration
- Optimal prompting strategies for different Ollama models
- When to use chat vs generate, embeddings, and other tools
- Performance optimization and troubleshooting
- Advanced features like tool calling and function support

Install both for the complete experience:
1. ✅ This MCP server (tools)
2. ✅ Ollama Skill (expertise)

Result: Claude doesn't just have the car - it knows how to drive! 🏎️

📦 Installation

Quick Start with Claude Desktop

Add to your Claude Desktop config (~/Library/Application Support/Claude/claude_desktop_config.json on macOS):

{
  "mcpServers": {
    "ollama": {
      "command": "npx",
      "args": ["-y", "ollama-mcp"]
    }
  }
}

Global Installation

npm install -g ollama-mcp

For Cline (VS Code)

Add to your Cline MCP settings (cline_mcp_settings.json):

{
  "mcpServers": {
    "ollama": {
      "command": "npx",
      "args": ["-y", "ollama-mcp"]
    }
  }
}

🛠️ Available Tools

Model Management

| Tool | Description | |------|-------------| | ollama_list | List all available local models | | ollama_show | Get detailed information about a specific model | | ollama_pull | Download models from Ollama library | | ollama_push | Push models to Ollama library | | ollama_copy | Create a copy of an existing model | | ollama_delete | Remove models from local storage | | ollama_create | Create custom models from Modelfile |

Model Operations

| Tool | Description | |------|-------------| | ollama_ps | List currently running models | | ollama_generate | Generate text completions | | ollama_chat | Interactive chat with models (supports tools/functions) | | ollama_embed | Generate embeddings for text |

Web Tools (Ollama Cloud)

| Tool | Description | |------|-------------| | ollama_web_search | Search the web with customizable result limits (requires OLLAMA_API_KEY) | | ollama_web_fetch | Fetch and parse web page content (requires OLLAMA_API_KEY) |

> Note: Web tools require an Ollama Cloud API key. They connect to https://ollama.com/api for web search and fetch operations.

⚙️ Configuration

Environment Variables

| Variable | Default | Description |
|----------|---------|-------------|
| OLLAMA_HOST | http://127.0.0.1:11434 | Ollama server endpoint (use https://ollama.com for cloud) |
| OLLAMA_API_KEY | - | API key for Ollama Cloud (required for web tools and cloud models) |

Custom Ollama Host

{
  "mcpServers": {
    "ollama": {
      "command": "npx",
      "args": ["-y", "ollama-mcp"],
      "env": {
        "OLLAMA_HOST": "http://localhost:11434"
      }
    }
  }
}

Ollama Cloud Configuration

To use Ollama's cloud platform with web search and fetch capabilities:

{
  "mcpServers": {
    "ollama": {
      "command": "npx",
      "args": ["-y", "ollama-mcp"],
      "env": {
        "OLLAMA_HOST": "https://ollama.com",
        "OLLAMA_API_KEY": "your-ollama-cloud-api-key"
      }
    }
  }
}

Cloud Features:
- ☁️ Access cloud-hosted models
- 🔍 Web search with ollama_web_search (requires API key)
- 📄 Web fetch with ollama_web_fetch (requires API key)
- 🚀 Faster inference on cloud infrastructure

Get your API key: Visit ollama.com to sign up and obtain your API key.

Hybrid Mode (Local + Cloud)

You can use both local and cloud models by pointing to your local Ollama instance while providing an API key:

{
  "mcpServers": {
    "ollama": {
      "command": "npx",
      "args": ["-y", "ollama-mcp"],
      "env": {
        "OLLAMA_HOST": "http://127.0.0.1:11434",
        "OLLAMA_API_KEY": "your-ollama-cloud-api-key"
      }
    }
  }
}

This configuration:
- ✅ Runs local models from your Ollama instance
- ✅ Enables cloud-only web search and fetch tools
- ✅ Best of both worlds: privacy + web connectivity

🔄 Retry Behavior

The MCP server includes intelligent retry logic for handling transient failures when communicating with Ollama APIs:

Automatic Retry Strategy

Web Tools (ollama_web_search and ollama_web_fetch):
- Automatically retry on rate limit errors (HTTP 429)
- Maximum of 3 retry attempts (4 total requests including initial)
- Request timeout: 30 seconds per request (prevents hung connections)
- Respects the Retry-After header when provided by the API
- Falls back to exponential backoff with jitter when Retry-After is not present

Retry-After Header Support

The server intelligently handles the standard HTTP Retry-After header in two formats:

1. Delay-Seconds Format:

Retry-After: 60

Waits exactly 60 seconds before retrying.

2. HTTP-Date Format:

Retry-After: Wed, 21 Oct 2025 07:28:00 GMT

Calculates delay until the specified timestamp.

Exponential Backoff

When Retry-After is not provided or invalid:
- Initial delay: 1 second (default)
- Maximum delay: 10 seconds (default, configurable)
- Strategy: Exponential backoff with full jitter
- Formula: random(0, min(initialDelay × 2^attempt, maxDelay))

Example retry delays:
- 1st retry: 0-1 seconds
- 2nd retry: 0-2 seconds
- 3rd retry: 0-4 seconds (capped at 0-10s max)

Error Handling

Retried Errors (transient failures):
- HTTP 429 (Too Many Requests) - rate limiting
- HTTP 500 (Internal Server Error) - transient server issues
- HTTP 502 (Bad Gateway) - gateway/proxy received invalid response
- HTTP 503 (Service Unavailable) - server temporarily unable to handle request
- HTTP 504 (Gateway Timeout) - gateway/proxy did not receive timely response

Non-Retried Errors (permanent failures):
- Request timeouts (30 second limit exceeded)
- Network timeouts (no status code)
- Abort/cancel errors
- HTTP 4xx errors (except 429) - client errors requiring changes
- Other HTTP 5xx errors (501, 505, 506, 508, etc.) - configuration/implementation issues

The retry mechanism ensures robust handling of temporary API issues while respecting server-provided retry guidance and preventing excessive request rates. Transient 5xx errors (500, 502, 503, 504) are safe to retry for the idempotent POST operations used by ollama_web_search and ollama_web_fetch. Individual requests timeout after 30 seconds to prevent indefinitely hung connections.

🎯 Usage Examples

Chat with a Model

// MCP clients can invoke:
{
  "tool": "ollama_chat",
  "arguments": {
    "model": "llama3.2:latest",
    "messages": [
      { "role": "user", "content": "Explain quantum computing" }
    ]
  }
}

Generate Embeddings

{
  "tool": "ollama_embed",
  "arguments": {
    "model": "nomic-embed-text",
    "input": ["Hello world", "Embeddings are great"]
  }
}

Web Search

{
  "tool": "ollama_web_search",
  "arguments": {
    "query": "latest AI developments",
    "max_results": 5
  }
}

🏗️ Architecture

This server uses a hot-swap autoloader pattern:

src/
├── index.ts          # Entry point (27 lines)
├── server.ts         # MCP server creation
├── autoloader.ts     # Dynamic tool discovery
└── tools/            # Tool implementations
    ├── chat.ts       # Each exports toolDefinition
    ├── generate.ts
    └── ...

Key Benefits:
- Add new tools by dropping files in src/tools/
- Zero server code changes required
- Each tool is independently testable
- 100% function coverage on all tools

🧪 Development

Prerequisites

- Node.js v16+
- npm or pnpm
- Ollama running locally

Setup

```bash

No reviews yet — be the first

Sign in to leave a review

Use Google, GitHub, or an email account so ratings stay tied to real people.

Email sign in

No reviews posted yet.