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.

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
F
license - not found
-
quality - not tested
C
maintenance

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/GangGreenTemperTatum/fbdl-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server