Skip to main content
Glama
aoki-collabo

Simple Hono MCP Server

by aoki-collabo
README.md
# simple-mcp-server

CloudflareとHonoで作る最もシンプルなリモートMCPサーバー。

## 概要

このプロジェクトは、[MCP (Model Context Protocol)](https://modelcontextprotocol.io/) サーバーをCloudflare Workers上で動作させるサンプル実装です。Honoフレームワークを使用し、最小限のコードでMCPサーバーを構築できることを示しています。

## 提供するツール

### factorize

正の整数を素因数分解するツールです。

**入力**:
- `number`: 素因数分解する正の整数(1以上、15桁以下)

**出力**:
- 素因数のリスト
- 割り算回数

**例**:
```
入力: 12
出力: 12の素因数分解結果:
素因数: [2, 2, 3]
割り算回数: 3回
```

## 前提条件

- Node.js v18以上
- Cloudflareアカウント(デプロイする場合)

## セットアップ

```bash
# リポジトリのクローン
git clone <repository-url>
cd simple-mcp-server

# 依存関係のインストール
npm install
```

## ローカル実行

```bash
npm run dev
```

サーバーが `http://localhost:8787` で起動します。MCPエンドポイントは `http://localhost:8787/mcp` です。

## テスト

```bash
npm test
```

## Cloudflareへのデプロイ

```bash
# Cloudflareにログイン(初回のみ)
npx wrangler login

# デプロイ
npm run deploy
```

デプロイ後、`https://<your-worker>.workers.dev/mcp` でアクセスできます。

## MCPクライアントからの接続

### Claude Desktop

`claude_desktop_config.json` に以下を追加:

```json
{
  "mcpServers": {
    "simple-mcp-server": {
      "url": "http://localhost:8787/mcp"
    }
  }
}
```

デプロイ後は `url` をCloudflare WorkersのURLに変更してください。

### Claude Code

```bash
claude mcp add simple-mcp-server http://localhost:8787/mcp --transport http
```

## 動作確認

curlでの確認:

```bash
# ツール一覧の取得
curl -X POST http://localhost:8787/mcp \
  -H "Content-Type: application/json" \
  -H "Accept: application/json, text/event-stream" \
  -d '{"jsonrpc": "2.0", "method": "tools/list", "id": 1}'

# 素因数分解の実行
curl -X POST http://localhost:8787/mcp \
  -H "Content-Type: application/json" \
  -H "Accept: application/json, text/event-stream" \
  -d '{"jsonrpc": "2.0", "method": "tools/call", "params": {"name": "factorize", "arguments": {"number": 12}}, "id": 2}'
```

## 技術スタック

- [Hono](https://hono.dev/) - 軽量Webフレームワーク
- [@hono/mcp](https://github.com/honojs/middleware/tree/main/packages/mcp) - HonoのMCPサポート
- [Cloudflare Workers](https://workers.cloudflare.com/) - サーバーレス実行環境
- [Vitest](https://vitest.dev/) - テストフレームワーク
- [zod](https://zod.dev/) - スキーマバリデーション

## ライセンス

MIT

## License Notice

Claude Code関連ドキュメント(`.claude/`、`.steering/`等)は [GenerativeAgents/claude-code-book-chapter8](https://github.com/GenerativeAgents/claude-code-book-chapter8) を参考にしています(MIT License)。