¿Puedes construir tu propio Meta Muse con Claude Sonnet 5.5 y MCP?
Respuesta corta: Claude Sonnet 5.5 con servidores MCP ya cubre el modelo y la capa de herramientas de Meta Muse. El runtime que los rodea (puerta de políticas, bóveda de tokens, memoria, cola de trabajos, registro de auditoría, defensas contra inyección y un sandbox de navegador) sigue siendo tuyo. Este artículo recorre cada pieza y muestra el bucle que las une.
¿Por qué debería importarle esta semana a quien desarrolla?
Dos lanzamientos llegaron con tres semanas de diferencia. El 8 de septiembre de 2026 Meta anunció Muse, un agente personal que navega, envía correos, compra y sigue trabajando al cerrar la app. El 28 de septiembre Anthropic lanzó Claude Sonnet 5.5 a 2 dólares por millón de tokens de entrada y 10 por millón de salida, con un 80,1% en OSWorld 2.1, la prueba de uso de ordenador.
Si construyes productos, la pregunta útil es cuánto de Muse podrías meter en tu propia app el mes que viene. Dividí Muse en las piezas que Meta lanzó de verdad, marqué las que Claude y MCP cubren hoy y esbocé el resto como código.
¿Qué lanzó Meta exactamente?
- Muse Spark, el modelo.
- Muse Secure VM: una máquina virtual aislada por usuario, con su propio navegador y almacenamiento.
- Sentinel: un agente de políticas aparte que permite, deniega o escala cada petición a conectores y cada llamada saliente.
- Aprobaciones antes de enviar correos o comprar, y un historial de auditoría completo.
- Memoria de rutinas y detalles sueltos, usada para sugerencias proactivas.
- Ejecución en segundo plano que sigue después de cerrar la app.
- Pagos con Link de Stripe y números de tarjeta de un solo uso, con Shop Pay y 1Password anunciados.
- Plataformas: iOS, Android, la web y WhatsApp, con despliegue en EE. UU.
Solo el primer punto es un modelo. Los otros siete son infraestructura.
¿Qué aporta Claude Sonnet 5.5 a un agente?
En este diseño, Sonnet 5.5 es el planificador. Las cifras que importan para un agente son estas: salida un 30% más rápida que Sonnet 5, hasta un 30% menos de coste por tarea porque usa menos tokens y llamadas a herramientas, 80,1% en OSWorld 2.1 frente al 81,8% de Opus 5.5, niveles de esfuerzo ajustables y disponibilidad en la API de Claude, AWS, Google Cloud y Microsoft Azure. Lovable reportó cerca de un tercio menos de llamadas a herramientas tras el cambio.
En un agente que hace decenas de llamadas por tarea, esa reducción pesa más que un punto de benchmark. Cada llamada que te ahorras es un viaje de red menos hasta un servidor MCP y un punto de fallo menos.
¿Qué cubre MCP de serie?
El Model Context Protocol es el estándar abierto que Anthropic creó en 2024 y cedió a la Agentic AI Foundation de la Linux Foundation en diciembre de 2025. Le da al agente una única forma de llegar a cualquier herramienta. Un kit inicial para un asistente al estilo Muse queda así:
| Necesidad | Servidor MCP | Estado |
|---|---|---|
| Correo | Conector de Gmail o servidor remoto | Listo |
| Calendario | Google Calendar | Listo |
| Documentos | Google Drive | Listo |
| Navegador | @playwright/mcp | Listo, lo alojas tú |
| Código | github-mcp-server | Listo |
| Datos y filas de memoria | Servidor de Postgres | Listo |
| APIs internas | Un servidor propio pequeño con el SDK de TypeScript o Python | Lo escribes tú |
¿Qué siete piezas sigues escribiendo tú?
- Puerta de políticas. Etiqueta cada herramienta como lectura, escritura o dinero. Permite lecturas, manda escrituras a una cola de aprobación y bloquea lo que no esté en la lista. Para empezar basta una tabla
tool_policies(tool, risk, requires_approval). - Bóveda de tokens. Cifra los refresh tokens de cada usuario con un KMS o libsodium, renuévalos en un worker y nunca los pongas en el prompt.
- Memoria. Postgres con pgvector, una tabla
memoriesque guarde la fuente y la fecha de cada dato, y una página de ajustes donde el usuario pueda leer y borrar entradas. - Trabajos. Una cola como BullMQ sobre Redis o una gestionada como SQS, más un planificador para peticiones tipo "dentro de cinco días".
- Registro de auditoría. Una tabla
agent_eventsde solo inserción con tarea, herramienta, hash de la entrada, resumen del resultado, quién aprobó y hora. - Defensas contra inyección. Marca como no fiables los resultados que vienen de la web. Tras leer contenido no fiable, permite solo herramientas de lectura hasta que el usuario apruebe la siguiente escritura.
- Sandbox de navegador. Un contenedor por sesión de usuario con Playwright, vista en vivo y botón de parada.
¿Cómo es un bucle de agente mínimo?
Este es el núcleo del runtime en TypeScript. El modelo y los servidores MCP hacen casi todo el trabajo. El bucle añade la revisión de políticas, el registro y la pausa.
import Anthropic from "@anthropic-ai/sdk";
const claude = new Anthropic();
export async function runTask(task: Task) {
const messages = await memory.load(task.userId, task.goal);
const tools = await mcp.listTools(task.userId); // tools from every connected MCP server
for (let step = 0; step < 40; step++) {
const res = await claude.messages.create({
model: "claude-sonnet-5-5",
max_tokens: 4096,
tools,
messages,
});
messages.push({ role: "assistant", content: res.content });
if (res.stop_reason !== "tool_use") return finish(task, res);
const results = [];
for (const call of res.content.filter((b) => b.type === "tool_use")) {
const verdict = policy.check(task.userId, call); // "allow" | "ask" | "deny"
if (verdict === "ask") return queue.pauseForApproval(task, messages, call);
const output = verdict === "allow"
? await mcp.callTool(task.userId, call.name, call.input)
: "Blocked by policy.";
await audit.log({ task: task.id, tool: call.name, verdict, output });
results.push({ type: "tool_result", tool_use_id: call.id, content: output });
}
messages.push({ role: "user", content: results });
await memory.checkpoint(task.id, messages);
}
}
pauseForApproval guarda la conversación y la llamada pendiente. Cuando el usuario aprueba, un worker ejecuta esa llamada, añade el resultado y vuelve a lanzar runTask desde el punto guardado. Esa pequeña función es lo que permite "seguir trabajando al cerrar la app".
¿Cómo se ve la búsqueda de empleo en el registro de auditoría?
Esta es la petición de ejemplo, "busca empleos remotos de React, mira mi calendario, prepara solicitudes y haz seguimiento en cinco días", tal como la anotaría el registro:
09:02 plan search remote React roles, posted in last 7 days
09:02 browser navigate jobs board allow 42 listings (untrusted)
09:03 postgres read prefs allow remote, React, salary floor
09:03 calendar find_free_slots(14d) allow 6 slots
09:05 drive create_doc x5 allow 5 cover letters
09:05 gmail create_draft x5 ask waiting for user
09:41 approval user approved 4, rejected 1
09:42 browser submit application x4 allow 4 submitted
09:42 scheduler follow_up in 5 days allow job #8812
day 5 gmail search replies allow 1 reply, 3 silent
day 5 gmail create_draft x3 ask waiting for user
Cada línea marcada con ask es un punto donde Sentinel también se habría detenido. Cada línea con número de trabajo es algo que una ventana de chat no puede hacer por sí sola.
¿Muse o tu propio stack?
Usa Muse si eres una persona que quiere resultados y te encajan las condiciones de datos de Meta, que solo esté en EE. UU. y su lista actual de integraciones.
Construye con Claude y MCP si el agente tiene que vivir dentro de tu producto, llegar a sistemas internos, cumplir tus reglas de retención o cambiar de modelo más adelante sin reescribir cada integración.
Veredicto
Sonnet 5.5 te da un planificador muy cerca del modelo más alto a precio de gama media. MCP convierte la capa de herramientas en configuración. La ventaja real de Muse está en su runtime: la VM, el agente de políticas, la bóveda, el planificador y el registro. Ahí se va a competir en productos de agentes a partir de ahora, y también es la capa que puedes construir tú mismo.