LocalAiMCP
OfficialLocalAiMCP
Ein zustandsloser, asynchroner FastMCP-Kontrollplan für LocalAI. Das gebündelte LocalAI-Swagger enthält 114 Pfade / 123 Operationen, und alle 123 bleiben über typisierte, validierte Aufrufe nutzbar. Um zu vermeiden, dass bei jeder MCP-Anfrage etwa 123 Operations-Schemas an das Modell gesendet werden, wird nur eine kuratierte Auswahl direkt beworben; alles andere ist bei Bedarf auffindbar und ausführbar.
Zwei Swagger-WebSocket-Operationen sind als begrenzte Ein-Aufruf-Austausche implementiert, Multipart-Routen unterstützen Datei-Uploads, und binäre Antworten können unter ./data/output gespeichert und inline als base64 zurückgegeben werden, wenn sie klein genug sind.
Ausführen
git clone https://github.com/twinlunarstarz-dev/LocalAiMCP.git
cd LocalAiMCP
cp .env.example .env
# Edit LOCALAI_BASE_URL / LOCALAI_API_KEY if needed.
docker compose up -d --buildDer MCP-Endpunkt ist:
http://localhost:8000/mcpFür VS Code/Zoo Code oder einen anderen Streamable-HTTP-MCP-Client verwenden Sie diese URL als Remote-MCP-Server-Endpunkt. Der Container verwendet standardmäßig host.docker.internal:8080 für LocalAI und enthält die Linux-host-gateway-Zuordnung.
Related MCP server: LM Studio MCP Bridge
Kuratierte Tool-Oberfläche
Der Server bewirbt nicht standardmäßig alle 123 LocalAI-Operationen. Das Standard-Preset bewirbt 20 häufig nützliche Operations-Tools plus fünf feste Discovery-/System-Helfer.
Standardmäßig direkt exponierte Operations-Tools:
# System/model information
get_system_info
get_metrics
get_token_metrics
list_models
list_model_capabilities
get_backend_monitor
# Generation/media
chat
complete_text
generate_image
inpaint_image
generate_sound
generate_video
text_to_speech
text_to_speech_with_voice
# Voice
list_voice_profiles
create_voice_profile
analyze_voice
verify_speakers
# 3D
generate_3d_asset
remesh_3d_assetDie fünf festen MCP-Helfer sind:
list_additional_tools
search_additional_tools
execute_additional_tool
server_health
schema_auditSomit umfasst die Standard-tools/list-Oberfläche 25 Tools statt etwa 128. Die genaue Anzahl ist konfigurierbar.
Konfigurieren, welche LocalAI-Operationen direkt sichtbar sind
Setzen Sie LOCALAI_MCP_EXPOSED_TOOLS auf eine kommagetrennte Liste semantischer Operationsnamen:
LOCALAI_MCP_EXPOSED_TOOLS=chat,list_models,generate_image,text_to_speech,generate_3d_assetSpezielle Werte:
* expose all 123 Swagger operations directly
none expose no Swagger operations directly; use only the gateway/system helpers
gateway-only same as noneEin leerer oder nicht gesetzter Wert verwendet das eingebaute 20-Operations-Preset. Ungültige Namen führen zu einem Startfehler, anstatt still zu verschwinden.
Die Änderung der direkten Exposition betrifft nur, was MCP-Clients in tools/list erhalten; sie entfernt die versteckte Operation nicht aus LocalAiMCP.
Gateway für zusätzliche Tools
Weniger gebräuchliche Tools bleiben in einem internen typisierten Register und werden über drei kleine Tools angesprochen.
list_additional_tools
Gibt die vollständige sortierte Liste der versteckten Tool-Namen zurück und nichts Schema-lastiges. Sie ist bewusst kompakt, damit ein Modell den gesamten versteckten Katalog bei Bedarf inspizieren kann, ohne diese Schemas dauerhaft in jeder Anfrage mitzuführen.
search_additional_tools
Durchsucht nur versteckte Tools anhand eines Ziels in natürlicher Sprache oder eines exakten Tool-Namens. Jeder Treffer liefert:
semantischer Tool-Name
detaillierte Zweck-/Eingabe-/Ausgabebeschreibung
Tags
vollständiges Eingabe-JSON-Schema
Beispiele:
search_additional_tools(query="detokenize token ids")
search_additional_tools(query="transcribe audio")
search_additional_tools(query="install a backend")
search_additional_tools(query="inspect request traces")execute_additional_tool
Führt eine versteckte Fähigkeit anhand des semantischen Namens aus:
{
"tool_name": "detokenize",
"arguments": {
"request": {
"model": "my-model",
"tokens": [1, 42, 9001]
}
}
}Das arguments-Objekt wird gegen dasselbe generierte Pydantic-Schema validiert, das auch für ein direkt exponiertes Operation verwendet wird. Ungültige oder unbekannte Felder geben einen Validierungsfehler und das erwartete Eingabeschema zurück, bevor eine LocalAI-Anfrage gestellt wird. Dies ist kein curl-artiger Dispatcher: Das Modell verwendet semantische Tool-Namen und typisierte Argumente statt HTTP-Methoden/-Routen.
Direkt exponierte Operationen werden von execute_additional_tool absichtlich abgelehnt; der Client sollte deren normales MCP-Tool direkt aufrufen.
Der frühere erweiterte raw_request-Notausgang und der Helfer probe_safe_endpoints bleiben als versteckte zusätzliche Tools erhalten, sodass die Reduzierung von tools/list diese Fähigkeiten nicht entfernt.
LLM-orientierte Beschreibungen
Das Register ist so gestaltet, dass ein Modell keine Vorkenntnisse über die LocalAI-API benötigt:
Tool-Namen beschreiben Aufgaben, statt HTTP-Routen oder -Methoden zu spiegeln.
Jede typisierte HTTP-Operation gibt ihren Zweck, erwartete Eingaben und Erfolgsausgabe an.
JSON-Anfrageschemas tragen Feldbeschreibungen, einschließlich konservativer Fallback-Hinweise, wenn Swagger nur Dinge wie
Requestsagt oder ein Feld undokumentiert lässt.Referenzierte Anfrageobjekte zeigen nützliche Top-Level-Felder direkt in den Beschreibungen.
Antwortbeschreibungen erklären, ob Daten unter
data,text,events,base64odersaved_patherscheinen.Die Suche gibt das vollständige Eingabeschema nur dann zurück, wenn das versteckte Tool relevant ist.
Wrapper-Infrastruktur wie benutzerdefinierte Header und Zeitüberschreitungen pro Aufruf bleibt bei normalen typisierten Operationen außen vor.
Beispielsweise erklärt das versteckte Tool detokenize, dass seine Anfrage Folgendes enthält:
tokens: ganzzahlige Token-IDs, die in Text zurückkonvertiert werden sollenmodel: LocalAI-Modellname oder -Alias, dessen Tokenizer verwendet werden soll
und dass die JSON-Antwort content, den detokenisierten Text, enthält.
Design
FastMCP 3.4.7, für Reproduzierbarkeit festgepinnt.
Streamable HTTP + zustandsloser Modus. Mehrere Uvicorn-Worker sind sicher, da Discovery und Ausführung ein prozesslokales unveränderliches Register verwenden, statt Konversations-/Sitzungszustand.
Asynchrone LocalAI-I/O mit
httpx; unabhängige Aufrufe können parallel laufen.123 typisierte Swagger-Operations-Callables mit semantischen Namen und generierter Eingabevalidierung; nur die konfigurierte Teilmenge wird direkt bei FastMCP registriert.
On-Demand-Gateway für versteckte Operationen, das die volle LocalAI-Funktionalität erhält, ohne jedes Schema bei jeder Anfrage zu bewerben.
Multipart-Unterstützung für Audio, Bilder, GLB-Dateien, Branding-Assets und Sprachprofile. Dateiargumente akzeptieren
data:-URIs,base64:<data>, HTTP(S)-URLs oder Dateien unter/data.Binärunterstützung für Audio-/Bild-/GLB-Antworten. Kleine Payloads werden als base64 zurückgegeben; binäre Payloads können auch unter
/data/outputgespeichert werden.SSE-bewusste Antwortverarbeitung aggregiert LocalAI-SSE-Ereignisse zu einem strukturierten Ergebnis.
WebSocket-Unterstützung für Backend-Log-Streaming und Echtzeit-Audio-Transformationen mit begrenzten Austauschen.
Bearer-Auth über
LOCALAI_API_KEY; kein Token wird im Code gespeichert oder an MCP-Clients zurückgegeben.
Antwort-Wrapper
Typisierte HTTP-Operationen geben einen vorhersehbaren Wrapper zurück:
ok: ob LocalAI einen erfolgreichen HTTP-Status zurückgegeben hatstatus_code: LocalAI-HTTP-Statuselapsed_ms: Anfragedauerdata: geparste JSON-Antwortkörpertext: Textantwortenevents: gesammelte SSE-data:-Payloadsbase64,size_bytes,mime_type,saved_path: Metadaten/Inhalt binärer Antworten, falls zutreffend
Prüfen Sie immer ok, bevor Sie den Antwortkörper konsumieren.
Dateieingaben
Für Multipart-Tools kann ein Dateiargument eines der folgenden sein:
data:<mime>;base64,<payload>base64:<payload>eine
http://- oderhttps://-URL, die der MCP-Container abrufen kannein lokaler Pfad unter
LOCALAI_MCP_FILE_ROOT(/datain Compose)
Die Compose-Datei mountet ./data nach /data.
LocalAI-Streaming-Verhalten
LocalAI-Anfragekörper, die stream=true setzen, werden unverändert weitergeleitet. Wenn LocalAI mit text/event-stream antwortet, sammelt der MCP-Aufruf die SSE-data:-Ereignisse und gibt sie zurück, wenn der LocalAI-Stream endet.
Die beiden Swagger-WebSocket-Routen sind speziell zugeordnet:
stream_backend_logs: sammelt Backend-Logmeldungen für ein Modell bis zumax_messagesund schließt dann.stream_audio_transform: sendet ein Sitzungs-/Konfigurationsobjekt plus base64-PCM-Frames, sammelt transformierte Meldungen bis zumax_messagesund schließt dann.
Sie können je nach LOCALAI_MCP_EXPOSED_TOOLS direkt oder versteckt sein; versteckte WebSocket-Tools bleiben über execute_additional_tool ausführbar.
Verifizierung
Repository-Tests verifizieren:
exakte Swagger-Abdeckung: 114 Pfade / 123 Operationen
123 eindeutige, überprüfte semantische Namen
die Standardanzahl der kuratierten Exposition und die MCP-
tools/list-Anzahlden vollständigen Katalog versteckter Namen
versteckte Suche, die echte Beschreibungen und generierte Eingabeschemas zurückgibt
versteckte Ausführung, die Argumente vor Netzwerkzugriff validiert
jede Nicht-WebSocket-Operationsbeschreibung, die Eingaben und Ausgaben erklärt
referenzierte Anfrage-/Antwortschemas, die echte Felder zeigen
detokenize, das nützliche Token-/Modell-/Inhaltshinweise bei Bedarf bereitstelltWebSocket-Erkennung, Antwort-Wrapping und Binärverarbeitung
gebaute Wheels, die alle vier gebündelten Swagger-Payload-Teile enthalten
Lokal mit installierten Abhängigkeiten ausführen:
python -m pip install -e '.[test]'
pytestContainer-Validierung:
docker compose config
docker compose buildEin MCP-Client sollte den normalen MCP-initialize-Handshake gegen http://localhost:8000/mcp durchführen.
Konfiguration
Variable | Standard | Zweck |
|
| LocalAI-Basis-URL, die für den Container sichtbar ist |
| leer | Optionales LocalAI-Bearer-Token |
| eingebautes 20-Tool-Preset | Kommagetrennte direkt exponierte Swagger-Operationsnamen; |
|
| Gesamte LocalAI-Anfrage-Timeout in Sekunden |
|
| Verbindungs-Timeout in Sekunden |
|
| Maximale abgerufene/hochgeladene Dateigröße |
|
| Maximale gepufferte LocalAI-Antwortgröße |
|
| Binärbytes, die inline als base64 erlaubt sind |
|
| Binäre Antworten im Ausgabeverzeichnis speichern |
|
| Veröffentlichter Host-Port |
|
| Anzahl der Uvicorn-Worker |
Sicherheitshinweis
Das Gateway für zusätzliche Tools kann weiterhin administrative/destruktive LocalAI-Operationen ausführen, einschließlich Modell-/Backend-Installation/-Löschung, Aufgaben-/Job-Steuerung, Trace-/Log-Löschung, Branding, Knotenbudgets und Sprachprofil-Verwaltung. Ein Tool aus tools/list zu verstecken reduziert die Kontextgröße; es ist keine Autorisierungsgrenze. Veröffentlichen Sie Port 8000 nicht in einem nicht vertrauenswürdigen Netzwerk ohne Authentifizierung und Netzwerkzugriffskontrollen davor.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
No tool schema history has been recorded yet.
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 Connectors
Remote MCP for RunComfy: ComfyUI deployments, hosted models, LoRA training. 31 tools.
The OpenRouter for tools. One MCP connection gives any AI agent 254 hosted tools, pay per call.
Your org's AI agents, tasks, runs, search, and brain files as MCP tools and resources.
Nifty's MCP server — exposes tasks, projects, messages, and files as tools for AI agents.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceExposes MCP tools that enable remote LLMs to query local Docker containers, OS processes, and system services in real time.-
- FlicenseCqualityDmaintenanceEnables MCP clients to interact with local LLMs via LM Studio, supporting dynamic chat, vision, RAG, file interaction, and model orchestration.28-
- FlicenseAqualityCmaintenanceMCP server that connects LLM agents to a local LM Studio instance, enabling model management, OpenAI-compatible chat completions, text completions, and embeddings through a set of tools.91-
- AlicenseAqualityBmaintenanceAn MCP server exposing 72 tools across 26 homelab services, enabling LLMs to monitor and manage infrastructure, media, storage, and networking with a single endpoint.16MIT
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/twinlunarstarz-dev/LocalAiMCP'
If you have feedback or need assistance with the MCP directory API, please join our Discord server