Social MediaBLOCK
A Model Context Protocol (MCP) server that connects to multiple social media platforms
Overview
From the repository's own README, as read at the audited commit. Badges and raw HTML are left out.
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
- 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
.envfile 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 pr
3a817233cabdOBSERVED · 2026-10-10Connect
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 social-media-mcp-scripts --env ANTHROPIC_API_KEY=${ANTHROPIC_API_KEY} --env BRAVE_API_KEY=${BRAVE_API_KEY} --env DEEPSEEK_API_KEY=${DEEPSEEK_API_KEY} --env GOOGLE_API_KEY=${GOOGLE_API_KEY} -- npx -y [email protected]{
"mcpServers": {
"social-media-mcp-scripts": {
"command": "npx",
"args": [
"-y",
"[email protected]"
],
"env": {
"ANTHROPIC_API_KEY": "${ANTHROPIC_API_KEY}",
"BRAVE_API_KEY": "${BRAVE_API_KEY}",
"DEEPSEEK_API_KEY": "${DEEPSEEK_API_KEY}",
"GOOGLE_API_KEY": "${GOOGLE_API_KEY}"
}
}
}
}Exposed tools (3)
2 read · 1 write · 0 destructive.
| Tool | Risk | Description |
|---|---|---|
create_post | write | Create and post content to social media platforms based on natural language instructions |
get_trending_topics | read | Get trending topics from social media platforms |
research_topic | read | Research a topic using Brave Search and Perplexity |
Trust audit
BLOCKgrade F · trust 58/100 Do not install this without reading the findings. The audit found something that could harm you or your machine.
| Layer | What it checks | Result |
|---|---|---|
| L0 | Provenance & inventory | PASS |
| L1 | Static analysis of the code | FAIL |
| L2 | Instruction surface (what it tells the agent) | PASS |
| L3 | Class-specific surface | PASS |
| L4 | Behavioural (sandbox) | SKIPPED |
What the source does
- Filesystem
- declared (5 observation(s))
- Network
- declared (5 observation(s))
- Shell
- declared (3 observation(s))
- Dependencies
- not all pinned
- Secrets in source
- none-found
Findings (14)
exec(`start "" "${url}"`);exec(`open "${url}"`);exec(`xdg-open "${url}"`);console.log(`Access Token: ${access_token}`);console.log(`Refresh Token: ${refresh_token}`);.clinerules
import config from '../../config/index.js';
import { createComponentLogger } from '../../utils/logger.js';import rateLimitManager from '../../rate-limit/manager.js';
import { UserIntent, Content, ResearchData, SocialPlatform, ContentType } from '../../types/index.js';import { UserIntent, Content, ResearchData, SocialPlatform } from '../../types/index.js';@modelcontextprotocol/sdk, axios, dotenv, masto, twitter-api-v2, typescript, winston, @types/jest
axios, dotenv, express, open
Gates applied: no_behavioural_pass, no_license.
3a817233cabdfull audit observations/trust-audit/mcp-server/tayler-id__social-media-1.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-10 | 3a817233cabd | BLOCK | F | 58 | first audit |
Questions
What is the Social Media MCP server?
A Model Context Protocol (MCP) server that connects to multiple social media platforms
What tools does Social Media expose?
3 in total: 2 read-only, 1 that write, and 0 that can delete or overwrite. Every one is listed on this page with its risk.
Is Social Media safe to connect to an agent?
No — not without reading the findings first. The audit graded it F (58/100) and found 3 critical or high issues in the source. Each one is listed on this page with the file and line it is on.
What credentials does Social Media need?
It reads ANTHROPIC_API_KEY, BRAVE_API_KEY, DEEPSEEK_API_KEY, GOOGLE_API_KEY, GROK_API_KEY, HUGGINGFACE_API_KEY, LINKEDIN_ACCESS_TOKEN, LINKEDIN_CLIENT_SECRET, LINKEDIN_REFRESH_TOKEN, MASTODON_ACCESS_TOKEN, MASTODON_CLIENT_KEY and MASTODON_CLIENT_SECRET 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 Social Media run?
It speaks stdio, so it runs as a local process your client starts. It is published on npm as social-media-mcp-scripts at 1.0.0.
How current is this page?
The grade is for one exact copy of the source (3a817233cabd), read on 2026-10-10. The repository is watched and re-audited when it changes.