X (Twitter)SAFE
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
- Clone the repository:
git clone https://github.com/yourusername/x-mcp.git
- Install UV globally using Homebrew in Terminal:
brew install uv
- Create claudedesktopconfig.json:
- For MacOS: Open directory
~/Library/Application Support/Claude/and create the file inside it - For Windows: Open directory
%APPDATA%/Claude/and create the file inside it
- 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"
}
}
}
}- Get your X/Twitter API credentials:
- Go to X API Developer Portal
- Create a project
- In User Authentication Settings: Set up with Read and Write permissions, Web App type
- Set Callback URL to
http://localhost/and Website URL tohttp://example.com/ - Generate and copy all keys and tokens from Keys and Tokens section
- Update the config file:
- Replace
/path/to/x-mcpwith your actual repository path - Add your X
2fab0eb831b3OBSERVED · 2026-10-07Connect
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 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{
"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}"
}
}
}
}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.
| Tool | Risk | Description |
|---|---|---|
create_draft_thread | write | Create a draft tweet thread |
create_draft_tweet | write | Create a draft tweet |
delete_draft | destructive | Delete a draft tweet or thread |
list_drafts | read | List all draft tweets and threads |
publish_draft | write | Publish a draft tweet or thread |
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.
| Layer | What it checks | Result |
|---|---|---|
| L0 | Provenance & inventory | PASS |
| L1 | Static analysis of the code | PASS |
| L2 | Instruction surface (what it tells the agent) | PASS |
| L3 | Class-specific surface | WARN |
| L4 | Behavioural (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)
delete_draft
Gates applied: no_behavioural_pass.
2fab0eb831b3full audit observations/trust-audit/mcp-server/vidhupv__x-twitter.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-07 | 2fab0eb831b3 | SAFE | B | 89 | first audit |
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.