mcp-serverSAFE
MCP server for Facebook & Instagram data — pages, posts, groups, Ads Library, Marketplace, profiles, reels. 47 read-only tools. npx or hosted at mcp.socialapis.io/mcp
Overview
From the repository's own README, as read at the audited commit. Badges and raw HTML are left out.
Facebook & Instagram data for AI agents — local (npx) or hosted (remote MCP)
[](https://www.npmjs.com/package/@socialapis/mcp) [](https://opensource.org/licenses/MIT) [](https://github.com/SocialAPIsHub/mcp-server/stargazers) [](https://glama.ai/mcp/servers/SocialAPIsHub/mcp-server)
Website • Documentation • Discord • npm
[](https://cursor.com/en/install-mcp?name=socialapis&config=eyJjb21tYW5kIjoibnB4IiwiYXJncyI6WyIteSIsIkBzb2NpYWxhcGlzL21jcCJdLCJlbnYiOnsiU09DSUFMQVBJU19BUElfS0VZIjoiWU9VUl9BUElfS0VZIn19)
Official SDKs: Python • JavaScript / TypeScript • Go
🚀 Quick Start
AI agents (Cline, Claude Code, Cursor): follow llms-install.md for 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)
96d405cb2f23OBSERVED · 2026-10-11Connect
Built from this server's own package name, version and transport as found in its source — not copied from anyone's documentation, so it cannot drift against a page we do not control. Replace the environment placeholders with a token scoped to the least it needs.
claude mcp add mcp --env SOCIALAPIS_API_KEY=${SOCIALAPIS_API_KEY} -- npx -y @socialapis/[email protected]Exposed tools (43)
34 read · 9 write · 0 destructive.
| Tool | Risk | Description |
|---|---|---|
facebook_ads_archive_details | read | Get one Ad Library ad in full: creative, body text, CTA, platforms, countries, date range, and spend and impression estimates where Meta publishes them. Needs the ad_archive_id from a facebook_ads_search result. Pricing: 1 credit per call. |
facebook_ads_countries | read | List the country codes the Ads Library tools accept in their country parameter. Pricing: 1 credit per call. |
facebook_ads_page_details | read | Get an advertiser\ |
facebook_ads_search | read | Search ads in the Meta Ad Library. Pass a keyword (query) to find ads about a topic, or ad_page_id to list one advertiser\ |
facebook_download_media | write | Resolve a Facebook media URL (image, video or audio, e.g. from a post or reel) to direct downloadable file URLs. Returns URLs, not file bytes. Pricing: 1 credit per call. |
facebook_get_comment_replies | read | List replies to one Facebook comment. Needs comment_feedback_id and expansion_token, which facebook_get_post_comments returns when called with include_reply_info=true. Pricing: 1 credit per call. |
facebook_get_group_details | read | Get a public Facebook group\ |
facebook_get_group_id | read | Resolve a Facebook group URL to its numeric group ID. Use facebook_get_group_details for the group\ |
facebook_get_group_posts | read | List recent posts from a public Facebook group, with text, media, author, reactions and comment counts. Returns 3-9 posts per call plus an end_cursor for the next page; filter by date with after_time / before_time. Pricing: ceil(posts_returned / 3) credits per call, minimum 1. |
facebook_get_group_videos | read | List videos posted in a public Facebook group, with video_id, title, duration, view count and thumbnail. Returns an end_cursor for the next page. Pricing: 1 credit per call. |
facebook_get_page_details | read | Get a Facebook page\ |
facebook_get_page_id | read | Resolve a Facebook page URL to its numeric page ID. Use it when another tool needs a page or profile ID; use facebook_get_page_details for the page\ |
facebook_get_page_posts | read | List a Facebook page\ |
facebook_get_page_reels | read | List a Facebook page\ |
facebook_get_page_videos | read | List videos uploaded to a Facebook page, with video_id, title, duration, view count and thumbnail. Provide the page URL (link) or its numeric profile_id. Returns an end_cursor for the next page. For short-form reels, use facebook_get_page_reels. Pricing: 1 credit per call. |
facebook_get_post_attachments | write | List every media attachment (images and videos, with URLs and dimensions) on a Facebook post, including all items in multi-photo posts. Needs the numeric post_id from facebook_get_post_id. For the post\ |
facebook_get_post_details | write | Get a Facebook post\ |
facebook_get_post_details_extended | write | Get everything facebook_get_post_details returns plus view counts, HD/SD video URLs, music/audio metadata and author verification status. Use it for reels and video posts, or when the standard details lack view_count, video_hd_src or attached_track. Pricing: 1 credit per call. |
facebook_get_post_id | write | Extract the numeric post ID from a Facebook post URL. Use it to get the post_id that facebook_get_post_attachments needs. Pricing: 1 credit per call. |
facebook_get_video_details | write | Get a Facebook video post\ |
facebook_marketplace_categories | read | List Marketplace categories with their IDs and category_url values. Use a category_url to filter facebook_marketplace_search. Pricing: 1 credit per call. |
facebook_marketplace_city_coordinates | read | Convert a city name to the latitude and longitude that the Marketplace search tools expect in filter_location_latitude / filter_location_longitude. Pricing: 1 credit per call. |
facebook_marketplace_listing | read | Get one Marketplace listing in full: title, price, description, condition, all photos, location and seller. Needs the listing_id from a Marketplace search result. Pricing: 1 credit per call. |
facebook_marketplace_rentals | read | Search Facebook Marketplace rental listings (apartments, houses, rooms) near a location, with price, bedroom, bathroom and radius filters. Returns rental listings with their listing_id, plus an end_cursor. For items for sale, use facebook_marketplace_search. Pricing: 1 credit per call. |
facebook_marketplace_seller | read | Get a Marketplace seller\ |
facebook_search_pages | read | Find Facebook pages by keyword (brand, business or topic name), optionally near a location. Returns page names, URLs, categories and follower counts, 3 per call, plus an end_cursor. Use it when you don\ |
facebook_search_people | read | Find public Facebook profiles by name or keyword, optionally near a location (location_uid from facebook_search_locations). Returns names, profile URLs and pictures, plus work, education and location where public, and an end_cursor. Pricing: 1 credit per call. |
facebook_search_posts | read | Search public Facebook posts by keyword, optionally filtered by location (location_uid from facebook_search_locations) and date range. Returns posts with text, author and engagement, plus an end_cursor. To list one page\ |
facebook_search_videos | read | Search public Facebook videos by keyword, optionally most recent first or live videos only. Returns video titles, URLs and view counts, plus an end_cursor. Pricing: 1 credit per call. |
instagram_get_highlight_details | read | Get the stories inside one Instagram highlight. Needs a highlight_id from instagram_get_profile_highlights. Pricing: 1 credit per call. |
instagram_get_location_posts | read | List Instagram posts tagged at a location: top posts (tab=ranked) or most recent (tab=recent). Needs a location_id, e.g. from a place in instagram_popular_search. Returns an end_cursor for the next page. Pricing: 1 credit per call. |
instagram_get_nearby_locations | read | List Instagram places near a given location, with name, category, coordinates and post count. Needs a location_id, e.g. from a place in instagram_popular_search. Pricing: 1 credit per call. |
instagram_get_post_details | write | Get one Instagram post or reel in full: caption, media URLs, engagement counts, timestamp and owner. Needs the shortcode (the part after /p/ or /reel/ in the URL, or from instagram_get_post_id). Pricing: 1 credit per call. |
instagram_get_post_id | write | Extract the shortcode from an Instagram post or reel URL. instagram_get_post_details needs the shortcode. Pricing: 1 credit per call. |
instagram_get_profile_details | write | Get an Instagram profile by username: bio, follower and post counts, verification status and related profiles. Pricing: 1 credit per call. |
instagram_get_profile_highlights | read | List an Instagram profile\ |
instagram_get_profile_posts | read | List an Instagram profile\ |
instagram_get_profile_reels | read | List an Instagram profile\ |
instagram_get_reels_by_audio | read | List Instagram reels that use a given sound. Needs the audio_id (music/audio cluster ID) found in reel results\ |
instagram_get_reels_feed | read | Get Instagram\ |
instagram_get_user_id | read | Resolve an Instagram username or profile URL to its numeric user ID. Needed by instagram_get_profile_reels and instagram_get_profile_highlights. Pricing: 1 credit per call. |
instagram_popular_search | read | Search Instagram by keyword and get the top matching users, hashtags and places. Use it to find a username, or a place\ |
socialapis-mcp | read | Facebook & Instagram data for AI agents: pages, posts, groups, Ads Library, Marketplace, profiles and reels. |
Trust audit
SAFEgrade B · trust 89/100 Nothing in the source contradicts what it says it does. Grade A is reserved for packages that have also passed the behavioural sandbox.
| Layer | What it checks | Result |
|---|---|---|
| L0 | Provenance & inventory | PASS |
| L1 | Static analysis of the code | PASS |
| L2 | Instruction surface (what it tells the agent) | PASS |
| L3 | Class-specific surface | PASS |
| L4 | Behavioural (sandbox) | SKIPPED |
What the source does
- Filesystem
- none-observed
- Network
- declared (4 observation(s))
- Shell
- none-observed
- Dependencies
- not all pinned
- Secrets in source
- none-found
Findings (1)
@modelcontextprotocol/sdk, cors, express
Gates applied: no_behavioural_pass.
96d405cb2f23full audit observations/trust-audit/mcp-server/socialapishub__mcp-server.json · Report an issue / request a re-scanAudit history
Every audit this server has had. A grade with a past is a grade somebody is still checking.
| Date | Source | Verdict | Grade | Score | Change |
|---|---|---|---|---|---|
| 2026-10-11 | 96d405cb2f23 | SAFE | B | 89 | first audit |
Questions
What is the mcp-server MCP server?
MCP server for Facebook & Instagram data — pages, posts, groups, Ads Library, Marketplace, profiles, reels. 47 read-only tools. npx or hosted at mcp.socialapis.io/mcp
What tools does mcp-server expose?
43 in total: 34 read-only, 9 that write, and 0 that can delete or overwrite. Every one is listed on this page with its risk.
Is mcp-server safe to connect to an agent?
The audit found nothing in the source that contradicts what it says it does, and graded it B (89/100). Grade A is held back for packages that have also passed a sandboxed behavioural run, which is why a clean server reads B.
What credentials does mcp-server need?
It reads SOCIALAPIS_API_KEY from the environment. Give it a token scoped to the least it needs — an agent that can be talked into calling a tool can be talked into calling it with your credentials.
How does mcp-server run?
It speaks stdio and streamable-http, so it runs as a local process your client starts. It is published on npm as @socialapis/mcp at 2.0.2.
How current is this page?
The grade is for one exact copy of the source (96d405cb2f23), read on 2026-10-11. The repository is watched and re-audited when it changes.