README.md

April 21, 2026 · View on GitHub

Meta

Meta MCP Server

Connect any AI assistant to Meta's entire business platform
Facebook Pages · Instagram · Threads · Ads Manager · Commerce · Conversions API · Insights

200 tools7 platformsGraph API v21.0

npm MCPB release License Buy Me a Coffee

Quick StartMCPB DownloadWhat You Can DoAll 200 ToolsConfigurationArchitecture


Why This Exists

Social media management across Meta's platforms — Facebook Pages, Instagram, Threads, Ads Manager, Commerce — requires juggling multiple dashboards, each with its own API quirks and token flows. This server consolidates the entire Meta Graph API surface into a single MCP interface, so your AI assistant can publish content, analyze performance, manage ad campaigns, and moderate engagement across all platforms in one conversation.

Every tool returns actionable error messages — not cryptic API codes. Token expired? You get a regeneration link. Missing permission? You see exactly which one and where to grant it. This means less debugging and more doing.

Quick Start

Install with MCPB

For Claude Desktop and other MCPB-compatible clients, download the local bundle from the v2.0.2 release:

Download meta-mcp-server-2.0.2.mcpb

The bundle includes the Meta favicon, production runtime dependencies, and setup prompts for Meta and optional Threads access tokens.

Add to your MCP client config:

{
  "mcpServers": {
    "meta": {
      "command": "npx",
      "args": ["-y", "@oliverames/meta-mcp-server"],
      "env": {
        "META_ACCESS_TOKEN": "your_token_here"
      }
    }
  }
}

That's it. Your AI assistant now has access to 200 Meta tools.

Need a token? Go to the Graph API Explorer, select your app, and generate one. See Configuration for details.

From Source

git clone https://github.com/oliverames/meta-mcp-server.git
cd meta-mcp-server
npm install && npm run build

What You Can Do

Publish everywhere

Post to Facebook Pages (text, photo, video, Reels, Stories), Instagram (photos, reels, stories, carousels), and Threads (text, images, video, GIFs, links). Schedule content in advance or cross-post to multiple platforms in one call.

> Post our holiday hours to the Facebook page
> Schedule an Instagram carousel for tomorrow at 9am
> Cross-post this photo to both Facebook and Instagram
> Publish a GIF to Threads with reply controls
> Create a Facebook Reel from this video
> Post a Story to our Facebook page
> Publish an Instagram reel with alt text for accessibility
> Share a link post on Threads with a quote

Manage engagement

Read and reply to comments across platforms, hide inappropriate content without deleting it, manage Instagram DMs and broadcast channels, and set up automated responses for when you're away.

> Show me unanswered Instagram DMs
> Hide that offensive comment on our latest post
> Reply to the top 3 comments on yesterday's reel
> Set up an instant reply for new messages
> Set our away message to "Back Monday at 9am"
> Send a DM to that customer who reached out
> What comments did we get on last week's posts?
> Update our Messenger greeting text

Analyze performance

Get insights at every level — page, post, account, campaign, ad set, and individual ad. Over 70 page metrics, comprehensive Reels analytics (including skip rate and crossposted views), and full ad performance with video completion rates, ROAS, and quality rankings. Generate charts for reports.

> How did our Instagram perform this month?
> Show campaign spend broken down by age group
> What's the skip rate on our latest Reel?
> Generate a bar chart comparing this week vs last
> Get our Facebook page fan demographics
> What's our follower growth trend over 90 days?
> Show me post-level engagement for our top 5 posts
> Create a pie chart of spend by campaign

Run ad campaigns

Full campaign lifecycle — create, optimize, test, and automate. A/B testing with confidence levels, Advantage+ Shopping migration, interest/geo/demographic targeting search, reach estimates, automated rules, and comprehensive pixel management with server-side Conversions API.

> Create an A/B test comparing these two ad sets
> Migrate this campaign to Advantage+ Shopping
> Send a purchase conversion event via CAPI
> What's the reach estimate for women 25-34 in NYC?
> List all active campaigns and their ROAS
> Create an automated rule: pause ads over \$5 CPA
> Check if our pixel is firing correctly
> Upload this image for a new ad creative

Manage commerce

Full product catalog management for Facebook and Instagram shops — add products, update inventory, organize collections, and manage availability. Everything a brand needs to run social commerce.

> List all products in our catalog
> Add this new product at \$29.99, in stock
> Mark the seasonal items as out of stock
> Show me our "Summer Collection" product set
> Update the description on our best-selling item
> How many products are in each catalog?
> Delete the discontinued product line
> What products are currently available?

Go live and broadcast

Start Facebook Live video broadcasts for product launches and events, publish Stories for time-sensitive content, and reach your audience directly through Instagram broadcast channels with polls, links, and messages.

> Start a live video on our Facebook page
> Send a poll to our Instagram broadcast channel
> Schedule a live stream for Friday at 2pm
> Publish a story to Facebook with this photo
> End the live broadcast
> Send a product announcement to our broadcast channel
> What live videos have we done this month?
> What ads is our competitor running right now?

Research competitors

Search any advertiser's active ads through Meta's public Ad Library. See what creative, targeting, and spend your competitors are using — no account access needed. Look up any public Instagram business account's stats.

> What ads is Nike running in the US right now?
> Search the Ad Library for "sustainable fashion" ads
> Look up @competitor on Instagram — followers and posts
> Show me all active ads by this page ID
> What platforms are they running ads on?
> How much is our competitor spending on ads?

Stay in control

Debug tokens, check permissions, monitor rate limits, verify pixel health, and manage your Business Manager assets. Every error tells you exactly what went wrong and how to fix it — never a cryptic failure.

> Check my token status and permissions
> Am I close to Instagram's publishing limit?
> Run a health check on the Meta connection
> Is our pixel receiving events?
> List all ad accounts in our Business Manager
> Share this pixel with our agency's ad account
> What Threads rate limits do we have left?
> Debug why this API call is failing

Complete Tool Reference

Facebook Pages — 52 tools

Everything a brand needs to manage their Facebook presence, messaging, and live broadcasts.

ToolDescription
meta_list_pagesList all Facebook Pages you manage (call first — caches page tokens)
meta_get_pageGet detailed page info (category, followers, description, links)
meta_get_postGet a single post by ID
meta_create_postCreate a text post on a page
meta_create_photo_postCreate a photo post (URL or page photo ID)
meta_create_video_postCreate a video post with optional title and description
meta_update_postEdit an existing post's message
meta_delete_postDelete a post
meta_get_postsGet a page's feed with pagination
meta_get_published_postsGet published posts only
meta_get_scheduled_postsGet scheduled (unpublished) posts
meta_get_promotable_postsGet posts eligible for ad promotion
meta_get_visitor_postsGet posts made by visitors on the page
meta_get_post_commentsGet comments on a post with pagination
meta_reply_post_commentReply to a comment as the page
meta_delete_commentDelete a comment
meta_hide_commentHide or unhide a comment (non-destructive moderation)
meta_like_objectLike or unlike a post or comment
meta_get_post_reactionsGet reaction breakdown (like, love, haha, wow, sad, angry)
meta_get_page_insightsPage analytics — 70+ metrics across impressions, engagement, fans, video
meta_get_post_insightsPer-post analytics (impressions, engagement, clicks, reactions, video)
meta_get_page_conversationsList page message conversations
meta_get_conversation_messagesGet messages within a conversation
meta_send_page_messageSend a message to a user (24-hour messaging window)
meta_update_pageUpdate page details (about, description, website, hours, username, category, address)
meta_update_page_pictureUpdate page profile picture from URL
meta_update_page_coverUpdate page cover photo from URL or existing photo
meta_create_eventCreate a page event
meta_get_page_eventsList events (upcoming, past, or canceled)
meta_get_page_albumsList page photo albums
meta_get_page_photosGet photos (uploaded or tagged)
meta_get_page_videosList page videos
meta_get_page_taggedGet posts where the page is tagged
meta_get_page_fan_demographicsFollower breakdown by age, gender, and country
meta_get_page_ratingsGet page reviews and star ratings
meta_get_page_locationsLocation info for multi-location businesses
meta_get_page_ctaGet the page's call-to-action button configuration
meta_get_page_tabsList page tabs and their configuration
meta_get_page_pictureGet page profile picture URL
meta_get_blocked_usersList blocked users
meta_block_userBlock or unblock a user
meta_subscribe_page_webhooksSubscribe the page to webhook events
meta_publish_page_storyPublish a Facebook Story (photo or video)
meta_publish_page_reelPublish a Facebook Reel
meta_cross_postCross-post to Facebook + Instagram simultaneously
meta_create_live_videoStart or schedule a live video broadcast
meta_get_live_videosList live videos on a page
meta_end_live_videoEnd an active live broadcast
meta_get_page_automated_responsesGet current auto-reply settings
meta_set_instant_replySet the instant reply message
meta_set_away_messageSet the away/out-of-office message
meta_set_greetingSet the Messenger greeting text

Instagram — 37 tools

Full Instagram Business API — publishing with scheduling, DMs, broadcast channels, engagement, discovery, and analytics.

ToolDescription
meta_list_instagram_accountsList Instagram business accounts linked to your Facebook Pages
meta_get_instagram_mediaGet recent media for an Instagram account with pagination
meta_get_instagram_single_mediaGet a single media object by ID
meta_publish_instagram_photoPublish a photo with optional alt text and scheduling
meta_publish_instagram_reelPublish a reel with auto-polling and optional scheduling
meta_publish_instagram_storyPublish a story (image or video with auto-polling)
meta_publish_instagram_carouselPublish a carousel (2–10 items, parallel processing, schedulable)
meta_publish_instagram_containerPublish a pre-created media container
meta_check_instagram_containerCheck container processing status with actionable messages
meta_get_instagram_account_insightsAccount-level analytics with demographic breakdowns
meta_get_instagram_media_insightsPer-post metrics including Reels skip rate, crossposted views
meta_get_instagram_commentsGet comments on a media object
meta_get_instagram_comment_repliesGet threaded replies to a comment
meta_reply_instagram_commentReply to a comment
meta_delete_instagram_commentDelete a comment
meta_hide_instagram_commentHide/unhide a comment (non-destructive moderation)
meta_search_instagram_catalog_productsSearch for products in an Instagram Shopping catalog by name
meta_search_instagram_hashtagSearch hashtag top or recent media
meta_get_instagram_recent_hashtagsGet your recently searched hashtags
meta_get_instagram_userBusiness discovery — look up any public business/creator by username
meta_get_instagram_storiesGet currently active stories
meta_get_instagram_live_mediaGet live video media
meta_get_instagram_mentioned_mediaGet media where you're @mentioned
meta_get_instagram_media_childrenGet individual items in a carousel
meta_get_instagram_product_tagsGet product tags on a media object
meta_delete_instagram_mediaDelete a media object
meta_toggle_instagram_commentsEnable or disable comments on media
meta_check_instagram_publishing_limitCheck rate limit status (100 posts per 24 hours)
meta_get_instagram_conversationsList Instagram DM conversations
meta_get_instagram_messagesGet messages in a DM conversation
meta_send_instagram_messageSend a text DM
meta_send_instagram_media_messageSend an image or link via DM
meta_get_instagram_available_catalogsList product catalogs available for Instagram Shopping on a professional account
meta_get_instagram_broadcast_channelsList broadcast channels
meta_get_broadcast_channel_messagesGet messages in a broadcast channel
meta_send_broadcast_channel_messageSend a message to a broadcast channel
meta_create_broadcast_channel_pollCreate a poll in a broadcast channel

Ads Manager — 62 tools

Complete ad campaign lifecycle — create, optimize, test, analyze, and automate. Includes Advantage+ migration, A/B testing, and comprehensive pixel management.

ToolDescription
meta_list_ad_accountsList ad accounts you have access to
meta_get_ad_accountGet ad account details (status, currency, spend cap, balance)
meta_list_campaignsList campaigns with status filtering and pagination
meta_get_campaignGet a single campaign's full details
meta_create_campaignCreate a campaign (supports Advantage+ Shopping for OUTCOME_SALES)
meta_update_campaignUpdate campaign name, status, budget, or migrate to Advantage+
meta_delete_campaignDelete a campaign
meta_migrate_campaign_to_advantage_plusMigrate a campaign to Advantage+ Shopping (keeps campaign ID)
meta_list_adsetsList ad sets with filtering
meta_get_adsetGet a single ad set's targeting and budget details
meta_create_adsetCreate an ad set with targeting, budget, and placement_soft_opt_out
meta_update_adsetUpdate ad set targeting, budget, or placement_soft_opt_out
meta_delete_adsetDelete an ad set
meta_list_adsList ads with status filtering
meta_get_adGet a single ad's details
meta_create_adCreate an ad linking a creative to an ad set
meta_update_adUpdate ad name, status, or creative
meta_delete_adDelete an ad
meta_list_ad_creativesList ad creatives
meta_get_ad_creativeGet a single creative's details
meta_create_ad_creativeCreate an ad creative with text, image, and link
meta_get_ad_previewPreview how an ad will appear in different placements
meta_get_ad_ruleGet details for a specific automated ad rule
meta_get_ad_account_usersList users with access to the ad account
meta_upload_ad_imageUpload an image for use in ad creatives
meta_list_ad_imagesList previously uploaded ad images
meta_upload_ad_videoUpload a video for use in ad creatives
meta_list_ad_videosList previously uploaded ad videos
meta_search_targeting_interestsSearch for interest-based targeting options
meta_search_targeting_geolocationsSearch for location-based targeting (countries, cities, zips)
meta_search_targeting_demographicsSearch for demographic targeting options
meta_browse_targeting_categoriesBrowse all available targeting categories
meta_get_reach_estimateEstimate potential audience size for a targeting spec
meta_get_delivery_estimateEstimate ad delivery for a given budget and targeting
meta_get_leadgen_leadsGet submitted leads from a lead generation form
meta_get_minimum_budgetsGet minimum daily and lifetime budgets for an ad account by currency and bid strategy
meta_list_leadgen_formsList lead generation forms for a Facebook Page
meta_list_offline_event_setsList offline conversion event sets for an ad account
meta_list_pixelsList Meta Pixels for conversion tracking
meta_create_pixelCreate a new pixel
meta_get_pixelGet pixel details (name, cookie status, matching fields)
meta_get_pixel_statsGet event volume stats over time (verify pixel is firing)
meta_update_pixelUpdate pixel settings (name, cookies, matching, data use)
meta_delete_pixelDelete a pixel
meta_share_pixelShare pixel access with another ad account
meta_get_pixel_eventsGet recent test events for debugging
meta_list_custom_conversionsList custom conversion events
meta_create_custom_conversionCreate a custom conversion from pixel events
meta_list_saved_audiencesList saved audiences
meta_create_saved_audienceCreate a reusable saved audience
meta_delete_saved_audienceDelete a saved audience
meta_list_ad_rulesList automated ad rules
meta_create_ad_ruleCreate an automated rule (e.g., pause ads over $5 CPA)
meta_delete_ad_ruleDelete an automated rule
meta_list_ad_labelsList ad labels for organization
meta_create_ad_labelCreate an ad label
meta_get_ad_account_activityGet the ad account's activity log
meta_list_business_assetsList pages, ad accounts, IG accounts, and pixels across Business Manager
meta_create_ad_studyCreate an A/B test to compare campaigns or ad sets
meta_get_ad_studiesList A/B tests for an ad account
meta_get_ad_study_resultsGet A/B test results with winner and confidence level
meta_send_offline_eventSend an offline conversion event for in-store purchases, phone orders, or other offline conversions

Threads — 22 tools

Full Threads API — publishing with GIFs, reply controls, location tagging, and analytics.

ToolDescription
threads_get_profileGet your Threads profile info
threads_get_postsGet your recent posts with pagination
threads_get_postGet a single post by ID (includes reply_audience)
threads_searchSearch your posts by keyword
threads_publish_textPublish a text post (with reply control and location)
threads_publish_imagePublish an image post (with reply control and location)
threads_publish_videoPublish a video post with auto-polling (with reply control and location)
threads_publish_carouselPublish a carousel (parallel creation, with reply control)
threads_publish_linkPublish a post with a link attachment (with reply control)
threads_publish_gifPublish a GIF post via GIPHY URL
threads_delete_postDelete a post
threads_get_repliesGet replies to a post
threads_get_conversationGet the full conversation tree for a post
threads_get_followersList followers of the authenticated Threads user
threads_get_followingList accounts the authenticated Threads user is following
threads_get_mentionsGet posts that @mention you
threads_get_media_childrenGet individual items in a carousel post
threads_hide_replyHide or unhide a reply
threads_repostRepost a Threads post
threads_get_post_insightsGet metrics for a specific post (views, likes, replies, etc.)
threads_get_user_insightsGet account-level metrics with demographic breakdowns
threads_check_rate_limitsCheck your current publishing rate limit status

Commerce — 10 tools

Product catalog management for Facebook and Instagram shops.

ToolDescription
meta_list_product_catalogsList product catalogs for a business
meta_get_product_catalogGet catalog details and product count
meta_list_productsList products in a catalog with filtering
meta_get_productGet a single product's full details
meta_create_productAdd a product to a catalog
meta_create_product_feedCreate a product feed to automatically sync products from a URL
meta_update_productUpdate product details (name, price, availability, etc.)
meta_delete_productDelete a product from a catalog
meta_list_product_feedsList product feeds for a catalog
meta_list_product_setsList product sets (subgroups) in a catalog

Conversions API — 2 tools

Server-side event tracking for conversion optimization.

ToolDescription
meta_send_conversion_eventSend a server-side conversion event (Purchase, Lead, etc.) to a pixel
meta_test_conversion_eventsTest CAPI setup without affecting production data

Audiences — 5 tools

Custom and lookalike audience management for ad targeting.

ToolDescription
meta_list_custom_audiencesList custom audiences in an ad account
meta_get_custom_audienceGet audience details (size, delivery status)
meta_create_custom_audienceCreate a custom audience
meta_create_lookalike_audienceCreate a lookalike audience from a source audience
meta_delete_custom_audienceDelete a custom audience

Insights — 4 tools

Performance analytics across the ad hierarchy with 37 metrics, 15 date presets, and 8 breakdown dimensions.

ToolDescription
meta_get_account_insightsAd account performance — spend, impressions, reach, clicks, CTR, CPM, CPC, conversions, ROAS, video completion, quality rankings
meta_get_campaign_insightsPer-campaign performance with the same comprehensive metrics
meta_get_adset_insightsPer-ad-set performance
meta_get_ad_insightsPer-ad performance

Charts — 2 tools

Generate visual charts from data for reports and presentations.

ToolDescription
meta_generate_chartCreate bar, line, pie, doughnut, radar charts as PNG images
meta_generate_comparison_chartGenerate side-by-side comparison charts (A/B, period-over-period)

Ad Library & Utility — 4 tools

ToolDescription
meta_search_ad_librarySearch any advertiser's active ads — public transparency API
meta_debug_tokenInspect your token: type, validity, expiry, permissions, associated app and user
meta_health_checkCheck server health: token status, cached tokens, API connectivity
meta_search_placesSearch Facebook Places (locations) by name or coordinates for post tagging

Configuration

VariableRequiredDefaultDescription
META_ACCESS_TOKENYesNoneLong-lived Meta Graph API token for Facebook Pages, Instagram, Ads Manager, Commerce, Conversions API, Audiences, Insights, and utility tools.
THREADS_ACCESS_TOKENNoNoneThreads API token. Required only for Threads publishing, replies, and insights tools.

1. Create a Meta App

Go to developers.facebook.comMy AppsCreate App → choose Business type. Add Facebook Login, Pages API, Instagram Graph API, and Marketing API.

2. Generate Tokens

Get a token from the Graph API Explorer, then exchange it for a long-lived token (60 days):

curl "https://graph.facebook.com/oauth/access_token?\
grant_type=fb_exchange_token&\
client_id=YOUR_APP_ID&\
client_secret=YOUR_APP_SECRET&\
fb_exchange_token=SHORT_LIVED_TOKEN"

For permanent access, create a System User token in Business Manager → System Users.

Threads uses a separate token via graph.threads.net OAuth — see Threads API docs.

1Password Integration

If META_ACCESS_TOKEN or THREADS_ACCESS_TOKEN are not set in the environment, the server automatically attempts to resolve them from 1Password CLI:

op://Development/Meta Access Token/credential
op://Development/Threads Access Token/credential

This means you can skip setting env vars entirely if you have op installed and a service account or session active. The fallback adds ~1-2s to startup per token and is silently skipped if 1Password is unavailable.

3. Grant Permissions

PermissionRequired for
pages_show_listListing pages
pages_read_engagementPage insights, reactions
pages_manage_postsCreating, editing, deleting posts
pages_manage_metadataPage settings, webhooks, profile picture, cover photo
pages_read_user_contentTagged posts, visitor posts, ratings
pages_messagingReading and sending messages, automated responses
instagram_basicInstagram account info
instagram_content_publishPublishing photos, reels, stories, carousels
instagram_manage_insightsInstagram analytics
instagram_manage_commentsComment management
instagram_manage_messagesInstagram DMs
ads_readReading campaigns, ad sets, ads, insights
ads_managementCreating and managing ads, A/B tests
business_managementBusiness Manager assets, product catalogs
catalog_managementProduct catalog CRUD
threads_basicThreads profile and posts
threads_content_publishPublishing to Threads
threads_manage_insightsThreads analytics
threads_manage_repliesManaging Threads replies

4. Connect to Your MCP Client

Claude Code — add to ~/.claude/settings.json:

{
  "mcpServers": {
    "meta": {
      "command": "node",
      "args": ["/absolute/path/to/meta-mcp-server/dist/index.js"],
      "env": {
        "META_ACCESS_TOKEN": "your_long_lived_token",
        "THREADS_ACCESS_TOKEN": "your_threads_token"
      }
    }
  }
}

Works with any MCP client that supports stdio transport. THREADS_ACCESS_TOKEN is optional — only needed for Threads tools.


How It Works

The server starts without any tokens configured — no crashes, no "failed" status in MCP settings. When you call a tool without proper auth, you get a clear setup message.

First call should always be meta_list_pages — this caches the page-scoped access tokens required for all Page and Instagram operations.

Error Handling

Every error message tells you what went wrong, why, and how to fix it:

What happenedWhat you see
No token setStep-by-step setup instructions with link to Graph Explorer
Token expired (code 190)Direct link to regenerate at developers.facebook.com
Missing permission (code 10/200)Names the exact permission needed and where to grant it
Rate limited (429)Tells you to wait, links to Meta's rate limit docs
Page token missingReminds you to call meta_list_pages first
Network unreachable"Cannot reach graph.facebook.com — check your connection"

Token Refresh

Long-lived tokens expire after 60 days. Use meta_debug_token to check expiry, then refresh:

curl "https://graph.facebook.com/oauth/access_token?\
grant_type=fb_exchange_token&\
client_id=APP_ID&client_secret=APP_SECRET&\
fb_exchange_token=CURRENT_TOKEN"

For permanent tokens, create a System User in Business Manager → System Users.


Architecture

src/
├── index.ts              Server entry point (stdio transport)
├── constants.ts          API versions, base URLs, field constants
├── types.ts              TypeScript interfaces for Meta entities
├── services/
│   ├── api.ts            MetaApiClient — dual Graph + Threads API
│   └── utils.ts          Error handling, formatting, shared schemas
└── tools/
    ├── pages.ts          52 Facebook Page tools
    ├── instagram.ts      37 Instagram tools
    ├── ads.ts            62 Ads Manager tools
    ├── threads.ts        22 Threads tools
    ├── commerce.ts       10 Commerce/Catalog tools
    ├── conversions.ts     2 Conversions API tools
    ├── audiences.ts       5 Audience tools
    ├── insights.ts        4 Insight tools
    ├── charts.ts          2 Chart generation tools
    ├── ad_library.ts      1 Ad Library tool
    └── utility.ts         3 Utility tools

Key Design Decisions

  • Dual API client — Handles both graph.facebook.com/v21.0 and graph.threads.net/v1.0 with separate base URLs and tokens
  • Page token cachingmeta_list_pages caches page-scoped tokens; subsequent tools look them up by page ID
  • Two-step container publishing — Instagram and Threads require container → publish flow; the server handles this automatically with video processing polling
  • Parallel carousel processing — All carousel items created concurrently via Promise.allSettled; partial failures report which items succeeded
  • Zod strict schemas — Every tool uses strict Zod schemas for type-safe parameter validation
  • Dual output format — Every read tool supports response_format: "markdown" or "json"
  • Graceful auth — Server starts without tokens, returns setup instructions on first tool call instead of crashing
  • Chart generation — QuickChart integration for rendering data as PNG images for reports

API Coverage

Targets Meta Graph API v21.0 and Threads API v1.0.

APIStatus
Facebook Pages APIComprehensive — posts, comments, messaging, insights, events, media, Stories, Reels, Live Video, automated responses
Instagram Graph APIComprehensive — publishing, scheduling, comments, DMs, broadcast channels, hashtags, business discovery, insights
Marketing APIComprehensive — campaigns, ad sets, ads, creatives, targeting, audiences, pixels, CAPI, A/B testing, Advantage+
Threads APIComprehensive — publishing (text, image, video, GIF, carousel, link), reply controls, location, insights
Commerce APISupported — product catalog CRUD, product sets
Conversions APISupported — server-side event tracking with test mode
Ad Library APISupported — public transparency search
WhatsApp Business APINot covered — separate infrastructure and token flow

Development

Use the same commands for local development and contribution checks:

npm install
npm test            # 52 tests
npm run build       # TypeScript compilation
npm run test:watch  # Development mode

Development conventions: Zod .strict() schemas, response_format parameter on read tools, and errorResult() for tool errors with isError: true.


Not affiliated with or endorsed by Meta Platforms, Inc.


Buy Me a Coffee

Built by Oliver Ames in Vermont • GitHubLinkedInBluesky