This is the documentation for the v2 beta — looking for the v1 documentation?
Skip to content

MCP TypeScript SDK (V2) / @modelcontextprotocol/server / server/mcp

server/mcp

Classes

McpServer

Defined in: packages/server/src/server/mcp.ts:66

High-level MCP server that provides a simpler API for working with resources, tools, and prompts. For advanced usage (like sending notifications or setting custom request handlers), use the underlying Server instance available via the server property.

Example

ts
const server = new McpServer({
    name: 'my-server',
    version: '1.0.0'
});

Constructors

Constructor

new McpServer(serverInfo, options?): McpServer

Defined in: packages/server/src/server/mcp.ts:117

Parameters
serverInfo
description?

string = ...

An optional human-readable description of what this implementation does.

This can be used by clients or servers to provide context about their purpose and capabilities. For example, a server might describe the types of resources or tools it provides, while a client might describe its intended use case.

icons?

object[] = ...

Optional set of sized icons that the client can display in a user interface.

Clients that support rendering icons MUST support at least the following MIME types:

  • image/png - PNG images (safe, universal compatibility)
  • image/jpeg (and image/jpg) - JPEG images (safe, universal compatibility)

Clients that support rendering icons SHOULD also support:

  • image/svg+xml - SVG images (scalable but requires security precautions)
  • image/webp - WebP images (modern, efficient format)
name

string = ...

Intended for programmatic or logical use, but used as a display name in past specs or fallback

title?

string = ...

Intended for UI and end-user contexts — optimized to be human-readable and easily understood, even by those unfamiliar with domain-specific terminology.

If not provided, the name should be used for display (except for Tool, where annotations.title should be given precedence over using name, if present).

version

string = ...

websiteUrl?

string = ...

An optional URL of the website for this implementation.

options?

ServerOptions

Returns

McpServer

Properties

server

readonly server: Server

Defined in: packages/server/src/server/mcp.ts:70

The underlying Server instance, useful for advanced operations like sending notifications.

Methods

close()

close(): Promise<void>

Defined in: packages/server/src/server/mcp.ts:155

Closes the connection.

Returns

Promise<void>

connect()

connect(transport): Promise<void>

Defined in: packages/server/src/server/mcp.ts:148

Attaches to the given transport, starts it, and starts listening for messages.

The server object assumes ownership of the Transport, replacing any callbacks that have already been set, and expects that it is the only user of the Transport instance going forward.

Parameters
transport

Transport

Returns

Promise<void>

Example
ts
const server = new McpServer({ name: 'my-server', version: '1.0.0' });
const transport = new StdioServerTransport();
await server.connect(transport);
isConnected()

isConnected(): boolean

Defined in: packages/server/src/server/mcp.ts:1099

Checks if the server is connected to a transport.

Returns

boolean

true if the server is connected

registerPrompt()
Call Signature

registerPrompt<Args>(name, config, cb): RegisteredPrompt

Defined in: packages/server/src/server/mcp.ts:1039

Registers a prompt with a config object and callback.

Type Parameters
Args

Args extends StandardSchemaWithJSON<unknown, unknown>

Parameters
name

string

config
_meta?

Record<string, unknown>

argsSchema?

Args

description?

string

icons?

object[]

title?

string

cb

PromptCallback<Args>

Returns

RegisteredPrompt

Example
ts
server.registerPrompt(
    'review-code',
    {
        title: 'Code Review',
        description: 'Review code for best practices',
        argsSchema: z.object({ code: z.string() })
    },
    ({ code }) => ({
        messages: [
            {
                role: 'user' as const,
                content: {
                    type: 'text' as const,
                    text: `Please review this code:\n\n${code}`
                }
            }
        ]
    })
);
Call Signature

registerPrompt<Args>(name, config, cb): RegisteredPrompt

Defined in: packages/server/src/server/mcp.ts:1051

Type Parameters
Args

Args extends ZodRawShape

Parameters
name

string

config
_meta?

Record<string, unknown>

argsSchema?

Args

description?

string

icons?

object[]

title?

string

cb

LegacyPromptCallback<Args>

Returns

RegisteredPrompt

Deprecated

Wrap with z.object({...}) instead. Raw-shape form: argsSchema may be a plain { field: z.string() } record; it is auto-wrapped with z.object().

registerResource()
Call Signature

registerResource(name, uriOrTemplate, config, readCallback): RegisteredResource

Defined in: packages/server/src/server/mcp.ts:588

Registers a resource with a config object and callback. For static resources, use a URI string. For dynamic resources, use a ResourceTemplate.

Parameters
name

string

uriOrTemplate

string

config

ResourceMetadata & object

readCallback

ReadResourceCallback

Returns

RegisteredResource

Example
ts
server.registerResource(
    'config',
    'config://app',
    {
        title: 'Application Config',
        mimeType: 'text/plain'
    },
    async uri => ({
        contents: [{ uri: uri.href, text: 'App configuration here' }]
    })
);
Call Signature

registerResource(name, uriOrTemplate, config, readCallback): RegisteredResourceTemplate

Defined in: packages/server/src/server/mcp.ts:594

Registers a resource with a config object and callback. For static resources, use a URI string. For dynamic resources, use a ResourceTemplate.

Parameters
name

string

uriOrTemplate

ResourceTemplate

config

ResourceMetadata & object

readCallback

ReadResourceTemplateCallback

Returns

RegisteredResourceTemplate

Example
ts
server.registerResource(
    'config',
    'config://app',
    {
        title: 'Application Config',
        mimeType: 'text/plain'
    },
    async uri => ({
        contents: [{ uri: uri.href, text: 'App configuration here' }]
    })
);
registerTool()
Call Signature

registerTool<OutputArgs, InputArgs>(name, config, cb): RegisteredTool

Defined in: packages/server/src/server/mcp.ts:953

Registers a tool with a config object and callback.

Type Parameters
OutputArgs

OutputArgs extends StandardSchemaWithJSON<unknown, unknown>

InputArgs

InputArgs extends StandardSchemaWithJSON<unknown, unknown> | undefined = undefined

Parameters
name

string

config
_meta?

Record<string, unknown>

annotations?

{ destructiveHint?: boolean; idempotentHint?: boolean; openWorldHint?: boolean; readOnlyHint?: boolean; title?: string; }

annotations.destructiveHint?

boolean = ...

If true, the tool may perform destructive updates to its environment. If false, the tool performs only additive updates.

(This property is meaningful only when readOnlyHint == false)

Default: true

annotations.idempotentHint?

boolean = ...

If true, calling the tool repeatedly with the same arguments will have no additional effect on its environment.

(This property is meaningful only when readOnlyHint == false)

Default: false

annotations.openWorldHint?

boolean = ...

If true, this tool may interact with an "open world" of external entities. If false, the tool's domain of interaction is closed. For example, the world of a web search tool is open, whereas that of a memory tool is not.

Default: true

annotations.readOnlyHint?

boolean = ...

If true, the tool does not modify its environment.

Default: false

annotations.title?

string = ...

A human-readable title for the tool.

description?

string

icons?

object[]

inputSchema?

InputArgs

outputSchema?

OutputArgs

title?

string

cb

BaseToolCallback<{[key: string]: unknown; _meta?: {[key: string]: unknown; io.modelcontextprotocol/related-task?: { taskId: string; }; progressToken?: string | number; }; content: ({ _meta?: {[key: string]: unknown; }; annotations?: { audience?: (... | ...)[]; lastModified?: string; priority?: number; }; text: string; type: "text"; } | { _meta?: {[key: string]: unknown; }; annotations?: { audience?: (... | ...)[]; lastModified?: string; priority?: number; }; data: string; mimeType: string; type: "image"; } | { _meta?: {[key: string]: unknown; }; annotations?: { audience?: (... | ...)[]; lastModified?: string; priority?: number; }; data: string; mimeType: string; type: "audio"; } | { _meta?: {[key: string]: unknown; }; annotations?: { audience?: (... | ...)[]; lastModified?: string; priority?: number; }; resource: { _meta?: {[key: string]: unknown; }; mimeType?: string; text: string; uri: string; } | { _meta?: {[key: string]: unknown; }; blob: string; mimeType?: string; uri: string; }; type: "resource"; } | { _meta?: {[key: string]: unknown; }; annotations?: { audience?: (... | ...)[]; lastModified?: string; priority?: number; }; description?: string; icons?: object[]; mimeType?: string; name: string; size?: number; title?: string; type: "resource_link"; uri: string; })[]; isError?: boolean; structuredContent?: unknown; } | InputRequiredResult>

Returns

RegisteredTool

Example
ts
server.registerTool(
    'calculate-bmi',
    {
        title: 'BMI Calculator',
        description: 'Calculate Body Mass Index',
        inputSchema: z.object({
            weightKg: z.number(),
            heightM: z.number()
        }),
        outputSchema: z.object({ bmi: z.number() })
    },
    async ({ weightKg, heightM }) => {
        const output = { bmi: weightKg / (heightM * heightM) };
        return {
            content: [{ type: 'text', text: JSON.stringify(output) }],
            structuredContent: output
        };
    }
);
Call Signature

registerTool<InputArgs, OutputArgs>(name, config, cb): RegisteredTool

Defined in: packages/server/src/server/mcp.ts:967

Type Parameters
InputArgs

InputArgs extends ZodRawShape

OutputArgs

OutputArgs extends StandardSchemaWithJSON<unknown, unknown> | ZodRawShape | undefined = undefined

Parameters
name

string

config
_meta?

Record<string, unknown>

annotations?

{ destructiveHint?: boolean; idempotentHint?: boolean; openWorldHint?: boolean; readOnlyHint?: boolean; title?: string; }

annotations.destructiveHint?

boolean = ...

If true, the tool may perform destructive updates to its environment. If false, the tool performs only additive updates.

(This property is meaningful only when readOnlyHint == false)

Default: true

annotations.idempotentHint?

boolean = ...

If true, calling the tool repeatedly with the same arguments will have no additional effect on its environment.

(This property is meaningful only when readOnlyHint == false)

Default: false

annotations.openWorldHint?

boolean = ...

If true, this tool may interact with an "open world" of external entities. If false, the tool's domain of interaction is closed. For example, the world of a web search tool is open, whereas that of a memory tool is not.

Default: true

annotations.readOnlyHint?

boolean = ...

If true, the tool does not modify its environment.

Default: false

annotations.title?

string = ...

A human-readable title for the tool.

description?

string

icons?

object[]

inputSchema?

InputArgs

outputSchema?

OutputArgs

title?

string

cb

LegacyToolCallback<InputArgs>

Returns

RegisteredTool

Deprecated

Wrap with z.object({...}) instead. Raw-shape form: inputSchema/outputSchema may be a plain { field: z.string() } record; it is auto-wrapped with z.object().

sendLoggingMessage()

sendLoggingMessage(params, sessionId?): Promise<void>

Defined in: packages/server/src/server/mcp.ts:1122

Sends a logging message to the client, if connected. Note: You only need to send the parameters object, not the entire JSON-RPC message.

Parameters
params
_meta?

{[key: string]: unknown; io.modelcontextprotocol/related-task?: { taskId: string; }; progressToken?: string | number; } = ...

See MCP specification for notes on _meta usage.

{ taskId: string; } = ...

If specified, this request is related to the provided task.

string = ...

_meta.progressToken?

string | number = ...

If specified, the caller is requesting out-of-band progress notifications for this request (as represented by notifications/progress). The value of this parameter is an opaque token that will be attached to any subsequent notifications. The receiver is not obligated to provide these notifications.

data

unknown = ...

The data to be logged, such as a string message or an object. Any JSON serializable type is allowed here.

level

"debug" | "error" | "info" | "notice" | "warning" | "critical" | "alert" | "emergency" = LoggingLevelSchema

The severity of this log message.

logger?

string = ...

An optional name of the logger issuing this message.

sessionId?

string

Optional for stateless transports and backward compatibility.

Returns

Promise<void>

See

LoggingMessageNotification

Example
ts
await server.sendLoggingMessage({
    level: 'info',
    data: 'Processing complete'
});
Deprecated

Deprecated as of protocol version 2026-07-28 (SEP-2577). Remains functional during the deprecation window (at least twelve months). Migrate to stderr logging (STDIO servers) or OpenTelemetry.

sendPromptListChanged()

sendPromptListChanged(): void

Defined in: packages/server/src/server/mcp.ts:1146

Sends a prompt list changed event to the client, if connected.

Returns

void

sendResourceListChanged()

sendResourceListChanged(): void

Defined in: packages/server/src/server/mcp.ts:1128

Sends a resource list changed event to the client, if connected.

Returns

void

sendToolListChanged()

sendToolListChanged(): void

Defined in: packages/server/src/server/mcp.ts:1137

Sends a tool list changed event to the client, if connected.

Returns

void

toolInputSchemaJson()

toolInputSchemaJson(name): Record<string, unknown> | undefined

Defined in: packages/server/src/server/mcp.ts:94

Internal

The JSON-serialized inputSchema of a registered tool, or undefined when no such tool is registered. Used by the HTTP entry's pre-dispatch SEP-2243 Mcp-Param-* validation step (which needs the same JSON Schema tools/list would emit, before dispatch reaches the handler).

Parameters
name

string

Returns

Record<string, unknown> | undefined


ResourceTemplate

Defined in: packages/server/src/server/mcp.ts:1167

A resource template combines a URI pattern with optional functionality to enumerate all resources matching that pattern.

Constructors

Constructor

new ResourceTemplate(uriTemplate, _callbacks): ResourceTemplate

Defined in: packages/server/src/server/mcp.ts:1170

Parameters
uriTemplate

string | UriTemplate

_callbacks
complete?

{[variable: string]: CompleteResourceTemplateCallback; }

An optional callback to autocomplete variables within the URI template. Useful for clients and users to discover possible values.

list

ListResourcesCallback | undefined

A callback to list all resources matching this template. This is required to be specified, even if undefined, to avoid accidentally forgetting resource listing.

Returns

ResourceTemplate

Accessors

listCallback
Get Signature

get listCallback(): ListResourcesCallback | undefined

Defined in: packages/server/src/server/mcp.ts:1199

Gets the list callback, if one was provided.

Returns

ListResourcesCallback | undefined

uriTemplate
Get Signature

get uriTemplate(): UriTemplate

Defined in: packages/server/src/server/mcp.ts:1192

Gets the URI template pattern.

Returns

UriTemplate

Methods

completeCallback()

completeCallback(variable): CompleteResourceTemplateCallback | undefined

Defined in: packages/server/src/server/mcp.ts:1206

Gets the callback for completing a specific URI template variable, if one was provided.

Parameters
variable

string

Returns

CompleteResourceTemplateCallback | undefined

Type Aliases

AnyToolHandler

AnyToolHandler<Args> = ToolCallback<Args>

Defined in: packages/server/src/server/mcp.ts:1257

Tool handler callback type.

Type Parameters

Args

Args extends StandardSchemaWithJSON | undefined = undefined


BaseToolCallback

BaseToolCallback<SendResultT, Ctx, Args> = Args extends StandardSchemaWithJSON ? (args, ctx) => SendResultT | Promise<SendResultT> : (ctx) => SendResultT | Promise<SendResultT>

Defined in: packages/server/src/server/mcp.ts:1237

Type Parameters

SendResultT

SendResultT extends Result

Ctx

Ctx extends ServerContext

Args

Args extends StandardSchemaWithJSON | undefined


CompleteResourceTemplateCallback

CompleteResourceTemplateCallback = (value, context?) => string[] | Promise<string[]>

Defined in: packages/server/src/server/mcp.ts:1156

A callback to complete one variable within a resource template's URI template.

Parameters

value

string

context?
arguments?

Record<string, string>

Returns

string[] | Promise<string[]>


InferRawShape

InferRawShape<S> = z.infer<z.ZodObject<S>>

Defined in: packages/server/src/server/mcp.ts:1219

Infers the parsed-output type of a ZodRawShape.

Type Parameters

S

S extends ZodRawShape


LegacyPromptCallback

LegacyPromptCallback<Args> = Args extends ZodRawShape ? (args, ctx) => GetPromptResult | InputRequiredResult | Promise<GetPromptResult | InputRequiredResult> : (ctx) => GetPromptResult | InputRequiredResult | Promise<GetPromptResult | InputRequiredResult>

Defined in: packages/server/src/server/mcp.ts:1230

PromptCallback variant used when argsSchema is a ZodRawShape.

Type Parameters

Args

Args extends ZodRawShape | undefined


LegacyToolCallback

LegacyToolCallback<Args> = Args extends ZodRawShape ? (args, ctx) => CallToolResult | InputRequiredResult | Promise<CallToolResult | InputRequiredResult> : (ctx) => CallToolResult | InputRequiredResult | Promise<CallToolResult | InputRequiredResult>

Defined in: packages/server/src/server/mcp.ts:1222

ToolCallback variant used when inputSchema is a ZodRawShape.

Type Parameters

Args

Args extends ZodRawShape | undefined


ListResourcesCallback

ListResourcesCallback = (ctx) => ListResourcesResult | Promise<ListResourcesResult>

Defined in: packages/server/src/server/mcp.ts:1352

Callback to list all resources matching a given template.

Parameters

ctx

ServerContext

Returns

ListResourcesResult | Promise<ListResourcesResult>


PromptCallback

PromptCallback<Args> = Args extends StandardSchemaWithJSON ? (args, ctx) => GetPromptResult | InputRequiredResult | Promise<GetPromptResult | InputRequiredResult> : (ctx) => GetPromptResult | InputRequiredResult | Promise<GetPromptResult | InputRequiredResult>

Defined in: packages/server/src/server/mcp.ts:1413

Type Parameters

Args

Args extends StandardSchemaWithJSON | undefined = undefined


ReadResourceCallback

ReadResourceCallback = (uri, ctx) => ReadResourceResult | InputRequiredResult | Promise<ReadResourceResult | InputRequiredResult>

Defined in: packages/server/src/server/mcp.ts:1357

Callback to read a resource at a given URI.

Parameters

uri

URL

ctx

ServerContext

Returns

ReadResourceResult | InputRequiredResult | Promise<ReadResourceResult | InputRequiredResult>


ReadResourceTemplateCallback

ReadResourceTemplateCallback = (uri, variables, ctx) => ReadResourceResult | InputRequiredResult | Promise<ReadResourceResult | InputRequiredResult>

Defined in: packages/server/src/server/mcp.ts:1386

Callback to read a resource at a given URI, following a filled-in URI template.

Parameters

uri

URL

variables

Variables

ctx

ServerContext

Returns

ReadResourceResult | InputRequiredResult | Promise<ReadResourceResult | InputRequiredResult>


RegisteredPrompt

RegisteredPrompt = object

Defined in: packages/server/src/server/mcp.ts:1431

Properties

_meta?

optional _meta?: Record<string, unknown>

Defined in: packages/server/src/server/mcp.ts:1436

argsSchema?

optional argsSchema?: StandardSchemaWithJSON

Defined in: packages/server/src/server/mcp.ts:1434

description?

optional description?: string

Defined in: packages/server/src/server/mcp.ts:1433

enabled

enabled: boolean

Defined in: packages/server/src/server/mcp.ts:1439

icons?

optional icons?: Icon[]

Defined in: packages/server/src/server/mcp.ts:1435

title?

optional title?: string

Defined in: packages/server/src/server/mcp.ts:1432

Methods

disable()

disable(): void

Defined in: packages/server/src/server/mcp.ts:1441

Returns

void

enable()

enable(): void

Defined in: packages/server/src/server/mcp.ts:1440

Returns

void

remove()

remove(): void

Defined in: packages/server/src/server/mcp.ts:1452

Returns

void

update()

update<Args>(updates): void

Defined in: packages/server/src/server/mcp.ts:1442

Type Parameters
Args

Args extends StandardSchemaWithJSON<unknown, unknown>

Parameters
updates
_meta?

Record<string, unknown>

argsSchema?

Args

callback?

PromptCallback<Args>

description?

string

enabled?

boolean

icons?

Icon[]

name?

string | null

title?

string

Returns

void


RegisteredResource

RegisteredResource = object

Defined in: packages/server/src/server/mcp.ts:1362

Properties

cacheHint?

optional cacheHint?: CacheHint

Defined in: packages/server/src/server/mcp.ts:1367

Cache hint applied to this resource's resources/read results on the 2026-07-28 revision.

enabled

enabled: boolean

Defined in: packages/server/src/server/mcp.ts:1369

metadata?

optional metadata?: ResourceMetadata

Defined in: packages/server/src/server/mcp.ts:1365

name

name: string

Defined in: packages/server/src/server/mcp.ts:1363

readCallback

readCallback: ReadResourceCallback

Defined in: packages/server/src/server/mcp.ts:1368

title?

optional title?: string

Defined in: packages/server/src/server/mcp.ts:1364

Methods

disable()

disable(): void

Defined in: packages/server/src/server/mcp.ts:1371

Returns

void

enable()

enable(): void

Defined in: packages/server/src/server/mcp.ts:1370

Returns

void

remove()

remove(): void

Defined in: packages/server/src/server/mcp.ts:1380

Returns

void

update()

update(updates): void

Defined in: packages/server/src/server/mcp.ts:1372

Parameters
updates
callback?

ReadResourceCallback

enabled?

boolean

metadata?

ResourceMetadata

name?

string

title?

string

uri?

string | null

Returns

void


RegisteredResourceTemplate

RegisteredResourceTemplate = object

Defined in: packages/server/src/server/mcp.ts:1392

Properties

cacheHint?

optional cacheHint?: CacheHint

Defined in: packages/server/src/server/mcp.ts:1397

Cache hint applied to this template's resources/read results on the 2026-07-28 revision.

enabled

enabled: boolean

Defined in: packages/server/src/server/mcp.ts:1399

metadata?

optional metadata?: ResourceMetadata

Defined in: packages/server/src/server/mcp.ts:1395

readCallback

readCallback: ReadResourceTemplateCallback

Defined in: packages/server/src/server/mcp.ts:1398

resourceTemplate

resourceTemplate: ResourceTemplate

Defined in: packages/server/src/server/mcp.ts:1393

title?

optional title?: string

Defined in: packages/server/src/server/mcp.ts:1394

Methods

disable()

disable(): void

Defined in: packages/server/src/server/mcp.ts:1401

Returns

void

enable()

enable(): void

Defined in: packages/server/src/server/mcp.ts:1400

Returns

void

remove()

remove(): void

Defined in: packages/server/src/server/mcp.ts:1410

Returns

void

update()

update(updates): void

Defined in: packages/server/src/server/mcp.ts:1402

Parameters
updates
callback?

ReadResourceTemplateCallback

enabled?

boolean

metadata?

ResourceMetadata

name?

string | null

template?

ResourceTemplate

title?

string

Returns

void


RegisteredTool

RegisteredTool = object

Defined in: packages/server/src/server/mcp.ts:1264

Properties

_meta?

optional _meta?: Record<string, unknown>

Defined in: packages/server/src/server/mcp.ts:1281

annotations?

optional annotations?: ToolAnnotations

Defined in: packages/server/src/server/mcp.ts:1278

description?

optional description?: string

Defined in: packages/server/src/server/mcp.ts:1266

enabled

enabled: boolean

Defined in: packages/server/src/server/mcp.ts:1285

execution?

optional execution?: ToolExecution

Defined in: packages/server/src/server/mcp.ts:1280

handler

handler: AnyToolHandler<StandardSchemaWithJSON | undefined>

Defined in: packages/server/src/server/mcp.ts:1282

icons?

optional icons?: Icon[]

Defined in: packages/server/src/server/mcp.ts:1279

inputSchema?

optional inputSchema?: StandardSchemaWithJSON

Defined in: packages/server/src/server/mcp.ts:1267

outputSchema?

optional outputSchema?: StandardSchemaWithJSON

Defined in: packages/server/src/server/mcp.ts:1268

title?

optional title?: string

Defined in: packages/server/src/server/mcp.ts:1265

Methods

disable()

disable(): void

Defined in: packages/server/src/server/mcp.ts:1287

Returns

void

enable()

enable(): void

Defined in: packages/server/src/server/mcp.ts:1286

Returns

void

remove()

remove(): void

Defined in: packages/server/src/server/mcp.ts:1300

Returns

void

update()

update(updates): void

Defined in: packages/server/src/server/mcp.ts:1288

Parameters
updates
_meta?

Record<string, unknown>

annotations?

ToolAnnotations

callback?

ToolCallback<StandardSchemaWithJSON>

description?

string

enabled?

boolean

icons?

Icon[]

name?

string | null

outputSchema?

StandardSchemaWithJSON

paramsSchema?

StandardSchemaWithJSON

title?

string

Returns

void


ResourceMetadata

ResourceMetadata = Omit<Resource, "uri" | "name">

Defined in: packages/server/src/server/mcp.ts:1347

Additional, optional information for annotating a resource.


ToolCallback

ToolCallback<Args> = BaseToolCallback<CallToolResult | InputRequiredResult, ServerContext, Args>

Defined in: packages/server/src/server/mcp.ts:1248

Callback for a tool handler registered with McpServer.registerTool.

Type Parameters

Args

Args extends StandardSchemaWithJSON | undefined = undefined


ZodRawShape

ZodRawShape = Record<string, z.ZodType>

Defined in: packages/server/src/server/mcp.ts:1216

A plain record of Zod field schemas, e.g. { name: z.string() }. Accepted by registerTool/registerPrompt as a shorthand; auto-wrapped with z.object(). Zod schemas only — z.object() cannot wrap other Standard Schema libraries.