Framework Integration
Chapplin is server-framework agnostic. You can use any HTTP framework as long as it can handle the MCP transport.
Server Frameworks
Section titled “Server Frameworks”Hono (Recommended)
Section titled “Hono (Recommended)”import { register } from "chapplin:register";import { StreamableHTTPTransport } from "@hono/mcp";import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";import { Hono } from "hono";
const app = new Hono();
app.all("/mcp", async (c) => { const server = new McpServer({ name: "my-server", version: "1.0.0" }); register(server); const transport = new StreamableHTTPTransport(); await server.connect(transport); return transport.handleRequest(c);});
export default app;Express
Section titled “Express”import express from "express";import { register } from "chapplin:register";import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";import { StreamableHTTPServerTransport } from "@modelcontextprotocol/sdk/server/streamableHttp.js";
const app = express();app.use(express.json());
app.all("/mcp", async (req, res) => { const server = new McpServer({ name: "my-server", version: "1.0.0" }); register(server); const transport = new StreamableHTTPServerTransport({ sessionIdGenerator: undefined, }); await server.connect(transport); await transport.handleRequest(req, res, req.body);});
app.listen(3000);UI Targets
Section titled “UI Targets”Set the UI target in chapplin():
chapplin({ target: "react" }); // or preact / solid / honoSupported JSX targets:
- React
- Preact
- Solid
- Hono (
hono/jsx)