facebook-automata-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| set_facebook_credentialsA | Store Facebook Graph API credentials and validate them immediately. Saves the given values to Args: access_token: A Facebook User, Page, or App access token (long-lived tokens recommended). Required. app_id: Your Facebook App ID (optional, enables token introspection via /debug_token). app_secret: Your Facebook App Secret (optional, used together with app_id for /debug_token introspection; never sent anywhere except graph.facebook.com). page_id: A default Facebook Page ID to use for tools where page_id is not explicitly supplied. api_version: Graph API version to target, e.g. "v21.0" (defaults to v21.0 if omitted). |
| check_facebook_credentialsA | Check whether Facebook credentials are configured and still valid. Loads credentials from ~/.facebook-automata-mcp/credentials.json (or FACEBOOK_MCP_* environment variables), calls GET /me to confirm the access token still works, and — if app_id/app_secret are also configured — calls /debug_token to report scopes, expiry, and whether the token is still valid according to Facebook. |
| get_credentials_statusA | Quickly report whether credentials exist on disk, without any network call. |
| clear_facebook_credentialsA | Delete the stored credentials file (~/.facebook-automata-mcp/credentials.json). |
| get_my_profileA | Get the profile of the identity behind the configured access token (GET /me). Note: Facebook heavily restricts which fields are available for personal user tokens without app review (usually just id, name, picture). Page tokens will return the Page's own info. |
| get_user_profileB | Get public profile info for a given Facebook user or page ID. Note: Modern Graph API restricts most personal fields for non-consenting users; only public fields (id, name, picture, etc.) are typically returned unless you have specific permissions/roles. |
| get_my_accountsA | List the Facebook Pages managed by the current user token (GET /me/accounts). Useful to discover page_id values and their page-scoped access tokens (returned in the 'access_token' field of each item). |
| search_pagesA | Search public Facebook Pages by name/keyword (GET /search?type=page). |
| get_page_infoC | Get details about a Facebook Page (name, about, category, fan_count, etc.). If page_id is omitted, uses the default page_id stored via 'set_facebook_credentials'. |
| get_page_postsB | List posts published BY a Page (GET /{page-id}/posts). since/until accept Unix timestamps or strtotime-compatible strings (e.g. "2026-01-01"). |
| get_page_feedA | List the Page's feed: own posts + posts/links from others on the Page (GET /{page-id}/feed). |
| get_page_tagged_postsC | List posts the Page has been tagged in (GET /{page-id}/tagged). |
| get_page_eventsC | List events hosted by the Page (GET /{page-id}/events). |
| get_page_photosA | List photos posted by the Page (GET /{page-id}/photos?type=uploaded). |
| get_page_videosC | List videos posted by the Page (GET /{page-id}/videos). |
| get_page_albumsA | List photo albums on the Page (GET /{page-id}/albums). |
| get_page_insightsA | Get Page analytics/insights (GET /{page-id}/insights). Requires the Page access token to have the read_insights permission. metric is a comma-separated list, e.g. "page_impressions,page_engaged_users,page_fans,page_views_total". period is one of: day, week, days_28, month, lifetime. |
| get_postB | Get full details of a single post by its ID (GET /{post-id}). |
| publish_page_postA | Publish a new post on a Page (POST /{page-id}/feed). Set published=False and provide scheduled_publish_time (a future Unix timestamp) to schedule the post instead of publishing immediately. |
| delete_postA | Delete a post by ID (DELETE /{post-id}). Requires ownership permissions. |
| get_post_commentsB | List comments on a post, including who commented (GET /{post-id}/comments). order: "chronological" or "reverse_chronological". filter: "toplevel" (top-level comments only) or "stream" (include replies inline). Each comment item includes 'from' with the commenter's id/name. |
| get_commentC | Get details of a single comment by ID (GET /{comment-id}). |
| get_comment_repliesB | List replies to a comment (GET /{comment-id}/comments). |
| publish_commentA | Post a new top-level comment on a post (POST /{post-id}/comments). |
| reply_to_commentC | Reply to an existing comment (POST /{comment-id}/comments). |
| delete_commentB | Delete a comment by ID (DELETE /{comment-id}). |
| hide_commentA | Hide or unhide a comment on your Page's post (POST /{comment-id}?is_hidden=...). |
| get_post_likesB | List people who liked a post, including their id/name (GET /{post-id}/likes). |
| get_post_reactionsA | List reactions on a post with who reacted and how (GET /{post-id}/reactions). reaction_type filters to one of: LIKE, LOVE, WOW, HAHA, SAD, ANGRY, THANKFUL, CARE. Omit to get all reaction types (each item includes a 'type' field showing which reaction the person used). |
| get_comment_likesA | List people who liked a comment (GET /{comment-id}/likes). |
| get_comment_reactionsB | List reactions on a comment with who reacted and how (GET /{comment-id}/reactions). |
| like_objectA | Like a post/comment/object as the current identity (POST /{object-id}/likes). |
| unlike_objectB | Remove a previously placed like (DELETE /{object-id}/likes). |
| upload_page_photoA | Upload a photo to a Page from a public image URL (POST /{page-id}/photos). |
| upload_page_videoA | Upload a video to a Page from a public video URL (POST /{page-id}/videos). |
| graph_api_getA | Generic GET against any Graph API edge, e.g. edge="{id}/comments". Use this for any endpoint not covered by a dedicated tool. |
| graph_api_postB | Generic POST against any Graph API edge, e.g. edge="{id}/feed". |
| graph_api_deleteC | Generic DELETE against any Graph API edge, e.g. edge="{post-id}". |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 38 tools
Each tool targets a distinct Graph API resource and action, with clear boundaries even for similar pairs like get_my_profile vs get_user_profile or get_page_posts vs get_page_feed. The descriptions precisely define the scope of each tool.
All tools follow a consistent snake_case verb_noun pattern (set_, get_, publish_, delete_, etc.) with uniform resource naming. There are no mixed conventions or vague names.
At 38 tools, the server is overly large for its purpose. Many specific tools (e.g., get_post_comments, get_post_likes) duplicate functionality already covered by the generic graph_api_get/post/delete tools, exceeding the reasonable size for a focused toolset.
The toolset covers core Facebook automation workflows: credentials, profile, pages, posts, comments, likes, and media upload. Minor gaps like explicit update operations (edit post/comment) and event creation exist, but generic Graph API tools provide fallbacks.