Patch Changes
- 92163c9: Update the bundled MCP client SDK to 2.2.0 and its optional peer requirement. This includes upstream OAuth issuer binding, input-required result metadata preservation, and pagination fixes.
New features, improvements, and fixes in every stable xmcp release.
All releases on GitHub ↗318cc48: Add opt-in experimental.inferToolSchemas to generate tool input validation and descriptions from TypeScript types and JSDoc. Resolve imported types and re-exported handlers, refresh schemas during development, and preserve explicit schema overrides. Unsupported inputs fail compilation with actionable diagnostics.
Support property JSDoc constraints for numeric bounds, string lengths, regular expressions, and email/URI/UUID formats, with source-located errors for invalid tags. Emit compact string enums with actionable validation errors and native boolean schemas.
observability.enabled, with execution correlation, timing, safe outcomes, and HTTP trace context.xmcp/client entry with createClient and withClient for managed HTTP and STDIO connections. Register sampling, elicitation, and roots handlers before connecting, advertise only configured capabilities, and await cleanup after failed connections or scoped operations._meta["xmcp/tags"] and omit disabled components and their generated UI resources from registration, listings, and direct requests.image, audio, and embeddedResource content helpers, available from xmcp and xmcp/cloudflare. Add Node-only file-reading variants under xmcp/node.complete export on resource template files for URI argument suggestions, including asynchronous and context-dependent completion callbacks. Export ResourceCompletions for typed callback maps.ctx.method before accessing operation-specific parameters in existing tool middleware.mcp middleware export in src/middleware.ts for tool calls across HTTP, STDIO, and Node adapters. Middleware can inspect validated arguments, share request-local values with tools, transform results, or short-circuit execution.PromptMessage and GetPromptResult types for typed prompt handlers.set/get values and progress/log helpers to getRequestContext(). Progress is optional without a request token, and logging respects the SDK's capability and level checks.getRequestContext() for read-only access to client identity, HTTP request details, and the cancellation signal from tool handlers and their async helpers.e2c4a5b: Fix Vercel deployments logging Vercel Runtime Timeout Error: Task timed out after 300 seconds on every cold start. The build copied dist/http.js into the function, and that entry starts a server of its own and exports nothing. Vercel's Node launcher fell back to serving the port the entry listened on, and the listening socket kept the instance's event loop alive: the invocation that booted the server never settled and was killed once the function's maximum duration was reached, even though the response had already been sent in milliseconds. The instance died with it, so the next request cold started and repeated the cycle.
--vercel builds now use a runtime that exports a request handler and never listens, so the platform owns the server and each invocation ends with its response. Standalone (dist/http.js), adapter, and Cloudflare builds are unchanged.
No release notes provided.
xmcp build --cf / xmcp dev --cf failing with Module not found: Can't resolve '.../node_modules/xmcp/src/runtime/platforms/cloudflare/worker.ts' since src/ stopped shipping in the published package (0.7.1). The Cloudflare worker runtime is now prebuilt into dist/runtime/cloudflare-worker.js like the other runtimes, and the compiler uses that artifact as the --cf entry instead of bundling xmcp's TypeScript source from node_modules.extra.sample() so tool handlers can request LLM completions from the connected client via MCP sampling (sampling/createMessage), mirroring extra.elicit(). Supports text/image/audio messages, systemPrompt, maxTokens, modelPreferences, temperature, stopSequences, includeContext, and metadata, and exports the SampleRequest/SampleResult types. The tools/toolChoice sampling loop and task-augmented sampling are rejected with a clear error until the client tool-call flow is wired.@modelcontextprotocol/server and @modelcontextprotocol/client replace the v1 @modelcontextprotocol/sdk monolith as optional peers, bundled into the runtime).
server/discover, resultType, cacheable list results) natively, and 2025-era clients through the SDK's stateless fallback. HTTP stays strictly stateless — a fresh server per request on both paths.inputRequired, acceptedContent, inputResponse, and createRequestStateCodec are re-exported from xmcp, and tool extras expose inputResponses/requestState. Tools returning inputRequired(...) serve both eras (the legacy shim converts to real elicitation for 2025 clients). extra.elicit() keeps working on 2025-era connections and throws a descriptive error on 2026-07-28 requests.zod ^3.25.76 || ^4.0.0 peer range working without cross-instance zod composition.allowedHeaders now include the Mcp-Method and Mcp-Name headers required on Streamable HTTP POSTs by 2026-07-28.createHTTPClient, createSTDIOClient) negotiate the protocol version automatically (server/discover probe with fallback to initialize).HTTP_CORS_CONFIG like the other adapters.@xmcp-dev/compiler. Existing xmcp dev,
xmcp build, and xmcp create scripts continue to work through a small shim,
but projects must install the matching compiler version as a development
dependency: npm i -D @xmcp-dev/compiler@0.8.0.node_modules.xmcp/config export so compiler validation uses the config schema
from the installed runtime package.| Metric | Improvement |
|---|---|
| Runtime tarball | 51.08% smaller |
| Production install | 89.99% smaller |
| Production dependencies | 169 → 2 |
| Development install | 15.81% smaller |
| Generated HTTP artifact | 1.07% smaller |
Measures the split independently with the same HTTP fixture on xmcp@0.7.1 and xmcp@0.8.0: the production install falls 89.99% (101.12 MiB to 10.12 MiB), while the generated HTTP artifact remains nearly flat (-1.07%).
src in the published package. Every entry point in main,
types, bin, exports, and typesVersions resolves into dist, and no
source maps reference src, so the directory was dead weight in the tarball:
223 files down to 71./.well-known/mcp/server-card.json, fix stateless HTTP handling of repeated
clientInfo headers, and update dependencies to resolve known security
advisories.Full Changelog: https://github.com/basementstudio/xmcp/compare/v0.6.12...v0.6.13
Full Changelog: https://github.com/basementstudio/xmcp/compare/v0.6.11...v0.6.12
Full Changelog: https://github.com/basementstudio/xmcp/compare/v0.6.10...v0.6.11
Full Changelog: https://github.com/basementstudio/xmcp/compare/v0.6.9...v0.6.10
Hotfix: remove session fallback for stateful mode
Full Changelog: https://github.com/basementstudio/xmcp/compare/v0.6.8...v0.6.9
Full Changelog: https://github.com/basementstudio/xmcp/compare/v0.6.7...v0.6.8
Full Changelog: https://github.com/basementstudio/xmcp/compare/v0.6.6...v0.6.7
Full Changelog: https://github.com/basementstudio/xmcp/compare/v0.6.5...v0.6.6
Full Changelog: https://github.com/basementstudio/xmcp/compare/v0.6.4...v0.6.5
Full Changelog: https://github.com/basementstudio/xmcp/compare/v0.6.3...v0.6.4
Full Changelog: https://github.com/basementstudio/xmcp/compare/v0.6.2...v0.6.3
Full Changelog: https://github.com/basementstudio/xmcp/compare/v0.6.0...v0.6.1
Full Changelog: https://github.com/basementstudio/xmcp/compare/v0.5.9...v0.6.0
Full Changelog: https://github.com/basementstudio/xmcp/compare/v0.5.8...v0.5.9
Full Changelog: https://github.com/basementstudio/xmcp/compare/v0.5.7...v0.5.8
@valebearzotti @fveiraswww @mdottavio
Full Changelog: https://github.com/basementstudio/xmcp/compare/v0.5.6...v0.5.7
InferSchema with compatible zod versionsFull Changelog: https://github.com/basementstudio/xmcp/compare/v0.5.5...v0.5.6
Full Changelog: https://github.com/basementstudio/xmcp/compare/v0.5.4...v0.5.5
Full Changelog: https://github.com/basementstudio/xmcp/compare/v0.5.3...v0.5.4
Full Changelog: https://github.com/basementstudio/xmcp/compare/v0.5.1...v0.5.3
Full Changelog: https://github.com/basementstudio/xmcp/compare/v0.5.1...v0.5.2
Full Changelog: https://github.com/basementstudio/xmcp/compare/v0.5.0...v0.5.1
Full Changelog: https://github.com/basementstudio/xmcp/compare/v0.4.0...v0.5.0
Full Changelog: https://github.com/basementstudio/xmcp/compare/v0.3.6...v0.4.0
Full Changelog: https://github.com/basementstudio/xmcp/compare/v0.3.5...v0.3.6
Full Changelog: https://github.com/basementstudio/xmcp/compare/v0.3.4...v0.3.5
Update create-xmcp-app --gpt CLI project scaffolding
Full Changelog: https://github.com/basementstudio/xmcp/compare/v0.3.3...v0.3.4
Full Changelog: https://github.com/basementstudio/xmcp/compare/v0.3.1...v0.3.2
Full Changelog: https://github.com/basementstudio/xmcp/compare/v0.3.0...v0.3.1
@valebearzotti
@FranFigueroa
Full Changelog: https://github.com/basementstudio/xmcp/compare/v0.2.1...v0.3.0
Full Changelog: https://github.com/basementstudio/xmcp/compare/v0.2.0...v0.2.1
Full Changelog: https://github.com/basementstudio/xmcp/compare/v0.1.13...v0.2
Full Changelog: https://github.com/basementstudio/xmcp/compare/v0.1.10...v0.1.11
create-xmcp-app to be single selectFull Changelog: https://github.com/basementstudio/xmcp/compare/v0.1.9...v0.1.10
Update vercel build output
Ship @xmcp-dev/better-auth integration
Improvements & minor bug fixing
Full Changelog: https://github.com/basementstudio/xmcp/compare/v0.1.8...v0.1.9
ToolExtraArguments arguments type + usage exampleFull Changelog: https://github.com/basementstudio/xmcp/compare/v0.1.7...v0.1.8
& bug fixing & improvements
Full Changelog: https://github.com/basementstudio/xmcp/compare/v0.1.6...v0.1.7
Full Changelog: https://github.com/basementstudio/xmcp/compare/v0.1.5...v0.1.6
Full Changelog: https://github.com/basementstudio/xmcp/compare/v0.1.4...v0.1.5
Full Changelog: https://github.com/basementstudio/xmcp/compare/v0.1.3...v0.1.4
No release notes provided.
Full Changelog: https://github.com/basementstudio/xmcp/compare/v0.1.1...v0.1.2
Full Changelog: https://github.com/basementstudio/xmcp/compare/v0.1.0...v0.1.1
xmcp is a framework for building and shipping MCP applications with TypeScript. Designed with DX in mind, it streamlines development and lowers the barrier to entry for anyone looking to create and deploy powerful tools on top of the Model Context Protocol ecosystem.
⊹ File System Routing - Tools are auto-registered from a tools directory
⊹ Hot Reloading - Instant development feedback
⊹ Middlewares - Toolkit for shipping authentication and custom middlewares
⊹ Extensible Configuration - Customizable configuration for your MCP server
⊹ Deploy Anywhere - Flexible deployment across any platform
⊹ Vercel Support - Deploy-ready for Vercel out of the box
One framework to rule them all