Skip to main content
Glama

fbdl-mcp

MCP-Server für Metas FBDL (Facebook Developer Language). Ermöglicht es KI-Agenten, FBDL-Skripte, die im Bug-Bounty-Programm von Meta (MMBRC) verwendet werden, zu generieren, zu validieren und zu erkunden.

Keine Authentifizierung erforderlich – FBDL ist ein Textformat. Dieser Server läuft lokal und kommuniziert niemals mit der Infrastruktur von Meta.

Was es tut

  • validate_fbdl -- Analysiert und validiert FBDL-Skripte. Erkennt unbekannte Entitäten/Aktionen, fehlende erforderliche Parameter, ungültige Enum-Werte und fehlerhafte Syntax.

  • list_entities -- Durchsuchen Sie alle Setup-Entitätstypen (User, Page, Group, Album, Friendship, Business, App, Event) mit ihren Parametern und Beispielen.

  • list_actions -- Durchsuchen Sie alle über 70 FBDL-Aktionen mit Signaturen, Parametern und Beispielen. Filtern Sie nach Name oder Kategorie.

  • explain_fbdl -- Wandelt ein FBDL-Skript in eine leicht verständliche Schritt-für-Schritt-Erklärung um.

  • generate_fbdl (prompt) -- Prompt-Vorlage, die dem aufrufenden LLM die vollständige FBDL-Grammatik zur Verfügung stellt, damit es gültige Skripte aus natürlicher Sprache generieren kann.

Related MCP server: mcp-meta-marketing

Claude Code Skills (kein MCP-Server erforderlich)

Das Repository enthält eigenständige Claude Code Skills, die ohne den MCP-Server funktionieren. Kopieren Sie das Verzeichnis .claude/skills/ in ein beliebiges Projekt:

cp -r /path/to/fbdl-mcp/.claude/skills/ your-project/.claude/skills/

Verfügbare Skills:

  • /generate-fbdl -- Generiert FBDL-Skripte aus natürlicher Sprache. Bettet die vollständige Grammatikreferenz ein, damit Claude direkt gültige Skripte erstellen kann.

  • /validate-fbdl -- Validiert FBDL-Skripte anhand der Grammatik. Enthält eine vollständige Checkliste für Struktur-, Entitäts-, Aktions- und Referenzprüfungen.

Diese Skills betten die gesamte FBDL-Spezifikation als Prompt-Kontext ein – kein Server, keine Abhängigkeiten, kein Build-Schritt.

Installation

git clone <repo-url> && cd fbdl-mcp
npm install
npm run build

Überprüfen Sie, ob alles funktioniert:

npm run check   # typecheck + lint + format + tests

Einrichtung mit Claude Code

Fügen Sie dies zu Ihrer Claude Code MCP-Konfiguration hinzu (~/.claude/settings.json oder Projekt-.claude/settings.json):

{
  "mcpServers": {
    "fbdl": {
      "command": "node",
      "args": ["/absolute/path/to/fbdl-mcp/dist/server.js"]
    }
  }
}

Dann können Sie in Claude Code Dinge sagen wie:

"Generiere ein FBDL-Skript, in dem zwei Benutzer befreundet sind, einer eine Seite besitzt, der andere ein Foto postet und blockiert wird"

"Validiere dieses FBDL-Skript: [setup] User UserOne Page PageOne with {owner: UserOne}"

"Welche FBDL-Aktionen sind für Gruppen verfügbar?"

Einrichtung mit OpenAI Codex / Agenten

Für Codex oder jeden MCP-kompatiblen Agenten verweisen Sie auf das Server-Binary:

node /absolute/path/to/fbdl-mcp/dist/server.js

Der Server kommuniziert über stdio unter Verwendung des MCP-Protokolls. Er stellt bereit:

  • 4 Tools: validate_fbdl, list_entities, list_actions, explain_fbdl

  • 1 Ressource: fbdl://reference (vollständige Sprachspezifikation als Markdown)

  • 1 Prompt: generate_fbdl (NL-zu-FBDL-Prompt-Vorlage)

AGENTS.md-Snippet

Wenn Ihr Agent-Framework AGENTS.md für die Tool-Erkennung verwendet, fügen Sie hinzu:

## FBDL MCP Server

Tools for working with Meta's FBDL (Facebook Developer Language) scripts:

- Use `validate_fbdl` after generating a script to check it for errors
- Use `list_entities` and `list_actions` to discover available FBDL constructs
- Use `explain_fbdl` to understand what an existing script does
- Use the `generate_fbdl` prompt to produce scripts from natural language

The server runs on stdio. Start with: `node /path/to/fbdl-mcp/dist/server.js`

Beispiel-Workflow

  1. Der Agent erhält: "Erstelle ein Testszenario, in dem ein Seitenadministrator ein Gruppenmitglied blockiert"

  2. Der Agent ruft list_entities auf, um zu prüfen, welches Setup erforderlich ist

  3. Der Agent ruft list_actions mit category: "block" auf, um die richtige Aktion zu finden

  4. Der Agent verwendet die generate_fbdl-Vorlage, um Folgendes zu erstellen:

[setup] User OwnerOne User MemberOne Page PageOne with {owner: OwnerOne} Group GroupOne with {owner: OwnerOne, privacy: private, members: [MemberOne]}
OwnerOne as PageOne block MemberOne
  1. Der Agent ruft validate_fbdl auf, um zu überprüfen, ob das Skript korrekt ist

  2. Der Forscher fügt das Skript in die MMBRC-Plattform von Meta ein

FBDL-Kurzreferenz

Setup-Block

[setup] Type Label [with {key: value, ...}] [Type Label ...]

Entitätstypen: User, Page, Group, Album, Friendship, Business, App, Event

Aktionszeilen

Subject [as VoiceSwitcher] action_name Label [with {key: value, ...}]

Der Voice-Switcher (as) ermöglicht es einem Benutzer, als eine Seite zu agieren, die er besitzt.

Regeln

  • Alle Entitäten müssen vor der Verwendung in Aktionen im Setup erstellt werden

  • Der Setup-Block ist eine einzelne Zeile, die mit [setup] beginnt

  • Jede Aktion steht in einer eigenen Zeile

  • Labels sind PascalCase und müssen eindeutig sein

Entwicklung

npm run build         # compile TypeScript
npm run test          # run tests
npm run lint          # eslint with strict TypeScript rules
npm run format        # prettier
npm run check         # all of the above

Projektstruktur

src/
  schema.ts           # FBDL language spec as typed data (entities + actions)
  validator.ts        # FBDL script parser and validator
  server.ts           # MCP server (tools, resources, prompts)
  __tests__/
    schema.test.ts    # Schema integrity tests
    validator.test.ts # Validator correctness tests
    server.test.ts    # MCP tool integration tests

Related MCP Connectors

Related MCP Servers