@modelcontextprotocol/core
Canonical public home for the Model Context Protocol specification and OAuth/OpenID Zod schemas.
These are the exact schema constants the SDK validates protocol and OAuth/OpenID payloads against internally. The @modelcontextprotocol/server and @modelcontextprotocol/client packages keep a Zod-free public surface, so this package exists as the supported place to import the
raw schemas when you need to validate or parse MCP messages yourself.
Install
npm install @modelcontextprotocol/core
Usage
import { CallToolResultSchema } from '@modelcontextprotocol/core';
const result = CallToolResultSchema.parse(payload);
const parsed = CallToolResultSchema.safeParse(payload);
if (parsed.success) {
}
Scope
This package exports only Zod schema constants (*Schema), in two groups:
- the MCP spec schemas —
CallToolResultSchema, ListToolsResultSchema, …; and
- the OAuth/OpenID auth schemas —
OAuthTokensSchema, OAuthMetadataSchema, IdJagTokenExchangeResponseSchema, … (the schemas v1 exposed from @modelcontextprotocol/sdk/shared/auth.js).
The corresponding TypeScript types, error classes, enums, and type guards are part of the public API of @modelcontextprotocol/server and
@modelcontextprotocol/client.
Migrating from v1? In v1 these schemas were imported from @modelcontextprotocol/sdk/types.js (spec schemas) and @modelcontextprotocol/sdk/shared/auth.js (OAuth/OpenID schemas). Point those *Schema imports at @modelcontextprotocol/core and your existing .parse() /
.safeParse() calls keep working unchanged.