Ollama MCP Server
# Ollama MCP Server
š A powerful bridge between Ollama and the Model Context Protocol (MCP), enabling seamless integration of Ollama's local LLM capabilities into your MCP-powered applications.
## š Features
### Complete Ollama Integration
- **Full API Coverage**: Access all essential Ollama functionality through a clean MCP interface
- **OpenAI-Compatible Chat**: Drop-in replacement for OpenAI's chat completion API
- **Local LLM Power**: Run AI models locally with full control and privacy
### Core Capabilities
- š **Model Management**
- Pull models from registries
- Push models to registries
- List available models
- Create custom models from Modelfiles
- Copy and remove models
- š¤ **Model Execution**
- Run models with customizable prompts
- Chat completion API with system/user/assistant roles
- Configurable parameters (temperature, timeout)
- Raw mode support for direct responses
- š **Server Control**
- Start and manage Ollama server
- View detailed model information
- Error handling and timeout management
## š Getting Started
### Prerequisites
- [Ollama](https://ollama.ai) installed on your system
- Node.js and npm/pnpm
### Installation
1. Install dependencies:
```bash
pnpm install
```
2. Build the server:
```bash
pnpm run build
```
### Configuration
Add the server to your MCP configuration:
#### For Claude Desktop:
MacOS: `~/Library/Application Support/Claude/claude_desktop_config.json`
Windows: `%APPDATA%/Claude/claude_desktop_config.json`
```json
{
"mcpServers": {
"ollama": {
"command": "node",
"args": ["/path/to/ollama-server/build/index.js"],
"env": {
"OLLAMA_HOST": "http://127.0.0.1:11434" // Optional: customize Ollama API endpoint
}
}
}
}
```
## š Usage Examples
### Pull and Run a Model
```typescript
// Pull a model
await mcp.use_mcp_tool({
server_name: "ollama",
tool_name: "pull",
arguments: {
name: "llama2"
}
});
// Run the model
await mcp.use_mcp_tool({
server_name: "ollama",
tool_name: "run",
arguments: {
name: "llama2",
prompt: "Explain quantum computing in simple terms"
}
});
```
### Chat Completion (OpenAI-compatible)
```typescript
await mcp.use_mcp_tool({
server_name: "ollama",
tool_name: "chat_completion",
arguments: {
model: "llama2",
messages: [
{
role: "system",
content: "You are a helpful assistant."
},
{
role: "user",
content: "What is the meaning of life?"
}
],
temperature: 0.7
}
});
```
### Create Custom Model
```typescript
await mcp.use_mcp_tool({
server_name: "ollama",
tool_name: "create",
arguments: {
name: "custom-model",
modelfile: "./path/to/Modelfile"
}
});
```
## š§ Advanced Configuration
- `OLLAMA_HOST`: Configure custom Ollama API endpoint (default: http://127.0.0.1:11434)
- Timeout settings for model execution (default: 60 seconds)
- Temperature control for response randomness (0-2 range)
## š¤ Contributing
Contributions are welcome! Feel free to:
- Report bugs
- Suggest new features
- Submit pull requests
## š License
MIT License - feel free to use in your own projects!
---
Built with ā¤ļø for the MCP ecosystem
TDQS
Scored across 10 tools
Most tools have distinct purposes, such as list, pull, push, rm, and show, which clearly target different operations on models. However, 'run' and 'chat_completion' could be confused, as both involve executing models, though 'chat_completion' is more specific to API interactions. Overall, the descriptions help clarify boundaries, but there is some overlap in execution-related tools.
The naming is mixed with some inconsistencies: most tools use simple verb forms like list, pull, push, rm, run, and serve, which are consistent. However, 'chat_completion' uses snake_case and is more descriptive, while 'cp' and 'create' are shorter forms that deviate slightly. This creates a readable but not fully uniform pattern across all tools.
With 10 tools, the count is well-scoped for managing Ollama models, covering essential operations like listing, creating, pulling, pushing, removing, running, and serving. Each tool serves a clear purpose in the model lifecycle, making the set comprehensive without being overwhelming or too sparse for the domain.
The tool set provides complete coverage for Ollama model management, including CRUD operations (create, list, rm), lifecycle actions (pull, push, run, serve), and informational tools (show, chat_completion). There are no obvious gaps; agents can perform all core workflows from model acquisition to execution and maintenance seamlessly.