/ Directorio / Playground / vurb.ts
● Comunidad vinkius-labs ⚡ Instantáneo

vurb.ts

por vinkius-labs · vinkius-labs/vurb.ts

Un framework de TypeScript para construir servidores MCP con herramientas type-safe, redacción de PII y puertas de estado FSM — como Express.js pero para MCP.

Vurb.ts es un framework, no un servidor MCP. Es para desarrolladores que construyen sus propios servidores MCP. Incluye una capa de presentador que elimina columnas de BD no declaradas, redacción de PII en la etapa 'Late Guillotine', puertas de estado FSM que previenen llamadas de herramientas fuera de orden, y una CLI de scaffolding que soporta Prisma, n8n y vectores OpenAPI.

Por qué usarlo

Características clave

Demo en vivo

Cómo se ve en la práctica

vurb-ts.replay ▶ listo
0/0

Instalar

Elige tu cliente

~/Library/Application Support/Claude/claude_desktop_config.json  · Windows: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "vurb-ts": {
      "command": "npx",
      "args": [
        "-y",
        "vurb.ts"
      ],
      "_inferred": true
    }
  }
}

Abre Claude Desktop → Settings → Developer → Edit Config. Reinicia después de guardar.

~/.cursor/mcp.json · .cursor/mcp.json
{
  "mcpServers": {
    "vurb-ts": {
      "command": "npx",
      "args": [
        "-y",
        "vurb.ts"
      ],
      "_inferred": true
    }
  }
}

Cursor usa el mismo esquema mcpServers que Claude Desktop. La configuración del proyecto prevalece sobre la global.

VS Code → Cline → MCP Servers → Edit
{
  "mcpServers": {
    "vurb-ts": {
      "command": "npx",
      "args": [
        "-y",
        "vurb.ts"
      ],
      "_inferred": true
    }
  }
}

Haz clic en el icono MCP Servers de la barra lateral de Cline y luego en "Edit Configuration".

~/.codeium/windsurf/mcp_config.json
{
  "mcpServers": {
    "vurb-ts": {
      "command": "npx",
      "args": [
        "-y",
        "vurb.ts"
      ],
      "_inferred": true
    }
  }
}

Mismo formato que Claude Desktop. Reinicia Windsurf para aplicar.

~/.continue/config.json
{
  "mcpServers": [
    {
      "name": "vurb-ts",
      "command": "npx",
      "args": [
        "-y",
        "vurb.ts"
      ]
    }
  ]
}

Continue usa un array de objetos de servidor en lugar de un mapa.

~/.config/zed/settings.json
{
  "context_servers": {
    "vurb-ts": {
      "command": {
        "path": "npx",
        "args": [
          "-y",
          "vurb.ts"
        ]
      }
    }
  }
}

Añádelo a context_servers. Zed recarga en caliente al guardar.

claude mcp add vurb-ts -- npx -y vurb.ts

Un solo comando. Verifica con claude mcp list. Quita con claude mcp remove.

Casos de uso

Usos del mundo real: vurb.ts

Cómo construir un servidor MCP seguro ante PII con Vurb.ts

👤 Desarrolladores que construyen un MCP para un producto con datos de clientes ⏱ ~60 min advanced

Cuándo usarlo: Estás envolviendo un sistema interno y debes garantizar que el PII nunca salga del perímetro.

Requisitos previos
  • Node 20+ y npm — Estándar
  • Vurb CLI — npm install -g @vurb/cli
Flujo
  1. Andamio
    Ejecuta vurb create customer-mcp con el vector prisma y abre la carpeta src/tools/ generada.✓ Copiado
    → Proyecto andamiado
  2. Declara un presentador
    Añade un presentador para el modelo Customer que expone solo id, plan y country. Todo lo demás (email, phone, address) se elimina físicamente.✓ Copiado
    → El LLM solo ve campos declarados
  3. Añade redacción de PII en campos de texto libre
    En el campo body del modelo Note, aplica .redactPII() en Late Guillotine.✓ Copiado
    → Emails/teléfonos dentro de cuerpos de notas enmascarados
  4. Prueba con el pipeline en memoria
    Escribe un caso @vurb/testing que introduzca un registro con PII falso y verifique que la salida esté redactada.✓ Copiado
    → Prueba pasa

Resultado: Un servidor MCP donde la fuga de PII es una imposibilidad en tiempo de compilación/ejecución, no un punto de revisión de código.

Errores comunes
  • La expresión regular de redacción nunca captura todo — Combina la lista blanca del presentador con redacción — no dependas solo de la redacción
  • Desviación del presentador con el tiempo — Aserción CI: instantánea de la salida del presentador para modelos clave; rechaza PRs que la cambien sin revisión

Fuerza el orden correcto de llamadas de herramientas con puertas de estado FSM

👤 Autores MCP que construyen flujos de múltiples pasos (reserva, pago) ⏱ ~30 min intermediate

Cuándo usarlo: Tienes herramientas que deben ejecutarse en un orden específico; quieres que el framework lo refuerce.

Flujo
  1. Define la máquina de estados
    Crea un FSM para el checkout: carrito → cotización → pago → confirmar. Cada herramienta controlada por el estado.✓ Copiado
    → Archivo de definición de estado
  2. Adjunta puertas a herramientas
    La herramienta confirm_order solo se permite desde state=payment.✓ Copiado
    → Llamar fuera de orden devuelve un error de puerta

Resultado: Los agentes no pueden saltar físicamente pasos previos.

Despliega un MCP Vurb a Cloudflare Workers o Vinkius Edge

👤 Constructores que quieren MCPs globales de baja latencia ⏱ ~20 min intermediate

Cuándo usarlo: Quieres que el MCP esté cerca de los usuarios, no en una sola región.

Flujo
  1. Elige el destino
    vurb deploy --target cloudflare✓ Copiado
    → Worker publicado
  2. Prueba de humo
    Lista herramientas vía la URL desplegada.✓ Copiado
    → Lista de herramientas devuelta desde CF

Resultado: Un servidor MCP distribuido globalmente.

Combinaciones

Combínalo con otros MCPs para multiplicar por 10

vurb-ts + jetski

Construye con Vurb; opera tras Jetski para OAuth + analytics

Genera un MCP Vurb y despliega tras Jetski para que los usuarios se autentiquen vía OAuth y obtenemos analytics de prompts.✓ Copiado
vurb-ts + proxy-2

Agrega tu MCP Vurb junto con MCPs de terceros vía mcp-proxy

Registra el MCP Vurb desplegado como upstream de mcp-proxy para que los compañeros lo vean junto a github/sentry.✓ Copiado

Herramientas

Lo que expone este MCP

HerramientaEntradasCuándo llamarCoste
(framework) Escribes herramientas; el framework las expone N/A — Vurb.ts es para crear servidores MCP, no un MCP en tiempo de ejecución para llamar n/a

Coste y límites

Lo que cuesta ejecutarlo

Cuota de API
El framework mismo no tiene costo de ejecución; los costos de alojamiento dependen del destino de despliegue
Tokens por llamada
Varía según las herramientas que construyas
Monetario
Gratis, código abierto
Consejo
Los despliegues edge son baratos (la capa gratuita de CF Workers maneja tráfico modesto).

Seguridad

Permisos, secretos, alcance

Almacenamiento de credenciales: Lo que tus herramientas desplegadas necesiten; el framework proporciona hooks de middleware para inyección
Salida de datos: Depende enteramente de las herramientas que escribas

Resolución de problemas

Errores comunes y soluciones

Archivo de herramienta añadido pero no aparece

El router basado en archivos vigila src/tools/; reinicia el servidor de desarrollo o verifica el patrón de exportación.

Verificar: vurb dev logs
El presentador elimina demasiado

Asegúrate de que los campos del presentador coincidan con el schema; añade campos faltantes explícitamente.

Verificar: Prueba unitaria de salida del presentador
Error de puerta de estado en una llamada válida

Verifica transiciones FSM — el estado de origen podría no coincidir. Imprime estado actual en middleware.

Verificar: Añade un log en middleware de estado

Alternativas

vurb.ts vs otros

AlternativaCuándo usarlaContrapartida
FastMCP (TypeScript)Quieres el mínimo boilerplate, sin protecciones opinadasSin características PII/FSM — las añades por tu cuenta
@modelcontextprotocol/sdkQuieres control del protocolo crudoTrae tu propia autenticación, redacción, pruebas
volcano-agent-sdkEstás construyendo agentes que *consumen* MCPs, no servidoresRol diferente en el stack

Más

Recursos

📖 Lee el README oficial en GitHub

🐙 Ver issues abiertas

🔍 Ver todos los 400+ servidores MCP y Skills