LocalTokens
An MCP server that turns your machine or LAN of ollama nodes into a local token generator, enabling coding agents to delegate bounded processing tasks to local models and save cloud credits.
README
LocalTokens
Turn your machine — or your whole LAN of ollama nodes — into a local token generator for coding agents. An MCP server that lets Claude Code, opencode or codex delegate bounded processing tasks to local models, cutting cloud-credit usage while the agent keeps doing the thinking.
Pure Python stdlib. Zero dependencies. One file of config (optional).
Why
A large share of daily agent spend goes to work that doesn't need a frontier model: first-pass code review, summarising files, boilerplate, format conversions, commit messages. LocalTokens moves that work to your own hardware with two real levers:
- File-aware tools — the agent sends paths, never contents. Files are read locally and go straight to the local model: they never enter the agent's context window.
- Local generation — bulk output is produced by your nodes; the agent only reviews the result.
Unlike single-node delegation servers, LocalTokens speaks to a pool of nodes: tasks fan out across your LAN in parallel, with per-task failover, round-robin with random start (multiple agent sessions won't stampede one node), and your workstation's ollama used only as a last resort so it never becomes the straggler.
Savings are measured, not assumed — every call logs two honest
counters (input reading avoided vs. output generated locally, which is
re-read as input) to a JSONL ledger; the estado tool reports totals.
Tasks, not prompts
| Tool | Task | Fan-out |
|---|---|---|
procesar |
one bounded task (boilerplate, docstrings, commit msg…) | 1 node |
lote |
N independent tasks at once | 1 node per task |
revisar_archivos |
first-pass code review of file paths | 1 node per file |
resumir_archivos |
summarise/extract from files | 1 node per file |
estado |
pool health + accumulated savings | — |
Install
pip install -e . # or: pipx install .
ollama pull qwen2.5-coder:7b llama3.2:3b # on each node you'll use
# Claude Code
claude mcp add --scope user localtokens localtokens
# codex
codex mcp add localtokens -- localtokens
# opencode (~/.config/opencode/opencode.json)
# "mcp": { "localtokens": { "type": "local", "command": ["localtokens"] } }
Then let it configure itself:
localtokens init # detects CPU/RAM/GPU, scans your LAN for
# ollama nodes, recommends models for your
# hardware and writes the config
localtokens init --solo-mostrar # report only, write nothing
localtokens init --sin-escanear # skip the LAN scan (localhost only)
localtokens init --rango 10.0.0.0/24 # scan a specific subnet
init detects your local CPU, RAM and GPU (nvidia-smi/rocm-smi), probes
your subnet for ollama nodes (TCP port 11434, two passes), inventories
which models each node serves, and recommends models your hardware can
actually run — a 24 GB GPU gets qwen2.5-coder:32b, a 2013 CPU-only box
gets qwen2.5-coder:1.5b. Existing config is backed up before writing.
Prefer manual setup? Copy config.example.json to
~/.config/localtokens/config.json and list every node (first entry =
the machine you work on; it is deliberately deprioritised). On each remote node, run ollama reachable
from the LAN: OLLAMA_HOST=0.0.0.0:11434 ollama serve.
An optional agent skill that teaches when to delegate ships in
skills/localtokens/SKILL.md — copy it to
~/.claude/skills/localtokens/.
Design notes
- The agent supervises: local output is volume, not judgment. Bounded, self-contained tasks only — architecture decisions stay with the agent.
- Responses are capped (20 KB default) so a 12-file review cannot blow up the very context it is saving; per-file input is capped at 24 KB.
- A background pre-warm loads models on remote nodes at server start, so the first task of the day doesn't look like a hang.
- Path guardrail (exact directory segments + filename patterns) refuses
.ssh,.env, keys, credentials. It is a guardrail against accidents, not a sandbox; contents travel over plain HTTP on your LAN.
Related work: houtini-lm, mcp-local-llm, claude-code-router. LocalTokens's differentiator is the parallel multi-node pool.
Español
Convierte tu máquina — o tu red local de equipos con ollama — en un generador de tokens locales para agentes de código. El agente delega tareas de procesamiento acotadas (no prompts a modelos concretos): LocalTokens decide modelo, nodo y reparto en paralelo con failover.
Las dos palancas de ahorro: los archivos se leen localmente (nunca pasan
por el contexto del agente) y la generación de volumen la hacen tus
nodos. El ahorro se mide en dos cuentas honestas por llamada
(tokens_lectura y tokens_generacion) en un registro JSONL.
Instalación: pip install -e ., luego registra localtokens en tu
cliente (arriba los tres comandos). Sin configuración usa
localhost:11434; con ~/.config/localtokens/config.json listas todos tus
equipos (la primera URL = tu máquina de trabajo, que queda al final de
la rotación a propósito). Código y herramientas en español — nació en el
proyecto ECO, construido en español por diseño.
License
MIT
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。