Conectar desde Claude: Code, Desktop, Mobile
"Claude" no es un solo programa — es tres clientes distintos con soporte de MCP muy distinto entre sí. Esta página no repite los manuales de MCP Ops, MCP Analytics, MCP Forms y MCP Auth (esos ya cubren Claude Code a fondo); acá está lo que cambia si en vez de Code usás Claude Desktop o Claude Mobile.
0. Qué funciona en cada cliente
Antes de seguir cualquier paso, mirá esta tabla — ahorra tiempo. "Soportado" significa que hay un camino real y documentado oficialmente; no significa que sea igual de simple en los tres.
| Cliente | MCP ops (remoto, bearer) |
MCP dynamo-analytics,
dynamo-forms y dynamo-auth
(stdio local)
|
|---|---|---|
| Claude Code (CLI) | ✅ nativo — claude mcp add --transport http ... --header |
✅ nativo — claude mcp add -- node dist/server.js
(uno por MCP: analytics, forms y auth)
|
| Claude Desktop |
⚠️ Sin headers nativos en claude_desktop_config.json.
Vía puente mcp-remote (bearer, §2.2) o Custom
Connector (requiere OAuth — ops no lo implementa
hoy, §2.3).
|
✅ nativo — el mismo bloque JSON que en Code (uno por MCP),
pegado a mano en claude_desktop_config.json
(§2.1).
|
| Claude Mobile (iOS/Android) |
⚙️ Se configura una sola vez en claude.ai y sincroniza al
móvil (§3) — disponible con el gateway:
el connector exige OAuth y ops hoy usa bearer
estático.
|
❌ Imposible por arquitectura — stdio exige un
proceso local; el móvil no ejecuta procesos arbitrarios.
Llegan al celular vía gateway remoto, no por su cuenta.
|
Estado real de Dynamo hoy: el único camino
simple y soportado end-to-end para ops es
Claude Code (bearer nativo). Desktop funciona con el puente
mcp-remote (§2.2). Para Mobile el flujo ya está
escrito y es de un solo paso (configurar en claude.ai → sincroniza
al celular, §3), pero se enciende cuando el gateway DynamoMCP
implemente OAuth 2.0 con Dynamic Client Registration — no
prometemos pasos que hoy no funcionan.
1. Claude Code (CLI) — ya documentado
Si vas a usar Claude Code, no sigas leyendo esta página: andá
directo a MCP Ops / Worklist (bearer
HTTP nativo, claude mcp add --transport http),
MCP Analytics,
MCP Forms o
MCP Auth (los tres
stdio local, claude mcp add -- node ...).
Los cuatro manuales tienen los comandos literales paso a paso.
2. Claude Desktop
Claude Desktop lee su configuración de MCP de un único archivo
JSON, claude_desktop_config.json. Para abrirlo (o
crearlo si no existe):
-
Clic en el menú
Claudede la barra de menú del sistema (macOS) — no en los ajustes dentro de la ventana de chat — y elegí Settings… - Pestaña Developer en el panel izquierdo → botón Edit Config. Esto abre (o crea) el archivo en tu editor.
| SO | Ruta literal |
|---|---|
| macOS | ~/Library/Application Support/Claude/claude_desktop_config.json |
| Windows | %APPDATA%\Claude\claude_desktop_config.json |
Después de guardar el archivo, cerrá Claude Desktop por completo y volvé a abrirlo — no alcanza con cerrar la ventana, tiene que terminar el proceso.
2.1 MCP Analytics, Forms y Auth (stdio) en Desktop
Los tres corren local (mismo binario que en Code) — Desktop los
arranca él mismo como subproceso, así que el bloque JSON es
prácticamente el mismo que ya viste en
MCP Analytics § 4 /
MCP Forms § 4 /
MCP Auth § 4. Completá el
instalar / npm run login / npm run build
de ese manual primero (ojo: Forms y Auth instalan con
NODE_AUTH_TOKEN=$(gh auth token) npm ci, no con
npm install) — acá solo cambia
dónde pegás el JSON:
{
"mcpServers": {
"dynamo-analytics": {
"command": "node",
"args": ["/RUTA/ABSOLUTA/A/analytics-dynamo/mcp/dist/server.js"],
"env": {
"SUPABASE_URL": "https://bxogqotctuurtcgjakfz.supabase.co",
"ANON_KEY": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZSIsInJlZiI6ImJ4b2dxb3RjdHV1cnRjZ2pha2Z6Iiwicm9sZSI6ImFub24iLCJpYXQiOjE3ODIxODY5OTcsImV4cCI6MjA5Nzc2Mjk5N30.IL2_oF_UWFuOMZfvD6rJ4g4f87q4f9ioROJrxGss0qg"
}
}
}
}
Para Forms y Auth es la misma
forma, cambiando el nombre y la ruta del server.js (el
SUPABASE_URL y la ANON_KEY de QA son los
mismos: analytics, forms y auth comparten el proyecto Supabase por
ambiente, y por eso también comparten el
npm run login):
{
"mcpServers": {
"dynamo-forms": {
"command": "node",
"args": ["/RUTA/ABSOLUTA/A/forms-dynamo/mcp/dist/server.js"],
"env": {
"SUPABASE_URL": "https://bxogqotctuurtcgjakfz.supabase.co",
"ANON_KEY": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZSIsInJlZiI6ImJ4b2dxb3RjdHV1cnRjZ2pha2Z6Iiwicm9sZSI6ImFub24iLCJpYXQiOjE3ODIxODY5OTcsImV4cCI6MjA5Nzc2Mjk5N30.IL2_oF_UWFuOMZfvD6rJ4g4f87q4f9ioROJrxGss0qg"
}
}
}
}
{
"mcpServers": {
"dynamo-auth": {
"command": "node",
"args": ["/RUTA/ABSOLUTA/A/auth-dynamo/mcp/dist/server.js"],
"env": {
"SUPABASE_URL": "https://bxogqotctuurtcgjakfz.supabase.co",
"ANON_KEY": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZSIsInJlZiI6ImJ4b2dxb3RjdHV1cnRjZ2pha2Z6Iiwicm9sZSI6ImFub24iLCJpYXQiOjE3ODIxODY5OTcsImV4cCI6MjA5Nzc2Mjk5N30.IL2_oF_UWFuOMZfvD6rJ4g4f87q4f9ioROJrxGss0qg"
}
}
}
}
Si claude_desktop_config.json ya tiene otros servers,
agregá "dynamo-analytics" / "dynamo-forms" /
"dynamo-auth" dentro del mcpServers
existente — no reemplaces el archivo entero. Los tres pueden
convivir en el mismo archivo.
2.2 MCP Ops (remoto, bearer) en Desktop — vía mcp-remote
ops exige un header Authorization: Bearer
<token> en cada request. El config nativo de Desktop
no tiene un campo para headers custom en un server
remoto — solo command/args/env
(piensa siempre en términos de "arrancar un proceso", no de HTTP
directo). El puente estándar de la comunidad para este caso es el
paquete npm mcp-remote, que corre local y reenvía la
conexión al servidor HTTP agregando el header.
{
"mcpServers": {
"ops": {
"command": "npx",
"args": [
"-y",
"mcp-remote",
"https://ops.dynamotech.co/mcp",
"--header",
"Authorization:${OPS_AUTH_HEADER}"
],
"env": {
"OPS_AUTH_HEADER": "Bearer <TU_TOKEN>"
}
}
}
}
Gotcha real de mcp-remote, documentado en
su propio README: "Cursor and Claude Desktop (Windows)
have a bug where spaces inside args aren't escaped
when it invokes npx, which ends up mangling these
values." La solución que da el propio proyecto: sacar el espacio
alrededor de los : en el valor de --header
("Authorization:${OPS_AUTH_HEADER}", sin espacio
después de los dos puntos) y meter el valor completo — con
espacios, ahí sí está bien — dentro de una variable de entorno
("Bearer <TU_TOKEN>" en env).
Usá exactamente el formato del bloque de arriba, no
"Authorization: Bearer ..." directo en
args.
Reemplazá https://ops.dynamotech.co/mcp por
https://ops-qa.dynamotech.co/mcp para probar contra QA
primero (ver MCP Ops § 1-2 sobre cuál
ambiente está activo hoy).
2.3 Alternativa nativa — Custom Connectors (requiere OAuth)
Desktop y claude.ai tienen un mecanismo nativo para servers
remotos sin pasar por mcp-remote: Settings →
Connectors → Add → Add custom connector, pegando la URL
del server (ej. https://ops.dynamotech.co/mcp).
Por qué no es el camino recomendado para ops
hoy: el paso "Complete Authentication" de este flujo
está pensado para OAuth (el server implementa
registro dinámico de cliente / autoriza por usuario) — es la vía
esperada para que cada persona entre con su propia identidad.
ops hoy autentica con bearer tokens
estáticos por scope, no con OAuth. Existe un modo
"Request headers" para casos así (API key/bearer fijo), pero está
en beta con acceso limitado — hay que pedirle
acceso anticipado a Anthropic, no es autoservicio, y solo acepta
un set fijo de nombres de header (authorization,
x-api-key, x-auth-token). Hasta que
alguno de los dos exista para ops, usá el puente
mcp-remote de §2.2.
3. Claude Mobile (iOS / Android)
La idea clave, y es más simple de lo que parece: configuralo una vez en claude.ai (desde el navegador o la app de escritorio) y queda habilitado automáticamente en tu móvil. En el celular no se configura nada — los connectors viajan con tu cuenta, no con el dispositivo.
3.1 El flujo, paso a paso
- Desde una computadora (no desde el celular), entrá a claude.ai con la misma cuenta que usás en el móvil. Si preferís Claude Desktop, sirve igual: es el mismo panel.
- Settings → Connectors → Add → Add custom connector (el mismo flujo de §2.3).
-
Pegá la URL del gateway y dale Add:
url — gateway DynamoMCP
https://mcp.dynamotech.co/mcp - Claude abre Complete Authentication → iniciás sesión con tu cuenta Dynamo y aceptás los permisos. Cuando volvés, el connector debe figurar como Connected y mostrar sus tools.
- Abrí Claude en el celular (iOS o Android) con esa misma cuenta. El connector ya está ahí. Si no aparece, cerrá sesión y volvé a entrar: la sincronización ocurre "la próxima vez que inicies sesión en Claude para iOS o Android".
Estado hoy — este paso a paso está listo, pero todavía
no hay a qué apuntarlo. Los connectors de claude.ai
exigen un server remoto que hable OAuth 2.0.
Los MCP de Dynamo hoy no lo hacen: ops autentica
con bearer estático por scope, y
dynamo-analytics, dynamo-forms y
dynamo-auth son stdio
local. El flujo de arriba queda operativo cuando el
gateway DynamoMCP (Fase 4) implemente OAuth
2.0 con Dynamic Client Registration — la URL del paso 3 es un
placeholder del gateway, no un endpoint que hoy
responda. Hasta entonces: en el celular no hay nada que
configurar, y ningún MCP de Dynamo funciona ahí.
3.2 Dos límites que no cambian nunca
-
stdioes imposible en Mobile, por arquitectura: la app no puede ejecutarnode dist/server.jscomo subproceso local. Por eso Analytics, Forms y Auth no llegan al celular "cada uno por su cuenta" — llegan a través del gateway, como server remoto. - La app móvil no tiene UI de configuración de MCP. Instalar connectors desde el propio celular está marcado como beta ("Installing connectors on mobile is currently in beta — Claude Desktop and web remain the primary path"). El camino soportado es siempre configurar en web/escritorio y dejar que sincronice.