X (Twitter)
io.github.Role1776/mcp-x
Search, read and publish X posts and manage users, lists and media via the X API v2.
Connect this server
Add this to your MCP client config — claude_desktop_config.json (Claude Desktop) or .cursor/mcp.json (Cursor).Suits: Claude Desktop · Cursor.
{
"mcpServers": {
"mcp-x": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"ghcr.io/role1776/mcp-x:0.1.1"
],
"env": {
"X_API_KEY": "<your X_API_KEY>",
"X_API_KEY_SECRET": "<your X_API_KEY_SECRET>",
"X_ACCESS_TOKEN": "<your X_ACCESS_TOKEN>",
"X_ACCESS_TOKEN_SECRET": "<your X_ACCESS_TOKEN_SECRET>",
"MEDIA_ROOT": "<your MEDIA_ROOT>",
"MCP_TRANSPORT": "stdio",
"MCP_NAME": "mcp-x",
"MCP_PATH": "/mcp",
"SERVER_PORT": "8080",
"SERVER_READ_TIMEOUT": "60s",
"SERVER_WRITE_TIMEOUT": "60s",
"LOG_MODE": "local",
"MAX_IDLE_CONNS_PER_HOST": "100",
"X_DEBUG": "false",
"POSTS_MAX_QUERIES": "5",
"POSTS_MAX_USERNAMES": "5",
"POSTS_MAX_IDS": "100",
"POSTS_DEFAULT_RESULTS": "10",
"POSTS_MAX_RESULTS": "100",
"POSTS_DEFAULT_DAYS": "7",
"POSTS_MAX_DAYS": "7",
"POSTS_DEFAULT_TIMEOUT_MS": "15000",
"POSTS_MIN_TIMEOUT_MS": "2000",
"POSTS_MAX_TIMEOUT_MS": "60000",
"USERS_MAX_USERNAMES": "100",
"USERS_MAX_IDS": "100",
"USERS_DEFAULT_RESULTS": "100",
"USERS_MAX_RESULTS": "1000",
"USERS_DEFAULT_TIMEOUT_MS": "15000",
"USERS_MIN_TIMEOUT_MS": "2000",
"USERS_MAX_TIMEOUT_MS": "60000",
"LISTS_DEFAULT_RESULTS": "25",
"LISTS_MAX_RESULTS": "100",
"LISTS_DEFAULT_TIMEOUT_MS": "15000",
"LISTS_MIN_TIMEOUT_MS": "2000",
"LISTS_MAX_TIMEOUT_MS": "60000",
"MEDIA_CHUNK_BYTES": "4194304",
"MEDIA_POLL_INTERVAL_MS": "2000",
"MEDIA_DEFAULT_TIMEOUT_MS": "120000",
"MEDIA_MIN_TIMEOUT_MS": "5000",
"MEDIA_MAX_TIMEOUT_MS": "600000"
}
}
}
}- X_API_KEYrequiredsecretOAuth 1.0a consumer key. developer.x.com -> your project -> your app -> Keys and tokens.
- X_API_KEY_SECRETrequiredsecretOAuth 1.0a consumer secret, issued together with X_API_KEY.
- X_ACCESS_TOKENrequiredsecretUser access token. Set the app permissions to Read and Write BEFORE generating it: a token keeps the permissions it was created with, and a read-only one fails every write until it is regenerated.
- X_ACCESS_TOKEN_SECRETrequiredsecretUser access token secret, issued together with X_ACCESS_TOKEN.
- MEDIA_ROOTrequiredAbsolute path to an existing directory - the only one x_media_upload may read files from. Anything outside it is refused, symlinks included. Checked at startup.
- MCP_TRANSPORTstdio (client spawns the process) or http (streamable HTTP listener).
- MCP_NAMEServer name reported in the MCP initialize handshake.
- MCP_PATHHTTP path the MCP endpoint is served on. Used only when MCP_TRANSPORT=http.
- SERVER_PORTTCP port to listen on. Used only when MCP_TRANSPORT=http.
- SERVER_READ_TIMEOUTHTTP read timeout as a Go duration. Used only when MCP_TRANSPORT=http.
- SERVER_WRITE_TIMEOUTHTTP write timeout as a Go duration. Used only when MCP_TRANSPORT=http.
- LOG_MODElocal (text, debug) or prod (JSON, info). Logs go to stderr.
- MAX_IDLE_CONNS_PER_HOSTIdle connections the outbound HTTP client keeps per host.
- X_DEBUGLog the raw requests sent to the X API. Verbose; the output can contain request details, so keep it off outside debugging.
- POSTS_MAX_QUERIESQueries accepted in one x_posts_search or x_posts_count call.
- POSTS_MAX_USERNAMESUsernames accepted in one x_posts_by_user call.
- POSTS_MAX_IDSPost ids accepted in one x_posts_lookup call. The X API caps this at 100.
- POSTS_DEFAULT_RESULTSPosts returned per query when the call does not ask for a count. Every post returned is billed.
- POSTS_MAX_RESULTSUpper bound for posts per query. The X API caps this at 100.
- POSTS_DEFAULT_DAYSHow far back post searches look when the call does not say, in days.
- POSTS_MAX_DAYSFurthest back a post search may look, in days. Recent search cannot exceed 7.
- POSTS_DEFAULT_TIMEOUT_MSTimeout for a posts call in milliseconds when the call does not request one.
- POSTS_MIN_TIMEOUT_MSLowest timeout a posts call may request, in milliseconds.
- POSTS_MAX_TIMEOUT_MSHighest timeout a posts call may request, in milliseconds.
- USERS_MAX_USERNAMESUsernames accepted in one x_users_lookup call. The X API caps this at 100.
- USERS_MAX_IDSUser ids accepted in one x_users_lookup call. The X API caps this at 100.
- USERS_DEFAULT_RESULTSUsers returned per page when the call does not ask for a count.
- USERS_MAX_RESULTSUpper bound for users per page.
- USERS_DEFAULT_TIMEOUT_MSTimeout for a users call in milliseconds when the call does not request one.
- USERS_MIN_TIMEOUT_MSLowest timeout a users call may request, in milliseconds.
- USERS_MAX_TIMEOUT_MSHighest timeout a users call may request, in milliseconds.
- LISTS_DEFAULT_RESULTSItems returned per list page when the call does not ask for a count.
- LISTS_MAX_RESULTSUpper bound for items per list page. The X API caps this at 100.
- LISTS_DEFAULT_TIMEOUT_MSTimeout for a lists call in milliseconds when the call does not request one.
- LISTS_MIN_TIMEOUT_MSLowest timeout a lists call may request, in milliseconds.
- LISTS_MAX_TIMEOUT_MSHighest timeout a lists call may request, in milliseconds.
- MEDIA_CHUNK_BYTESBytes per upload segment. The X APPEND endpoint caps a segment at 5 MB.
- MEDIA_POLL_INTERVAL_MSHow often the upload status is polled while X transcodes a video, in milliseconds.
- MEDIA_DEFAULT_TIMEOUT_MSTimeout for a whole upload in milliseconds when the call does not request one.
- MEDIA_MIN_TIMEOUT_MSLowest timeout an upload may request, in milliseconds.
- MEDIA_MAX_TIMEOUT_MSHighest timeout an upload may request, in milliseconds.
A starting point — check the repository for exact arguments and setup. Restart your client after editing the config.
- Category
- Developer Tools
- Version
- 0.1.1
- Registry
- active
- Published
- 9/9/2026
More Developer Tools servers
Browse all Developer Tools →io.github.RoleModel/optics-mcp
RoleModel
MCP Server for Optics Design System documentation and token usage.
LAYIQ Jobs
roleworthylabs
Find public job listings and explore roles from LAYIQ. Read-only; no account or login needed.
io.github.rom-baro/arcwall-security
rom-baro
Security scanning for AI coding tools. Detects secrets, threat models, and runs pre-commit checks.
MCP OpenClaw Extensions
romainsantoli-web
138-tool MCP server for AI agent firms: security, A2A, Hebbian memory, fleet mgmt
Memory OS AI
romainsantoli-web
Adaptive memory for AI agents — FAISS search, chat extraction, cross-project linking
Assertify
romaklym
Let AI agents use any website you're logged in to. Sessions stay encrypted on your machine.
Add the badge to your site
Show visitors that X (Twitter) is listed here — it’s also the link we check for a free listing.
HTML — for your website
<a href="https://serverdex.io/server/io-github-role1776-mcp-x?utm_source=badge"><img src="https://serverdex.io/brand/badge.svg" alt="X (Twitter) — listed on Serverdex" width="123" height="40" loading="lazy"></a>Recommended. A dofollow link from your own domain is the one that counts for search engines, and it's the link we check for a free listing.
Markdown — for your README
[](https://serverdex.io/server/io-github-role1776-mcp-x?utm_source=badge)Nice for visibility, but GitHub marks README links nofollow, so it doesn't pass authority. Use the HTML badge on your site as well.