local-worker-mcp
Allows delegating tasks to a local Ollama model, which runs its own tool-calling loop with file read/write, web search, and current date/time tools, and returns auditable steps.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@local-worker-mcpSearch the web for the latest Qwen3.6 release and save a summary to notes.md"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
local-worker-mcp
Status (2026-09-10): kept as our own custom delegation tool, but not the default anymore -- DeepSeek Harness (
dsh --profile worker "<task>") is, after a head-to-head benchmark on the same task/model showed its realbash/fstools verify their own work more reliably out of the box. See~/local-llm-benchfor the comparison andtools/claude-hooks/README.mdfor the delegation guardrail that now points atdshfirst. This server is still useful for cases dsh doesn't fit, and got arun_scripttool added as a direct result of that benchmark (closing the verification gap it found).
An MCP server that exposes a local Ollama model (e.g. Qwen3.6) as an agentic worker -- with its own tool-calling loop (read/list/write files inside an allow-listed folder, search the web, get the real current date/time) -- for use from any MCP client: Claude Code, Claude Desktop, Continue, Cursor, whatever.
"Foreman/worker" pattern: the MCP client (you, or a larger LLM like Claude) keeps the full context and decides what's worth delegating; this server only ever executes the one scoped, well-specified task it's handed, with no memory of anything else.
Why this exists
Grew out of using Continue.dev with local models and hitting real instability in that extension (it hangs). Instead of continuing to patch a VS Code extension, this project separates the concern: a plain MCP server, no GUI in the loop, talking straight to Ollama.
Related MCP server: ollama-mcp
Architecture
MCP client (Claude Code, Claude Desktop, ...)
│ tools/call "delegate_task"
▼
local-worker-mcp (this server, streamable HTTP)
│ /api/chat with tools attached
▼
Ollama (localhost:11434, or remote over Tailscale)
│ tool_calls: read_file / write_file / search_web / ...
▼
local-worker-mcp executes each tool call, scoped to workspace_rootSecurity (read this before using it)
allowedRootsin the config is a real allow-list: the server refuses anyworkspace_rootor path that isn't literally inside one of those folders -- empty by default, by design. You have to explicitly add folders via the dashboard or the config file before the worker can touch anything.trustedParentsis the ergonomic escape hatch for the above: any subdirectory under one of these is auto-allowed without registering it individually -- defaults to~/code, so any project you keep there (and whateverworkspace_rootyour MCP client passes for it, e.g. the current Claude Code project directory) just works with zero manual setup. UseallowedRootsinstead when you want something scoped tighter than "everything under this folder".Every write (
write_file) is logged to~/.local-worker-mcp/activity.logwith the full path and size -- so you can audit what the model touched afterward.Explicitly tested that a directory-escape attempt (
../../etc/...) is rejected by the server itself, not just "trusted" to the model behaving.The local model can get things wrong (see
~/local-llm-bench/RESULTS.mdfor real data on when and how much) -- always reviewstepsin the response before trusting a file change.
Install / run
git clone https://github.com/deatherick/local-worker-mcp.git
cd local-worker-mcp
npm install
npm run build
node dist/server.jsOpen http://localhost:8787 for the config dashboard (model, context
length, allowed folders, etc. -- saved to ~/.local-worker-mcp/config.json).
To run it centralized (one Mac with Ollama, reachable from other machines
over Tailscale/LAN) and connect from an MCP client on another machine,
point that client's MCP config at http://<host>:8787/mcp
(streamable-http transport), e.g. in Continue:
mcpServers:
- name: Local Worker
type: streamable-http
url: http://your-host.your-tailnet.ts.net:8787/mcpExposed tools
delegate_task(task, workspace_root, model?, think?, max_steps?)-- runs the full loop. ReturnsfinalTextplus everystepsentry (which tool it called, with what arguments, and the result) so you can audit before trusting the outcome.list_worker_config()-- current config, so a client can confirm which model/folders it's talking to before delegating.
Development
npm run dev # build + startRoadmap / not included yet
Proxying to other existing MCP servers (Git, Context7) from inside the worker's own loop -- today it only has its own
search_webplus the native file tools.A shell-command tool -- deliberately NOT included in v0.1 given the risk; if added, it needs its own allow-list of permitted commands, not free execution.
Auth on the HTTP endpoint -- currently assumes it runs behind a trusted network (Tailscale/LAN), not exposed to the open internet.
License
Apache 2.0.
This server cannot be deployed
Maintenance
Related MCP Connectors
OCR, transcription, file extraction, and image generation for AI agents via MCP.
Discover and call AI agents via MCP. Supports A2A agents and platform agents with async tasks.
Read-only MCP server exposing a user ORANO library to their own AI agent.
Nifty's MCP server — exposes tasks, projects, messages, and files as tools for AI agents.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables natural language filesystem operations (create, list, delete directories/files) via Ollama local LLM and MCP protocol within allowed directories.6 npm1MIT
- AlicenseNot gradedqualityBmaintenanceMCP server for delegating coding tasks to local Ollama models. Supports listing models and executing tasks with file writing capabilities.1,177 npmAGPL 3.0
- AlicenseAqualityBmaintenanceEnables AI agents to offload mechanical, high-token work to local Ollama models through MCP, with role-based model discovery, batch processing, and file-aware inputs.4MIT
- AlicenseAqualityAmaintenanceEnables delegating complete coding tasks to a local OpenAI-compatible model through MCP, using bounded Git worktrees and compact receipts so conversation history is not carried.4MIT