Config is the same across clients — only the file and path differ.
{
"mcpServers": {
"meta-ads": {
"env": {
"META_ACCESS_TOKEN": "your_access_token_here"
},
"args": [
"-y",
"meta-ads-mcp"
],
"command": "npx"
}
}
}Are you the author?
Add this badge to your README to show your security score and help users find safe servers.
A comprehensive Model Context Protocol (MCP) server that enables AI assistants like Claude to interact with Facebook/Instagram advertising data through the Meta Marketing API. This server provides full campaign lifecycle management, analytics, audience targeting, and creative optimization capabilities.
This server supports HTTP transport. Be the first to test it — help the community know if it works.
Five weighted categories — click any category to see the underlying evidence.
No known CVEs.
Checked meta-ads-mcp against OSV.dev.
Be the first to review
Have you used this server?
Share your experience — it helps other developers decide.
Sign in to write a review.
Others in marketing
DataForSEO API modelcontextprotocol server
一键同步文章到多个内容平台,支持今日头条、WordPress、知乎、简书、掘金、CSDN、typecho各大平台,一次发布,多平台同步发布。解放个人生产力
MCP server for the PostFast API — schedule and manage social media posts via AI tools
Google Ads MCP with MCC support: 35 tools for campaigns, keywords, reporting, GAQL.
MCP Security Weekly
Get CVE alerts and security updates for Meta Mcp and similar servers.
Start a conversation
Ask a question, share a tip, or report an issue.
Sign in to join the discussion.
A Cloudflare Workers MCP server for Meta Ads account setup, campaign management, ad sets, creatives, audiences, reporting, and batch workflows.
This repo is built on xmcp and exposes a Streamable HTTP MCP endpoint plus browser-facing Meta OAuth routes.
This repository is intended to be deployed in your own Cloudflare account with your own Meta app credentials.
It does not ship with:
You bring:
fetch calls instead of the Meta SDKGET /healthGET /appPOST /mcpGET /oauth/meta/startGET /oauth/meta/callbackThis server is multi-tenant. Every MCP request must include a bearer JWT issued by your app.
If you are open-sourcing this project, the important implication is that consumers must wire it into their own auth system. The server does not know how to identify a user or workspace without that JWT.
Required JWT claims:
sub or userIdworkspaceIdrolesExample payload:
{
"sub": "user_123",
"workspaceId": "workspace_abc",
"roles": ["admin"]
}
Why /oauth/meta/start is not a generic public link:
Implemented tool families:
The server currently registers 39 tools.
src/tools tool definitions grouped by domainsrc/lib auth, storage, OAuth, runtime, and Meta client helperssrc/services domain-specific Meta service logicsrc/middleware.ts OAuth routing and MCP JWT authcloudflare-entry.mjs Worker wrapper entry for Cloudflare-specific route interceptionschema.sql D1 schematest unit and contract-style testsInstall dependencies:
pnpm install
Run local dev:
pnpm dev
Useful scripts:
pnpm build
pnpm test
pnpm deploy
Required bindings:
META_DBMETA_OAUTH_STATERequired secrets:
JWT_SECRET or JWT_JWKS_URLMETA_APP_IDMETA_APP_SECRETMETA_TOKEN_ENCRYPTION_KEYAPP_UI_PASSWORD for the built-in admin page at /appOptional configuration:
JWT_ISSUERJWT_AUDIENCEAPP_SESSION_SECRETAPP_UI_WORKSPACE_IDAPP_UI_USER_IDMETA_REDIRECT_URIMETA_GRAPH_VERSIONMETA_OAUTH_SCOPESMETA_OAUTH_ALLOWED_RETURN_ORIGINSDefaults:
META_GRAPH_VERSION=v25.0META_OAUTH_SCOPES=ads_management,business_managementAPP_UI_WORKSPACE_ID=workspace_adminAPP_UI_USER_ID=app_adminThe Worker now includes a small browser UI at /app.
What it does:
get_ad_accountsRequired setup:
APP_UI_PASSWORD on the Worker.META_REDIRECT_URI matches your public host, for example:https://meta-mcp.gestalt.xyz/oauth/meta/callback
https://meta-mcp.gestalt.xyz/app