Atlas / MCP servers / datawhisker / X Integration

X IntegrationSAFE

mcp/datawhisker/x-integration
Verdict
SAFE
Grade
B
Trust score
89 /100
Exposed tools
17 5r · 8w · 4d
Transport
stdio
License
MIT
Stars
80
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 for X (Twitter) integration. Provides 26 tools for reading timelines, posting, searching, engagement (likes, retweets, bookmarks), user lookup, follower export, mentions, likes, articles, and lists. Designed for use with Claude desktop and other MCP-compatible clients.

Features

  • Timeline & Search - Home timeline, search recent posts (7-day window)
  • Post Management - Create, reply, quote, delete posts with optional media
  • Engagement - Like/unlike, retweet/undo, bookmark/unbookmark
  • User Data - Mentions, liked posts, followers, following, blocks, mutes, owned lists, followed lists, and list memberships
  • User Lookup - Get user profiles and their recent posts
  • Media Upload - Images (PNG, JPEG, GIF, WEBP) and videos (MP4, MOV, AVI, WEBM, M4V) via v2 upload API
  • Dual Auth - OAuth 1.0a for post operations, OAuth 2.0 for media upload (v1.1 upload was sunset June 2025)
  • Rate Limiting - Automatic per-endpoint rate limit tracking with clear error messages
  • TypeScript - Full type safety, modular file structure

Prerequisites

  • Node.js >= 18.0.0
  • X (Twitter) Developer Account
  • Claude desktop app (or any MCP-compatible client)

X API Access & Pricing

Like and Follow endpoints were removed from the Free tier in August 2025. Follows/Blocks end
Read from source at commit 1df1051dd7d0OBSERVED · 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-server --env TWITTER_ACCESS_SECRET=${TWITTER_ACCESS_SECRET} --env TWITTER_ACCESS_TOKEN=${TWITTER_ACCESS_TOKEN} --env TWITTER_API_KEY=${TWITTER_API_KEY} --env TWITTER_API_SECRET=${TWITTER_API_SECRET} -- npx -y [email protected]
claude-desktop
{
  "mcpServers": {
    "x-mcp-server": {
      "command": "npx",
      "args": [
        "-y",
        "[email protected]"
      ],
      "env": {
        "TWITTER_ACCESS_SECRET": "${TWITTER_ACCESS_SECRET}",
        "TWITTER_ACCESS_TOKEN": "${TWITTER_ACCESS_TOKEN}",
        "TWITTER_API_KEY": "${TWITTER_API_KEY}",
        "TWITTER_API_SECRET": "${TWITTER_API_SECRET}"
      }
    }
  }
}
03

Exposed tools (17)

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

ToolRiskDescription
bookmark_tweetwriteBookmark a post for later
create_tweetwriteCreate a new post with optional media attachment. Media upload requires OAuth 2.0 credentials.
delete_tweetdestructiveDelete one of your posts
get_articlewriteFetch the full body content of an X Article post by its tweet ID
get_bookmarksreadGet your bookmarked posts
get_home_timelinereadGet recent posts from your home timeline
get_tweetwriteLook up a specific post by its ID
get_userreadLook up a user by their username
get_user_tweetsreadGet a user
like_tweetwriteLike a post. Not available on Free tier (removed Aug 2025). Requires Basic tier or above.
quote_tweetwriteQuote a post with your own commentary
reply_to_tweetwriteReply to a post with optional media attachment
retweetwriteRepost a post to your timeline
search_tweetsreadSearch recent posts from the last 7 days. Requires Basic tier or above.
unbookmark_tweetdestructiveRemove a bookmarked post
undo_retweetdestructiveRemove a repost from your timeline
unlike_tweetdestructiveRemove a like from a post
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 (1 observation(s))
Network
declared (5 observation(s))
Shell
none-observed
Dependencies
not all pinned
Secrets in source
none-found

Findings (2)

MEDIUMFilesystem / path · mcp.destructive_tools · CWE-22, CWE-59
delete_tweet, unbookmark_tweet, undo_retweet, unlike_tweet
Why it matters. 4 tool(s) can delete or overwrite
Fix. prefer a read-only mode or scoped tokens; the page states the blast radius
LOWSupply chain · supply.unpinned · CWE-829, CWE-1357
package.json
@modelcontextprotocol/sdk, twitter-api-v2, @types/node, typescript
Why it matters. 4 dependency range(s) float
Fix. pin exact versions or ship a lockfile

Gates applied: no_behavioural_pass.

Audited 2026-10-07 · audit v0.4.1 · source sha 1df1051dd7d0full audit observations/trust-audit/mcp-server/datawhisker__x-integration.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-071df1051dd7d0SAFEB89first audit
06

Questions

What tools does X Integration expose?

17 in total: 5 read-only, 8 that write, and 4 that can delete or overwrite (delete_tweet, unbookmark_tweet, undo_retweet, unlike_tweet). Every one is listed on this page with its risk.

Is X Integration 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: 4 of its tools can destroy data, so scope the token you give it to what you actually need.

What credentials does X Integration need?

It reads TWITTER_ACCESS_SECRET, TWITTER_ACCESS_TOKEN, TWITTER_API_KEY, TWITTER_API_SECRET, TWITTER_CLIENT_SECRET, TWITTER_OAUTH2_ACCESS_TOKEN, TWITTER_OAUTH2_REFRESH_TOKEN and XQUIK_API_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 X Integration run?

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

How current is this page?

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

Advertisement