You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
@@ -16,7 +16,7 @@ Hay dos servidores [MCP](https://modelcontextprotocol.io) (Model Context Protoco
16
16
17
17
## X MCP — X API
18
18
19
-
Conecta cualquier herramienta de IA compatible con MCP (Grok Build, Cursor, Claude, VS Code, …) directamente a la **X API** para que pueda 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.
19
+
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.
20
20
21
21
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.
22
22
@@ -33,7 +33,7 @@ La X API expone un servidor MCP alojado con **Streamable HTTP** en **`https://ap
33
33
34
34
### Cómo funciona
35
35
36
-
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). Por eso, en lugar de apuntar tu cliente directamente a la URL, ejecutas un pequeño puente local que posee la identidad de la app, realiza el inicio de sesión único y mantiene el token actualizado.
36
+
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.
37
37
38
38
```mermaid
39
39
flowchart LR
@@ -46,9 +46,22 @@ flowchart LR
46
46
- 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.
47
47
- Todos los diagnósticos van a **stderr**; **stdout permanece como un canal JSON-RPC limpio**.
48
48
49
-
### Antes de empezar
49
+
### Cómo empezar
50
50
51
-
1.**Crea una app de X** en el [X Developer Portal](https://developer.x.com) con **OAuth 2.0** habilitado.
51
+
Elige una de dos rutas:
52
+
53
+
***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.
54
+
***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.
55
+
56
+
#### Ruta simple (Bearer de solo aplicación)
57
+
58
+
1.**Crea una app de X** en el [X Developer Portal](https://developer.x.com).
59
+
2.**Copia el Bearer token de solo aplicación** desde la página "Keys and tokens" de la app.
60
+
3. Apunta tu cliente a `https://api.x.com/mcp` con el token como header `Authorization` — consulta [Solo aplicación (URL directa, sin puente)](#app-only-direct-url-no-bridge) más abajo para el snippet.
61
+
62
+
#### Ruta completa (puente xurl)
63
+
64
+
1.**Crea una app de X** con **OAuth 2.0** habilitado.
52
65
2.**Registra la URI de redirección**`http://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.
53
66
3.**Copia tu `CLIENT_ID` y `CLIENT_SECRET`** — los colocarás en la configuración del cliente.
54
67
4.**Ten Node.js instalado** (para `npx`).
@@ -68,18 +81,9 @@ flowchart LR
68
81
69
82
#### 1. Grok Build
70
83
71
-
Agrega el servidor con un solo comando (los flags `-e` se convierten en el entorno del servidor, los argumentos después de `--` van a `npx`):
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.
123
164
124
165
#### 3. Claude Desktop
125
166
126
167
Edita `claude_desktop_config.json` (macOS: `~/Library/Application Support/Claude/`, Windows: `%APPDATA%\Claude\`):
127
168
128
-
```json
169
+
<CodeGroup>
170
+
171
+
```json xurl bridge
129
172
{
130
173
"mcpServers": {
131
174
"xapi": {
@@ -137,13 +180,28 @@ Edita `claude_desktop_config.json` (macOS: `~/Library/Application Support/Claude
#### Contexto de usuario OAuth 2.0 (predeterminado)
175
254
176
-
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`**. Los tokens se almacenan en caché en `~/.xurl` y se refrescan automáticamente (incluyendo un refresh forzado tras un `401`).
255
+
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`).
177
256
178
257
#### Inicio de sesión en navegador en la primera ejecución
179
258
@@ -197,7 +276,7 @@ xurl auth oauth2 --app my-app --headless # for a specific app
197
276
198
277
#### Solo aplicación (URL directa, sin puente)
199
278
200
-
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** — útil para clientes que admiten MCP remoto con headers personalizados:
279
+
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:
Hay un servidor MCP para la documentación de la X API alojado 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.
344
+
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.
0 commit comments