| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 |
- // ref: https://spec.modelcontextprotocol.io/specification/basic/messages/
- import { z } from "zod";
- export interface McpRequestMessage {
- jsonrpc?: "2.0";
- id?: string | number;
- method: "tools/call" | string;
- params?: {
- [key: string]: unknown;
- };
- }
- export const McpRequestMessageSchema: z.ZodType<McpRequestMessage> = z.object({
- jsonrpc: z.literal("2.0").optional(),
- id: z.union([z.string(), z.number()]).optional(),
- method: z.string(),
- params: z.record(z.unknown()).optional(),
- });
- export interface McpResponseMessage {
- jsonrpc?: "2.0";
- id?: string | number;
- result?: {
- [key: string]: unknown;
- };
- error?: {
- code: number;
- message: string;
- data?: unknown;
- };
- }
- export const McpResponseMessageSchema: z.ZodType<McpResponseMessage> = z.object(
- {
- jsonrpc: z.literal("2.0").optional(),
- id: z.union([z.string(), z.number()]).optional(),
- result: z.record(z.unknown()).optional(),
- error: z
- .object({
- code: z.number(),
- message: z.string(),
- data: z.unknown().optional(),
- })
- .optional(),
- },
- );
- export interface McpNotifications {
- jsonrpc?: "2.0";
- method: string;
- params?: {
- [key: string]: unknown;
- };
- }
- export const McpNotificationsSchema: z.ZodType<McpNotifications> = z.object({
- jsonrpc: z.literal("2.0").optional(),
- method: z.string(),
- params: z.record(z.unknown()).optional(),
- });
|