vurb.ts

TypeScript framework for building production MCP servers. Fluent tool API, FSM gating, presenters, semantic routing, cache hints, Zod validation. Model-View-Agent architecture for the Model Context Protocol.

251
Stars
22
Forks
TypeScript
语言
2026/8/23
添加时间

⚠️ 第三方软件声明

本 Skill 为第三方开源软件,独立托管于 GitHub。SkillTip 仅为信息目录,不控制或维护底层仓库。所显示的安全检查为自动化且范围有限,安装前请自行审查源码。

阅读服务条款

安装

添加到你的 Claude Code skills 目录:

# Add to your Claude Code skills
git clone https://github.com/vinkius-labs/vurb.ts

快速入门

使用 vurb.ts 等 Skills 的指南。

安全报告

已验证

上次扫描:—

{
  "status": "PASSED",
  "issues": []
}

README.md

MCP FUSION

The TypeScript framework for secure, MCP 2.0-native servers.

npm version Downloads TypeScript MCP 2.0 License llms.txt

MCP Fusion is a TypeScript framework that enforces security at the architectural level of every MCP server. Raw data never reaches the LLM without passing through a typed egress firewall. Tools are physically removed from the agent's namespace when the workflow state forbids them. Every behavioral surface is hashed, locked, and auditable in version control.

The framework ships with a SKILL.md — a machine-readable architectural contract. AI coding agents read the Skill and produce correct, governed servers on the first pass.


MCP 2.0 (2026-07-28) — Full Compliance

MCP Fusion is 100% compatible with MCP 2.0 (protocol revision 2026-07-28). Every feature the spec defines is implemented or handled via the MCP SDK v2. Every feature the spec deprecates is deprecated in MCP Fusion.

Implemented MCP 2.0 Features

FeatureStatusHow
Stateless protocoltransport: 'stateless' — per-request serving, no sessions, no initialize handshake, Mcp-Method/Mcp-Name header routing
Multi Round-Trip Requests (MRTR)requireInput() + readInput() — native InputRequiredResult / resultType: "input_required" model
Request State SealingrequestStateKey — HMAC-SHA256 sealed state for multi-round elicitation (SEP-2322)
Structured ContentsuccessStructured() + structuredContent field on ToolResponse
Output SchemaoutputSchema in compileToolDefinition() wire format
List CachingttlMs / cacheScope directly on result root (SEP-2549) — public / private scope
Paginationcursor / nextCursor on prompts/list (extensible to all list ops)
server/discoverHandled by MCP SDK v2 Server
resultTypeHandled by MCP SDK v2 Server ("complete" / "input_required")
Per-request _metaio.modelcontextprotocol/* fields handled by MCP SDK v2
resources/templates/listURI template resources with pagination
subscriptions/listenMCP 2.0 stream-based subscription pattern with filter + acknowledgment
x-mcp-header.withHeaderParam() on FluentToolBuilder — parameter mirroring to HTTP headers
title & iconsTool.title, BaseModel.title, Icon domain model, createIcon()
resource_linkContent type in tool results and prompt messages
JSON Schema 2020-12Default dialect enforced by MCP SDK v2
Error codes (-32020-32022)HeaderMismatch, MissingRequiredClientCapability, UnsupportedProtocolVersion
Protocol versionDefaults to 2026-07-28 in all server metadata (Server Card, introspection)

Deprecated Features (mirrored from MCP 2.0)

All features deprecated by MCP 2.0 (SEP-2577 / SEP-2596) are deprecated in MCP Fusion with @deprecated markers and migration guidance. They remain functional during the deprecation window (earliest removal: 2027-07-28).

Deprecated FeatureMigration Path
RootsPass directories/files via tool parameters, resource URIs, or server configuration
SamplingIntegrate directly with LLM provider APIs
Logging (notifications/message)Log to stderr for stdio; use OpenTelemetry (TelemetrySink / DebugObserver)
Dynamic Client RegistrationClient ID Metadata Documents
HTTP+SSE transportStreamable HTTP (transport: 'http') or stateless (transport: 'stateless')
includeContext valuesOmit the field or use "none"

📄 Deprecation Registry — full compliance statement and migration guide.


The Skill — AI Writes the Server

MCP Fusion includes a SKILL.md that encodes the entire MVA architecture, security patterns, and governance rules into a format AI coding agents consume directly.

Open your project in Cursor, Claude Code, GitHub Copilot, or Windsurf and describe what you need:

"Build an MCP server for patient records with Prisma. Redact SSN and diagnosis from LLM output. Gate discharge tools until attending physician signs off."

The agent reads the Skill. It produces defineModel() declarations with m.hidden() for sensitive fields, definePresenter() with .redactPII(['*.ssn', '*.diagnosis']) for DLP compliance, FSM state gating via .bindState() for workflow enforcement, and file-based routing under src/tools/. You review the PR.

The Skill is not documentation. It is the security contract. Every server the AI produces inherits the governance stack because the Skill encodes Presenters, state machines, and lockfile generation as mandatory structural patterns.

📄 SKILL.md · llms.txt (complete API reference for LLM consumption)


Security Architecture

Egress Firewall — Presenter

The Presenter validates every response through a Zod schema compiled from defineModel(). Undeclared fields are stripped in RAM before serialization. PII is redacted via V8-optimized fast-redact compiled functions. Rules travel with data, not in the system prompt. The Late Guillotine pattern applies redaction after UI blocks render — charts and suggestions always see full data, the wire never does.

const PatientPresenter = createPresenter('Patient')
    .schema(PatientModel)
    .redactPII(['*.ssn', '*.diagnosis'])
    .rules((p) => [
        p.status === 'critical' ? 'PRIORITY: Patient is critical.' : null,
    ])
    .suggest((p) => p.status === 'admitted'
        ? [suggest('ward.discharge', 'Begin discharge protocol')]
        : []);

The Presenter also runs a PromptFirewall — an LLM-as-Judge that evaluates dynamically generated system rules for prompt injection before they reach the agent. Fail-closed by default.

State Gate — FSM

Tools bound to FSM states are physically removed from tools/list when the current state does not match. The LLM cannot call what does not exist in its namespace. Powered by XState v5 with manual fallback when XState is not installed.

const gate = f.fsm({
    id: 'discharge', initial: 'admitted',
    states: {
        admitted:    { on: { PHYSICIAN_SIGNOFF: 'approved' } },
        approved:    { on: { DISCHARGE: 'discharged' } },
        discharged:  { type: 'final' },
    },
});

export default f.mutation('ward.discharge')
    .bindState('approved', 'DISCHARGE')
    .handle(async (input, ctx) => ctx.db.patients.discharge(input.id));
StateVisible tools
admittedward.view, ward.update_vitals
approvedward.discharge, ward.view
dischargedward.view

Serverless-compatible: FsmStateStore persists state to Redis/KV across request boundaries. Each request gets an isolated gate.clone().

Governance Stack

Eight introspection modules that make behavioral changes visible and auditable:

ModuleWhat it does
ToolContractMaterializes the complete behavioral surface of each tool
BehaviorDigestSHA-256 hash of the behavioral surface
CapabilityLockfilemcpfusion.lock — git-diffable behavioral snapshot, CI gate via fusion lock --check
CryptoAttestationHMAC-SHA256 runtime verification — fail-fast if behavioral digest drifts
ContractDiffPer-field diff between lockfile versions
EntitlementScannerStatic analysis of handler source for I/O capabilities (fs, network, subprocess, eval) with evasion heuristics
SemanticProbeLLM-as-Judge for detecting semantic drift in handler output
TokenEconomicsContext window inflation risk profiling

Sandbox

SandboxEngine executes LLM-provided JavaScript in a sealed V8 isolate. No process, require, fs, or network access. One isolate per engine, fresh empty context per execution. Memory-limited, timeout-enforced, output-capped, abort-signal-compatible.


Three Pathways

1. YAML — Zero Code

version: "1.0"
server:
  name: "github-tools"

connections:
  github:
    type: rest
    base_url: "https://api.github.com"
    auth:
      type: bearer
      token: "${SECRETS.GITHUB_TOKEN}"

tools:
  - name: search_repos
    description: "Search GitHub repositories"
    instruction: "Use for finding projects by topic or keyword."
    rules:
      - "Max 10 results per query"
    parameters:
      query: { type: string, required: true }
    execute:
      connection: github
      method: GET
      path: "/search/repositories"
      query: { q: "{{query}}", per_page: "10" }
    response:
      extract: ["items[].{full_name, description, stargazers_count, html_url}"]
mcpfusion yaml dev

2. Typed MVA — Full Control

export const InvoiceModel = defineModel('Invoice', m => {
    m.casts({
        id:           m.string(),
        amount_cents: m.number('CRITICAL: in CENTS. Divide by 100 for display.'),
        status:       m.enum('Status', ['paid', 'pending', 'overdue']),
    });
    m.hidden(['password_hash', 'internal_margin']);
});

export const InvoicePresenter = definePresenter({
    name: 'Invoice',
    schema: InvoiceModel,
    suggestActions: (inv) => inv.status === 'pending'
        ? [{ tool: 'billing.pay', reason: 'Process payment', args: { id: inv.id } }]
        : [],
});

export default f.query('billing.get_invoice')
    .describe('Get an invoice by ID')
    .withString('id', 'Invoice ID')
    .returns(InvoicePresenter)
    .handle(async (input, ctx) => ctx.db.invoices.findUnique({ where: { id: input.id } }));

3. FSM — Deterministic Workflow Enforcement

State-gated tool discovery. Tools appear and disappear based on the current state.


Get Started

npx @mcpfusion/core create my-server
cd my-server && npm run dev

File-based routing — drop a file, restart, and it's a live MCP tool:

src/tools/
├── billing/
│   ├── get_invoice.ts  → billing.get_invoice
│   └── pay.ts          → billing.pay
└── users/
    └── list.ts         → users.list

Deploy

mcpfusion deploy                  # Vinkius Edge (V8 Isolate)
vercel deploy                # Vercel Functions
wrangler deploy              # Cloudflare Workers

Scaffold

mcpfusion create my-server                           # Vanilla
mcpfusion create my-api --vector prisma              # Prisma + field-level security
mcpfusion create ops-bridge --vector n8n             # n8n workflow bridge
mcpfusion create petstore --vector openapi           # OpenAPI → MCP
mcpfusion create my-server --target vercel --yes     # Vercel Functions
mcpfusion create my-server --target cloudflare --yes # Cloudflare Workers

Ecosystem

Core

PackagePurpose
@mcpfusion/coreFramework core — Presenters, Fluent API, middleware, routing, governance
@mcpfusion/yamlDeclarative YAML engine
@mcpfusion/swarmMulti-agent orchestration — HMAC-SHA256 delegation, namespace isolation, W3C tracing
@mcpfusion/a2aA2A Protocol Bridge — Agent Cards, task delegation
@mcpfusion/skillsProgressive SKILL.md disclosure for agents
@mcpfusion/testingIn-memory MVA pipeline testing
@mcpfusion/inspectorReal-time TUI dashboard

Adapters

PackageTarget
@mcpfusion/vercelVercel Functions (Edge / Node.js)
@mcpfusion/cloudflareCloudflare Workers

Generators & Connectors

PackagePurpose
@mcpfusion/openapi-genOpenAPI 3.x / Swagger 2.0 → MCP tools
@mcpfusion/prisma-genPrisma schema → CRUD tools with field-level security
@mcpfusion/n8nn8n workflows → MCP tools
@mcpfusion/awsAWS Lambda & Step Functions → MCP tools

Security & Auth

PackagePurpose
@mcpfusion/oauthRFC 8628 Device Flow
@mcpfusion/jwtJWT verification — HS256 / RS256 / ES256 + JWKS
@mcpfusion/api-keyAPI key validation with timing-safe comparison

Ship Your MCP Server to the Same Infrastructure — Free

Your server runs alongside Salesforce, Stripe, OpenAI, and 4,000+ others. V8 sandbox isolation, DLP, audit trails, and kill switch — all included. No credit card required.

  1. Sign up at vinkius.com
  2. Create an App Connector in the dashboard
  3. Copy your deploy token from the connector settings
  4. Build your MCP server with MCP Fusion
  5. Deploy
mcpfusion deploy

Your MCP server is live.

Powering Vinkius — 4,000+ MCP Servers in Production

Every MCP server on vinkius.com is built with MCP Fusion.

Salesforce (12 tools), Slack (8 tools), Stripe, OpenAI, Gmail, WhatsApp Business, Instagram, PayPal, CrowdStrike Falcon, SAP S/4HANA, Workday, DocuSign, Zendesk, Okta, Twilio, Tableau, HubSpot, Shopify, WooCommerce, Airbnb, Tesla Fleet API, NVIDIA AI, Mistral AI, Anthropic, Box, Meta Ads, X Ads, Reddit, Notion, Supabase, Pinecone, Datadog, Sentry — and thousands more.

Four verticals. 36+ subcategories. All governed.

AI Stack — Cognition & RAG, Code Execution, Databases, Observability, DevOps, AI Models, Agent Coordination, Security, Payments & Infra.

Enterprise — CRM, ERP, HR, Legal & Compliance, Customer Support, Marketing, BI & Analytics, Identity & IAM, Communications, E-Commerce, Accounting, Project Management.

Industries — Hospitality, Healthcare, Energy & Commodities, Construction, Real Estate, Agriculture, Wine & Spirits, Education, Logistics, Insurance, Fitness, Travel.

World Data — Economy & Finance, Central Banks, Securities & Markets, Weather & Climate, Demographics, Space & Astronomy, Health & Medicine, Environment, Energy, Food & Nutrition, Government, Trade & Labor.

Every server runs inside V8 isolate sandboxes on AWS. Ed25519 signed audit chains. Sub-40ms cold starts. DLP redaction on every response. Kill switch for instant shutdown. Every tool call logged and auditable.

vinkius.com/discover — Browse the catalog. vinkius.com/developers — Build your own with MCP Fusion.

Documentation

mcpfusion.vinkius.com · llms.txt · SKILL.md

Contributing

See CONTRIBUTING.md for development setup and guidelines.

Security

See SECURITY.md for reporting vulnerabilities.

License

Apache 2.0

常见问题

What is vurb.ts?

vurb.ts is an open-source ai agents skill for AI coding assistants such as Claude Code, Codex CLI, and ChatGPT, built by vinkius-labs. TypeScript framework for building production MCP servers. Fluent tool API, FSM gating, presenters, semantic routing, cache hints, Zod validation. Model-View-Agent architecture for the Model Context Protocol. It has 251 GitHub stars.

Is vurb.ts safe to use?

vurb.ts returned warnings in SkillsLLM's automated security scan. It has no critical vulnerabilities, but review the flagged issues in the Security Report section before adding it to your workflow.

How do I install vurb.ts?

Clone the repository with "git clone https://github.com/vinkius-labs/vurb.ts" and add it to your Claude Code skills directory (see the Installation section above).

What programming language is vurb.ts written in?

vurb.ts is primarily written in TypeScript. It is open-source under vinkius-labs on GitHub, so you can review or fork the full source.

Are there alternatives to vurb.ts?

Yes. SkillsLLM lists many other AI Agents skills you can browse and compare side by side. Open the AI Agents category from the badge at the top of this page, or use the Related Skills and comparison links further down to weigh vurb.ts against similar tools.

评论 (0)

暂无评论,成为第一个分享想法的人!

ECC

by affaan-m

10

The agent harness performance optimization system. Skills, instincts, memory, security, and research-first development for Claude Code, Codex, Opencode, Cursor and beyond.

242,21936,702JavaScript
AI 智能体ai-agentsanthropicclaude-code
查看详情
15

An agentic skills framework & software development methodology that works.

234,96620,863Shell
AI 智能体ai-agentsbrainstorming
查看详情

hermes-agent

by NousResearch

10

The agent that grows with you

234,43747,175Python
AI 智能体ai-agentsagent-orchestration
查看详情

The agent harness performance optimization system. Skills, instincts, memory, security, and research-first development for Claude Code, Codex, Opencode, Cursor and beyond.

185,94028,768JavaScript
AI 智能体ai-agentsanthropicclaude-code
查看详情

cc-switch

by farion1231

3

A cross-platform desktop All-in-One assistant for Claude Code, Codex, OpenCode, OpenClaw, Grok Build & Hermes Agent. Only official website: ccswitch.io

128,8688,826Rust
AI 智能体claude-codeai-tools
查看详情

claude-code

by anthropics

Claude Code is an agentic coding tool that lives in your terminal, understands your codebase, and helps you code faster by executing routine tasks, explaining complex code, and handling git workflows - all through natural language commands.

120,03119,897Shell
AI 智能体
查看详情

开发者还喜欢

基于喜欢此 Skill 的开发者投票和收藏

ECC

by affaan-m

10

The agent harness performance optimization system. Skills, instincts, memory, security, and research-first development for Claude Code, Codex, Opencode, Cursor and beyond.

242,21936,702JavaScript
AI 智能体ai-agentsanthropicclaude-code
查看详情
15

An agentic skills framework & software development methodology that works.

234,96620,863Shell
AI 智能体ai-agentsbrainstorming
查看详情

hermes-agent

by NousResearch

10

The agent that grows with you

234,43747,175Python
AI 智能体ai-agentsagent-orchestration
查看详情

n8n

by n8n-io

12

Fair-code workflow automation platform with native AI capabilities. Combine visual building with custom code, self-host or cloud, 400+ integrations.

201,88160,308TypeScript
MCP 服务器apisai-tools
查看详情

The agent harness performance optimization system. Skills, instincts, memory, security, and research-first development for Claude Code, Codex, Opencode, Cursor and beyond.

185,94028,768JavaScript
AI 智能体ai-agentsanthropicclaude-code
查看详情

cc-switch

by farion1231

3

A cross-platform desktop All-in-One assistant for Claude Code, Codex, OpenCode, OpenClaw, Grok Build & Hermes Agent. Only official website: ccswitch.io

128,8688,826Rust
AI 智能体claude-codeai-tools
查看详情