> ## Documentation Index
> Fetch the complete documentation index at: https://docs.chotdeal.vn/llms.txt
> Use this file to discover all available pages before exploring further.

# Kết nối Facebook (Meta) Ads vào Claude Code bằng MCP

> Hướng dẫn kết nối Meta Ads MCP chính thức vào Claude Code qua OAuth: thêm server bằng một lệnh, chọn tài khoản và mức quyền, cách dùng và xử lý lỗi. Không cần Developer App hay token thủ công.

<Tip>
  Meta có **MCP server chính thức** cho quảng cáo tại `https://mcp.facebook.com/ads`. Bạn kết nối bằng OAuth thẳng vào tài khoản Meta Business — **không cần tạo Developer App, không xin duyệt Marketing API, không tự tạo token**. Meta phát hành từ tháng 4/2026.
</Tip>

## Trước khi bắt đầu

Bạn cần:

* **Claude Code** đã cài và đăng nhập (chạy được lệnh `claude` trong terminal).
* Một tài khoản **Meta Business** có quyền trên ad account bạn muốn đọc/quản lý.
* Đăng nhập Facebook được (kèm mã 2FA nếu tài khoản có bật).

<Info>
  Đây là **remote MCP server** do Meta host. Khác với cách cài server local (như Google Ads MCP), bạn không cài gì lên máy — chỉ thêm URL và xác thực một lần.
</Info>

***

## Phần A — Kết nối (Terminal)

<Steps>
  <Step title="Thêm Meta Ads MCP vào Claude Code">
    Chạy một lệnh duy nhất để đăng ký server qua transport HTTP:

    ```bash Terminal theme={null}
    claude mcp add --transport http meta-ads https://mcp.facebook.com/ads
    ```

    * `meta-ads` là tên gọi tùy bạn đặt (sẽ hiện trong danh sách server).
    * Lệnh chỉ khai báo server; **chưa đăng nhập** — bước xác thực ở Bước 2.

    <Tip>
      Mặc định server chỉ dùng trong thư mục hiện tại. Muốn dùng ở **mọi dự án**, thêm cờ `-s user`:

      ```bash Terminal theme={null}
      claude mcp add --transport http -s user meta-ads https://mcp.facebook.com/ads
      ```
    </Tip>

    <Accordion title="Prompt cho Claude Code" icon="terminal">
      ```text theme={null}
      Thêm Meta Ads MCP chính thức vào cấu hình MCP của tôi (transport HTTP,
      URL https://mcp.facebook.com/ads, tên meta-ads, scope user). Sau đó cho tôi
      biết cần làm gì để đăng nhập.
      ```
    </Accordion>
  </Step>

  <Step title="Đăng nhập bằng OAuth">
    Trong Claude Code, gõ lệnh:

    ```text theme={null}
    /mcp
    ```

    1. Chọn **meta-ads** trong danh sách, rồi chọn **Authenticate**.
    2. Trình duyệt mở cửa sổ OAuth trên **facebook.com**. Đăng nhập, nhập mã **2FA** nếu có.
    3. Chọn **ad account** (và Page) muốn cấp quyền, rồi chọn **mức quyền** (xem bảng bên dưới).
    4. Xác nhận. Cửa sổ báo thành công là xong; quay lại Claude Code.

    <Warning>
      Nếu cửa sổ OAuth không tự mở, chạy lại `/mcp` và chọn **Authenticate** một lần nữa. Kiểm tra trình duyệt mặc định không chặn pop-up.
    </Warning>
  </Step>

  <Step title="Kiểm tra kết nối">
    Mở một phiên Claude Code và chạy prompt kiểm tra:

    <Accordion title="Prompt kiểm tra" icon="circle-check">
      ```text theme={null}
      Liệt kê các tài khoản quảng cáo Meta tôi đang truy cập được, và cho tôi tổng
      chi phí 7 ngày qua của tài khoản chính. Nếu lỗi thì chẩn đoán giúp.
      ```
    </Accordion>

    Chạy `/mcp` bất cứ lúc nào để xem trạng thái kết nối và danh sách công cụ đang có.
  </Step>
</Steps>

***

## Chọn mức quyền

Lúc đăng nhập OAuth, Meta cho bạn chọn một trong ba mức. Chọn mức thấp nhất đủ dùng.

| Mức quyền                | Làm được gì                                          | Nên dùng khi                           |
| ------------------------ | ---------------------------------------------------- | -------------------------------------- |
| **Read-only**            | Chỉ đọc: báo cáo, chỉ số, cấu trúc campaign          | Phân tích, làm báo cáo — an toàn nhất  |
| **Read/write**           | Đọc + tạo/sửa campaign, ad set, quảng cáo, đối tượng | Muốn Claude trực tiếp chỉnh chiến dịch |
| **Read/write/financial** | Như trên + thao tác liên quan ngân sách/thanh toán   | Chỉ khi cần đổi ngân sách qua Claude   |

<Warning>
  **Read/write** và **read/write/financial** cho phép thay đổi tài khoản quảng cáo thật (tốn tiền). Nếu chỉ cần phân tích, hãy chọn **Read-only**. Bạn có thể chạy lại `/mcp` để đăng nhập lại và đổi mức quyền sau.
</Warning>

***

## Dùng để làm gì?

Server chính thức có khoảng 29 công cụ, chia theo nhóm dưới đây. Bạn ra lệnh bằng ngôn ngữ tự nhiên, Claude tự chọn công cụ phù hợp.

<Tabs>
  <Tab title="Báo cáo & phân tích">
    Đọc hiệu suất chiến dịch, không đổi gì (an toàn với mọi mức quyền).

    <AccordionGroup>
      <Accordion title="Chi phí theo campaign">
        Cho tôi chi phí, số kết quả và CPA của từng campaign trong 30 ngày qua, sắp theo chi phí giảm dần.
      </Accordion>

      <Accordion title="Ad set đốt tiền">
        Liệt kê top 10 ad set tốn nhiều tiền nhất mà không ra chuyển đổi trong 14 ngày qua, để tôi cân nhắc tắt.
      </Accordion>

      <Accordion title="So sánh 2 kỳ">
        So sánh chi phí, ROAS và số chuyển đổi theo campaign giữa 7 ngày gần nhất và 7 ngày trước đó, chỉ ra chỗ lên/xuống mạnh.
      </Accordion>

      <Accordion title="Hiệu quả sáng tạo">
        Xếp hạng các quảng cáo (creative) theo CTR và CPA trong 30 ngày, chỉ ra mẫu nào nên nhân bản và mẫu nào nên dừng.
      </Accordion>
    </AccordionGroup>
  </Tab>

  <Tab title="Quản lý chiến dịch">
    Cần mức quyền **read/write** trở lên.

    <AccordionGroup>
      <Accordion title="Tạo campaign nháp">
        Tạo một campaign mục tiêu Sales ở trạng thái tạm dừng, kèm một ad set nhắm nữ 25–34 tại TP.HCM, ngân sách 300k/ngày. Để tôi duyệt trước khi bật.
      </Accordion>

      <Accordion title="Điều chỉnh ngân sách">
        Tăng ngân sách 20% cho 3 ad set có ROAS cao nhất tuần qua, và tạm dừng ad set có CPA gấp đôi mục tiêu.
      </Accordion>

      <Accordion title="Nhân bản mẫu tốt">
        Nhân bản quảng cáo hiệu quả nhất tháng này sang một ad set mới nhắm đối tượng tương tự (lookalike).
      </Accordion>
    </AccordionGroup>
  </Tab>

  <Tab title="Đối tượng & chẩn đoán">
    <AccordionGroup>
      <Accordion title="Kiểm tra tình trạng tài khoản">
        Rà soát tài khoản: quảng cáo bị từ chối, ad set hết ngân sách, hoặc pixel/sự kiện lỗi. Liệt kê vấn đề cần xử lý.
      </Accordion>

      <Accordion title="Chồng lấn đối tượng">
        Kiểm tra các ad set đang chạy có bị chồng lấn đối tượng (audience overlap) không, gợi ý gộp hoặc tách.
      </Accordion>

      <Accordion title="Báo cáo tuần cho team">
        Tạo báo cáo tuần: chi phí, kết quả, ROAS, top 3 campaign, 3 vấn đề và 3 đề xuất hành động. Xuất bảng gọn để gửi team.
      </Accordion>
    </AccordionGroup>
  </Tab>
</Tabs>

***

## Nâng cao — Tự host server (tùy chọn)

Nếu bạn cần chạy MCP trên hạ tầng riêng, hoặc tích hợp lập trình sâu, có các server cộng đồng kết nối trực tiếp Meta Marketing API bằng **access token** (cần tạo Meta Developer App và token với quyền `ads_read`, `business_management`). Cách này phức tạp và tự bảo trì hơn hẳn MCP chính thức.

<Columns cols={2}>
  <Card title="pipeboard-co/meta-ads-mcp" icon="github" href="https://github.com/pipeboard-co/meta-ads-mcp">
    Server quản lý Facebook & Instagram Ads, có bản self-host và bản hosted.
  </Card>

  <Card title="Tài liệu Meta Ads AI Connectors" icon="book" href="https://www.facebook.com/business/help/1456422242197840">
    Trang chính thức của Meta về MCP và CLI.
  </Card>
</Columns>

<Note>
  Với hầu hết người dùng, **MCP chính thức ở Phần A là lựa chọn nên dùng**: không cần Developer App, không quản lý token, và Meta lo phần xác thực an toàn.
</Note>

***

## Xử lý lỗi

<AccordionGroup>
  <Accordion title="Server không hiện tool / /mcp báo chưa kết nối">
    **Triệu chứng:** Chạy `/mcp` thấy `meta-ads` nhưng không có tool, hoặc trạng thái chưa kết nối.

    **Nguyên nhân:** Chưa hoàn tất OAuth, hoặc phiên hiện tại chưa nạp server.

    **Cách sửa:** Chạy `/mcp`, chọn **meta-ads → Authenticate**, hoàn tất đăng nhập trên trình duyệt. Mở lại phiên Claude Code nếu vẫn chưa thấy tool.
  </Accordion>

  <Accordion title="Cửa sổ OAuth không mở">
    **Triệu chứng:** Chọn Authenticate nhưng trình duyệt không bật.

    **Nguyên nhân:** Trình duyệt chặn pop-up, hoặc chưa có trình duyệt mặc định.

    **Cách sửa:** Cho phép pop-up, đặt trình duyệt mặc định, rồi chạy lại `/mcp` → Authenticate. Nếu terminal in ra một URL, mở URL đó thủ công.
  </Accordion>

  <Accordion title="Không thấy ad account cần dùng">
    **Triệu chứng:** Đăng nhập xong nhưng thiếu tài khoản quảng cáo trong danh sách.

    **Nguyên nhân:** Tài khoản Facebook đăng nhập không có quyền trên ad account đó, hoặc bạn chọn nhầm Business.

    **Cách sửa:** Đảm bảo bạn có quyền trong Meta Business Suite. Chạy lại `/mcp` → Authenticate và chọn đúng Business/ad account.
  </Accordion>

  <Accordion title="Không thực hiện được thao tác chỉnh sửa">
    **Triệu chứng:** Claude báo không có quyền tạo/sửa campaign hoặc đổi ngân sách.

    **Nguyên nhân:** Bạn cấp mức **Read-only** lúc đăng nhập.

    **Cách sửa:** Chạy lại `/mcp` → Authenticate, chọn **Read/write** (hoặc read/write/financial nếu cần đổi ngân sách).
  </Accordion>

  <Accordion title="Lỗi phiên hết hạn sau một thời gian">
    **Triệu chứng:** Đang chạy được rồi báo lỗi xác thực.

    **Nguyên nhân:** Phiên OAuth hết hạn hoặc bị thu hồi.

    **Cách sửa:** Chạy `/mcp` → Authenticate để đăng nhập lại. Token do Meta quản lý, bạn không cần chỉnh file config.
  </Accordion>
</AccordionGroup>

<Accordion title="Prompt để Claude tự chẩn đoán" icon="stethoscope">
  ```text theme={null}
  Meta Ads MCP đang báo lỗi khi tôi query. Chẩn đoán giúp: kiểm tra server đã đăng ký
  và đã xác thực chưa (/mcp), mức quyền hiện tại, và tài khoản nào đang truy cập được,
  rồi chỉ tôi cách sửa.
  ```
</Accordion>
