Elysia stays in control
Every route-backed call travels through Elysia parsing, validation, hooks, guards, and response mapping.
Expose existing Elysia APIs as MCP tools without bypassing the framework behavior that makes them production-ready.
import { mcp } from
"@mwillbanks/elysia-mcp-adapter"
import { Elysia, t } from "elysia"
new Elysia()
.use(mcp())
.get("/users/:id",
({ params }) => params,
{
params: t.Object({
id: t.String(),
}),
detail: {
operationId: "users.get",
},
},
)
.listen(3000)Every route-backed call travels through Elysia parsing, validation, hooks, guards, and response mapping.
Turn HTTP routes into tools by default, then opt resources and prompts into the same focused registry.
Origin checks, denied model headers, credential redaction, and binary limits ship as the baseline.
Choose your path
Start with automatic route tools, add protocol-native primitives, then narrow and harden the surface for production.