README.md•2.36 kB
# Hono MCP Server with Bun JS & Vercel
This project demonstrates how to build a Model Context Protocol (MCP) server using [Hono](https://hono.dev/) web framework, developed with **Bun JS**, and deployed on **Vercel**. The server exposes mathematical operation tools (add, subtract, multiply, divide) that can be consumed by MCP clients.
## Demo
To connect your MCP client to the server, use: [https://hono-mcp-demo.vercel.app/mcp](https://hono-mcp-demo.vercel.app/mcp)
You can also visit [https://hono-mcp-demo.vercel.app](https://hono-mcp-demo.vercel.app) in your browser.
## What is MCP?
The Model Context Protocol (MCP) is an open protocol that standardizes how applications provide context to Large Language Models (LLMs). This example shows how to create an MCP server that exposes tools as HTTP endpoints.
## Features
- **🧮 Math Operations**: Four basic calculator tools (add, subtract, multiply, divide)
- **⚡ Bun JS**: Fast JavaScript runtime and package manager for development
- **🔧 MCP Handler**: Uses `mcp-handler` library for easy MCP server creation
- **🛡️ Type Safety**: Built with TypeScript and Zod for runtime validation
- **☁️ Vercel Deployment**: Optimized for serverless deployment on Vercel
## Prerequisites
- [Bun JS](https://bun.sh/) (recommended) or Node.js 18+
- [Vercel CLI](https://vercel.com/docs/cli) installed globally
## Development
**With Bun (recommended):**
```bash
bun install
vc dev
```
**Alternative with npm:**
```bash
npm install
vc dev
```
Open [http://localhost:3000](http://localhost:3000) in your browser.
## Build
**With Bun:**
```bash
bun install
bun run build
```
**Alternative:**
```bash
npm install
vc build
```
## Deployment
```bash
bun install # or npm install
vc deploy
```
## API Endpoints
- **GET `/`** - Welcome endpoint with server information
- **POST `/mcp/*`** - MCP protocol endpoint for tool execution
## Available Tools
The server exposes the following MCP tools:
- **add** - Add two numbers
- **subtract** - Subtract two numbers
- **multiply** - Multiply two numbers
- **divide** - Divide two numbers (with zero-division protection)
## Using the MCP Server
Once deployed, you can connect to this MCP server from any MCP-compatible client by pointing to the `/mcp` endpoint. The server handles the MCP protocol transport and tool execution automatically.