Code Mode: konstanter Token-Cost für MCP-Kataloge
15 MCP-Server mit einem einzigen KI-Agenten verbinden? Ohne ToolMesh funktioniert das schlicht nicht — das Kontextfenster läuft voll, der Client streikt. Code Mode macht es möglich, indem Hunderte von Tool-Definitionen durch zwei Meta-Tools und ein kompaktes TypeScript-Interface ersetzt werden.
Funktionsweise
Abschnitt betitelt „Funktionsweise“ToolMesh stellt zwei Meta-Tools bereit:
| Tool | Zweck |
|---|---|
discover_tools | Findet die zur Aufgabe passenden Tools und gibt ihre TypeScript-Signaturen zurück |
execute_code | Führt JavaScript-Code mit toolmesh.*-Funktionsaufrufen aus |
Das LLM ruft einmal discover_tools auf, sieht die passenden Funktionen mit ihren Typ-Signaturen und schreibt dann JavaScript, das mehrere Aufrufe verkettet.
Die Discovery skaliert mit dem Katalog. discover_tools grenzt über ein Regex-pattern oder eine BM25-gerankte Freitext-query ein, und der Detailgrad richtet sich von selbst nach der Trefferzahl: bis 25 Treffer vollständige TypeScript-Signaturen, bis 250 einzeilige Zusammenfassungen, darüber nur noch Namen oder eine Übersicht pro Backend. Jede Antwort endet mit der Zahl der gefundenen und gezeigten Tools sowie einem Hinweis zum Verfeinern; detail und limit überschreiben die automatische Wahl. Innerhalb von execute_code ist derselbe Index als toolmesh.discover("<Freitext>") und toolmesh.describe("<tool_name>") erreichbar — ein Skript kann eine Signatur also mitten im Lauf nachschlagen, ohne einen Roundtrip zu verbrauchen.
Warum Code Mode?
Abschnitt betitelt „Warum Code Mode?“Skalierung, die sonst nicht funktioniert
Abschnitt betitelt „Skalierung, die sonst nicht funktioniert“Jedes Tool in der MCP-Tool-Liste kostet Kontextfenster-Budget. Bei 50+ Tools aus mehreren Backends läuft das Kontextfenster voll und der Client wird unbenutzbar. Code Mode reduziert 50.000+ Tokens auf ~1.000 — der Unterschied zwischen „funktioniert nicht” und „läuft einfach.”
Weniger Roundtrips
Abschnitt betitelt „Weniger Roundtrips“Statt:
LLM → tool_a → Ergebnis → LLM → tool_b(Ergebnis) → Ergebnis → LLM → tool_c(Ergebnis)Ermöglicht Code Mode:
LLM → execute_code("let a = await tool_a(); let b = await tool_b(a); return tool_c(b);")Ein Roundtrip statt drei.
Typsicherheit
Abschnitt betitelt „Typsicherheit“discover_tools gibt TypeScript-Interfaces zurück, sodass das LLM typsicheren Code generiert, den der AST-Parser vor der Ausführung validieren kann.
Beispiel
Abschnitt betitelt „Beispiel“// LLM generiert dies nach dem Aufruf von discover_toolsconst repos = await toolmesh.github_list_repos({ sort: "updated" });const issues = [];for (const repo of repos.slice(0, 3)) { const repoIssues = await toolmesh.github_list_issues({ owner: repo.owner.login, repo: repo.name, state: "open" }); issues.push(...repoIssues);}issuesSicherheit
Abschnitt betitelt „Sicherheit“Code Mode verwendet AST-Parsing, um sicherzustellen, dass nur toolmesh.*-Funktionsaufrufe ausgeführt werden. Das JavaScript läuft in einer Sandbox-Umgebung ohne Zugriff auf fetch(), require(), das Dateisystem oder andere Globals außerhalb des toolmesh-Namensraums.
Ursprung
Abschnitt betitelt „Ursprung“Code Mode wurde von Cloudflare für ihre eigene API entwickelt. ToolMesh bringt es auf jedes Backend — MCP-Server und DADL-beschriebene REST-APIs gleichermaßen.