{"repo":"actionhero/keryx","free":true,"listed":false,"github":"https://github.com/actionhero/keryx","clone":"git clone https://github.com/actionhero/keryx.git","description":"Keryx: The Fullstack TypeScript Framework for MCP and APIs","language":"TypeScript","stars":32,"topics":["ai","api","bun","framework","full-stack","mcp","typescript","drizzle","mcp-framework","mcp-server"],"license":"MIT","category":"mcp-servers","readme_excerpt":"Keryx The fullstack TypeScript framework for MCP and APIs. What is this Project? The big idea behind Keryx: write your controller once, and it works everywhere. A single action class handles HTTP requests, WebSocket messages, CLI commands, background tasks, and MCP tool calls — same inputs, same Zod validation, same middleware, same response. You write the logic once; the only thing that changes is how the request arrived and how the response gets delivered. That last transport — MCP — is the reason I built this now. Every action is automatically an MCP tool, so AI agents authenticate with built-in OAuth 2.1, get typed errors, and call the exact same validated endpoints your HTTP clients do. There's no second MCP server to maintain and no schemas to keep in sync… you expose your app to agents by writing the app. And it's a real backend, not a toy. You get Drizzle ORM with auto-migrations, background tasks with fan-out on Resque, streaming responses (SSE, chunked binary, and the same stream over WebSocket and MCP), OpenAPI generation, pagination and caching helpers, database transactions, and a companion Vite + React frontend that reads your actions with end-to-end type safety — no code generation. It's all on Bun, so TypeScript runs natively and startup is fast. One Action, Every Transport Here's what that looks like in practice. This is one action: That one class gives you: HTTP — PUT /api/user with JSON body, query params, or form data: WebSocket — send a JSON message over ","default_branch":null,"files":null,"tree":[],"storefront":"/r/actionhero","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/actionhero/keryx/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}