Zum Inhalt springen

Architektur

ToolMesh ist eine Go-Middleware, die die Ausführung von Tool-Calls zwischen KI-Agenten und Backend-Infrastruktur orchestriert, autorisiert und absichert.

Claude Code trusted Claude Desktop trusted 3rd Party Agent untrusted MCP + CallerID ToolMesh Secure Execution Layer Auth OAuth 2.1 AuthZ OpenFGA Credentials Secret Inject Gate JS Policies Execute MCP / REST Audit slog / SQLite MCP Servers HTTP / STDIO Any existing MCP server DADL Library Declarative REST API descriptions — no code, no servers dadl.ai Stripe GitHub Hetzner DeepL Cloudflare any REST API 1,100+ tools — community-driven registry at dadl.ai

Jeder Tool-Call durchläuft eine Fail-Closed-Pipeline. Wenn ein Schritt ablehnt (AuthZ, Gate), wird die gesamte Ausführung gestoppt. Keine Teilergebnisse gelangen durch.

SäuleImplementierungBasiert auf
Any BackendMCP-Server (HTTP/STDIO) + REST-APIs via DADLGo MCP SDK + DADL-Parser
Code Modelist_tools + execute_code — LLMs schreiben JS statt JSONAST-geparste Tool-Calls
AuditJeder Tool-Call wird strukturiert protokolliertslog (Write-only) oder SQLite (abfragbar)
AuthorizationUser → Plan → Tool-BeziehungenOpenFGA
Credential StoreSecrets werden zur Laufzeit injiziert, nie in PromptsUmgebungsvariablen (CREDENTIAL_*), erweiterbar
Output GateJS-Policies validieren Ein-/Ausgabengoja (Go JS-Engine)

Drei Komponenten sind über ein Registry-Pattern erweiterbar (inspiriert von Go’s database/sql-Treibern):

KomponenteRegistry-FunktionBuilt-inKonfiguration
Credential Storecredentials.Register()embedded (Umgebungsvariablen)CREDENTIAL_STORE=<name>
Tool Backendbackend.Register()mcp, rest (DADL), echoconfig/backends.yaml
Gate Evaluatorgate.RegisterEvaluator()goja (JavaScript)GATE_EVALUATORS=<list>

Erweiterungen registrieren sich über init()-Funktionen. Enterprise-Erweiterungen leben in einem separaten Modul und werden über Go Build-Tags eingebunden:

Terminal-Fenster
go build -tags enterprise ./cmd/toolmesh
KomponenteErweiterungBeschreibung
Credential StoreInfisicalStoreInfisical Secrets Manager Integration
Credential StoreVaultStoreHashiCorp Vault / OpenBao Integration
Gate EvaluatorCompliance-LLMLLM-basierte Inhaltsklassifizierung
toolmesh/
├── cmd/
│ └── toolmesh/ # Haupt-Einstiegspunkt (MCP-Server)
├── config/
│ └── openfga/ # Autorisierungsmodell (model.fga), Tuples (tuples.json), Setup-Script
├── internal/
│ ├── mcp/ # MCP-Server (Streamable HTTP + STDIO)
│ ├── backend/ # ToolBackend-Interface + MCPAdapter + RESTAdapter
│ ├── executor/ # ExecuteTool-Pipeline (AuthZ → Creds → Gate → Exec → Audit)
│ ├── audit/ # Audit-Store-Interface + log/sqlite-Implementierungen
│ ├── authz/ # OpenFGA-Autorisierung
│ ├── credentials/ # Credential-Store-Interface + EmbeddedStore
│ ├── gate/ # Output Gate (goja Policy-Engine)
│ ├── userctx/ # UserContext-Propagierung
│ └── config/ # Umgebungsbasierte Konfiguration
├── config/ # Backend-Konfiguration (backends.yaml, users.yaml, apikeys.yaml)
├── tools/ # TypeScript Tool-Definitionen (kanonische Quelle)
├── policies/ # JavaScript Gate-Policies
└── docs/ # Dokumentation