You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: CHANGELOG.md
+52Lines changed: 52 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -5,6 +5,58 @@ All notable changes to this project will be documented in this file.
5
5
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
6
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
8
+
## [3.17.0] - 2026-04-21
9
+
10
+
### Added
11
+
12
+
#### `@vurb/yaml` — Declarative MCP Server Engine (new package)
13
+
14
+
A new first-class package that lets developers define complete MCP servers in a single `vurb.yaml` file — zero TypeScript required. Connections, tools, resources, prompts, and secrets are declared as YAML, compiled at startup, and served as a fully compliant MCP server.
15
+
16
+
-**YAML Parser & Schema Validator** — Parses `vurb.yaml` manifests and validates against a strict Zod schema. Detects missing fields, invalid types, and unsupported versions with structured `VurbYamlError` containing `.details[]` arrays for actionable multi-line error messages.
17
+
-**Cross-Reference Validator** — Ensures referential integrity: tools referencing nonexistent connections, `${SECRETS.X}` tokens referencing undeclared secrets, and resources referencing missing connections are all caught at parse time with specific error messages naming the offending tool/connection/secret.
18
+
-**Connection Resolver** — Resolves named YAML connections into fetch-ready HTTP configurations with interpolated base URLs and auth headers. Supports `bearer`, `basic`, `custom_header`, and `none` auth types with secret interpolation.
19
+
-**Tool Compiler** — Compiles declarative tool definitions into `CompiledTool` objects with JSON Schema input, HTTP execution config (method, path, query, body templates), and the full tool trichotomy (`description`, `instruction`, `rules`). Supports MCP tool annotations (`readOnlyHint`, `openWorldHint`, etc.).
20
+
-**Resource Compiler** — Compiles resources with three execution strategies: `static` (inline content), `fetch` (arbitrary URL), and `connection` (named connection + path). Supports URI templates and response transforms.
21
+
-**Prompt Compiler** — Compiles prompts with typed arguments and `{{param}}` template hydration for `prompts/get` responses.
22
+
-**Response Transformer** — JMESPath-inspired dot-path extraction (`data.items[].{id, name}`) and multi-field projection for filtering verbose API responses down to LLM-relevant data.
23
+
-**Secret Interpolator** — Resolves `${SECRETS.KEY}` tokens from `process.env` (open-source) or the Vinkius encrypted vault (enterprise). Missing required secrets throw actionable errors; optional secrets emit `⚠` warnings.
-**Basic Tool Executor** — Executes compiled tools via plain `fetch()` with `{{param}}` interpolation for path, query, and body templates. Built-in variables: `__NOW_ISO__`, `__NOW_EPOCH__`, `__REQUEST_ID__`. Returns MCP-compliant `ToolCallResult` with `isError` flag.
26
+
-**YAML MCP Server** — `createYamlMcpServer()` creates a real MCP SDK `Server` and registers all compiled tools, resources, and prompts as live MCP handlers. Supports dual transport: **stdio** (default, for Cursor/Claude Desktop) and **Streamable HTTP** (for browser-based dev tools). HTTP transport includes CORS, session management, and graceful shutdown.
27
+
-**DX-First Error Handling** — Every pipeline step (`parse → secrets → connections → tools → resources → prompts`) is wrapped with context-rich `try/catch` blocks producing `VurbYamlError` with structured `.details[]` arrays. Runtime MCP handlers (`resources/read`, `prompts/get`) return actionable error messages listing available resources/prompts and required arguments instead of crashing the server.
28
+
29
+
#### `@vurb/core` — YAML CLI Plugin Architecture
30
+
31
+
-**`vurb yaml` command group** — The core CLI now dynamically imports `@vurb/yaml` at runtime when the `yaml` subcommand is used. If the package is not installed, a helpful error message with `npm install @vurb/yaml` is shown.
32
+
-**`vurb yaml validate [file]`** — Validates a `vurb.yaml` manifest and displays server metadata, tool count, resource count, and tool list on success. On failure, displays structured error details.
33
+
-**`vurb yaml dev [file]`** — Starts a local MCP dev server from a YAML manifest. Supports `--transport stdio|http` and `--port` options.
34
+
-**Command parser guard** — Fixed `parseArgs` to only accept the first command token, preventing `vurb yaml validate` from being incorrectly parsed as `validate`.
35
+
36
+
#### Documentation
37
+
38
+
-**`packages/yaml/README.md`** — Production-grade documentation covering the full YAML spec, CLI usage (`vurb yaml validate` / `vurb yaml dev`), programmatic API, architecture overview, and the open-core strategy.
39
+
40
+
### Changed
41
+
42
+
-**All `@vurb/*` cross-dependencies updated to `^3.17.0`** — All 14 satellite packages now reference `@vurb/core: ^3.17.0` in their dependencies, ensuring consistent resolution across the monorepo.
43
+
44
+
### Test Suite
45
+
46
+
-**54 new tests** in `packages/yaml/test/yaml-engine.test.ts` covering:
Copy file name to clipboardExpand all lines: packages/aws/package.json
+2-2Lines changed: 2 additions & 2 deletions
Original file line number
Diff line number
Diff line change
@@ -1,6 +1,6 @@
1
1
{
2
2
"name": "@vurb/aws",
3
-
"version": "3.16.0",
3
+
"version": "3.17.0",
4
4
"description": "AWS Lambda & Step Functions connector for Vurb. Auto-discovers tagged resources and produces GroupedToolBuilders — so AI agents can invoke your cloud functions natively.",
Copy file name to clipboardExpand all lines: packages/cloudflare/package.json
+2-2Lines changed: 2 additions & 2 deletions
Original file line number
Diff line number
Diff line change
@@ -1,6 +1,6 @@
1
1
{
2
2
"name": "@vurb/cloudflare",
3
-
"version": "3.16.0",
3
+
"version": "3.17.0",
4
4
"description": "Cloudflare Workers adapter for Vurb. Deploys your MCP server to the edge with zero config — stateless JSON-RPC, cold-start caching, and native env injection.",
0 commit comments