Zum Inhalt springen

Erste Schritte

ToolMesh läuft als einzelne Go-Binary oder Docker-Container. Es stellt einen MCP-Server bereit, mit dem sich KI-Agenten verbinden.

  • 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)
Terminal-Fenster
# Repository klonen
git clone https://github.com/DunkelCloud/ToolMesh.git
cd ToolMesh
# Konfiguration erstellen
cp .env.example .env

Öffne .env und setze mindestens eine Authentifizierungsmethode:

Terminal-Fenster
# 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-key

Ohne 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 sollte OPENFGA_MODE=restrict gesetzt und OpenFGA konfiguriert werden. Siehe Autorisierung für Details.

Terminal-Fenster
# ToolMesh starten
docker compose up -d
# Prüfen, ob es läuft (Standard-Port: 8123)
curl http://localhost:8123/health

Der MCP-Endpunkt ist unter http://localhost:8123/mcp erreichbar.

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:

OptionEinsatzzweck
CaddySelbstgehostet mit öffentlicher Domain — automatische Let’s-Encrypt-Zertifikate
Cloudflare TunnelKeine offenen Ports nötig, TLS ohne Konfiguration
nginx / TraefikBereits im Stack vorhanden

Für die lokale Entwicklung kann TLS umgangen werden, indem claude_desktop_config.json manuell bearbeitet wird (die GUI erzwingt https://).

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"
}
}
}

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 verbindet sich per API-Key. Setze TOOLMESH_API_KEY in der .env und füge den MCP-Endpunkt hinzu:

Terminal-Fenster
claude mcp add -t http -H "Authorization: Bearer MY_API_KEY" -s user toolmesh http://localhost:8123/mcp

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:

Terminal-Fenster
CREDENTIAL_MEMORIZER_API_KEY=sk-mem-xxxxx

Zugangsdaten werden zur Laufzeit injiziert — das LLM sieht nie API-Keys.

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.”