Atlas / MCP servers / tayler-id / Social Media

Social MediaBLOCK

mcp/tayler-id/social-media-1

A Model Context Protocol (MCP) server that connects to multiple social media platforms

Verdict
BLOCK
Grade
F
Trust score
58 /100
Exposed tools
3 2r · 1w · 0d
Transport
stdio
License
—
Stars
23
01

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
  • LinkedIn
  • OpenAI and/or Anthropic (for content generation)
  • Brave Search (for research)

Installation

  1. Clone the repository:
git clone https://github.com/yourusername/social-media-mcp.git
cd social-media-mcp
  1. Install dependencies:
npm install
  1. 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
  1. Build the pr
Read from source at commit 3a817233cabdOBSERVED · 2026-10-10
Advertisement
02

Connect

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-code
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]
claude-desktop
{
  "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}"
      }
    }
  }
}
03

Exposed tools (3)

2 read · 1 write · 0 destructive.

ToolRiskDescription
create_postwriteCreate and post content to social media platforms based on natural language instructions
get_trending_topicsreadGet trending topics from social media platforms
research_topicreadResearch a topic using Brave Search and Perplexity
04

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.

LayerWhat it checksResult
L0Provenance & inventoryPASS
L1Static analysis of the codeFAIL
L2Instruction surface (what it tells the agent)PASS
L3Class-specific surfacePASS
L4Behavioural (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)

HIGHCode injection · code.eval_exec · CWE-78, CWE-94, CWE-95
scripts/linkedin-oauth.js:89
exec(`start "" "${url}"`);
Why it matters. evaluates text as code
Fix. remove; use a parser or a dispatch table
HIGHCode injection · code.eval_exec · CWE-78, CWE-94, CWE-95
scripts/linkedin-oauth.js:91
exec(`open "${url}"`);
Why it matters. evaluates text as code
Fix. remove; use a parser or a dispatch table
HIGHCode injection · code.eval_exec · CWE-78, CWE-94, CWE-95
scripts/linkedin-oauth.js:93
exec(`xdg-open "${url}"`);
Why it matters. evaluates text as code
Fix. remove; use a parser or a dispatch table
MEDIUMInformation disclosure · disclose.log_secret · CWE-209, CWE-532
scripts/linkedin-oauth.js:192
console.log(`Access Token: ${access_token}`);
MEDIUMInformation disclosure · disclose.log_secret · CWE-209, CWE-532
scripts/linkedin-oauth.js:195
console.log(`Refresh Token: ${refresh_token}`);
LOWInventory / provenance · inv.hidden_file · CWE-1104
.clinerules
.clinerules
Why it matters. hidden member outside the usual dotfiles
Fix. review its purpose
LOWInventory / provenance · inv.no_license · CWE-1104
Why it matters. no LICENSE file and no repo licence
Fix. add a licence
LOWFilesystem / path · fs.traversal · CWE-22, CWE-59
src/content/strategies/anthropic.ts:2
import config from '../../config/index.js';
LOWFilesystem / path · fs.traversal · CWE-22, CWE-59
src/content/strategies/anthropic.ts:3
import { createComponentLogger } from '../../utils/logger.js';
LOWFilesystem / path · fs.traversal · CWE-22, CWE-59
src/content/strategies/anthropic.ts:4
import rateLimitManager from '../../rate-limit/manager.js';
LOWFilesystem / path · fs.traversal · CWE-22, CWE-59
src/content/strategies/anthropic.ts:6
import { UserIntent, Content, ResearchData, SocialPlatform, ContentType } from '../../types/index.js';
LOWFilesystem / path · fs.traversal · CWE-22, CWE-59
src/content/strategies/interface.ts:1
import { UserIntent, Content, ResearchData, SocialPlatform } from '../../types/index.js';
LOWSupply chain · supply.unpinned · CWE-829, CWE-1357
package.json
@modelcontextprotocol/sdk, axios, dotenv, masto, twitter-api-v2, typescript, winston, @types/jest
Why it matters. 15 dependency range(s) float
Fix. pin exact versions or ship a lockfile
LOWSupply chain · supply.unpinned · CWE-829, CWE-1357
scripts/package.json
axios, dotenv, express, open
Why it matters. 4 dependency range(s) float
Fix. pin exact versions or ship a lockfile

Gates applied: no_behavioural_pass, no_license.

Audited 2026-10-10 · audit v0.4.1 · source sha 3a817233cabdfull audit observations/trust-audit/mcp-server/tayler-id__social-media-1.json · Report an issue / request a re-scan
05

Audit history

Every audit this server has had. A grade with a past is a grade somebody is still checking.

DateSourceVerdictGradeScoreChange
2026-10-103a817233cabdBLOCKF58first audit
06

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.

Advertisement