Skip to main content
Glama

fbdl-mcp

Meta의 FBDL(Facebook Developer Language)을 위한 MCP 서버입니다. AI 에이전트가 Meta의 버그 바운티 프로그램(MMBRC)에서 사용되는 FBDL 스크립트를 생성, 검증 및 탐색할 수 있도록 합니다.

인증이 필요하지 않습니다 -- FBDL은 텍스트 형식입니다. 이 서버는 로컬에서 실행되며 Meta의 인프라와 통신하지 않습니다.

기능

  • validate_fbdl -- FBDL 스크립트를 파싱하고 검증합니다. 알 수 없는 엔티티/액션, 누락된 필수 파라미터, 잘못된 열거형 값, 잘못된 구문을 찾아냅니다.

  • list_entities -- 모든 설정 엔티티 유형(User, Page, Group, Album, Friendship, Business, App, Event)을 파라미터 및 예시와 함께 탐색합니다.

  • list_actions -- 70개 이상의 모든 FBDL 액션을 시그니처, 파라미터 및 예시와 함께 탐색합니다. 이름이나 카테고리별로 필터링할 수 있습니다.

  • explain_fbdl -- FBDL 스크립트를 평이한 영어로 된 단계별 설명으로 변환합니다.

  • generate_fbdl (프롬프트) -- 호출하는 LLM에게 전체 FBDL 문법을 제공하여 자연어로부터 유효한 스크립트를 생성할 수 있도록 하는 프롬프트 템플릿입니다.

Related MCP server: mcp-meta-marketing

Claude Code 스킬 (MCP 서버 불필요)

이 저장소에는 MCP 서버 없이 작동하는 독립형 Claude Code 스킬이 포함되어 있습니다. .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 설정

Claude Code MCP 설정(~/.claude/settings.json 또는 프로젝트 .claude/settings.json)에 추가하세요:

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

그런 다음 Claude Code에서 다음과 같이 말할 수 있습니다:

"두 사용자가 친구이고, 한 명이 페이지를 소유하며, 다른 한 명이 사진을 게시하고 차단당하는 FBDL 스크립트를 생성해줘"

"이 FBDL 스크립트를 검증해줘: [setup] User UserOne Page PageOne with {owner: UserOne}"

"그룹에 사용할 수 있는 FBDL 액션은 무엇인가요?"

OpenAI Codex / 에이전트 설정

Codex나 MCP 호환 에이전트의 경우, 서버 바이너리를 가리키도록 설정하세요:

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

서버는 MCP 프로토콜을 사용하여 stdio를 통해 통신합니다. 다음을 노출합니다:

  • 4개의 도구: validate_fbdl, list_entities, list_actions, explain_fbdl

  • 1개의 리소스: fbdl://reference (마크다운 형식의 전체 언어 사양)

  • 1개의 프롬프트: generate_fbdl (NL-to-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. 에이전트가 다음을 수신합니다: "페이지 관리자가 그룹 멤버를 차단하는 테스트 시나리오를 생성해줘"

  2. 에이전트가 list_entities를 호출하여 어떤 설정이 필요한지 확인합니다.

  3. 에이전트가 category: "block"과 함께 list_actions를 호출하여 올바른 액션을 찾습니다.

  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. 연구원이 스크립트를 Meta의 MMBRC 플랫폼에 붙여넣습니다.

FBDL 빠른 참조

Setup 블록

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

엔티티 유형: User, Page, Group, Album, Friendship, Business, App, Event

Action 라인

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

보이스 스위처(as)를 사용하면 사용자가 자신이 소유한 페이지로 행동할 수 있습니다.

규칙

  • 모든 엔티티는 액션에서 사용하기 전에 setup에서 생성되어야 합니다.

  • setup 블록은 [setup]으로 시작하는 한 줄이어야 합니다.

  • 각 액션은 별도의 줄에 작성해야 합니다.

  • 라벨은 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

Related MCP Connectors

Related MCP Servers