Integrated for research capabilities, allowing the MCP server to search for information, facts, and news using Brave Search
Enables posting content to Mastodon with platform-specific formatting, managing API rate limits, and tracking post performance
Used for content generation, allowing the MCP server to create social media posts using OpenAI's models
Integrated as a research tool, allowing the MCP server to research topics and gather information for social media content
Social Media MCP Server
A Model Context Protocol (MCP) server that connects to multiple social media platforms, allowing users to create and publish content across platforms through natural language instructions.
Features
Natural Language Interface: Create posts for multiple platforms with simple instructions
Research Capabilities: Automatically research hashtags, trends, facts, and news
Multi-platform Support: Post to Twitter/X, Mastodon, and LinkedIn with platform-specific formatting
Content Generation: Generate engaging content using multiple AI models
Rate Limit Management: Handle API rate limits gracefully with queuing and fallbacks
Analytics: Track post performance and optimize content strategy
Getting Started
Prerequisites
Node.js (v18+)
npm or yarn
API keys for:
Twitter/X
Mastodon
LinkedIn
OpenAI and/or Anthropic (for content generation)
Brave Search (for research)
Installation
Clone the repository:
git clone https://github.com/yourusername/social-media-mcp.git
cd social-media-mcp
Install dependencies:
npm install
Create a
.env
file with your API keys:
# Twitter API Credentials
TWITTER_API_KEY=your_api_key
TWITTER_API_SECRET=your_api_secret
TWITTER_BEARER_TOKEN=your_bearer_token
TWITTER_ACCESS_TOKEN=your_access_token
TWITTER_ACCESS_SECRET=your_access_secret
TWITTER_OAUTH_CLIENT=your_oauth_client
TWITTER_CLIENT_SECRET=your_client_secret
# Mastodon API Credentials
MASTODON_CLIENT_SECRET=your_client_secret
MASTODON_CLIENT_KEY=your_client_key
MASTODON_ACCESS_TOKEN=your_access_token
# LinkedIn API Credentials
LINKEDIN_CLIENT_ID=your_client_id
LINKEDIN_CLIENT_SECRET=your_client_secret
LINKEDIN_ACCESS_TOKEN=your_access_token
# AI API Keys
ANTHROPIC_API_KEY=your_anthropic_key
OPENAI_API_KEY=your_openai_key
BRAVE_API_KEY=your_brave_key
# Application Settings
LOG_LEVEL=info
CACHE_ENABLED=true
RATE_LIMIT_ENABLED=true
Build the project:
npm run build
Start the server:
npm start
MCP Integration
To use this MCP server with Claude or another MCP-compatible assistant, add it to your MCP settings:
{
"mcpServers": {
"social-media-mcp": {
"command": "node",
"args": ["path/to/social-media-mcp/build/index.js"],
"env": {
"TWITTER_API_KEY": "your_api_key",
"TWITTER_API_SECRET": "your_api_secret",
"TWITTER_BEARER_TOKEN": "your_bearer_token",
"TWITTER_ACCESS_TOKEN": "your_access_token",
"TWITTER_ACCESS_SECRET": "your_access_secret",
"TWITTER_OAUTH_CLIENT": "your_oauth_client",
"TWITTER_CLIENT_SECRET": "your_client_secret",
"MASTODON_CLIENT_SECRET": "your_client_secret",
"MASTODON_CLIENT_KEY": "your_client_key",
"MASTODON_ACCESS_TOKEN": "your_access_token",
"LINKEDIN_CLIENT_ID": "your_client_id",
"LINKEDIN_CLIENT_SECRET": "your_client_secret",
"LINKEDIN_ACCESS_TOKEN": "your_access_token",
"ANTHROPIC_API_KEY": "your_anthropic_key",
"OPENAI_API_KEY": "your_openai_key",
"BRAVE_API_KEY": "your_brave_key"
},
"disabled": false,
"autoApprove": []
}
}
}
Available Tools
create_post
Create and post content to social media platforms based on natural language instructions.
{
"instruction": "Post about the latest AI developments in healthcare",
"platforms": ["twitter", "mastodon", "linkedin"],
"postImmediately": false
}
get_trending_topics
Get trending topics from social media platforms.
{
"platform": "twitter",
"category": "technology",
"count": 5
}
research_topic
Research a topic using Brave Search and Perplexity.
{
"topic": "artificial intelligence ethics",
"includeHashtags": true,
"includeFacts": true,
"includeTrends": true,
"includeNews": true
}
Development
Project Structure
social-media-mcp/
├── src/
│ ├── index.ts # Entry point
│ ├── config/ # Configuration
│ ├── types/ # TypeScript type definitions
│ ├── core/ # Core orchestration logic
│ ├── nlp/ # Natural language processing
│ ├── research/ # Research engine
│ │ ├── brave/ # Brave Search integration
│ │ ├── perplexity/ # Perplexity integration
│ │ └── aggregator/ # Research result aggregation
│ ├── content/ # Content generation
│ │ ├── strategies/ # AI model strategies
│ │ ├── formatter/ # Platform-specific formatting
│ │ └── templates/ # Content templates
│ ├── platforms/ # Social media platform integrations
│ │ ├── twitter/ # Twitter API integration
│ │ └── mastodon/ # Mastodon API integration
│ ├── analytics/ # Analytics engine
│ ├── rate-limit/ # Rate limit management
│ └── utils/ # Utility functions
├── memory-bank/ # Project documentation
├── build/ # Compiled JavaScript
├── .env # Environment variables
├── package.json # Dependencies and scripts
└── tsconfig.json # TypeScript configuration
Scripts
npm run build
: Build the projectnpm run dev
: Run in development mode with hot reloadingnpm start
: Start the production servernpm test
: Run testsnpm run lint
: Run lintingnpm run format
: Format code
Utility Scripts
The scripts
directory contains utility scripts for the Social Media MCP Server:
scripts/linkedin-oauth.js
: Handles the OAuth 2.0 flow for LinkedIn to obtain an access tokenUsage:
cd scripts && npm install && npm run linkedin-oauth
See scripts/README.md for more details
Documentation
The documentation
directory contains detailed documentation for each social media platform integration:
License
This project is licensed under the ISC License.
Acknowledgements
This server cannot be installed
remote-capable server
The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.
Connects to multiple social media platforms (Twitter/X, Mastodon, LinkedIn), allowing users to create and publish content across platforms through natural language instructions.
Related MCP Servers
- AsecurityAlicenseAqualityEnables interaction with Twitter through a Model Context Protocol, allowing large language models to post tweets, search for tweets, and reply to tweets.Last updated 4 months ago53020MIT License
- AsecurityAlicenseAqualityEnables AI models to interact with messages from various messaging platforms (Mobile, Mail, WhatsApp, LinkedIn, Slack, Twitter, Telegram, Instagram, Messenger) through a standardized interface.Last updated 9 months ago11MIT License
- -securityAlicense-qualityEnables interaction with X (formerly Twitter), allowing for posting tweets, searching content, managing accounts, and organizing lists.Last updated 6 months ago33MIT License
- -securityFlicense-qualityProvides social media functionality for AI agents, enabling them to login with unique handles, read filtered posts, and create posts or replies within team-based discussions.Last updated 2 months ago3