Migration: @kubb/plugin-mcp
Part of the v4 → v5 migration guide. For the full option reference, see @kubb/plugin-mcp.
The plugin options stay the same. resolver.resolveName takes over from transformers.name.
Generated output
Handlers take the MCP RequestHandlerExtra object as a second argument and forward it to the underlying client. Update existing tools to thread it through.
typescript
import type { CallToolResult } from '@modelcontextprotocol/sdk/types'
export async function addPetHandler({ data }: { data: AddPetMutationRequest }): Promise<CallToolResult> {
const res = await fetch<AddPetMutationResponse, ResponseErrorConfig<AddPet405>, AddPetMutationRequest>({
method: 'POST',
url: '/pet',
baseURL: 'https://petstore.swagger.io/v2',
data,
})
...
}typescript
import type { CallToolResult, ServerNotification, ServerRequest } from '@modelcontextprotocol/sdk/types'
import type { RequestHandlerExtra } from '@modelcontextprotocol/sdk/shared/protocol'
export async function addPetHandler(
{ data }: { data: AddPetData },
request: RequestHandlerExtra<ServerRequest, ServerNotification>,
): Promise<CallToolResult> {
const res = await client<AddPetResponse, ResponseErrorConfig<AddPetStatus405>, AddPetData>(
{ method: 'POST', url: `/pet`, baseURL: `https://petstore.swagger.io/v2`, data },
request,
)
...
}