Skip to content

Commit cffc91d

Browse files
committed
feat(zod-v4): support zod v3 and v4 simultaneously
1 parent f4e1a38 commit cffc91d

31 files changed

+11017
-28
lines changed

README.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ Let's create a simple MCP server that exposes a calculator tool and some data. S
5858
import { McpServer, ResourceTemplate } from '@modelcontextprotocol/sdk/server/mcp.js';
5959
import { StreamableHTTPServerTransport } from '@modelcontextprotocol/sdk/server/streamableHttp.js';
6060
import express from 'express';
61-
import { z } from 'zod';
61+
import * as z from 'zod/v4'; // or import * as z from 'zod/v3';
6262

6363
// Create an MCP server
6464
const server = new McpServer({
@@ -477,7 +477,7 @@ MCP servers can request LLM completions from connected clients that support samp
477477
import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
478478
import { StreamableHTTPServerTransport } from '@modelcontextprotocol/sdk/server/streamableHttp.js';
479479
import express from 'express';
480-
import { z } from 'zod';
480+
import * as z from 'zod/v4'; // or import * as z from 'zod/v3';
481481

482482
const mcpServer = new McpServer({
483483
name: 'tools-with-sample-server',
@@ -561,7 +561,7 @@ For most use cases where session management isn't needed:
561561
import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
562562
import { StreamableHTTPServerTransport } from '@modelcontextprotocol/sdk/server/streamableHttp.js';
563563
import express from 'express';
564-
import { z } from 'zod';
564+
import * as z from 'zod/v4'; // or import * as z from 'zod/v3';
565565

566566
const app = express();
567567
app.use(express.json());
@@ -796,7 +796,7 @@ A simple server demonstrating resources, tools, and prompts:
796796

797797
```typescript
798798
import { McpServer, ResourceTemplate } from '@modelcontextprotocol/sdk/server/mcp.js';
799-
import { z } from 'zod';
799+
import * as z from 'zod/v4'; // or import * as z from 'zod/v3';
800800

801801
const server = new McpServer({
802802
name: 'echo-server',
@@ -866,7 +866,7 @@ A more complex example showing database integration:
866866
import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
867867
import sqlite3 from 'sqlite3';
868868
import { promisify } from 'util';
869-
import { z } from 'zod';
869+
import * as z from 'zod/v4'; // or import * as z from 'zod/v3';
870870

871871
const server = new McpServer({
872872
name: 'sqlite-explorer',
@@ -961,7 +961,7 @@ If you want to offer an initial set of tools/prompts/resources, but later add ad
961961
import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
962962
import { StreamableHTTPServerTransport } from '@modelcontextprotocol/sdk/server/streamableHttp.js';
963963
import express from 'express';
964-
import { z } from 'zod';
964+
import * as z from 'zod/v4'; // or import * as z from 'zod/v3';
965965

966966
const server = new McpServer({
967967
name: 'Dynamic Example',

0 commit comments

Comments
 (0)