fbdl-mcp
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_fbdl1 ресурс:
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`Пример рабочего процесса
Агент получает запрос: "Create a test scenario where a page admin blocks a group member"
Агент вызывает
list_entities, чтобы проверить, какая настройка необходимаАгент вызывает
list_actionsс параметромcategory: "block", чтобы найти нужное действиеАгент использует промпт
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Агент вызывает
validate_fbdlдля проверки корректности скриптаИсследователь вставляет скрипт в платформу 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 testsThis server cannot be installed
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