Safety-first X (Twitter) API v2 MCP server: 41 typed tools across 12 packages, policy-gated.
Connect Runs on your machine
claude mcp add x-mcp-ai -e X_MCP_AUTH_MODE=<X_MCP_AUTH_MODE> -e X_MCP_CLIENT_ID=<X_MCP_CLIENT_ID> -e X_MCP_CLIENT_SECRET=<X_MCP_CLIENT_SECRET> -e X_MCP_BEARER_TOKEN=<X_MCP_BEARER_TOKEN> -e X_MCP_TOKEN_FILE=<X_MCP_TOKEN_FILE> -e X_MCP_TOKEN_KEYCHAIN=<X_MCP_TOKEN_KEYCHAIN> -e X_MCP_POLICY=<X_MCP_POLICY> -e X_MCP_POLICY_ALLOW=<X_MCP_POLICY_ALLOW> -e X_MCP_POLICY_DENY=<X_MCP_POLICY_DENY> -e X_MCP_HIDE_DENIED=<X_MCP_HIDE_DENIED> -e X_MCP_MEDIA_DIR=<X_MCP_MEDIA_DIR> -e X_MCP_AVAILABILITY=<X_MCP_AVAILABILITY> -e X_MCP_PROFILES_FILE=<X_MCP_PROFILES_FILE> -e X_MCP_PROFILE=<X_MCP_PROFILE> -e X_MCP_TIMEOUT_MS=<X_MCP_TIMEOUT_MS> -e X_MCP_LOG_LEVEL=<X_MCP_LOG_LEVEL> -e X_MCP_CREDIT_BUDGET=<X_MCP_CREDIT_BUDGET> -e X_MCP_BUDGET_MODE=<X_MCP_BUDGET_MODE> -- npx -y [email protected]
{
"mcpServers": {
"x-mcp-ai": {
"command": "npx",
"args": [
"-y",
"[email protected]"
],
"env": {
"X_MCP_AUTH_MODE": "<X_MCP_AUTH_MODE>",
"X_MCP_CLIENT_ID": "<X_MCP_CLIENT_ID>",
"X_MCP_CLIENT_SECRET": "<X_MCP_CLIENT_SECRET>",
"X_MCP_BEARER_TOKEN": "<X_MCP_BEARER_TOKEN>",
"X_MCP_TOKEN_FILE": "<X_MCP_TOKEN_FILE>",
"X_MCP_TOKEN_KEYCHAIN": "<X_MCP_TOKEN_KEYCHAIN>",
"X_MCP_POLICY": "<X_MCP_POLICY>",
"X_MCP_POLICY_ALLOW": "<X_MCP_POLICY_ALLOW>",
"X_MCP_POLICY_DENY": "<X_MCP_POLICY_DENY>",
"X_MCP_HIDE_DENIED": "<X_MCP_HIDE_DENIED>",
"X_MCP_MEDIA_DIR": "<X_MCP_MEDIA_DIR>",
"X_MCP_AVAILABILITY": "<X_MCP_AVAILABILITY>",
"X_MCP_PROFILES_FILE": "<X_MCP_PROFILES_FILE>",
"X_MCP_PROFILE": "<X_MCP_PROFILE>",
"X_MCP_TIMEOUT_MS": "<X_MCP_TIMEOUT_MS>",
"X_MCP_LOG_LEVEL": "<X_MCP_LOG_LEVEL>",
"X_MCP_CREDIT_BUDGET": "<X_MCP_CREDIT_BUDGET>",
"X_MCP_BUDGET_MODE": "<X_MCP_BUDGET_MODE>"
}
}
}
}
{
"mcpServers": {
"x-mcp-ai": {
"command": "npx",
"args": [
"-y",
"[email protected]"
],
"env": {
"X_MCP_AUTH_MODE": "<X_MCP_AUTH_MODE>",
"X_MCP_CLIENT_ID": "<X_MCP_CLIENT_ID>",
"X_MCP_CLIENT_SECRET": "<X_MCP_CLIENT_SECRET>",
"X_MCP_BEARER_TOKEN": "<X_MCP_BEARER_TOKEN>",
"X_MCP_TOKEN_FILE": "<X_MCP_TOKEN_FILE>",
"X_MCP_TOKEN_KEYCHAIN": "<X_MCP_TOKEN_KEYCHAIN>",
"X_MCP_POLICY": "<X_MCP_POLICY>",
"X_MCP_POLICY_ALLOW": "<X_MCP_POLICY_ALLOW>",
"X_MCP_POLICY_DENY": "<X_MCP_POLICY_DENY>",
"X_MCP_HIDE_DENIED": "<X_MCP_HIDE_DENIED>",
"X_MCP_MEDIA_DIR": "<X_MCP_MEDIA_DIR>",
"X_MCP_AVAILABILITY": "<X_MCP_AVAILABILITY>",
"X_MCP_PROFILES_FILE": "<X_MCP_PROFILES_FILE>",
"X_MCP_PROFILE": "<X_MCP_PROFILE>",
"X_MCP_TIMEOUT_MS": "<X_MCP_TIMEOUT_MS>",
"X_MCP_LOG_LEVEL": "<X_MCP_LOG_LEVEL>",
"X_MCP_CREDIT_BUDGET": "<X_MCP_CREDIT_BUDGET>",
"X_MCP_BUDGET_MODE": "<X_MCP_BUDGET_MODE>"
}
}
}
}
{
"servers": {
"x-mcp-ai": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"[email protected]"
],
"env": {
"X_MCP_AUTH_MODE": "<X_MCP_AUTH_MODE>",
"X_MCP_CLIENT_ID": "<X_MCP_CLIENT_ID>",
"X_MCP_CLIENT_SECRET": "<X_MCP_CLIENT_SECRET>",
"X_MCP_BEARER_TOKEN": "<X_MCP_BEARER_TOKEN>",
"X_MCP_TOKEN_FILE": "<X_MCP_TOKEN_FILE>",
"X_MCP_TOKEN_KEYCHAIN": "<X_MCP_TOKEN_KEYCHAIN>",
"X_MCP_POLICY": "<X_MCP_POLICY>",
"X_MCP_POLICY_ALLOW": "<X_MCP_POLICY_ALLOW>",
"X_MCP_POLICY_DENY": "<X_MCP_POLICY_DENY>",
"X_MCP_HIDE_DENIED": "<X_MCP_HIDE_DENIED>",
"X_MCP_MEDIA_DIR": "<X_MCP_MEDIA_DIR>",
"X_MCP_AVAILABILITY": "<X_MCP_AVAILABILITY>",
"X_MCP_PROFILES_FILE": "<X_MCP_PROFILES_FILE>",
"X_MCP_PROFILE": "<X_MCP_PROFILE>",
"X_MCP_TIMEOUT_MS": "<X_MCP_TIMEOUT_MS>",
"X_MCP_LOG_LEVEL": "<X_MCP_LOG_LEVEL>",
"X_MCP_CREDIT_BUDGET": "<X_MCP_CREDIT_BUDGET>",
"X_MCP_BUDGET_MODE": "<X_MCP_BUDGET_MODE>"
}
}
}
}
Replace the values in angle brackets with your own. Keys stay on your machine; we never see them.
Tools
This server runs locally, so its tools are listed by your MCP client once it starts.
Environment variables
| Name | Description |
|---|---|
X_MCP_AUTH_MODEOptional | Authentication mode: oauth2 (default) or app-only. |
X_MCP_CLIENT_IDOptional | OAuth 2.0 client ID (oauth2 mode). |
X_MCP_CLIENT_SECRETOptional, secret | OAuth 2.0 client secret (confidential clients only). |
X_MCP_BEARER_TOKENOptional, secret | Application-only bearer token (app-only mode). |
X_MCP_TOKEN_FILEOptional | Path to the rotating OAuth 2.0 token store (default: OS-resolved). |
X_MCP_TOKEN_KEYCHAINOptional | Set to 1 to keep OAuth 2.0 tokens in the OS keychain (macOS, Linux) instead of a token file. Mutually exclusive with an explicit X_MCP_TOKEN_FILE. |
X_MCP_POLICYOptional | Policy preset: read-only (default), engage, publish, manage, or full. |
X_MCP_POLICY_ALLOWOptional | Comma-separated op:domain cells to allow on top of the preset (e.g. read:dm,write:dm). |
X_MCP_POLICY_DENYOptional | Comma-separated op:domain cells to deny; deny beats allow beats preset. |
X_MCP_HIDE_DENIEDOptional | Set to 1 to drop policy-denied tools from registration entirely instead of registering them annotated as denied. |
X_MCP_MEDIA_DIROptional | Directory uploads must resolve inside. Media upload is disabled unless this is set. |
X_MCP_AVAILABILITYOptional | Comma-separated specially-provisioned access classes to declare: pilot, premium-user, enterprise. Unset means the conservative default (app+user, user-only). |
X_MCP_PROFILES_FILEOptional | Path to a profiles file holding named configuration blocks. |
X_MCP_PROFILEOptional | Name of the profile to select from the profiles file. |
X_MCP_TIMEOUT_MSOptional | Per-HTTP-request timeout in milliseconds (default 30000). |
X_MCP_LOG_LEVELOptional | Diagnostic verbosity on stderr: silent, error, info (default), or debug. |
X_MCP_CREDIT_BUDGETOptional | Session spend cap in USD. |
X_MCP_BUDGET_MODEOptional | Budget enforcement: warn (default) or hard. |
Details
| Package | [email protected] (NPM, stdio) |
| First published | 29 Aug 2026 |
| Last updated | 29 Aug 2026 |
| Registry name | io.github.IvanBBaev/x-mcp-ai |
More marketing and seo servers See all
Listing data from the official MCP registry. Status and tools from NestDaddy's daily check. Browse all MCP servers.
