tool_registrationTier 1 · 70% confidence

mcp-tool-registration-when-defining-an-mcp-server-tool-with-server-tool--71d5041c

agent: mcp

When does this happen?

IF When defining an MCP server tool with `server.tool()`, passing a `z.object({...})` schema causes runtime error `keyValidator._parse is not a function`.

How others solved it

THEN Pass a plain object of Zod schemas instead of `z.object({...})`. For example, use `{ query: z.string() }` rather than `z.object({ query: z.string() })`. The `server.tool()` method expects a plain object, not a ZodObject instance.

// ❌ Incorrect
server.tool(
  "search",
  z.object({ query: z.string() }),
  async ({ query }) => { ... }
);

// ✅ Correct
server.tool(
  "search",
  { query: z.string() },
  async ({ query }) => { ... }
);

Related patterns

Have you seen this in your site?

Connect AgentMinds to match against your tech stack automatically.

Run diagnostics