Atlas / MCP servers / enescinr / Twitter

TwitterSAFE

mcp/enescinr/twitter-1

A Model Context Protocol server allows to interact with Twitter, enabling posting tweets and searching Twitter.

Verdict
SAFE
Grade
B
Trust score
89 /100
Exposed tools
2 1r · 1w · 0d
Transport
stdio
License
MIT
Stars
408
01

Overview

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

[](https://mseep.ai/app/enescinr-twitter-mcp)

[](https://smithery.ai/server/@enescinar/twitter-mcp)

This MCP server allows Clients to interact with Twitter, enabling posting tweets and searching Twitter.

Quick Start

  1. Create a Twitter Developer account and get your API keys from Twitter Developer Portal
  1. Add this configuration to your Claude Desktop config file:

Windows: %APPDATA%\Claude\claude_desktop_config.json macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

{
"mcpServers": {
"twitter-mcp": {
"command": "npx",
"args": ["-y", "@enescinar/twitter-mcp"],
"env": {
"API_KEY": "your_api_key_here",
"API_SECRET_KEY": "your_api_secret_key_here",
"ACCESS_TOKEN": "your_access_token_here",
"ACCESS_TOKEN_SECRET": "your_access_token_secret_here"
}
}
}
}
  1. Restart Claude Desktop

That's it! Claude can now interact with Twitter through two tools:

  • post_tweet: Post a new tweet
  • search_tweets: Search for tweets

Example Usage

Try asking Claude:

  • "Can you post a tweet saying 'Hello from Claude!'"
  • "Can you search for tweets about Claude AI?"

Troubleshooting

Logs can be found at:

  • Windows: %APPDATA%\Claude\logs\mcp-server-twitter.log
  • macOS: ~/Library/Logs/Claude/mcp-server-twitter.log

Development

If you want to contribute or run from source:

  1. Clone the repository:
git clone https://github.com/EnesCinr/twitter-mcp.git
cd twitter-mcp
  1. Install dependencies:
npm install
  1. Build:
Read from source at commit 8154b527737cOBSERVED · 2026-10-01
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 twitter-mcp --env ACCESS_TOKEN=${ACCESS_TOKEN} --env ACCESS_TOKEN_SECRET=${ACCESS_TOKEN_SECRET} --env API_KEY=${API_KEY} --env API_SECRET_KEY=${API_SECRET_KEY} -- npx -y @enescinar/[email protected]
claude-desktop
{
  "mcpServers": {
    "twitter-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "@enescinar/[email protected]"
      ],
      "env": {
        "ACCESS_TOKEN": "${ACCESS_TOKEN}",
        "ACCESS_TOKEN_SECRET": "${ACCESS_TOKEN_SECRET}",
        "API_KEY": "${API_KEY}",
        "API_SECRET_KEY": "${API_SECRET_KEY}"
      }
    }
  }
}
03

Exposed tools (2)

1 read · 1 write · 0 destructive.

ToolRiskDescription
post_tweetwritePost a new tweet to Twitter
search_tweetsreadSearch for tweets on Twitter
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 surfacePASS
L4Behavioural (sandbox)SKIPPED

What the source does

Filesystem
none-observed
Network
none-observed
Shell
none-observed
Dependencies
not all pinned
Secrets in source
none-found

Findings (2)

LOWSupply chain · supply.unpinned · CWE-829, CWE-1357
package.json
dotenv, mcp-evals, twitter-api-v2, zod, @types/node, typescript
Why it matters. 6 dependency range(s) float
Fix. pin exact versions or ship a lockfile
LOWPrompt injection · prompt.credential_read · CWE-94, CWE-1427
README.md:88
The evals package loads an mcp client that then runs the index.ts file, so there is no need to rebuild between tests. You can load environment variables by prefixing the npx command. Full documentatio
Why it matters. asks the agent to read credentials

Gates applied: no_behavioural_pass.

Audited 2026-10-01 · audit v0.4.1 · source sha 8154b527737cfull audit observations/trust-audit/mcp-server/enescinr__twitter-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-018154b527737cSAFEB89first audit
06

Questions

What is the Twitter MCP server?

A Model Context Protocol server allows to interact with Twitter, enabling posting tweets and searching Twitter.

What tools does Twitter expose?

2 in total: 1 read-only, 1 that write, and 0 that can delete or overwrite. Every one is listed on this page with its risk.

Is 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.

What credentials does Twitter need?

It reads ACCESS_TOKEN, ACCESS_TOKEN_SECRET, API_KEY and API_SECRET_KEY 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 Twitter run?

It speaks stdio, so it runs as a local process your client starts. It is published on npm as @enescinar/twitter-mcp at 0.2.0.

How current is this page?

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

Advertisement