openlocal
openlocal
Offene Werkzeuge. Lokale Köpfe. Keine Cloud.
Ein Werkzeuggürtel, den kleine lokale Modelle tatsächlich nutzen können – und die Belege, um es zu beweisen.
pip install openlocal
openlocal quickstartDas ist alles. quickstart findet den Modellserver, den Sie bereits ausführen – ollama, LM Studio, llama.cpp, vLLM – schreibt Ihre Konfiguration, misst, welches Tool-Calling-Protokoll Ihr Modell tatsächlich nutzen kann, und führt eine echte Aufgabe aus, damit Sie es in Aktion sehen:
$ openlocal quickstart
openlocal quickstart - looking for a model server...
found ollama at http://127.0.0.1:11434/v1 with 6 model(s)
wrote ~/.openlocal/models.toml
default model: qwen3-4b (served as qwen3:4b)
measuring which tool protocol this model can drive...
-> native tool calling
demo: Read notes.md and tell me how many lines it has.
tool file_read
final
The file notes.md has 3 lines.
You are set up. Try:
openlocal run "list the files here and summarise what this project is"
openlocal eval # score this model on 15 deterministic tool tasks
openlocal mcp # serve these tools to Claude Code over MCPWarum openlocal
🪶 Null Abhängigkeiten | Reine Standardbibliothek. Installiert in Sekunden, läuft auf einem Raspberry Pi und kann nicht durch die Veröffentlichung eines anderen kaputt gemacht werden. |
🔌 Funktioniert mit dem, was Sie haben | Alles, was die OpenAI |
📊 Gemessen, nicht behauptet | 10 Modelle von 9 Anbietern, bewertet anhand von 17 deterministischen Aufgaben. Kein LLM-Richter – jede Prüfung ist ein Datei-Diff oder ein Regex. |
🧰 Ein Register, zwei Oberflächen | Die gleichen 8 Werkzeuge betreiben einen MCP-Server (Claude Code, jeder MCP-Client) und eine lokale Modell-Agentenschleife. |
🩹 Abgestimmt auf echte Fehler | Jede ergonomische Regel hier wurde durch ein Modell bezahlt, das kaputt ging. Die Lektionentabelle ist der Teil, den Sie sonst nirgendwo bekommen. |
🧩 Einen Anbieter durch Bearbeiten von TOML hinzufügen | Neue Modellfamilie? Bearbeiten Sie |
Related MCP server: Hermes MCP Server
Die Bestenliste
Gleiche Aufgaben, gleiche Werkzeuge, ein Modell nach dem anderen, zwei Durchläufe pro Modell. tools ist das Protokoll, das jedes Modell gemessen verwendet hat – nicht das, was seine Dokumentation behauptet.
Modell | Anbieter | Werkzeuge | Bestanden | Bestehensquote | Fehlerhafte JSON | Tok/s |
| Alibaba | native | 17/17 | 100% | 0 | 40.4 |
| z.ai | native | 17/17 | 100% | 0 | 39.9 |
| Alibaba | native | 17/17 | 100% | 0 | 16.6 |
| NVIDIA | native | 16/17 | 94% | 0 | 54.9 |
| native | 16/17 | 94% | 0 | 50.3 | |
| OpenAI | native | 16/17 | 94% | 2¹ | 45.3 |
| IBM | native | 15/17 | 88% | 4 | 66.0 |
| Meta | native | 14/17 | 85% | 2 | 33.4 |
| Mistral | native | 14/17 | 82% | 0 | 11.1 |
| Microsoft | native | 13/17 | 79% | 0 | 61.5 |
¹ Der Harmony-Parser von gpt-oss lehnt einige seiner eigenen Tool-Aufrufe ab (llama.cpp antwortet 500). Die Wiederholungsleiter des Clients stellt jeden wieder her – die Spalte retries in RESULTS.md hält das ehrlich.
Reproduzieren Sie es: openlocal leaderboard --repeat 2
Warum Ihr kleines Modell bei Werkzeugen versagt
Ein 3B-Modell versagt nicht, weil es dumm ist. Es versagt, weil Tool-Ausgabe ein Prompt ist und die meisten Tool-Ausgaben für Menschen geschrieben sind. Alles unten wurde gemessen – behalten, wenn die Punktzahl stieg, rückgängig gemacht, wenn nicht.
Was kaputt ging | Die Lösung | Gemessener Effekt |
"Was ist Zeile 300?" → Modell antwortete Zeile 311 | jede Zeile nummerieren: | in einem Durchgang behoben, modellübergreifend |
Modell durchlief eine 500-zeilige Datei eine Zeile pro Durchgang | Fußzeilen geben Fakten an, keine Befehle ("Datei wird fortgesetzt" ≠ "erneut aufrufen mit…") | phi: 12 verschwendete Schritte → 2 |
Prosa statt eines Tool-Aufrufs | Prosa ohne Tool = die endgültige Antwort (nur nativ) | phi: 51 fehlerhafte Antworten → 5 |
…aber "Klar, ich verwende file_grep" ist ein Plan | Absichtserkennung: Pläne werden angestoßen, Antworten werden akzeptiert | Läufe hörten auf, bei Absichten zu enden |
| Prosa-Aufrufsyntax wird geparst und ausgeführt | verschwendete Durchgänge beseitigt |
| JSON-Reparatur: Klammer-Scan, Enden schließen, Python-Literale, Fragment-Zusammenführung | phi bad_json 5 → 0 |
Modell schrieb die Datei bevor es die Quelle las | Erkennung von veralteten Schreibvorgängen zum Abschlusszeitpunkt | llama: 13 → 15 / 15 |
Modell riet "44" und wiederholte es, wenn es angestoßen wurde | ein Durchgang von | granite erholte die Aufgabe |
Las eine 4-zeilige CSV perfekt, sagte die Summe sei 40 | ein | granite: +2 Aufgaben |
Schrieb die Ausgabedatei, ohne jemals die Quelle zu lesen | Erkennung von aus der Luft gegriffenen Schreibvorgängen zum Abschlusszeitpunkt | qwen-4b über MCP erholte sich |
Kopierte die |
| edit_code: 10/10 Modelle bestehen |
Gleicher Aufruf, für immer (A→B→A→B) | Wiederholungswächter spielt das zwischengespeicherte Ergebnis erneut ab | llama-Paginierungsschleife verschwunden |
Server 500 auf eigener Tool-Aufruf-Syntax | Wiederholungsleiter: wie angefragt → wärmer → gleicher Durchgang ohne | gpt-oss: 11/15 → 14/15 |
Rückgängig gemacht: eine weitere System-Prompt-Regel | — | granite 12/15 → 11/15. Weniger Regeln gewinnen. |
MCP ist ein erstklassiger Bürger, kein Wrapper
openlocal eval --via-mcp führt die gesamte Evaluierungssuite erneut aus, wobei die Werkzeuge über einen echten stdio-MCP-Server bereitgestellt werden – Schemas über die Leitung, Ergebnisse als Inhaltsblöcke, ein Unterprozess pro Aufgabe. Die Ergebnisse stimmen mit den prozessinternen Zahlen überein, und das ist der Punkt: Was Claude Code erlebt, wurde gemessen.
Verwenden Sie es von Claude Code (oder einem beliebigen MCP-Client)
pip install "openlocal[mcp]"
claude mcp add openlocal -- openlocal mcpDie gleichen 10 Werkzeuge, die Ihr lokales Modell verwendet, jetzt in Claude Code. finish bleibt zurück – es ist Schleifensteuerung, keine Fähigkeit.
Befehle
openlocal quickstart # find a server, configure, probe, demo
openlocal run "goal" # agent loop over your tools
openlocal run "goal" --url http://host:1234/v1 # no config at all
openlocal chat "hello" # one plain turn, no tools
openlocal tools # what the model can call
openlocal probe # measure native vs JSON tool calling
openlocal eval # 17 deterministic tasks, pass/fail
openlocal eval --via-mcp # same tasks, tools served over a REAL MCP server
openlocal leaderboard --repeat 2 # every configured model, one table
openlocal mcp # stdio MCP server
openlocal models / serve / stop / status / pull # local llama-server managementsmol ist ein kürzerer Alias für dieselbe CLI.
Konfiguration
Ihr Arbeitsbereich ist ~/.openlocal (oder ein beliebiges Verzeichnis, das models.toml oder $OPENLOCAL_HOME enthält). Es enthält models.toml, state.json, Protokolle, Downloads und Evaluierungsergebnisse – niemals das installierte Paket.
[engine.ollama]
type = "external"
base_url = "http://127.0.0.1:11434/v1"
[[model]]
id = "qwen"
engine = "ollama"
family = "qwen" # tells openlocal this vendor's tool-calling quirks
served_model = "qwen3:4b" # the exact name the backend knows
default = trueUmgebungsvariable | Standard | Bedeutung |
|
| Arbeitsbereichsverzeichnis |
| – | jeden Befehl auf einen |
| cwd | Sandbox-Root für die Datei- und Shell-Werkzeuge |
| 8000 | harte Obergrenze für ein Tool-Ergebnis |
| dev-Befehle | Komma-Liste oder |
| 120 | Sekunden, bevor ein MCP-Tool-Aufruf abgebrochen wird |
Die Werkzeuge
file_list(path=".") list files and folders
file_read(path, start_line=1, limit=200) read a file, one page at a time
file_write(path, content) write a file
file_edit(path, find, replace) replace text exactly, leave the rest alone
file_append(path, content) add to the end without touching what exists
file_grep(pattern, path=".") search files
web_search(query, limit=5) search the web (DuckDuckGo, or Tavily via key)
web_read(url, offset=0, max_chars=4000) read a page as text
shell_run(command, timeout=60) run one allowlisted command
calc(expression) exact arithmetic - models cannot count
finish(answer) agent loop only: end the taskHausregeln, durch Tests erzwungen: flache Argumente mit Standardwerten, ein Beispielaufruf in jeder Beschreibung, einzeilige Ergebnisüberschriften, hart begrenzte Ausgabe mit einem wahrheitsgemäßen Fortsetzungshinweis und Fehler, die den nächsten Schritt nennen – no such file: x - call file_list(".") to see the files that exist.
Architektur
tools/ one registry → mcp_server.py (Claude Code speaks MCP to it)
→ agent.py (a local model calls the same tools)
_http.py the entire network layer, on urllib (this is why deps = 0)
runner.py external servers, or llama-server processes it starts and owns
protocol.py native tool_calls → loose JSON → repair → symptom-specific nudge
families.toml per-vendor quirks as DATA - the file contributors edit
evals/ 17 deterministic tasks + a leaderboard across modelsMitwirken
Das Hinzufügen einer Modellfamilie erfordert kein Python: Bearbeiten Sie families.toml, fügen Sie Ihr Modell zu models.toml hinzu, dann
openlocal probe --model your-model
openlocal eval --model your-modelund fügen Sie die resultierende Zeile in den PR ein. Siehe CONTRIBUTING.md.
Das Ausführen lokaler GGUF-Modelle auf AMD-Hardware (ROCmFP4 + MTP spekulative Dekodierung) ist in docs/ENGINE.md dokumentiert – optional und für nichts oben Genanntes erforderlich.
Lizenz
MIT © DevXV3
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseNot gradedqualityNot gradedmaintenanceA lightweight and fast MCP server that enables AI agents to efficiently discover and execute tools through progressive disclosure, minimizing context consumption while supporting safe code execution in external environments.12
- FlicenseNot gradedqualityBmaintenanceA lightweight Node.js MCP server with zero dependencies offering 9 built-in tools for system info, web fetching, GitHub search, file operations, shell execution, and key-value memory, enabling AI agents to perform these tasks via the Model Context Protocol.
- AlicenseNot gradedqualityBmaintenanceA plug-and-play MCP server that adds zero-boilerplate tools like file search, reliability scoring, and prompt injection detection to any MCP-compatible agent.MIT
- FlicenseBqualityCmaintenanceA lightweight MCP server that enables AI assistants to interact with the local machine through terminal, filesystem, and Python execution tools.91
Related MCP Connectors
Hosted MCP endpoint with realistic fake data for prototyping agents. 12 tools, no setup.
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yo…
MCP server for secureFlows: token-free URL builders and integration-linting tools for AI agents.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/DevXV3/openlocal'
If you have feedback or need assistance with the MCP directory API, please join our Discord server