{"id":"kriasoft-mcp-client-gen","name":"mcp-client-gen","homepage":"https://medium.com/@koistya/why-i-built-mcp-client-generator-and-why-you-should-care-c860193ca902","repo_url":"https://github.com/kriasoft/mcp-client-gen","category":"devtools","subcategories":[],"tags":["typescript","sdk-generation","mcp","model-context-protocol","oauth2","pkce","codegen","cli","ai-agents"],"what_it_does":"mcp-client-gen generates type-safe TypeScript clients from MCP (Model Context Protocol) server schemas, including a helper for establishing an MCP connection and handling OAuth 2.1 (PKCE) browser-based auth for OAuth-protected MCP servers.","use_cases":["Generate strongly-typed TypeScript SDKs for MCP tools to use in Node/Bun apps","Integrate MCP servers (e.g., Notion, GitHub Copilot MCP) into TypeScript codebases with compile-time types","CLI-driven client generation from an MCP server URL or from local config (.mcp.json, .cursor/, .vscode/)"],"not_for":["Producing a runtime MCP server (it’s a client/code generator, not a server)","Projects needing a documented REST/GraphQL API surface for mcp-client-gen itself (it targets MCP servers, not an HTTP API)","Security/compliance-sensitive environments that require explicit control over OAuth redirect URIs, client registration, and token storage behavior without browser-based flows"],"best_when":"You want to call MCP tools from TypeScript with generated method/type definitions and can tolerate OAuth browser flows when required by the MCP server.","avoid_when":"You need deterministic, headless authentication (no browser interaction) or you require a formally specified, vendor-neutral authentication/token storage policy for this generator itself.","alternatives":["Write MCP client code manually using an MCP transport/library (if available in your stack)","Use existing MCP SDKs for TypeScript/JavaScript if they provide type generation or stable client wrappers","Use OpenAPI/GraphQL codegen where the upstream service offers those interfaces rather than MCP"],"af_score":46.2,"security_score":52.2,"reliability_score":22.5,"package_type":"mcp_server","discovery_source":["github"],"priority":"high","status":"evaluated","version_evaluated":null,"last_evaluated":"2026-03-30T15:36:52.210582+00:00","interface":{"has_rest_api":false,"has_graphql":false,"has_grpc":false,"has_mcp_server":false,"mcp_server_url":null,"has_sdk":true,"sdk_languages":["TypeScript","JavaScript"],"openapi_spec_url":null,"webhooks":false},"auth":{"methods":["OAuth 2.1 with PKCE (browser approval)","Dynamic Client Registration (RFC 7591) for OAuth-protected servers (as described)"],"oauth":true,"scopes":false,"notes":"The README claims “zero config auth” for OAuth-protected MCP servers via Dynamic Client Registration and PKCE, but does not document scope granularity, token storage location, or refresh-token behavior."},"pricing":{"model":null,"free_tier_exists":false,"free_tier_limits":null,"paid_tiers":[],"requires_credit_card":false,"estimated_workload_costs":null,"notes":"No pricing details provided in the README content; appears to be an open-source npm package (MIT) used locally for code generation."},"requirements":{"requires_signup":false,"requires_credit_card":false,"domain_verification":false,"data_residency":[],"compliance":[],"min_contract":null},"agent_readiness":{"af_score":46.2,"security_score":52.2,"reliability_score":22.5,"mcp_server_quality":35.0,"documentation_accuracy":55.0,"error_message_quality":0.0,"error_message_notes":null,"auth_complexity":75.0,"rate_limit_clarity":10.0,"tls_enforcement":80.0,"auth_strength":70.0,"scope_granularity":20.0,"dependency_hygiene":45.0,"secret_handling":40.0,"security_notes":"The package relies on OAuth 2.1 with PKCE and browser-based authorization (better than no auth), but documentation provided does not specify scopes, token storage, refresh token handling, redirect URI validation, or whether any sensitive data is logged. It also performs dynamic client registration, which may have security implications if not carefully controlled.","uptime_documented":0.0,"version_stability":35.0,"breaking_changes_history":25.0,"error_recovery":30.0,"idempotency_support":"false","idempotency_notes":null,"pagination_style":"none","retry_guidance_documented":false,"known_agent_gotchas":["Generated clients depend on remote MCP server schemas; changes in the upstream MCP schema may require re-generation.","Authentication behavior is described at a high level; without deeper docs, an agent may struggle with non-interactive/headless environments.","Output can be directed to stdout or file; ensure file paths/overwrite behavior are handled correctly when automating runs."]}}