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 en https://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.
El OAuth de X requiere tu propia app de desarrollador. No hay registro dinámico de clientes y api.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.
Simple — Bearer de solo aplicación. Pega el Bearer token de tu app en un header Authorization en 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.
Registra la URI de redirecciónhttp://localhost:8080/callback en la app (requerida para el inicio de sesión por navegador en la primera ejecución). Para usar otra, define REDIRECT_URI y registra esa en su lugar.
Copia tu CLIENT_ID y CLIENT_SECRET — los colocarás en la configuración del cliente. Si alguna vez ejecutas xurl auth oauth2 manualmente (por ejemplo, el flujo headless de más abajo), expórtalos como variables de entorno en esa shell primero — el inicio de sesión falla en el navegador sin ellos.
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.
Luego abre Cursor → Settings → MCP, confirma que xapi muestra un punto verde y sus herramientas. En el primer uso, Cursor inicia el puente y tu navegador se abre para iniciar sesión; la lista de herramientas se completa una vez que finaliza el handshake.
≥ 300s (para que el inicio de sesión en la primera ejecución pueda completarse)
Si instalaste xurl de forma nativa, reemplaza command/args por "command": "xurl", "args": ["mcp", "https://api.x.com/mcp"].Bearer de solo aplicación (HTTP remoto):
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 entorno CLIENT_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:
[xurl mcp] no valid OAuth2 token; opening the browser to sign in -- complete the login to start the bridge...[xurl mcp] authentication complete; starting bridge
El handshake de MCP se mantiene en espera hasta que termines — por eso los clientes necesitan un startup_timeout_sec generoso.
¿No hay un navegador accesible? Autentícate una vez fuera de banda y luego inicia el cliente:
# Requerido: el bloque env en la configuración de tu cliente solo se aplica al puente,# no a las ejecuciones manuales de xurl — exporta las credenciales en esta shell primero.export CLIENT_ID="YOUR_X_APP_CLIENT_ID"export CLIENT_SECRET="YOUR_X_APP_CLIENT_SECRET"xurl auth oauth2 --headless # prints an auth URL; you paste back the redirect URL/codexurl auth oauth2 --app my-app --headless # for a specific app
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:
El inicio de sesión OAuth autoriza la cuenta de X que tengas iniciada cuando se abra el navegador — no necesariamente la cuenta propietaria de la app. Si vas a publicar en nombre de una cuenta secundaria o bot, cambia a esa cuenta en el navegador antes de completar el inicio de sesión (o usa -u para elegir un usuario previamente autorizado).
xurl --app my-app mcp # bridge using a specific registered appxurl mcp -u alice https://api.x.com/mcp # act as a specific OAuth2 user
En una configuración de cliente, agrega "--app", "my-app" o "-u", "alice" a args.
grok mcp doctor xapi # Grok Build: end-to-end check# or test the bridge by hand (Ctrl-C to exit):npx -y @xdevplatform/xurl mcp https://api.x.com/mcp
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])
El navegador muestra “Something went wrong — You weren’t able to give access to the App”
CLIENT_ID/CLIENT_SECRET no están definidos donde se ejecuta xurl → agrégalos al bloque env del cliente, o haz export en tu shell antes de ejecutar xurl auth oauth2 manualmente
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
Trata ~/.xurl y los access tokens como secretos — no los pegues en chats, logs ni configuraciones compartidas. Prefiere archivos .mcp.json/.grok/config.toml por 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; espera 429s 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.
X aloja un servidor MCP para la documentación de la X API en https://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.
Esto es útil cuando estás construyendo con la X API y quieres que tu asistente de IA consulte sobre la marcha detalles de endpoints, guías de autenticación o ejemplos de código.
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):
Puedes usarla para autogenerar clientes de API, importarla en Postman, alimentarla en agentes de IA personalizados o validar esquemas de petición/respuesta.