| Servidor | Qué hace | URL |
|---|---|---|
| X MCP | Llama a los endpoints de la X API (buscar posts, consultar usuarios, marcadores, tendencias, noticias, Articles y más) | https://api.x.com/mcp (alojado; conéctate vía xurl mcp) |
| Docs MCP | Busca y lee la documentación de la X API | https://docs.x.com/mcp (alojado) |
X MCP — X API
Conecta cualquier herramienta de IA compatible con MCP (Grok Build, Cursor, Claude, VS Code, y otras) directamente a la X API. El modelo puede entonces buscar en el archivo completo, consultar usuarios, gestionar marcadores, obtener tendencias y noticias, y redactar borradores de Articles — todo con los permisos de tu propia cuenta de X. La X API expone un servidor MCP alojado con Streamable HTTP enhttps://api.x.com/mcp (protocolo 2025-06-18, serverInfo: xmcp). Accedes a él a través del puente de código abierto xurl mcp, que se encarga del OAuth por ti e inyecta un Bearer token nuevo en cada llamada.
Capacidades de un vistazo
| Categoría | Lo que el modelo puede hacer |
|---|---|
| Posts | Obtener posts, ver quiénes dieron like / repostearon / citaron, conteos recientes |
| Búsqueda | Búsqueda de posts en el archivo completo, búsqueda de usuarios, búsqueda de noticias |
| Usuarios | Resolver el usuario actual, buscar por id / handle, leer posts, timeline y menciones de un usuario |
| Marcadores | Listar / agregar / quitar marcadores y gestionar carpetas de marcadores |
| Noticias y tendencias | Obtener noticias, obtener tendencias para una ubicación (WOEID) |
| Articles | Crear borradores de Articles y publicarlos |
Cómo funciona
El OAuth de X requiere tu propia app de desarrollador. No hay registro dinámico de clientes yapi.x.com/mcp no anuncia el descubrimiento OAuth nativo de MCP. En lugar de apuntar tu cliente directamente a la URL, ejecutas un pequeño puente local. El puente posee la identidad de la app, realiza el inicio de sesión único y mantiene el token actualizado.
- El puente se ejecuta mediante el lanzador de npm (
npx), por lo que no hay un paso de instalación aparte. - En la primera ejecución sin token en caché, abre tu navegador para un inicio de sesión OAuth2 único, y luego almacena en caché y refresca automáticamente el token para siempre.
- Todos los diagnósticos van a stderr; stdout permanece como un canal JSON-RPC limpio.
Cómo empezar
Elige una de dos rutas:- Simple — Bearer de solo aplicación. Pega el Bearer token de tu app en un header
Authorizationen el cliente MCP. Sin puente, sin inicio de sesión en navegador. Endpoints de solo lectura; sin contexto de usuario (no puede actuar como tú). Funciona con clientes que admiten MCP remoto con headers personalizados. - Completa — puente
xurl mcp(contexto de usuario OAuth 2.0). Un puente local se encarga del inicio de sesión OAuth 2.0 PKCE y refresca los tokens automáticamente, para que el modelo actúe con los scopes de tu cuenta. Requerida para escrituras (marcadores, Articles) y cualquier herramienta con contexto de usuario.
Ruta simple (Bearer de solo aplicación)
- Crea una app de X en el X Developer Portal.
- Copia el Bearer token de solo aplicación desde la página “Keys and tokens” de la app.
- Apunta tu cliente a
https://api.x.com/mcpcon el token como headerAuthorization— consulta Solo aplicación (URL directa, sin puente) más abajo para el snippet.
Ruta completa (puente xurl)
- Crea una app de X con OAuth 2.0 habilitado.
-
Registra la URI de redirección
http://localhost:8080/callbacken la app (requerida para el inicio de sesión por navegador en la primera ejecución). Para usar otra, defineREDIRECT_URIy registra esa en su lugar. -
Copia tu
CLIENT_IDyCLIENT_SECRET— los colocarás en la configuración del cliente. -
Ten Node.js instalado (para
npx). -
Recomendamos que instales xurl:
El primer inicio de sesión necesita un navegador. En una máquina sin interfaz gráfica o remota, autentícate primero fuera de banda con
xurl auth oauth2 --headless (flujo de pegar un código), y luego el puente simplemente reutilizará el token en caché. Consulta Headless.Conecta tu cliente
1. Grok Build
-e se convierten en el entorno del servidor, los argumentos después de -- van a npx):
doctor), tu navegador se abrirá para iniciar sesión en X — complétalo una vez y listo.
2. Cursor
Crea~/.cursor/mcp.json (global, para todos los proyectos) o .cursor/mcp.json (solo este proyecto):
3. Claude Desktop
Editaclaude_desktop_config.json (macOS: ~/Library/Application Support/Claude/, Windows: %APPDATA%\Claude\):
4. VS Code (GitHub Copilot / modo Agent)
Agrega a.vscode/mcp.json:
5. Cualquier cliente MCP
Puente xurl (stdio):| Campo | Valor |
|---|---|
command | npx |
args | ["-y", "@xdevplatform/xurl", "mcp", "https://api.x.com/mcp"] |
env | CLIENT_ID, CLIENT_SECRET |
| timeout de arranque | ≥ 300s (para que el inicio de sesión en la primera ejecución pueda completarse) |
xurl de forma nativa, reemplaza command/args por "command": "xurl", "args": ["mcp", "https://api.x.com/mcp"].
Bearer de solo aplicación (HTTP remoto):
| Campo | Valor |
|---|---|
url | https://api.x.com/mcp |
headers.Authorization | Bearer YOUR_APP_ONLY_BEARER_TOKEN |
Autenticación
Contexto de usuario OAuth 2.0 (predeterminado)
El puente se autentica como tú (flujo PKCE), por lo que las herramientas actúan con los scopes de tu cuenta. Orden de resolución de credenciales: variables de entornoCLIENT_ID/CLIENT_SECRET → la app activa en ~/.xurl. El puente almacena los tokens en caché en ~/.xurl y los refresca automáticamente (incluyendo un refresh forzado tras un 401).
Inicio de sesión en navegador en la primera ejecución
Sin un token en caché, el puente imprime en stderr y abre tu navegador:startup_timeout_sec generoso.
Headless / máquinas remotas
¿No hay un navegador accesible? Autentícate una vez fuera de banda y luego inicia el cliente:Solo aplicación (URL directa, sin puente)
Para endpoints de lectura puedes omitir el puente y apuntar un cliente directamente a la URL con un Bearer token estático de solo aplicación. Esto es útil para clientes que admiten MCP remoto con headers personalizados:Múltiples apps y cuentas
"--app", "my-app" o "-u", "alice" a args.
Referencia de configuración
| Ajuste | Dónde | Notas |
|---|---|---|
CLIENT_ID / CLIENT_SECRET | env | Las credenciales de tu app de X (o apóyate en una app registrada en ~/.xurl) |
REDIRECT_URI | env | Sobrescribe el callback; debe estar registrado en la app. Por defecto http://localhost:8080/callback |
startup_timeout_sec | configuración del cliente | Establece ≥ 300 para que el inicio de sesión en la primera ejecución pueda completarse |
[URL] posicional | args | Por defecto https://api.x.com/mcp |
--app NAME | args | Usa una app registrada específica |
-u, --username | args | Actúa como un usuario OAuth2 específico |
AUTH_URL, TOKEN_URL, API_BASE_URL, INFO_URL.
Verifica y resuelve problemas
| Síntoma | Causa / Solución |
|---|---|
| El cliente excede el tiempo de espera al arrancar | Aumenta startup_timeout_sec a 300+; el puente está esperando tu inicio de sesión en el navegador |
| El navegador nunca se abre | Sin display (headless) → ejecuta primero xurl auth oauth2 --headless; asegúrate de que npx se resuelva |
401 / token refresh failed | Credenciales de la app incorrectas, o refresh token revocado → vuelve a ejecutar el inicio de sesión (xurl auth oauth2 [--app NAME]) |
| Error de redirect/callback en el navegador | http://localhost:8080/callback no está registrado en la app (o REDIRECT_URI no coincide) |
client-not-enrolled después de iniciar sesión | La app no está en el paquete/entorno correcto de X → en el portal muévela a Pay-per-use + Production |
npx descarga una versión obsoleta | Hay un mirror de registro privado por defecto → fija --registry=https://registry.npmjs.org/ en args |
| Salida vacía o ilegible de las herramientas | No ejecutes el cliente con --verbose; stdout debe permanecer como un canal JSON-RPC limpio |
Seguridad y mejores prácticas
- Trata
~/.xurly los access tokens como secretos — no los pegues en chats, logs ni configuraciones compartidas. Prefiere archivos.mcp.json/.grok/config.tomlpor proyecto que referencien variables de entorno antes que comprometer secretos en texto plano. - Usa una app dedicada para MCP con solo los scopes que necesites.
- Las escrituras cuentan para los límites de tasa (marcadores,
article_publish) y son más estrictas que las lecturas; espera429s ocasionales y aplica back off. - El puente es local — tus credenciales nunca salen de tu máquina excepto como un Bearer token enviado por TLS a
api.x.com.
Docs MCP — búsqueda en la documentación
X aloja un servidor MCP para la documentación de la X API enhttps://docs.x.com/mcp. Conéctalo a tu herramienta de IA para buscar y leer páginas de documentación sin salir de tu flujo de trabajo.
Herramientas disponibles
| Herramienta | Descripción |
|---|---|
search_x | Busca en la documentación de X información relevante, ejemplos de código, referencias de la API y guías |
get_page_x | Recupera el contenido completo de una página de documentación específica por su ruta |
Configuración
Agrega el servidor MCP de la documentación a la configuración de tu cliente MCP:Usando ambos servidores juntos
Puedes conectar ambos servidores MCP simultáneamente. Esto le da a tu asistente de IA la capacidad de consultar la documentación y llamar a la API. Grok Build (~/.grok/config.toml):
mcp.json):
Especificación OpenAPI
La especificación de la API legible por máquina para todos los endpoints de la X API v2.| Recurso | URL |
|---|---|
| Especificación OpenAPI (JSON) | https://api.x.com/2/openapi.json |