DADL
30 Zeilen DADL ersetzen einen ganzen MCP-Server. DADL (Dunkel API Description Language) ist ein YAML-Format, das REST-APIs deklarativ als MCP-Tools beschreibt — kein Custom-Code, keine Runtime, kein Deployment, keine Wartung.
Vorher: Claude → ToolMesh → MCP Server → REST APIMit DADL: Claude → ToolMesh → REST API (via .dadl-Datei)Warum DADL?
Abschnitt betitelt „Warum DADL?“Für jede REST-API bauen Entwickler heute einen dedizierten MCP-Server — Hunderte von Node.js/Python-Projekten auf GitHub, die alle das gleiche Muster wiederholen: HTTP-Client + JSON-Schema + Tool-Registrierung. Ein MCP-Server ist strukturell immer eine Teilmenge der API, die er wrapt.
DADL ersetzt das durch eine einzige YAML-Datei.
LLM-native Erstellung
Abschnitt betitelt „LLM-native Erstellung“DADL-Dateien werden nicht von Hand geschrieben — sie werden von LLMs generiert. Ein Prompt wie „Erstelle eine DADL für die Hetzner Cloud API — Server auflisten, erstellen, löschen und Power-Aktionen” reicht aus. Damit ist DADL das erste API-Beschreibungsformat, das KI-nativ erstellt und KI-nativ konsumiert wird.
Besuche dadl.ai für die vollständige Spezifikation, Registry und How-to-Guides.
Format-Übersicht
Abschnitt betitelt „Format-Übersicht“| Feld | Pflicht | Beschreibung |
|---|---|---|
spec | ja | URL der DADL-Spezifikation |
backend.name | ja | Eindeutiger Backend-Bezeichner (Slug) |
backend.type | ja | Immer rest |
backend.base_url | ja | Basis-URL für API-Requests |
backend.auth | ja | Authentifizierungskonfiguration |
backend.tools | ja | Map der Tool-Definitionen |
backend.defaults | nein | Standard-Header, Pagination, Fehler, Response |
backend.types | nein | Typ-Definitionen (JSON-Schema-Subset) |
backend.composites | nein | Serverseitige Multi-Endpoint-Tools |
Authentifizierungstypen
Abschnitt betitelt „Authentifizierungstypen“| Typ | Beschreibung |
|---|---|
bearer | Token im Authorization-Header |
basic | Base64-kodierter Username:Passwort |
oauth2 | Client-Credentials-Flow mit Token-Caching |
session | Login → Token extrahieren → bei Requests injizieren → Auto-Refresh |
apikey | Key in Header oder Query-Parameter |
Pagination-Strategien
Abschnitt betitelt „Pagination-Strategien“| Strategie | Beschreibung |
|---|---|
cursor | Cursor-basiert (Stripe, Slack) |
offset | Offset-basiert |
page | Seitennummer-basiert |
link_header | RFC 8288 Link Header (GitHub) |
Pagination ist standardmäßig auto — ToolMesh ruft alle Seiten transparent ab. Mit expose steuert das LLM die Pagination über Code Mode.
Response-Transformation
Abschnitt betitelt „Response-Transformation“result_path— JSONPath zur Extraktion des relevanten Teilstransform— jq-Filter zur Reduktion/Restrukturierungmax_items— Array-Begrenzung gegen Context-Overflowallow_jq_override— LLM kann Ad-hoc-Filter übergeben
Composite Tools
Abschnitt betitelt „Composite Tools“Serverseitiges TypeScript für Multi-Endpoint-Orchestrierung:
- Zugriff auf
api.*(alle Tools des Backends) undparams(Input) - Sandboxed: kein
fetch(), keinrequire(), kein Dateisystem-Zugriff - Maximal 50
api.*-Aufrufe pro Ausführung, 120s Timeout - Jeder interne Aufruf wird einzeln im Audit-Trail erfasst
Beispiel
Abschnitt betitelt „Beispiel“spec: "https://dadl.ai/spec/dadl-spec-v0.1.md"backend: name: github type: rest base_url: https://api.github.com auth: type: bearer credential: github_token defaults: headers: Accept: application/vnd.github+json pagination: strategy: link_header mode: auto tools: list_repos: method: GET path: /user/repos description: "List repositories for the authenticated user" params: sort: type: string enum: [created, updated, pushed, full_name]Mehr erfahren
Abschnitt betitelt „Mehr erfahren“- DADL-Spezifikation — vollständiges Spezifikationsdokument
- DADL Registry — verfügbare API-Definitionen durchsuchen
- How to Write a DADL — Schritt-für-Schritt-Anleitung