Substack MCP vs Meta MCP — MCP Server Comparison | AllMCPs
Side-by-Side Model Context Protocol Comparison
Substack MCP vs Meta MCP
In-depth architectural comparison of the Substack MCP and Meta MCP MCP servers. Compare execution transports, security boundaries, tool capabilities, quality scores, and ready-to-paste client installation snippets for Claude, Cursor, Windsurf, and VS Code.
At a Glance & Executive Verdict
Substack MCP
Social Media · Local stdio
Quality: 68/100 (Great) | Auth: other
Meta MCP
Social Media · Local stdio
Quality: 68/100 (Great) | Auth: API Key required
Verdict Summary: Choose Substack MCP if you need specialized Social Media tools running via a local process. Choose Meta MCP if your workspace requires Social Media integration with local subprocess execution. Both servers can be configured concurrently in your client's mcpServers manifest.
Which MCP Server Should You Choose?
Choose Substack MCP when:
You need dedicated capabilities in the Social Media domain.
You prefer local stdio subprocess transport architecture.
Your security boundary fits: other (Free / Open Source).
You have access to required keys: SUBSTACK_PUBLICATION_URL, SUBSTACK_SESSION_TOKEN, SUBSTACK_USER_ID, SUBSTACK_MCP_HOME.
You need dedicated capabilities in the Social Media domain.
You prefer local stdio subprocess transport architecture.
Your security boundary fits: API Key required (Free / Open Source).
You have access to required keys: INSTAGRAM_ACCESS_TOKEN, INSTAGRAM_USER_ID, INSTAGRAM_MESSAGING_ACCESS_TOKEN, INSTAGRAM_PAGE_ID, THREADS_ACCESS_TOKEN, THREADS_USER_ID, META_APP_ID, META_APP_SECRET.
MCP server for Substack — read posts, manage drafts, publish Notes, get comments, and upload images. Safe by design: cannot publish or delete posts.
Full-coverage MCP server for Instagram Graph API v25.0, Threads API & Meta platform — 57 tools for publishing, comments, insights, hashtags, DMs, and token management.
Get the current subscriber count for your Substack publication. Returns `precision`: 'exact' when the API reports a true count, 'approximate' when only Substack's rounded value is available (the real number is that or higher — render it hedged, e.g. '1,000+'), or 'unavailable' with count -1. Never treat an approximate value as exact.
list_published_posts
List published posts with pagination. Returns title, date, slug, and URL for each post.
list_drafts
List draft posts. Returns title, creation date, and audience for each draft.
get_post
Get the full content of a published post by ID. Returns title, body HTML, metadata.
get_draft
Get the full content of a draft post by ID. Returns title, body, metadata.
Ready-to-Paste Client Configurations
Paste either (or both) of these JSON server blocks into your client config file (e.g. claude_desktop_config.json or ~/.cursor/mcp.json).
Substack MCP is categorized under Social Media and uses a local stdio subprocess. In contrast, Meta MCP belongs to Social Media using local stdio subprocess. Select Substack MCP when you need capabilities focused on social media and Meta MCP when you require tools for social media.
Get comments on a published post. Returns commenter name, comment body, date, and reaction counts.
get_sections
List your publication's sections (categories). Returns each section's id and name. Use a section id as `section_id` when creating or updating a draft to file it under that section.
get_post_analytics
Get performance stats (views, emails sent/delivered/opened, signups, subscribes, estimated value, comments, reactions) for a published post by ID. Substack has no per-post stats endpoint, so this searches your 500 most recent published posts for the ID; returns a not-found note if it isn't among them.
list_scheduled_posts
List posts scheduled for future publication, soonest first. Read-only visibility into what's queued — scheduling itself is done in Substack's editor (this server does not schedule, publish, or delete long-form posts). Returns id, title, audience, and scheduled time (`trigger_at`).
create_draft
Create a new draft post. Accepts markdown body which is converted to Substack's format. Does NOT publish — creates a draft only.
update_draft
Update an existing draft post. Only works on unpublished drafts. Accepts markdown body.
upload_image
Upload an image to Substack's CDN. Provide exactly one of `image_base64` (a base64 data URI) or `image_path` (a local file path). Returns a hosted image URL that is publicly fetchable by anyone with the link (an unlisted asset — not attributed to you or added to your feed).
+2 more tools listed on main page
Meta MCP Tools (66)
meta_exchange_token
Exchange a short-lived token for a long-lived token (valid ~60 days). Requires META_APP_ID and META_APP_SECRET.
meta_refresh_token
Refresh a long-lived token before it expires. Returns a new long-lived token.
meta_debug_token
Debug/inspect an access token to check validity, expiration, scopes and associated user.
meta_get_app_info
Get Meta App basic information (name, category, namespace, etc.).
meta_subscribe_webhook
Subscribe to webhook notifications for an object (e.g., 'instagram', 'page'). Requires META_APP_ID and META_APP_SECRET.
meta_get_webhook_subscriptions
List current webhook subscriptions for the Meta App.
ig_publish_photo
Publish a photo to Instagram. Two-step process: creates container then publishes. Requires image_url (publicly accessible HTTPS URL).
ig_publish_video
Publish a video to Instagram feed. Waits for video processing before publishing.
ig_publish_carousel
Publish a carousel (album) post with 2-10 images/videos. Each item needs an image_url or video_url.
ig_publish_reel
Publish a Reel (short video). Waits for video processing.
ig_publish_story
Publish a Story (image or video). Stories disappear after 24 hours.
ig_get_container_status
Check the processing status of a media container (useful for videos).