Everything you need to build, compose, and deploy production MCP servers.
The official SDK gives you the protocol. Casys MCP Platform gives you the production stack: composable middleware, OAuth2 auth, concurrency control, observability, interactive UIs, and multi-server composition — all in TypeScript.
rate-limit → auth → custom middleware → scope-check → validation → backpressure → handler
| Package | Status | Description |
|---|---|---|
@casys/mcp-server |
Production | The framework. Middleware, auth, dual transport, observability. |
@casys/mcp-compose |
Experimental | Multi-server UI composition — sync and orchestrate MCP Apps into dashboards. |
@casys/mcp-bridge |
Experimental | Deliver MCP Apps UIs through Telegram Mini Apps, LINE LIFF, and other messaging platforms. |
# npm
npm install @casys/mcp-server
# Deno
deno add jsr:@casys/mcp-serverimport { McpApp } from "@casys/mcp-server";
const server = new McpApp({ name: "my-server", version: "1.0.0" });
server.registerTool(
{
name: "greet",
description: "Greet a user",
inputSchema: {
type: "object",
properties: { name: { type: "string" } },
required: ["name"],
},
},
({ name }) => `Hello, ${name}!`,
);
await server.start();import { createAuth0AuthProvider, McpApp } from "@casys/mcp-server";
const server = new McpApp({
name: "my-api",
version: "1.0.0",
maxConcurrent: 10,
backpressureStrategy: "queue",
validateSchema: true,
rateLimit: { maxRequests: 100, windowMs: 60_000 },
auth: {
provider: createAuth0AuthProvider({
domain: "my-tenant.auth0.com",
audience: "https://my-mcp.example.com",
resource: "https://my-mcp.example.com",
}),
},
});
await server.startHttp({ port: 3000 });| Official SDK | @casys/mcp-server | |
|---|---|---|
| MCP protocol compliance | Yes | Yes |
| Composable middleware | — | Onion model (like Hono/Koa) |
| OAuth2 / JWT auth | — | 4 OIDC presets + YAML config |
| Concurrency control | — | 3 backpressure strategies |
| Rate limiting | — | Sliding window, per-client |
| Schema validation | — | JSON Schema (ajv) |
| Streamable HTTP + SSE | Manual | Built-in session management |
| OpenTelemetry tracing | — | Automatic spans per tool call |
| Prometheus metrics | — | /metrics endpoint |
| MCP Apps (UI resources) | Manual | registerResource() + ui:// |
| Multi-server composition | — | @casys/mcp-compose |
The core of the platform. Build MCP servers with the same developer experience as Hono or Koa — register tools, plug in middleware, start serving.
Highlights:
- Middleware pipeline — rate-limit, auth, validation, backpressure, all composable
- 4 OAuth2 presets — Google, Auth0, GitHub Actions, generic OIDC
- Dual transport — STDIO for local/CLI, HTTP (Streamable HTTP + SSE) for remote
- Observability — OpenTelemetry spans + Prometheus metrics out of the box
- MCP Apps — serve interactive UIs as MCP resources
Full documentation and API reference
Experimental — API may change.
Orchestrate multiple MCP Apps UIs into composite dashboards. Define layouts, sync rules between panels, and let the composition engine handle the event routing.
Experimental — API may change.
Deliver MCP Apps interactive UIs through messaging platforms. Currently supports Telegram Mini Apps and LINE LIFF with platform-specific authentication and lifecycle handling.
Deno workspace — cross-package imports resolve automatically.
# Tests
cd packages/server && deno task test # 270 tests
cd packages/compose && deno task test # 219 tests
cd packages/bridge && deno task test # 120 testsMIT