Skip to main content
Glama

fbdl-mcp

MCP-сервер для FBDL (Facebook Developer Language) от Meta. Позволяет ИИ-агентам создавать, проверять и изучать FBDL-скрипты, используемые в программе Meta по поиску уязвимостей (MMBRC).

Аутентификация не требуется — FBDL является текстовым форматом. Этот сервер работает локально и никогда не взаимодействует с инфраструктурой Meta.

Что он делает

  • validate_fbdl — Парсинг и проверка FBDL-скриптов. Обнаруживает неизвестные сущности/действия, отсутствующие обязательные параметры, недопустимые значения перечислений, ошибки синтаксиса.

  • list_entities — Просмотр всех типов сущностей настройки (User, Page, Group, Album, Friendship, Business, App, Event) с их параметрами и примерами.

  • list_actions — Просмотр всех 70+ действий FBDL с сигнатурами, параметрами и примерами. Фильтрация по имени или категории.

  • explain_fbdl — Преобразование FBDL-скрипта в пошаговое объяснение на обычном английском языке.

  • generate_fbdl (prompt) — Шаблон промпта, который предоставляет вызывающей LLM полную грамматику FBDL, чтобы она могла генерировать корректные скрипты на основе естественного языка.

Навыки Claude Code (MCP-сервер не требуется)

Репозиторий включает автономные навыки Claude Code, которые работают без MCP-сервера. Скопируйте каталог .claude/skills/ в любой проект:

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

Доступные навыки:

  • /generate-fbdl — Генерация FBDL-скриптов из естественного языка. Включает полную справочную информацию по грамматике, чтобы Claude мог напрямую создавать корректные скрипты.

  • /validate-fbdl — Проверка FBDL-скриптов на соответствие грамматике. Включает полный контрольный список для проверки структуры, сущностей, действий и ссылок.

Эти навыки встраивают всю спецификацию FBDL в качестве контекста промпта — без сервера, без зависимостей, без этапа сборки.

Установка

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

Проверьте работоспособность:

npm run check   # typecheck + lint + format + tests

Настройка с Claude Code

Добавьте в конфигурацию MCP Claude Code (~/.claude/settings.json или .claude/settings.json в проекте):

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

Затем в Claude Code вы можете давать команды, например:

"Generate an FBDL script where two users are friends, one owns a page, the other posts a photo and gets blocked"

"Validate this FBDL script: [setup] User UserOne Page PageOne with {owner: UserOne}"

"What FBDL actions are available for groups?"

Настройка с OpenAI Codex / агентами

Для Codex или любого агента, совместимого с MCP, укажите путь к бинарному файлу сервера:

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

Сервер взаимодействует через stdio с использованием протокола MCP. Он предоставляет:

  • 4 инструмента: validate_fbdl, list_entities, list_actions, explain_fbdl

  • 1 ресурс: fbdl://reference (полная спецификация языка в формате markdown)

  • 1 промпт: generate_fbdl (шаблон промпта для преобразования естественного языка в FBDL)

Фрагмент AGENTS.md

Если ваша агентная платформа использует AGENTS.md для обнаружения инструментов, добавьте:

## 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`

Пример рабочего процесса

  1. Агент получает запрос: "Create a test scenario where a page admin blocks a group member"

  2. Агент вызывает list_entities, чтобы проверить, какая настройка необходима

  3. Агент вызывает list_actions с параметром category: "block", чтобы найти нужное действие

  4. Агент использует промпт generate_fbdl для создания:

[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. Агент вызывает validate_fbdl для проверки корректности скрипта

  2. Исследователь вставляет скрипт в платформу MMBRC от Meta

Краткий справочник FBDL

Блок настройки

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

Типы сущностей: User, Page, Group, Album, Friendship, Business, App, Event

Строки действий

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

Переключатель голоса (as) позволяет пользователю действовать от имени страницы, которой он владеет.

Правила

  • Все сущности должны быть созданы в блоке настройки перед использованием в действиях

  • Блок настройки — это одна строка, начинающаяся с [setup]

  • Каждое действие записывается с новой строки

  • Метки (Labels) должны быть в формате PascalCase и быть уникальными

Разработка

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

Структура проекта

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