Erste Schritte
ToolMesh läuft als einzelne Go-Binary oder Docker-Container. Es stellt einen MCP-Server bereit, mit dem sich KI-Agenten verbinden.
Voraussetzungen
Abschnitt betitelt „Voraussetzungen“- Docker und Docker Compose
- Ein KI-Agent, der MCP spricht (Claude Desktop, Claude Code, Claude.ai oder ein beliebiger MCP-Client)
- Optional: ein Reverse-Proxy für TLS (Caddy, Cloudflare Tunnel, nginx)
Schnellstart
Abschnitt betitelt „Schnellstart“# Repository klonengit clone https://github.com/DunkelCloud/ToolMesh.gitcd ToolMesh
# Konfiguration erstellencp .env.example .envÖffne .env und setze mindestens eine Authentifizierungsmethode:
# Für interaktiven Login (Claude Desktop, Claude.ai):TOOLMESH_AUTH_PASSWORD=my-secure-password
# Für programmatischen Zugriff (Claude Code, Skripte):TOOLMESH_API_KEY=my-api-keyOhne Passwort oder API-Key werden alle Anfragen abgelehnt.
Produktionshinweis: Standardmäßig startet ToolMesh mit
OPENFGA_MODE=bypass(keine Autorisierungsprüfungen). Das ist für lokale Entwicklung in Ordnung, aber für den Produktivbetrieb sollteOPENFGA_MODE=restrictgesetzt und OpenFGA konfiguriert werden. Siehe Autorisierung für Details.
# ToolMesh startendocker compose up -d
# Prüfen, ob es läuft (Standard-Port: 8123)curl http://localhost:8123/healthDer MCP-Endpunkt ist unter http://localhost:8123/mcp erreichbar.
TLS (Wichtig)
Abschnitt betitelt „TLS (Wichtig)“ToolMesh liefert reines HTTP aus. Die meisten MCP-Clients — einschließlich Claude Desktop — erfordern HTTPS und lehnen http://-URLs ab. Ein TLS-terminierender Reverse-Proxy vor ToolMesh ist nötig:
| Option | Einsatzzweck |
|---|---|
| Caddy | Selbstgehostet mit öffentlicher Domain — automatische Let’s-Encrypt-Zertifikate |
| Cloudflare Tunnel | Keine offenen Ports nötig, TLS ohne Konfiguration |
| nginx / Traefik | Bereits im Stack vorhanden |
Für die lokale Entwicklung kann TLS umgangen werden, indem claude_desktop_config.json manuell bearbeitet wird (die GUI erzwingt https://).
KI-Agent verbinden
Abschnitt betitelt „KI-Agent verbinden“Claude Desktop
Abschnitt betitelt „Claude Desktop“Zur Claude Desktop MCP-Konfiguration (claude_desktop_config.json) hinzufügen:
{ "mcpServers": { "toolmesh": { "url": "https://toolmesh.example.com/mcp" } }}Für lokale Entwicklung ohne TLS-Proxy:
{ "mcpServers": { "toolmesh": { "url": "http://localhost:8123/mcp" } }}Claude.ai (Custom Connector)
Abschnitt betitelt „Claude.ai (Custom Connector)“ToolMesh unterstützt OAuth 2.1 mit PKCE S256 für Remote-Zugriff. Benutzer werden in config/users.yaml konfiguriert, die öffentliche HTTPS-URL dient als MCP-Endpunkt.
Claude Code
Abschnitt betitelt „Claude Code“Claude Code verbindet sich per API-Key. Setze TOOLMESH_API_KEY in der .env und füge den MCP-Endpunkt hinzu:
claude mcp add -t http -H "Authorization: Bearer MY_API_KEY" -s user toolmesh http://localhost:8123/mcpBackend hinzufügen
Abschnitt betitelt „Backend hinzufügen“Backends werden in config/backends.yaml konfiguriert.
MCP-Backend (einen bestehenden MCP-Server proxyen)
Abschnitt betitelt „MCP-Backend (einen bestehenden MCP-Server proxyen)“backends: - name: memorizer transport: http url: "https://memorizer.example.com/mcp" api_key_env: "MEMORIZER_API_KEY"Die Zugangsdaten als Umgebungsvariable in .env setzen:
CREDENTIAL_MEMORIZER_API_KEY=sk-mem-xxxxxZugangsdaten werden zur Laufzeit injiziert — das LLM sieht nie API-Keys.
REST-Backend (via DADL)
Abschnitt betitelt „REST-Backend (via DADL)“Statt einen MCP-Wrapper-Server zu bauen, kann die REST-API deklarativ in einer .dadl-Datei beschrieben werden:
backends: - name: github transport: rest dadl: /app/dadl/github.dadl url: "https://api.github.com"DADL-Dateien gibt es in der DADL Registry oder können mit dem LLM generiert werden:
„Erstelle eine DADL für die GitHub-API — Repos auflisten, Issues öffnen und Pull Requests erstellen.”
Nächste Schritte
Abschnitt betitelt „Nächste Schritte“- Architektur — die Ausführungs-Pipeline verstehen
- DADL — REST-APIs ohne Code beschreiben
- Konfiguration — alle Umgebungsvariablen
- Authentifizierung — OAuth 2.1, API-Keys, Multi-User