pypi ollama-handoffstdioMITupdated 2mo ago
An MCP server that offloads cheap work from your cloud LLM agent to a local Ollama model.
O que dá para fazer com ollama handoff?
ollama-handoff
An MCP server that offloads cheap work from your cloud LLM agent to a local Ollama model.
Your frontier model (Claude, GPT, etc.) is brilliant and metered. A lot of the work it gets handed — summarizing a log, drafting a commit message, pulling every URL out of a file, a quick first-pass code review — doesn't need frontier reasoning at all. ollama-handoff exposes your local Ollama instance as a handful of purpose-built MCP tools, so your agent can route that work to a model on your own GPU — at zero cloud cost — and spend its (paid) reasoning budget on the things that actually need it.
This isn't a generic "wrap the Ollama API" server. Each tool ships with a baked-in system prompt and a description written for the calling agent, so the agent knows when to hand off and gets a tuned result back without re-stating instructions every call.
Why you'd want this
- 💸 Spend less. Routine offloads run locally and bill nothing.
- ⚡ Keep the big model focused. Summaries, extractions, and drafts don't eat its context or your budget.
- 🧠 Tuned, not raw.
summarize_local,code_review_local,draft_commit_message_local, andextract_localcome with reviewer/summarizer/extractor system prompts already dialed in. - 🔌 Drop-in. One MCP registration; works with Claude Code, Claude Desktop, Cursor, and any MCP client.
- 🪶 Tiny & auditable. Two dependencies (
mcp,httpx), fully typed, unit-tested, no telemetry.
Requirements
- Ollama running locally (
ollama serve) with at least one model pulled, e.g.ollama pull qwen2.5-coder:14b. - Python 3.11+ (or just
uvx, which manages it for you).
Install
The fastest path is uv — no manual venv needed:
uvx ollama-handoff # run directly
# or
pip install ollama-handoff # then run: ollama-handoff
Claude Code
claude mcp add ollama-handoff -- uvx ollama-handoff
Claude Desktop / Cursor (mcp config block)
{
"mcpServers": {
"ollama-handoff": {
"command": "uvx",
"args": ["ollama-handoff"],
"env": {
"OLLAMA_DEFAULT_MODEL": "qwen2.5-coder:14b"
}
}
}
}
Run with Docker
A Dockerfile is included. The server speaks MCP over stdio, so run it
interactively (-i) and point it at your Ollama instance:
docker build -t ollama-handoff .
docker run --rm -i -e OLLAMA_URL=http://host.docker.internal:11434 ollama-handoff
On native Linux (no Docker Desktop), use --network=host with
OLLAMA_URL=http://localhost:11434.
Tools
| Tool | What it does | When the agent should reach for it |
|---|---|---|
ask_local |
One-shot prompt to the local model | Any handoff that doesn't need frontier reasoning |
chat_local |
Multi-turn local chat | Handoffs needing more than one turn of context |
summarize_local |
Structured summary (headline + bullets) | Long files, logs, transcripts, docs |
code_review_local |
Quick first-pass review of a diff/code | Cheap pre-filter before a deep review |
draft_commit_message_local |
Conventional commit message from a diff | Routine commits |
extract_local |
Pull structured items from unstructured text | URLs, function names, error codes, TODOs |
list_models |
List locally available Ollama models | Discovery / choosing a model |
server_info |
Report the effective configuration | Debugging setup |
Configuration
All configuration is via environment variables set in your MCP registration:
| Variable | Default | Description |
|---|---|---|
OLLAMA_URL |
http://localhost:11434 |
Base URL of the Ollama server |
OLLAMA_DEFAULT_MODEL |
qwen2.5-coder:14b |
Default model for handoffs |
OLLAMA_NUM_CTX |
32768 |
Context window in tokens |
OLLAMA_KEEP_ALIVE |
30m |
How long to keep the model resident in VRAM |
OLLAMA_TIMEOUT_S |
600 |
Per-request timeout, seconds |
Example
Once registered, you don't call the tools yourself — your agent does. A typical exchange:
You: Summarize the errors in
build.logand draft a commit for the staged fix.Agent: (calls
summarize_local(build.log, focus="errors and stack traces")anddraft_commit_message_local(git diff --staged)— both run on your GPU, nothing billed) → returns the summary + commit message.
Development
git clone https://github.com/Michael-WhiteCapData/ollama-handoff
cd ollama-handoff
uv pip install -e ".[dev]"
ruff check .
pytest # tests use httpx.MockTransport — no running Ollama required
See CONTRIBUTING.md. Contributions welcome — especially new specialized handoff tools.
License
MIT © Michael Tierney
Instalação
Adicione ollama handoff ao seu cliente. Escolha o que você usa.
claude mcp add ollama-handoff -- uvx ollama-handoffcodex mcp add ollama-handoff -- uvx ollama-handoffamp mcp add ollama-handoff -- uvx ollama-handoff{
"mcpServers": {
"ollama-handoff": {
"command": "uvx",
"args": [
"ollama-handoff"
]
}
}
}Add to `claude_desktop_config.json`, then restart Claude Desktop.
{
"mcpServers": {
"ollama-handoff": {
"command": "uvx",
"args": [
"ollama-handoff"
]
}
}
}Add to `~/.cursor/mcp.json`, or `.cursor/mcp.json` for a single project.
code --add-mcp '{"name":"ollama-handoff","command":"uvx","args":["ollama-handoff"]}'Or add the block manually to `.vscode/mcp.json` under `servers`.
{
"mcpServers": {
"ollama-handoff": {
"command": "uvx",
"args": [
"ollama-handoff"
]
}
}
}Add to `~/.codeium/windsurf/mcp_config.json`.
{
"mcpServers": {
"ollama-handoff": {
"command": "uvx",
"args": [
"ollama-handoff"
]
}
}
}Add to `cline_mcp_settings.json` via the MCP Servers panel.
{
"mcpServers": {
"ollama-handoff": {
"command": "uvx",
"args": [
"ollama-handoff"
]
}
}
}Add to `~/.gemini/settings.json`.
{
"mcpServers": {
"ollama-handoff": {
"type": "local",
"command": "uvx",
"args": [
"ollama-handoff"
],
"tools": [
"*"
]
}
}
}Add to `~/.copilot/mcp-config.json`, or run `/mcp add` inside the CLI.
{
"context_servers": {
"ollama-handoff": {
"command": {
"path": "uvx",
"args": [
"ollama-handoff"
]
}
}
}
}Add to your Zed `settings.json`.
uvx ollama-handoffRun `goose configure`, choose **Add Extension → Command-line Extension**, and paste this command.
8 ferramentas
ollama handoff expõe 8 ferramentas a um agente conectado.
- ask_local
- One-shot prompt to the local model
- chat_local
- Multi-turn local chat
- summarize_local
- Structured summary (headline + bullets)
- code_review_local
- Quick first-pass review of a diff/code
- draft_commit_message_local
- Conventional commit message from a diff
- extract_local
- Pull structured items from unstructured text
- list_models
- List locally available Ollama models
- server_info
- Report the effective configuration
Pontuação
72 / 100
Boa
- Documentação25/25
- Manutenção16/25
- Confiança13/20
- Capacidade6/15
- Instalação12/15
- Documents what it does and how to connect
- Has a resolvable package or endpoint
- Exposes at least one tool, prompt or resource
- README has substantive content
- Includes a code example
- Documents its configuration
- Mentions credentials or security posture
- Last commit 70 days ago
- Has a release history
- Repository is not archived
- Licensed MIT
- Namespace verified in the official MCP registry
- Claimed by its owner
- Published under an organisation
- 8 tool(s) documented
- Provides prompt templates
- Provides resources
- 12 documented install method(s)
- Published to a package registry
- Offers a hosted endpoint — no local install
Histórico de versões
| Versões | Publicada |
|---|---|
| 0.1.2Mais recente | 23 de jun. de 2026 |
| 0.1.1 | 21 de jun. de 2026 |