Atlas / MCP servers / vidhupv / X (Twitter)

X (Twitter)SAFE

mcp/vidhupv/x-twitter
Verdict
SAFE
Grade
B
Trust score
89 /100
Exposed tools
5 1r · 3w · 1d
Transport
stdio
License
MIT
Stars
61
01

Overview

From the repository's own README, as read at the audited commit. Badges and raw HTML are left out.

[](https://smithery.ai/server/x-mcp)

An MCP server to create, manage and publish X/Twitter posts directly through Claude chat.

Quick Setup

Installing via Smithery

To install X(Twitter) MCP Server for Claude Desktop automatically via Smithery:

npx -y @smithery/cli install x-mcp --client claude

Manual Installation

  1. Clone the repository:
git clone https://github.com/yourusername/x-mcp.git
  1. Install UV globally using Homebrew in Terminal:
brew install uv
  1. Create claudedesktopconfig.json:
  2. For MacOS: Open directory ~/Library/Application Support/Claude/ and create the file inside it
  3. For Windows: Open directory %APPDATA%/Claude/ and create the file inside it
  1. Add this configuration to claudedesktopconfig.json:
{
"mcpServers": {
"x_mcp": {
"command": "uv",
"args": [
"--directory",
"/path/to/x-mcp",
"run",
"x-mcp"
],
"env": {
"TWITTER_API_KEY": "your_api_key",
"TWITTER_API_SECRET": "your_api_secret",
"TWITTER_ACCESS_TOKEN": "your_access_token",
"TWITTER_ACCESS_TOKEN_SECRET": "your_access_token_secret"
}
}
}
}
  1. Get your X/Twitter API credentials:
  2. Go to X API Developer Portal
  3. Create a project
  4. In User Authentication Settings: Set up with Read and Write permissions, Web App type
  5. Set Callback URL to http://localhost/ and Website URL to http://example.com/
  6. Generate and copy all keys and tokens from Keys and Tokens section
  1. Update the config file:
  2. Replace /path/to/x-mcp with your actual repository path
  3. Add your X
Read from source at commit 2fab0eb831b3OBSERVED · 2026-10-07
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 x-mcp --env TWITTER_ACCESS_TOKEN=${TWITTER_ACCESS_TOKEN} --env TWITTER_ACCESS_TOKEN_SECRET=${TWITTER_ACCESS_TOKEN_SECRET} --env TWITTER_API_KEY=${TWITTER_API_KEY} --env TWITTER_API_SECRET=${TWITTER_API_SECRET} -- uvx x-mcp
claude-desktop
{
  "mcpServers": {
    "x-mcp": {
      "command": "uvx",
      "args": [
        "x-mcp"
      ],
      "env": {
        "TWITTER_ACCESS_TOKEN": "${TWITTER_ACCESS_TOKEN}",
        "TWITTER_ACCESS_TOKEN_SECRET": "${TWITTER_ACCESS_TOKEN_SECRET}",
        "TWITTER_API_KEY": "${TWITTER_API_KEY}",
        "TWITTER_API_SECRET": "${TWITTER_API_SECRET}"
      }
    }
  }
}
03

Exposed tools (5)

1 read · 3 write · 1 destructive. Blast radius: 1 tool can delete or overwrite — an agent that can be talked into calling a tool can be talked into calling this one.

ToolRiskDescription
create_draft_threadwriteCreate a draft tweet thread
create_draft_tweetwriteCreate a draft tweet
delete_draftdestructiveDelete a draft tweet or thread
list_draftsreadList all draft tweets and threads
publish_draftwritePublish a draft tweet or thread
04

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.

LayerWhat it checksResult
L0Provenance & inventoryPASS
L1Static analysis of the codePASS
L2Instruction surface (what it tells the agent)PASS
L3Class-specific surfaceWARN
L4Behavioural (sandbox)SKIPPED

What the source does

Filesystem
declared (4 observation(s))
Network
none-observed
Shell
none-observed
Dependencies
pinned
Secrets in source
none-found

Findings (1)

MEDIUMFilesystem / path · mcp.destructive_tools · CWE-22, CWE-59
delete_draft
Why it matters. 1 tool(s) can delete or overwrite
Fix. prefer a read-only mode or scoped tokens; the page states the blast radius

Gates applied: no_behavioural_pass.

Audited 2026-10-07 · audit v0.4.1 · source sha 2fab0eb831b3full audit observations/trust-audit/mcp-server/vidhupv__x-twitter.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-072fab0eb831b3SAFEB89first audit
06

Questions

What tools does X (Twitter) expose?

5 in total: 1 read-only, 3 that write, and 1 that can delete or overwrite (delete_draft). Every one is listed on this page with its risk.

Is X (Twitter) 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. Separately from the audit: 1 of its tools can destroy data, so scope the token you give it to what you actually need.

What credentials does X (Twitter) need?

It reads TWITTER_ACCESS_TOKEN, TWITTER_ACCESS_TOKEN_SECRET, TWITTER_API_KEY and TWITTER_API_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 X (Twitter) run?

It speaks stdio, so it runs as a local process your client starts. It is published on PyPI as x-mcp.

How current is this page?

The grade is for one exact copy of the source (2fab0eb831b3), read on 2026-10-07. The repository is watched and re-audited when it changes.

Advertisement