x-wing-mcp
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@x-wing-mcpcreate a thread summarizing today's AI news"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
x-wing-mcp
A stdio MCP server for X (Twitter) that combines x-wing write tools with x_data read tools.
All tools share one process, one .env, and one official xdk OAuth 2.0 app.
Tools
Write tools
Tool | Description | Required scope |
| Create a single post |
|
| Create a multi-post thread |
|
| Like a post |
|
| Repost a post |
|
| Follow a user by ID |
|
| Unfollow a user by source/target ID |
|
| Send a direct message |
|
Read tools
Tool | Description | Required scope |
| Fetch exact public posts by URL/ID |
|
| Recent posts for one user |
|
| Search public posts |
|
| Authenticated account timeline |
|
| Mentions for the authenticated account |
|
| Thread/conversation from an anchor post |
|
| Replies to one post |
|
| Quote posts of one post |
|
| Followers/following for one user |
|
| Published X Article via wrapper tweet |
|
| One-shot bulk collection query |
|
| Server/provider status | none |
| Provider diagnostics | none |
Read tools use an internal provider router (official_x, syndication, socialdata, getxapi).
max_cost_usd is required on every read tool except status/healthcheck.
Related MCP server: X(Twitter) V2 MCP Server
Provisioning
Ensure this repo's
.envexists and is readable only by the owner:chmod 600 .envPopulate
.envwith OAuth 2.0 credentials from the X developer portal:X_OAUTH2_CLIENT_ID=... X_OAUTH2_CLIENT_SECRET=... X_OAUTH2_ACCESS_TOKEN=... X_OAUTH2_REFRESH_TOKEN=... X_OAUTH2_SCOPES="offline.access dm.read tweet.write like.write like.read users.read dm.write tweet.read bookmark.write follows.write follows.read"Legacy aliases (
X_CLIENT_ID,X_CLIENT_SECRET,X_ACCESS_TOKEN,X_REFRESH_TOKEN,X_SCOPES) are also accepted.Optional paid/backup providers:
SOCIALDATA_API_KEY=... GETXAPI_API_KEY=...Leave blank to rely on
official_x+syndicationonly.If the access token is expired, run the included OAuth setup script or use the CLI refresh path to obtain a fresh token.
Running
python -m serverThe server speaks MCP over stdio. stdout is the MCP protocol stream — no other process should write to it.
Testing
python -m pytest tests/ -qProject layout
.
├── .env # real tokens, gitignored, chmod 600
├── .env.example # committed template
├── .gitignore # ignores .env and auth-state files
├── pyproject.toml # x-wing-mcp package metadata
├── README.md # this file
├── x_client.py # vendored + patched x-wing client
├── oauth_setup.py # vendored + patched OAuth setup
├── server.py # FastMCP stdio server (read + write tools)
├── xdata/ # vendored x_data read providers/router/server
├── config/ # provider routing configuration
└── tests/ # vendored + new MCP testsVerification results
python -c "import x_client; print(x_client.env_path)"→<repo_root>/.envMCP handshake via the wrapper script:
initialize→tools/listreturns exactly the 20 tools above.x_data_statusreports all configured providers healthy when tokens/keys are present.Live token check via
_validate_access_tokenagainstusers/me: valid after refresh (access token refreshed successfully;.envand auth-state remain 0600).
Deployment notes
This repo is repo-relative; it can be relocated without changes.
Tokens live only in
<repo_root>/.env. After migration, no X OAuth tokens should remain in~/.hermes/.envor profile.envfiles.The merged x-wing Hermes MCP server is wired into:
~/.hermes/config.yaml(default / main profile)~/.hermes/profiles/yan-cgo/config.yaml~/.hermes/profiles/scout/config.yaml— read-only viatools.excludeon the 7 write tools
Wrapper script:
x-wing-mcp-hermes.sh(repo root, executable). It deliberately does not source~/.hermes/.env; the server reads tokens exclusively from<repo_root>/.env.
Roadmap
See AGENTS.md. Repo reconciliation is
already complete: this repo (bob0x-ai/x-wing-mcp) is the canonical source of truth.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseCqualityDmaintenanceAn MCP server for accessing the Twitter/X Api45 API, allowing users to retrieve user profiles, timelines, followers, and media. It supports searching communities, jobs, and trends, while also providing tools to monitor live broadcasts and Twitter Spaces.Last updated28MIT
- Alicense-qualityDmaintenanceAn MCP server for interacting with the Twitter/X API v2, enabling AI assistants to retrieve tweets, post content, reply, quote, and more programmatically.Last updated1,86113MIT
- AlicenseAqualityCmaintenanceAn MCP server for interacting with Twitter/X using browser cookies without an API key, enabling tweet management, user actions, and search via natural language.Last updated5910MIT
- Flicense-qualityDmaintenanceAn MCP server for interacting with X/Twitter, enabling posting tweets, searching, user info, timeline, liking, retweeting, and deleting tweets.Last updated251
Related MCP Connectors
FastMCP server for posting formatted content to X (Twitter) — Tollbooth-monetized, DPYC-native
128 REST operations. 120 MCP routes; 119 JSON/text ops. OAuth 2.1. Not affiliated with X Corp.
Markdown-first MCP server for Notion API with 8 composite tools and 39 actions.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/bob0x-ai/x-wing-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server