chore(repo): version packages - #324
Open
github-actions[bot] wants to merge 1 commit into
Open
Conversation
Contributor
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
github-actions
Bot
force-pushed
the
changeset-release/main
branch
from
August 19, 2026 15:32
b774053 to
f0d530c
Compare
github-actions
Bot
force-pushed
the
changeset-release/main
branch
from
September 3, 2026 07:36
f0d530c to
03c524b
Compare
github-actions
Bot
force-pushed
the
changeset-release/main
branch
from
September 3, 2026 16:45
03c524b to
62b4c08
Compare
github-actions
Bot
force-pushed
the
changeset-release/main
branch
from
September 4, 2026 08:56
62b4c08 to
bb21d66
Compare
github-actions
Bot
force-pushed
the
changeset-release/main
branch
from
September 4, 2026 09:20
bb21d66 to
f2e0d24
Compare
github-actions
Bot
force-pushed
the
changeset-release/main
branch
from
September 4, 2026 09:25
f2e0d24 to
7e30497
Compare
github-actions
Bot
force-pushed
the
changeset-release/main
branch
from
September 4, 2026 09:43
7e30497 to
f8c4ac8
Compare
github-actions
Bot
force-pushed
the
changeset-release/main
branch
from
September 4, 2026 10:01
f8c4ac8 to
335b7c2
Compare
github-actions
Bot
force-pushed
the
changeset-release/main
branch
from
September 4, 2026 10:43
335b7c2 to
5a8fa6e
Compare
github-actions
Bot
force-pushed
the
changeset-release/main
branch
from
September 4, 2026 13:31
5a8fa6e to
3c3d74d
Compare
github-actions
Bot
force-pushed
the
changeset-release/main
branch
from
September 4, 2026 14:38
3c3d74d to
b4689ca
Compare
github-actions
Bot
force-pushed
the
changeset-release/main
branch
from
September 4, 2026 14:58
b4689ca to
f620b81
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR was opened by the Changesets release GitHub action. When you're ready to do a release, you can merge this and the packages will be published to npm automatically. If you're not ready to do a release yet, that's fine, whenever you add more changesets to main, this PR will be updated.
Releases
nitro-mcp-toolkit@0.3.0
Minor Changes
90cbf89Thanks @HugoRCD! - AdddefineMcpPlugins, soserver/mcp/plugins.tsis typechecked without a type annotationThe plugins file is imported only by the generated handler, which is not typechecked with your app. Wrapping its default export replaces the
satisfies ExtensionPlugin[]the convention used to need, and reports a misspelledidor hook where you wrote it:The previous form keeps working — the helper returns the array unchanged, and
ExtensionPluginis still exported.#334
bd07588Thanks @HugoRCD! -defineMcpTool,defineMcpResourceanddefineMcpPrompttakescopes. A call is refused unless the verified access token carries every scope listed, read fromscope(space-delimited) orscp(string or array). A refusal is a JSON-RPC-32003naming the missing scopes — under HTTP 403 on the modern revision, in the200stream a legacy request gets for every error — and it fails closed: scopes on an endpoint with no OAuth refuse every call.A scoped definition is still listed, with its scopes in
_metaand inhandler.definitions; only the call is gated. Options resolve before a request is authenticated, so nothing that builds a listing has seen the token — use a separate endpoint when a tool's existence is itself sensitive.#323
936679eThanks @HugoRCD! - The runtime is now h3-mcp 0.2.0.defineMcp*still wrap plain returns and turn a throw intoisError; transport, eras, auth, origin, MRTR, and subscriptions come from the engine.This is a breaking change on 0.x:
ResourceTemplate/completableare gone. A template isuriTemplateplus optionallist/complete; prompt completions live onarguments.inputRequired/mcpElicit/getElicitedContent/defineRequestStatereplaceinputResponse/acceptedContent.legacy/responseModebecomeera(dualis the default,modernis 2026-07-28 only).event.context.mcp.mcpReq/authare gone. ReadinputResponses,requestState,signal, anderaoff the engine context.handler.fetch(req, { authInfo })is gone; sendAuthorizationorx-api-key.handler.bus/handler.closeare gone.handler.notifystill fans out to every listener.nodejs_compat.X-MCP-Toolsheader naming an unknown tool is a 400 only after origin and auth have passed, so the name does not leak to a caller who is not allowed through.createMcpHandlertakes h3-mcp's{ extensionPlugins }as a second argument, for tasks and MCP Apps.AuthOptions,CacheHints,CallToolResult,Era,PluginOptions, …) keep their h3-mcp names.getInputResponses/getMissingInputs/canRequestInput/getSupportedInputs/McpJsonRpcErrorare re-exported so a handler does not need a second import fromh3-mcp.nitrois an optional peer: it is only required fornitro-mcp-toolkit/module.createMcpHandlerneedsh3.createMcpTestClientaccepts{ headers }so a Bearer token orX-MCP-Toolsallowlist does not need a customfetchwrap.{ mcp }(or{ adminMcp }for/admin/mcp) fromnitro-mcp-toolkit/servers.#mcp/<slug>/handleris still what Nitro mounts, not what an app imports.#332
b50badbThanks @HugoRCD! - Connectors fill in the issuer conventions of three providers, sooauthis one call instead of a JWKS URL you looked up by hand. Each returns the same options objectmcp({ oauth })andcreateMcpOAuthalready accept, and each sits on its own subpath — an app that imports none of them never loads them.clerkreadsCLERK_PUBLISHABLE_KEYfor the issuer and JWKS, skips audience checks (Clerk puts the OAuth client inazp, so useauthorizedParties), and proxies RFC 8414 metadata from Clerk for clients that only look on the resource origin.oktacovers custom authorization servers and derives JWKS from the issuer.workoscovers AuthKit, whereaudis the client id rather than the MCP URL.#331
6f57222Thanks @HugoRCD! -mcp({ oauth })protects a file-based endpoint without a route file. The module generates thecreateMcpOAuthcall, wires it as the handler'sauth, and mounts the RFC 9728 protected-resource document on the path RFC 9728 derives fromresource— so a client that gets a401can find where to authenticate.oauthandauthcannot both be set on one endpoint, and a config without a JWKS URL throws at build rather than accepting everything.#330
0d8a574Thanks @HugoRCD! -createMcpOAuthturns an MCP endpoint into an OAuth 2.1 resource server: JWT access tokens are verified against the issuer's JWKS, and the verified claims land onevent.context.oauth.issdefaults toauthorizationServersandaudtoresource, so a token minted for another service is refused. It also hands youmetadataHandlerandmetadataPathfor the RFC 9728 protected-resource document, which is what a401'sWWW-Authenticatepoints clients at.createMcpOAuth({ verify })covers opaque tokens instead. This package does not issue tokens — pair it with an authorization server.#333
a9acbe6Thanks @HugoRCD! -server/mcp/plugins.ts, besidetools/,resources/andprompts/, installs h3-mcp extension plugins on that endpoint. Its default export is the array, andExtensionPluginis now re-exported so the file can name the type it satisfies. A plugin is a live function, so this is how one reaches a generated handler —mcp()options cross into generated code as JSON. The file belongs to whichevermcp()scans its directory,.js/.mts/.mjswork too, creating it in development needs no restart, and each build names the file it installed.#338
6785b95Thanks @HugoRCD! - Require resource-bound, expiring JWTs. Clerk now checks the MCP resource audience; WorkOS uses an AuthKit issuer (issuerorWORKOS_AUTHKIT_ISSUER) and Connect resource indicators instead of client-ID session tokens. Disabling generic JWT audience checks requires a customverifycallback that validates the resource.Apply definition scopes to resource enumeration and completion callbacks and prompt completion. Unauthorized resource enumeration fails the listing before invoking that callback; static metadata remains visible.
Run plugin setup once and preserve the original event during unknown
X-MCP-Toolsauthentication. UsetoolResult()to return an explicit protocol envelope from a tool withoutputSchema; plain objects remain schema data.Accept the tested Nitro
3.0.260610-betapeer in addition to stable3.x.Patch Changes
1a0127aThanks @HugoRCD! - Accept readonly definition collections in createMcpHandler and index X-MCP-Tools selections while preserving registration order and request isolation.6c85cf9Thanks @HugoRCD! - Reuse the most recentX-MCP-Toolsselection to avoid repeated parsing and sorting. Authentication and scope checks still run for every request.