SocialAPIs MCP Server
MCP serverAI & modelsFacebook & Instagram data for AI agents: pages, posts, groups, ads, Marketplace, profiles, reels.
Available today. Use it from your connected AI after setup.
Needs your own account with this service. Keys stay in your vault.
Add ahel to your AI once: Claude, ChatGPT, Cursor, Claude Code or Codex. Then ask it to use this.
Then ask your AI: use the facebook get page id tool from SocialAPIs MCP Server
Install SocialAPIs MCP Server
The server’s own address, for the clients that take one directly. Or connect ahel once and every client you use reads it from one address, with the account kept on ahel rather than in each client’s config.
Claude Code
claude mcp add --transport http --scope user socialapis-mcp-server 'https://mcp.socialapis.io/mcp'Run it once in your project, then open /mcp to approve any sign-in the server asks for.
Claude Desktop
https://mcp.socialapis.io/mcpAdd a custom connector in Settings, paste this address, and approve the sign-in.
Cursor
cursor://anysphere.cursor-deeplink/mcp/install?name=socialapis-mcp-server&config=eyJ1cmwiOiJodHRwczovL21jcC5zb2NpYWxhcGlzLmlvL21jcCJ9Open the link and Cursor adds the server at that address.
ChatGPT
https://mcp.socialapis.io/mcpIn Settings, enable Developer mode, create an MCP app, and paste this address. Your plan and workspace must allow custom apps.
Codex
codex mcp add socialapis-mcp-server --url 'https://mcp.socialapis.io/mcp'Run it once, then sign in with codex mcp login socialapis-mcp-server if the server asks for an account.
From the project's README
As published by socialapishub/mcp-server in README.md.
Facebook & Instagram data for AI agents — local (npx) or hosted (remote MCP)
Website • Documentation • Discord • npm
Official SDKs: Python • JavaScript / TypeScript • Go
🚀 Quick Start
AI agents (Cline, Claude Code, Cursor): follow
llms-install.mdfor step-by-step install and verification.
One-click: use the Install in Cursor button above — then replace YOUR_API_KEY in Cursor's MCP settings with your key. Also listed on Smithery, cursor.directory, mcp.so and the official MCP Registry (io.github.SocialAPIsHub/social-media-api).
Option A — Hosted (remote MCP, no install)
Point any client that supports remote MCP servers (Streamable HTTP) at:
https://mcp.socialapis.io/mcp
Authenticate with your SocialAPIs API key in a header:
Authorization: Bearer YOUR_API_KEY
(x-api-token: YOUR_API_KEY also works.) Tool listing works without a key; tool calls need one. Example config for clients that take a URL + headers:
{
"mcpServers": {
"socialapis": {
"url": "https://mcp.socialapis.io/mcp",
"headers": { "Authorization": "Bearer YOUR_API_KEY" }
}
}
}
Option B — Local (npx, stdio)
Installation
npm install -g @socialapis/mcp
Configuration
Add to your Claude Desktop config:
macOS:
nano ~/Library/Application\ Support/Claude/claude_desktop_config.json
Windows:
notepad %APPDATA%\Claude\claude_desktop_config.json
🔧 Configuration
Method 1: Command Line Argument (Recommended for Claude Desktop)
{
"mcpServers": {
"socialapis": {
"command": "npx",
"args": ["-y", "@socialapis/mcp", "YOUR_API_KEY"]
}
}
}
Method 2: Environment Variable
# Set environment variable
export SOCIALAPIS_API_KEY=your_api_key_here
# Run without argument
npx @socialapis/mcp
Method 3: .env File (For Development)
# Copy example file
cp .env.example .env
# Edit with your values
nano .env
.env file:
SOCIALAPIS_API_KEY=your_api_key_here
MCP_PROXY_URL=https://mcp.socialapis.io
Environment Variables
| Variable | Description | Default |
|---|---|---|
SOCIALAPIS_API_KEY | Your SocialAPIs API key | None (required) |
MCP_PROXY_URL | MCP proxy server URL | https://mcp.socialapis.io |
PORT | HTTP server port | 3001 |
API_BASE_URL | Backend API URL | https://api.socialapis.io |
Get API Key
- Sign up at socialapis.io
- Go to Dashboard
- Copy your API key
- Replace
YOUR_API_KEYin config
Test It
Restart Claude Desktop and ask:
Get Nike's Facebook page details
📋 Features
- 🌐 One API key - Facebook and Instagram behind a single interface
- 🤖 AI-First - Built for Claude, Cursor, and AI agents
- 📊 Rich Data - Posts, comments, engagement metrics
- 🔍 Advanced Filtering - Time ranges, pagination
- 🎯 Simple Auth - No OAuth complexity
- 🧩 Structured output - every tool declares an output schema and returns
{ result, creditsCharged, creditsRemaining }, so agents can track credit spend directly - 🛡️ Read-only annotations - all tools are marked
readOnlyHint, so clients can skip confirmation prompts - ⚡ Fast - Global edge network
- 🔒 Secure - API keys stay local
🛠️ Available Tools
47 tools across Facebook and Instagram. Every tool maps 1:1 to a REST endpoint on api.socialapis.io — pricing notes in each tool description indicate per-call credit cost.
Facebook — Pages
facebook_get_page_id— Extract page ID from URLfacebook_get_page_details— Page info, followers, contact info, category. Setexact_followers_count=truefor the exact integer (charges 5 credits instead of 1)facebook_get_page_posts— Fetch posts withafter_time/before_timefor date filtering.limit3-9, charges scale perceil(returned / 3)facebook_get_page_videos— Page videos,limit6-12facebook_get_page_reels— Reels / short videos
Facebook — Groups
facebook_get_group_id— Extract group ID from URLfacebook_get_group_details— Full details (members, description, rules)facebook_get_group_posts— Group posts, samelimit+ date filtering as page postsfacebook_get_group_videos— Group videos with pagination
Facebook — Posts
facebook_get_post_id— Extract post ID from URLfacebook_get_post_details— Reactions, comments count, shares, mediafacebook_get_post_details_extended— Extended fields: view counts (essential for reels / video posts), video URLs, music/audio metadata, author verificationfacebook_get_post_attachments— Full media attachments (5 credits per call)facebook_get_video_details— Video post metadata + statsfacebook_get_post_comments— Top-level comments,limitup to 30facebook_get_comment_replies— Replies to a specific comment
Facebook — Search
facebook_search_pages— Search pages by keyword + optional location filterfacebook_search_people— Search public profiles by keywordfacebook_search_locations— Look up Facebook location UIDs (for use in other endpoints)facebook_search_posts— Search posts by keyword, recency, locationfacebook_search_videos— Search Facebook Watch videos
Facebook — Ads Library (Meta Ad Transparency)
facebook_ads_search— Search ads by keyword, country, statusfacebook_ads_page_details— All ads from a specific pagefacebook_ads_archive_details— Full ad archive detailsfacebook_ads_keywords— Search ads by keywordfacebook_ads_countries— List of supported country codes
Facebook — Marketplace
facebook_marketplace_search— Item search with location, price, category, condition filtersfacebook_marketplace_listing— Single listing detailsfacebook_marketplace_seller— Seller profile + their listingsfacebook_marketplace_categories— Browse category hierarchyfacebook_marketplace_city_coordinates— Lat/long for a city (for radius search)facebook_marketplace_vehicles— Vehicle-specific listing searchfacebook_marketplace_rentals— Rental property listings
Facebook — Media
facebook_download_media— Direct download URL for FB media (images, videos)
Instagram — Profile
instagram_get_user_id— Resolve username → numeric IDinstagram_get_profile_details— Profile info, follower count, bio, post countinstagram_get_profile_posts— Recent posts from a profileinstagram_get_profile_reels— Reels from a profileinstagram_get_profile_highlights— Story highlights listinstagram_get_highlight_details— Full content of a specific highlight
Instagram — Posts + Reels
instagram_get_post_id— Resolve post URL → IDinstagram_get_post_details— Likes, comments, media, captioninstagram_get_reels_feed— Reels feed for a profileinstagram_get_reels_by_audio— Reels using a specific audio/music ID
Instagram — Discovery
instagram_popular_search— Trending queries / suggestionsinstagram_get_location_posts— Posts tagged at a specific locationinstagram_get_nearby_locations— Nearby location IDs (for use in location-posts)
Not supported yet
Only Facebook and Instagram are live today. TikTok, X / Twitter, LinkedIn and YouTube are on the roadmap with no committed dates — tools for them will appear here only once they ship.
Track the platform roadmap at socialapis.io/api-sources.
💡 Usage examples
Each prompt below is a real Claude Desktop session. Some of these are single-tool-call patterns ("get me X"); some require Claude to chain multiple calls + aggregate the results (noted where).
Single-call patterns (fast, cheap)
What's Nike's follower count on Facebook?
→ Uses facebook_get_page_details (1 credit)
Get the latest 9 posts from facebook.com/EngenSA
→ Uses facebook_get_page_posts with limit=9 (1-3 credits depending on actual returned count)
Show me the Meta ads currently running for "Apple Vision Pro" in Germany
→ Uses facebook_ads_search (1 credit)
Multi-call patterns (Claude orchestrates these — but it's slower + more expensive)
Compare engagement on Nike vs Adidas's last 9 Facebook posts
→ Claude calls facebook_get_page_posts twice (~2-6 credits total),
aggregates reactions/comments/shares per post, returns a comparison.
What are people saying in the comments on Coca-Cola's last 3 posts?
→ Claude calls facebook_get_page_posts (1 credit) then
facebook_get_post_comments 3 times (3 credits) and summarizes.
Show me marketplace listings for "PlayStation 5" under $400 in Berlin
→ Claude calls facebook_marketplace_city_coordinates (1 credit) +
facebook_marketplace_search with filters (1 credit).
What this MCP server does NOT do
Some queries look natural in a chat ("compare engagement over the last month") but require aggregations the API doesn't expose as a single tool yet. Claude can still answer them, but it'll fan out into many tool calls — which is slow + expensive.
| Query shape | Why it's hard |
|---|---|
| "Engagement rate over the last 30 days" for a page | Requires fetching every post in the date range (paginated, limit capped at 9 per call) and computing engagement per post. Hits the LLM tool-call budget on busy pages. |
| "Compare engagement rates between Brand A, B, C over the last month" | Same problem, 3× — one paginated fetch per brand, then comparison math. Works for small windows; slow for "last month" on high-volume pages. |
| Historical archive older than what Facebook itself serves | We surface what Facebook makes publicly visible. Posts that scrolled off Facebook's visible feed aren't retrievable. |
| Server-side time-series (daily engagement, weekly growth) | Not yet — on the roadmap as a future engagement-stats endpoint with built-in aggregation. |
If your use case maps to one of these patterns and you want the aggregation pre-computed instead of LLM-orchestrated, contact support with the specific query — we're prioritizing the aggregation endpoint based on customer demand.
🏗️ Architecture
Claude Desktop
↓
@socialapis/mcp (local MCP client)
↓
https://mcp.socialapis.io (global proxy)
↓
https://api.socialapis.io (data API)
Why this architecture?
- ✅ Low latency (global edge network)
- ✅ High reliability (99.9% uptime)
- ✅ Auto rate limiting
- ✅ Smart caching
- ✅ Your API key stays local
🔧 Development
Local Setup
# Clone repository
git clone https://github.com/SocialAPIsHub/mcp-server.git
cd mcp-server
# Install dependencies
npm install
# Run MCP client
npm start YOUR_API_KEY
# Run HTTP proxy server
npm run serve
Project Structure
mcp-server/
├── src/
│ └── tools.js # Tool definitions
├── mcp-wrapper.js # MCP client (runs locally)
├── server.js # HTTP proxy server
├── package.json
├── Dockerfile
└── README.md
Testing
# Test MCP client locally
node mcp-wrapper.js YOUR_API_KEY
# Test HTTP proxy
curl http://localhost:3001/health
curl http://localhost:3001/tools
# Test specific tool
curl -X POST http://localhost:3001/proxy \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"tool":"facebook_get_page_details","arguments":{"link":"https://facebook.com/nike"}}'
📊 Pricing
| Plan | Credits / month | Price |
|---|---|---|
| Free | 200 | $0 |
| Pro | 1,500 | $4.99 |
| Ultra | 30,000 | $49 |
| Mega | 120,000 | $179 |
| Enterprise | Custom | Contact us |
Most tools cost 1 credit per call; each tool description states its exact price. Current plans: socialapis.io/pricing.
🤝 Contributing
We welcome contributions! Please see CONTRIBUTING.md for details.
Quick Contribution Guide
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
📖 Documentation
💬 Support
- 📧 Email: support@socialapis.io
- 💬 Discord: discord.gg/D5bQskrwV
- 🐛 Issues: GitHub Issues
- 📚 Docs: docs.socialapis.io
🗺️ Roadmap
Shipped:
- Facebook API support — 31 tools (Pages, Groups, Posts, Search, Ads Library, Marketplace, Media)
- Instagram support — 16 tools (Profiles, Posts, Reels, Highlights, Discovery / Locations)
- MCP server implementation
- HTTP proxy server
- npm package published —
@socialapis/mcp - MCP Registry listing — registry.modelcontextprotocol.io
- Python SDK —
socialapis-sdkon PyPI (51 endpoints, MIT) - JavaScript / TypeScript SDK —
socialapis-sdkon npm (Node 18+, Bun, Deno, browsers) - Go SDK — github.com/SocialAPIsHub/socialapis-go (idiomatic, zero deps)
Upcoming:
- TikTok support
- X (Twitter) support
- LinkedIn support
- YouTube support
- Advanced analytics — server-side aggregation endpoints (engagement-over-time, brand comparisons) so multi-call patterns become a single tool call
- Real-time webhooks — push notifications on new posts / engagement thresholds
- LangChain integration
Platform priorities shift based on customer demand. The fastest way to push something up the queue is to email support@socialapis.io or DM @socialapis on Telegram with the use case.
📄 License
This project is licensed under the MIT License - see the LICENSE file for details.
🙏 Acknowledgments
- Built with Model Context Protocol
- Powered by Anthropic Claude
- Inspired by the AI agent community
🌟 Star History
Made with ❤️ by the SocialAPIs Team
Python SDK • JS SDK • Go SDK
Tools it offers (47)
What this server listed when ahel dialed its public endpoint in Oct 2026, with no key and no account of yours. The names are the server’s own.
facebook_get_page_idfacebook_get_page_detailsfacebook_get_page_postsfacebook_get_page_videosfacebook_get_page_reelsfacebook_get_group_idfacebook_get_group_detailsfacebook_get_group_postsfacebook_get_group_videosfacebook_get_post_idfacebook_get_post_detailsfacebook_get_post_details_extendedfacebook_get_post_attachmentsfacebook_get_video_detailsfacebook_get_post_commentsfacebook_get_comment_repliesfacebook_search_pagesfacebook_search_peoplefacebook_search_locationsfacebook_search_postsfacebook_search_videosfacebook_ads_searchfacebook_ads_page_detailsfacebook_ads_archive_detailsfacebook_ads_keywordsfacebook_ads_countriesfacebook_marketplace_searchfacebook_marketplace_listingfacebook_marketplace_sellerfacebook_marketplace_categories
Signals
- GitHub stars
- 1
- Forks
- 1
- Last commit
- Jun 2026
Advanced
- Delivery
- social-media-api MCP server → your ahel connector (mcp.ahel.ai) → your AI.
- Item type
- mcp-server
- Key
io-github-socialapishub-social-media-api- Source
- github.com/socialapishub/mcp-server
- Hosted endpoint
https://mcp.socialapis.io/mcp
github.com/socialapishub/mcp-server