/ Annuaire / Playground / vurb.ts
● Communauté vinkius-labs ⚡ Instantané

vurb.ts

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

A TypeScript framework for building MCP servers with type-safe tools, PII redaction, and FSM state gates — think Express.js for MCP.

Vurb.ts is a framework, not an MCP server. It's for developers building their own MCP servers. Ships with a presenter layer that strips undeclared DB columns, PII redaction at a 'Late Guillotine' stage, FSM state gates preventing out-of-order tool calls, and a scaffolding CLI that supports Prisma, n8n, and OpenAPI vectors.

Pourquoi l'utiliser

Fonctionnalités clés

Démo en direct

Aperçu en pratique

vurb-ts.replay ▶ prêt
0/0

Installer

Choisissez votre client

~/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
    }
  }
}

Ouvrez Claude Desktop → Settings → Developer → Edit Config. Redémarrez après avoir enregistré.

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

Cursor utilise le même schéma mcpServers que Claude Desktop. La config projet l'emporte sur la globale.

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

Cliquez sur l'icône MCP Servers dans la barre latérale Cline, puis "Edit Configuration".

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

Même format que Claude Desktop. Redémarrez Windsurf pour appliquer.

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

Continue utilise un tableau d'objets serveur plutôt qu'une map.

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

Ajoutez dans context_servers. Zed recharge à chaud à la sauvegarde.

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

Une seule ligne. Vérifiez avec claude mcp list. Supprimez avec claude mcp remove.

Cas d'usage

Usages concrets : vurb.ts

How to build a PII-safe MCP server with Vurb.ts

👤 Developers building an MCP for a product with customer data ⏱ ~60 min advanced

Quand l'utiliser : You're wrapping an internal system and must guarantee PII never leaves the perimeter.

Prérequis
  • Node 20+ and npm — Standard
  • Vurb CLI — npm install -g @vurb/cli
Déroulement
  1. Scaffold
    Run vurb create customer-mcp with the prisma vector, and open the generated src/tools/ folder.✓ Copié
    → Scaffolded project
  2. Declare a presenter
    Add a presenter for the Customer model that exposes only id, plan, and country. Everything else (email, phone, address) is physically stripped.✓ Copié
    → LLM sees only declared fields
  3. Add PII redaction on free-text fields
    On the Note model's body field, apply .redactPII() at the Late Guillotine.✓ Copié
    → Emails/phones inside note bodies masked
  4. Test with the in-memory pipeline
    Write a @vurb/testing case that feeds a record with fake PII and asserts the output is redacted.✓ Copié
    → Test passes

Résultat : An MCP server where PII leakage is a compile/runtime impossibility, not a code review item.

Pièges
  • Redaction regex never catches everything — Combine presenter whitelist + redaction — don't rely on redaction alone
  • Presenter drift over time — CI assertion: snapshot presenter output for key models; fail PRs that change it without review

Enforce correct tool-call order with FSM state gates

👤 MCP authors building multi-step flows (booking, checkout) ⏱ ~30 min intermediate

Quand l'utiliser : You have tools that must run in a specific order; you want the framework to enforce it.

Déroulement
  1. Define state machine
    Create an FSM for checkout: cart → quote → payment → confirm. Each tool gated by the state.✓ Copié
    → State definition file
  2. Attach gates to tools
    Tool confirm_order only allowed from state=payment.✓ Copié
    → Calling out-of-order returns a gate error

Résultat : Agents physically cannot skip prerequisite steps.

Deploy a Vurb MCP to Cloudflare Workers or Vinkius Edge

👤 Builders wanting global low-latency MCPs ⏱ ~20 min intermediate

Quand l'utiliser : You want the MCP close to users, not in a single region.

Déroulement
  1. Choose target
    vurb deploy --target cloudflare✓ Copié
    → Worker published
  2. Smoke test
    List tools via the deployed URL.✓ Copié
    → Tool list returns from CF

Résultat : A globally distributed MCP server.

Combinaisons

Associez-le à d'autres MCPs pour un effet X10

vurb-ts + jetski

Build with Vurb; operate behind Jetski for OAuth + analytics

Generate a Vurb MCP and deploy behind Jetski so users authenticate via OAuth and we get prompt analytics.✓ Copié
vurb-ts + proxy-2

Aggregate your Vurb MCP alongside third-party MCPs via mcp-proxy

Register the deployed Vurb MCP as an upstream of mcp-proxy so teammates see it alongside github/sentry.✓ Copié

Outils

Ce que ce MCP expose

OutilEntréesQuand appelerCoût
(framework) You write tools; framework exposes them N/A — Vurb.ts is for authoring MCP servers, not a runtime MCP to call n/a

Coût et limites

Coût d'exécution

Quota d'API
Framework itself has no runtime cost; hosting costs depend on deploy target
Tokens par appel
Varies by the tools you build
Monétaire
Free, open source
Astuce
Edge deploys are cheap (CF Workers free tier handles modest traffic).

Sécurité

Permissions, secrets, portée

Stockage des identifiants : Whatever your deployed tools need; framework provides middleware hooks for injection
Sortie de données : Depends entirely on the tools you write

Dépannage

Erreurs courantes et correctifs

Tool file added but not showing up

File-based router watches src/tools/; restart dev server or check the export pattern.

Vérifier : vurb dev logs
Presenter strips too much

Ensure presenter fields match the schema; add missing fields back explicitly.

Vérifier : Unit test presenter output
State gate error on a valid call

Check FSM transitions — source state might not match. Print current state in middleware.

Vérifier : Add a log in state middleware

Alternatives

vurb.ts vs autres

AlternativeQuand l'utiliserCompromis
FastMCP (TypeScript)You want the minimum boilerplate, no opinionated guardsNo PII/FSM features — you bolt them on
@modelcontextprotocol/sdkYou want raw protocol controlBring your own auth, redaction, tests
volcano-agent-sdkYou're building agents that *consume* MCPs, not serversDifferent role in the stack

Plus

Ressources

📖 Lire le README officiel sur GitHub

🐙 Voir les issues ouvertes

🔍 Parcourir les 400+ serveurs MCP et Skills