H
Hono MCP Server
作者 @mattzcarey
MCP server by mattzcarey
创建于 1/17/2026
更新于 about 6 hours ago
README
Repository documentation and setup instructions
MCP Server for Hono
Expose your Hono API endpoints as MCP tools.
Usage
import { Hono } from "hono";
import { z } from "zod";
import { mcp, registerTool } from "hono-mcp-server";
const app = new Hono()
.get("/users", registerTool("List all users"), (c) => c.json([{ id: 1, name: "Alice" }]))
.get("/users/:id", registerTool("Get user by ID"), (c) => c.json({ id: c.req.param("id") }))
.post(
"/users",
registerTool({
description: "Create a new user",
inputSchema: {
name: z.string().describe("User's full name"),
email: z.string().email().describe("User's email address"),
},
}),
async (c) => {
const { name } = c.req.valid("json"); // typed!
return c.json({ id: 1, name });
},
);
export default mcp(app, {
name: "Users API",
version: "1.0.0",
});
This adds an /mcp endpoint that exposes your routes as MCP tools.
Input & Output Schemas
Use registerTool() with inputSchema for validated, typed input. Access validated data with c.req.valid('json'):
import { z } from "zod";
import { registerTool } from "hono-mcp-server";
app.post(
"/search",
registerTool({
description: "Search for items",
inputSchema: {
query: z.string().describe("Search query"),
limit: z.number().optional().describe("Max results"),
},
outputSchema: {
results: z.array(z.object({ id: z.string(), title: z.string() })),
},
}),
async (c) => {
const { query, limit } = c.req.valid("json"); // typed!
return c.json({ results: [] });
},
);
When outputSchema is defined, the tool returns structured content that MCP clients can parse.
Options
mcp(app, {
name: "API Name", // required
version: "1.0.0", // required
description: "...", // optional
instructions: "...", // optional
mcpPath: "/mcp", // optional, default: "/mcp"
codemode: false, // optional, see below
});
Codemode
Instead of exposing individual routes as tools, codemode exposes search and execute tools for dynamic API interaction. Requires Cloudflare Worker Loader.
export default mcp(app, {
name: "API",
version: "1.0.0",
codemode: true,
});
// wrangler.jsonc
{
"worker_loaders": [{ "binding": "LOADER" }],
}
快速设置
此服务器的安装指南
安装包 (如果需要)
npx @modelcontextprotocol/server-hono-mcp-server
Cursor 配置 (mcp.json)
{
"mcpServers": {
"mattzcarey-hono-mcp-server": {
"command": "npx",
"args": [
"mattzcarey-hono-mcp-server"
]
}
}
}