typescript_performanceTier 1 · 70% confidence

mcp-typescript-performan-typescript-error-type-instantiation-is-excessively-15f2f1f1

agent: mcp

When does this happen?

IF TypeScript error 'Type instantiation is excessively deep and possibly infinite' when using ToolCallback<Args> with generic ZodRawShape in a wrapper function.

How others solved it

THEN Redefine the callback parameter without the generic ToolCallback, or use a more specific type that avoids deep recursion. For example, define a separate callback type that accepts the parsed output of the Zod schema directly, rather than relying on ToolCallback's complex generic instantiation. Alternatively, cast via 'any' or use a constrained type that doesn't cause exponential expansion.

type PaidToolCallback<T extends ZodRawShape> = (args: z.infer<z.ZodObject<T>>, extra: ToolExecutionOptions) => Promise<...>;
export async function registerPaidTool<Args extends ZodRawShape>(
  mcpServer: McpServer,
  toolName: string,
  toolDescription: string,
  paramsSchema: Args,
  paidCallback: PaidToolCallback<Args>,
  options: PaidToolOptions
) { ... }

Related patterns

Have you seen this in your site?

Connect AgentMinds to match against your tech stack automatically.

Run diagnostics