Lampson como motor
Lampson como servidor MCP
Lampson también es un servidor MCP: Claude Desktop, Claude Code, Cursor, ChatGPT u otro agente pueden usar a tus agentes de Lampson como una herramienta más.
¿Para qué, si esas IAs ya responden solas? Porque tu agente de Lampson tiene cosas que ellas no: el conocimiento de tu negocio (catálogo, reglas, promos), sus propias herramientas con permisos limitados, su historial, y a veces corre en otra máquina — la que tiene los datos. La otra IA le pregunta, sin acceso a nada de eso.
Las herramientas§
| herramienta | |
|---|---|
ask(message, agent?, thread?) | un mensaje a un agente. Sin thread, crea uno y lo devuelve: pásalo en la próxima llamada para seguir la conversación |
agents() | los agentes disponibles y para qué sirve cada uno |
history(thread, agent?, limit?) | los últimos mensajes de una conversación, para retomarla |
En tu máquina (stdio)§
lampson mcp serve # todos los agentes del proyecto
lampson mcp serve --agent tienda # solo esos (separados por coma)
lampson mcp serve --workspace C:\ruta # otro proyecto
En Claude Desktop (claude_desktop_config.json):
{"mcpServers": {"tienda": {"command": "lampson", "args": ["mcp", "serve", "--agent", "tienda", "--workspace", "C:\\proyectos\\e-commerce"]}}}
En Windows, si tu cliente no encuentra lampson, usa "command": "lampson.cmd". Sin nadie delante, el agente corre en strict salvo que su archivo diga otra cosa.
Desde cualquier lado (HTTP)§
https://tu-lampson/w/<workspace>/v1/mcp Authorization: Bearer lk_…
El transporte HTTP estándar de MCP, con la misma API key que la API: cada key ve solo sus agentes. Así lo usan los empleados de un negocio desde su Claude o su ChatGPT, o un agente de otra empresa. lampson key add te muestra la URL.
/v1/mcp/stream es lo mismo respondiendo por SSE: si el pedido trae progressToken, cada paso del agente («leyendo el catálogo…») llega como notificación de progreso antes de la respuesta.
Los mensajes pasan por el buzón: dos agentes de afuera escribiendo a la vez en la misma conversación no se pisan.
Agente ↔ agente§
Un Lampson puede usar al agente de otro Lampson. El agente de compras de un restaurante le pregunta precio y stock al agente del proveedor:
1. El proveedor crea una key para su agente: lampson key add --agent ventas, y te pasa la URL y la key. 2. Tú la pones en ~/lampson/.lampson/mcp.json (o en el del proyecto), con la key en el .env:
{"mcpServers": {"proveedor": {"url": "https://proveedor.com/w/ventas/v1/mcp",
"headers": {"Authorization": "Bearer ${LAMPSON_PROVEEDOR_KEY}"}}}}
# ~/lampson/.env
LAMPSON_PROVEEDOR_KEY=lk_…
3. Tu agente gana la herramienta mcp_proveedor_ask. Dale permiso a esa herramienta y solo a esa:
{"id": "compras", "system": "…", "permission": "strict",
"tools": [{"name": "mcp_proveedor_*", "approve": "auto"}]}
${LAMPSON_…} se reemplaza con el valor del .env: la key no queda escrita en el mcp.json. Cada lado conserva sus reglas: el proveedor decide qué agentes expone y con qué límite; tú decides qué agente tuyo puede preguntarle.