/ Verzeichnis / Playground / vurb.ts
● Community vinkius-labs ⚡ Sofort

vurb.ts

von 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.

Warum nutzen

Hauptfunktionen

Live-Demo

In der Praxis

vurb-ts.replay ▶ bereit
0/0

Installieren

Wählen Sie Ihren 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
    }
  }
}

Öffne Claude Desktop → Settings → Developer → Edit Config. Nach dem Speichern neu starten.

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

Cursor nutzt das gleiche mcpServers-Schema wie Claude Desktop. Projektkonfiguration schlägt die globale.

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

Klicken Sie auf das MCP-Servers-Symbol in der Cline-Seitenleiste, dann "Edit Configuration".

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

Gleiche Struktur wie Claude Desktop. Windsurf neu starten zum Übernehmen.

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

Continue nutzt ein Array von Serverobjekten statt einer Map.

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

In context_servers hinzufügen. Zed lädt beim Speichern neu.

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

Einzeiler. Prüfen mit claude mcp list. Entfernen mit claude mcp remove.

Anwendungsfälle

Praxisnahe Nutzung: 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

Wann einsetzen: You're wrapping an internal system and must guarantee PII never leaves the perimeter.

Voraussetzungen
  • Node 20+ and npm — Standard
  • Vurb CLI — npm install -g @vurb/cli
Ablauf
  1. Scaffold
    Run vurb create customer-mcp with the prisma vector, and open the generated src/tools/ folder.✓ Kopiert
    → 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.✓ Kopiert
    → 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.✓ Kopiert
    → 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.✓ Kopiert
    → Test passes

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

Fallstricke
  • 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

Wann einsetzen: You have tools that must run in a specific order; you want the framework to enforce it.

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

Ergebnis: 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

Wann einsetzen: You want the MCP close to users, not in a single region.

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

Ergebnis: A globally distributed MCP server.

Kombinationen

Mit anderen MCPs für 10-fache Wirkung

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.✓ Kopiert
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.✓ Kopiert

Werkzeuge

Was dieses MCP bereitstellt

WerkzeugEingabenWann aufrufenKosten
(framework) You write tools; framework exposes them N/A — Vurb.ts is for authoring MCP servers, not a runtime MCP to call n/a

Kosten & Limits

Was der Betrieb kostet

API-Kontingent
Framework itself has no runtime cost; hosting costs depend on deploy target
Tokens pro Aufruf
Varies by the tools you build
Kosten in €
Free, open source
Tipp
Edge deploys are cheap (CF Workers free tier handles modest traffic).

Sicherheit

Rechte, Secrets, Reichweite

Credential-Speicherung: Whatever your deployed tools need; framework provides middleware hooks for injection
Datenabfluss: Depends entirely on the tools you write

Fehlerbehebung

Häufige Fehler und Lösungen

Tool file added but not showing up

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

Prüfen: vurb dev logs
Presenter strips too much

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

Prüfen: Unit test presenter output
State gate error on a valid call

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

Prüfen: Add a log in state middleware

Alternativen

vurb.ts vs. andere

AlternativeWann stattdessenKompromiss
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

Mehr

Ressourcen

📖 Offizielle README auf GitHub lesen

🐙 Offene Issues ansehen

🔍 Alle 400+ MCP-Server und Skills durchsuchen