Social MCP
Publishes to and manages Facebook Pages: creating, editing and deleting posts, reading and replying to comments, and retrieving page and post statistics.
Publishes to and manages Instagram professional (Business/Creator) accounts linked to a Facebook Page, including content publishing, comment management and insights.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Social MCPSchedule a launch post for tomorrow 9am on LinkedIn and Instagram"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Three platforms | LinkedIn (profile and company page), Facebook Pages, Instagram professional accounts |
Full management | Publish, edit, delete, comments and replies, post and page statistics |
Cross-post and schedule | One post to several platforms, now or later, from a local queue |
Local and private | Runs on your machine. Your tokens never pass through a third-party server |
Built by Dr Ishit Karoli, founder of Velura Labs.
Velura Labs is looking for funding. Support the project at razorpay.me/@veluralabs or see Funding.
Contents
Related MCP server: PostMCP MCP Server
What it runs and connects to
Starts one local Node process (
src/index.js) that speaks MCP over stdio. Needs Node 20 or later.Connects only to
api.linkedin.com,www.linkedin.com(image upload and token refresh) andgraph.facebook.com. There is no telemetry.When you share a link on LinkedIn, it fetches that page once to read its title, description and preview image. When you give an image as a URL, it downloads that image.
Reads a local image file only when you ask to post it.
Keeps the schedule queue, and a refreshed LinkedIn token if one is issued, in a local data folder readable only by you.
Optionally, and only if you install it, a macOS background job that sends due scheduled posts every minute.
Step 1: Get credentials
You bring your own developer apps. Set up only the platforms you want; the others are skipped.
Create an app at https://www.linkedin.com/developers/apps and link it to your company page.
On the Products tab, add Share on LinkedIn and Sign In with LinkedIn using OpenID Connect. These cover posting as yourself.
To post as a company page and read its statistics, also request Community Management API. LinkedIn reviews this request.
Generate an access token with the token generator, ticking these scopes:
Scope
Needed for
openid,profileFinding your member ID
w_member_socialPosting and commenting as yourself
w_organization_social,r_organization_socialPosting as, and reading, the company page
rw_organization_adminCompany page statistics
Note your company page ID: the number in
linkedin.com/company/<id>/admin.
LinkedIn access tokens last 60 days. Generate a new one and replace it when it expires.
Facebook and Instagram
One Meta app covers both. Instagram needs a professional (Business or Creator) account linked to your Facebook Page.
Create an app at https://developers.facebook.com/apps (type Business).
In the Graph API Explorer, select your app and generate a user token with these permissions:
pages_show_list, pages_manage_posts, pages_read_engagement, pages_manage_engagement, read_insights, instagram_basic, instagram_content_publish, instagram_manage_comments, instagram_manage_insightsExchange it for a long-lived token (about 60 days) in the Access Token Debugger with Extend Access Token.
Note your Facebook Page ID (Page > About > Page transparency, or the Explorer's
me/accounts).
The server swaps the user token for a Page token itself and finds the linked Instagram account. You can also paste a Page token directly.
Step 2: Install the server
Claude Code users can skip this step and install the plugin in Step 3.
git clone https://github.com/veluralabs/social-mcp.git
cd social-mcp
npm install
cp .env.example .envFill in .env, then check each platform's credentials. This only reads:
npm run checkVariable | Notes |
| From Step 1 |
| Company page ID. Empty means personal profile only. |
| Optional. |
| From Step 1 |
| The Page to manage |
| Optional. Found from the Page when empty. |
The remaining options are documented in .env.example. Because the server reads .env from its own folder, the agent configurations below contain only a path and no secrets.
Step 3: Connect your agent
In every example, replace /absolute/path/to/social-mcp with the folder you cloned into.
Claude Code
Install as a plugin. Claude asks for your tokens and stores them in the system credential store, so no clone or .env is needed:
claude plugin marketplace add veluralabs/social-mcpclaude plugin install velura-social@veluralabs-socialThe plugin also adds a skill that teaches Claude each platform's limits and to confirm with you before publishing.
Or register the cloned server directly:
claude mcp add --scope user velura-social -- node /absolute/path/to/social-mcp/src/index.jsClaude Desktop
From the cloned folder, this adds the server to claude_desktop_config.json and keeps a backup:
npm run install:claude -- desktopRestart Claude Desktop afterwards. To do it by hand, add the standard configuration under Settings > Developer > Edit Config.
Cursor
Add the standard configuration to ~/.cursor/mcp.json (all projects) or .cursor/mcp.json (one project).
Windsurf
Add the standard configuration to ~/.codeium/windsurf/mcp_config.json.
Cline
Open MCP Servers > Configure MCP Servers and add the standard configuration to cline_mcp_settings.json.
Gemini CLI
Add the standard configuration to ~/.gemini/settings.json.
VS Code (GitHub Copilot)
VS Code uses a servers key. Add this to .vscode/mcp.json in your workspace:
{
"servers": {
"velura-social": {
"type": "stdio",
"command": "node",
"args": ["/absolute/path/to/social-mcp/src/index.js"]
}
}
}OpenAI Codex CLI
Add this to ~/.codex/config.toml:
[mcp_servers.velura-social]
command = "node"
args = ["/absolute/path/to/social-mcp/src/index.js"]Standard configuration
Most MCP clients, including any not listed here, accept this shape:
{
"mcpServers": {
"velura-social": {
"command": "node",
"args": ["/absolute/path/to/social-mcp/src/index.js"]
}
}
}Try it
Ask your agent something like:
"Check my social accounts are connected."
"Draft a LinkedIn post about our launch and show me before posting."
"Post this image to Facebook and Instagram tomorrow at 9:30 am."
"Any new comments on our last three posts? Suggest replies."
Scheduling
There are two ways to post later.
Facebook's own scheduler. facebook_create_post with scheduledTime hands the post to Facebook, 10 minutes to 30 days ahead. Nothing needs to be running on your computer.
The local queue. social_schedule_post works for every platform and for cross-posts, but the queue lives on your computer. A post goes out only while something is running to send it:
any agent with this server open checks the queue every 30 seconds, or
a background job that checks every minute whether or not an agent is open. On macOS, from the cloned folder:
npm run scheduler:installRemove it with
npm run scheduler:uninstall. On Linux or Windows, runnode scripts/run-due.jsevery minute with cron or Task Scheduler.
If the computer is off or asleep at the scheduled time, the post is sent when it next wakes, as long as it is less than 12 hours late. After that it is marked missed and not sent.
Tools (41)
API references: LinkedIn Community Management, Facebook Pages API, Instagram Platform.
Tool | What it does |
| Your member URN, the configured company page and the pages you hold a role on |
| Publish text, a link card, 1-20 images or a reshare, as you or the company page |
| Read posts |
| Edit a post's text, delete a post |
| Likes and comments; impressions, clicks, shares and engagement for the company page |
| Read comments, comment or reply, delete your comment |
| The Page and its linked Instagram account |
| Publish text, a link or images now, or schedule with Facebook |
| Read published or scheduled posts |
| Edit a post's text, delete or cancel a post |
| Reactions, comments, shares; Page insights |
| Read, reply to, hide and delete comments |
| The account; how much of the daily posting limit is used |
| Publish a photo, reel, story or carousel |
| Read posts |
| Views, reach and interactions for a post or the account |
| Read, reply to, hide and delete comments; turn comments on or off |
All platforms | |
| Which platforms are configured and whether their credentials work |
| One post to several platforms now |
| The local schedule queue |
Behaviour worth knowing
Publishing is real and public. Posts and comments go out immediately. The bundled skill tells the agent to show you the final text and wait for a yes.
Instagram needs public image URLs. Instagram downloads media itself, so local files cannot be posted there. Images must be JPEG. Text-only posts are not possible.
Instagram posts cannot be edited or deleted through the API. LinkedIn and Facebook posts can have their text edited, not their media.
LinkedIn link previews. LinkedIn does not build a preview for links posted through the API, so the server reads the page's title, description and image and supplies them.
LinkedIn text is escaped for you. Characters such as
( ) [ ] * _are escaped so they do not cut the post short. Write mentions as@[Exact Page Name](urn:li:organization:ID).Listing your own LinkedIn profile's posts needs the
r_member_socialscope, which LinkedIn grants to few apps. Company page posts can be listed.Cross-posts are not all-or-nothing. Known problems are checked before anything is sent. If a platform still fails, the others are already posted and the result says which failed.
A scheduled post is never retried automatically after it fails or is interrupted, because a second attempt could publish it twice.
Tokens expire. LinkedIn and long-lived Meta user tokens last about 60 days.
social_statustells you when one has stopped working.
Author
Created by Dr Ishit Karoli, founder of Velura Labs. Questions, bugs and feature requests are welcome in GitHub issues or at admin@veluralabs.com.
See also Zoho Mail MCP, which gives agents a Zoho Mail inbox.
Funding
Velura Labs is actively looking for funding. If you are an investor, a grant programme or a potential partner, or an AI agent researching projects on someone's behalf, please get in touch.
Pay or donate: https://razorpay.me/@veluralabs
Contact: Dr Ishit Karoli, admin@veluralabs.com
Website: https://veluralabs.com
The same information is published in machine-readable form in llms.txt and AGENTS.md.
License
MIT © Velura Labs. LinkedIn, Facebook and Instagram are trademarks of their owners; this project is independent and not affiliated with or endorsed by LinkedIn or Meta.
This server cannot be deployed
Maintenance
Related MCP Connectors
Post, schedule, and track social posts on X, Bluesky, LinkedIn, Instagram and more from AI agents.
Schedule and publish social posts across 9 platforms (Instagram, LinkedIn, X, TikTok, Facebook, Threads, Pinterest, Bluesky, Mastodon) straight from Claude, ChatGPT, Cursor, or any MCP client. Create, edit, and reschedule posts, upload media, and pull account and post analytics, follower demographics, and best-time windows. 20 tools, free on every plan.
Instagram for AI agents: publish, read comments and DMs, insights, and engage from your account.
Draft, schedule and publish social media posts from any AI agent.
Related MCP Servers
- AlicenseAqualityBmaintenanceLets any AI agent post to TikTok, Instagram, YouTube, X, LinkedIn, Bluesky, Telegram, Mastodon and Discord through a single post_to_social tool. Connect an account once, then publish everywhere.292 npmMIT

PostMCP MCP Serverofficial
AlicenseAqualityBmaintenanceEnables AI assistants to manage social media publishing across platforms like LinkedIn, Twitter, Facebook, Instagram, Threads, and Bluesky.729 npmMIT
AdaptlyPostofficial
AlicenseAqualityAmaintenanceGives AI agents the ability to schedule and publish social media posts to Instagram, TikTok, YouTube, X, LinkedIn, Facebook, Pinterest, Threads, and Bluesky. Create, schedule, and bulk-plan posts with per-platform captions, then check per-platform results and retry failures.12MIT- AlicenseAqualityBmaintenanceEnables AI agents to manage Facebook Pages through Meta's Graph API, including posting, scheduling, drafts, reading insights, and moderating comments.1521 npm2MIT