Generate type-safe TypeScript clients from MCP servers.
# Generate client from URL
npx mcp-client-gen https://mcp.notion.com/mcp -o notion.ts
# Use the generated clientimport { createNotionClient } from "./notion";
import { createMcpConnection } from "mcp-client-gen";
const connection = await createMcpConnection({
url: "https://mcp.notion.com/mcp",
});
const notion = createNotionClient(connection);
// Fully typed based on server schema
const pages = await notion.notionSearch({ query: "Meeting Notes" });- Type-safe — Generated TypeScript types from server schemas
- Zero config auth — OAuth 2.1 with PKCE, just approve in browser
- Tree-shakable — Only bundle the methods you import
npm install -g mcp-client-gen
# or
bun add -g mcp-client-gen# URL mode (primary)
npx mcp-client-gen <url> # Output to stdout
npx mcp-client-gen <url> -o <file> # Output to file
npx mcp-client-gen <url> <file> # Shorthand
# Config mode (reads .mcp.json, .cursor/, .vscode/)
npx mcp-client-gen # Interactive
npx mcp-client-gen -y # Accept defaultsNo credentials required. OAuth-protected servers trigger automatic browser authentication via Dynamic Client Registration (RFC 7591) and PKCE.
MIT — Konstantin Tarkus