Zum Inhalt springen

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 API
Mit DADL: Claude → ToolMesh → REST API (via .dadl-Datei)

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.

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.

FeldPflichtBeschreibung
specjaURL der DADL-Spezifikation
backend.namejaEindeutiger Backend-Bezeichner (Slug)
backend.typejaImmer rest
backend.base_urljaBasis-URL für API-Requests
backend.authjaAuthentifizierungskonfiguration
backend.toolsjaMap der Tool-Definitionen
backend.defaultsneinStandard-Header, Pagination, Fehler, Response
backend.typesneinTyp-Definitionen (JSON-Schema-Subset)
backend.compositesneinServerseitige Multi-Endpoint-Tools
TypBeschreibung
bearerToken im Authorization-Header
basicBase64-kodierter Username:Passwort
oauth2Client-Credentials-Flow mit Token-Caching
sessionLogin → Token extrahieren → bei Requests injizieren → Auto-Refresh
apikeyKey in Header oder Query-Parameter
StrategieBeschreibung
cursorCursor-basiert (Stripe, Slack)
offsetOffset-basiert
pageSeitennummer-basiert
link_headerRFC 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.

  • result_path — JSONPath zur Extraktion des relevanten Teils
  • transform — jq-Filter zur Reduktion/Restrukturierung
  • max_items — Array-Begrenzung gegen Context-Overflow
  • allow_jq_override — LLM kann Ad-hoc-Filter übergeben

Serverseitiges TypeScript für Multi-Endpoint-Orchestrierung:

  • Zugriff auf api.* (alle Tools des Backends) und params (Input)
  • Sandboxed: kein fetch(), kein require(), kein Dateisystem-Zugriff
  • Maximal 50 api.*-Aufrufe pro Ausführung, 120s Timeout
  • Jeder interne Aufruf wird einzeln im Audit-Trail erfasst
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]