# プロダクト要求定義書 (Product Requirements Document)
## プロダクト概要
### 名称
**simple-mcp-server** - CloudflareとHonoで作る最もシンプルなリモートMCPサーバー
### プロダクトコンセプト
- **極限のシンプルさ**: 最小限のコードと設定でリモートMCPサーバーを構築
- **技術ブログの題材**: CloudflareとHonoを使ったデプロイの簡単さを伝えるサンプル
- **即座に試せる**: npm/npxで簡単にローカル実行・デプロイ可能
### プロダクトビジョン
リモートMCPサーバーの構築は難しいと思われがちだが、CloudflareとHonoを使えば驚くほど簡単にデプロイできることを示す。
このサンプルプロジェクトを通じて、開発者がMCPサーバーの構築に対する心理的ハードルを下げ、自分のプロジェクトでMCPを活用するきっかけを提供する。
技術ブログの読者が、記事を読みながら実際に動くサーバーを数分でデプロイできる体験を提供する。
### 目的
- CloudflareとHonoを用いたリモートMCPサーバーのデプロイの簡単さを実証する
- 技術ブログの題材として、読者が追従できるサンプルコードを提供する
- MCP (Model Context Protocol) の実装パターンを学ぶための教材となる
## ターゲットユーザー
### プライマリーペルソナ: 佐藤健太(32歳、Webエンジニア)
- Web開発3-5年の経験、TypeScriptに慣れている
- MCPに興味があるが、まだ実装したことがない
- Cloudflare Workersは聞いたことがあるが、本格的に使ったことはない
- 技術ブログを読んで新しい技術をキャッチアップしている
- 週末に2-3時間でサクッと試せるものを探している
**現在の課題**:
- MCPサーバーの構築は難しそうで手が出せない
- リモートサーバーのホスティングは設定が面倒
**期待する解決策**:
- コードを読んで数分で理解できるシンプルな実装
- コマンド数回でデプロイまで完了できる手順
**1日の典型的なワークフロー**:
技術ブログを発見 → 記事を読む → サンプルコードをclone → ローカルで動作確認 → Cloudflareにデプロイ → 動作確認して満足
## 成功指標(KPI)
### プライマリーKPI
- **理解容易性**: 初見のエンジニアがREADMEを読んでから動作確認完了まで15分以内
- **コード量**: メインのサーバーコードが100行以内
- **依存パッケージ数**: 最小限(Hono、@hono/mcp関連のみ)
### セカンダリーKPI
- **デプロイまでの所要時間**: 初回セットアップからCloudflareデプロイまで10分以内(Cloudflareアカウント作成済みの場合)
- **ブログ記事での参照**: 技術ブログで引用・参照される
## 機能要件
### コア機能(MVP)
#### 素因数分解ツール (factorize)
**ユーザーストーリー**:
MCPクライアントを使う開発者として、数値を入力して素因数分解の結果を得るために、factorizeツールが欲しい
**受け入れ条件**:
- [x] 正の整数を入力として受け取れる
- [x] 入力値の上限は15桁(999,999,999,999,999)まで
- [x] 素因数のリストを返す(例: 12 → [2, 2, 3])
- [x] 割り算を行った回数を返す
- [x] 不正な入力に対して親切な日本語エラーメッセージを返す
- 正の整数以外: 「正の整数を入力してください」
- 上限超過: 「入力値が上限(15桁)を超えています」
- [x] zodによる入力バリデーション
**優先度**: P0(必須)
#### MCPサーバー基盤
**ユーザーストーリー**:
MCPクライアントを使う開発者として、Streamable HTTPで接続できるMCPサーバーを利用したい
**受け入れ条件**:
- [x] Streamable HTTPトランスポートをサポート
- [x] MCP仕様に準拠したリクエスト/レスポンス
- [x] Cloudflare Workers上で動作
**優先度**: P0(必須)
#### ドキュメント (README.md)
**ユーザーストーリー**:
プロジェクトを見つけた開発者として、すぐに試せるように、明確なセットアップ手順が欲しい
**受け入れ条件**:
- [x] ローカルでの実行方法が記載されている
- [x] Cloudflareへのデプロイ方法が記載されている
- [x] MCPクライアントからの接続方法が記載されている
**優先度**: P0(必須)
### 将来的な機能(Post-MVP)
#### 追加のデモツール
例: フィボナッチ数列、素数判定など、他の数学的なツールの追加
**優先度**: P2(できれば)
## 非機能要件
### パフォーマンス
- factorizeツールの実行時間: 15桁の数値でも1秒以内
- サーバーの応答時間: 100ms以内(Cloudflare Workers上)
### ユーザビリティ
- READMEを読んで15分以内にローカル実行可能
- デプロイまでのコマンド数: 5コマンド以内
### 信頼性
- Cloudflare Workersの可用性に依存(99.9%以上)
### セキュリティ
- 認証: なし(デモ用途のため)
- 入力値のバリデーション: 実装する(数値上限チェック)
### スケーラビリティ
- Cloudflare Workersの自動スケーリングに依存
## スコープ外
明示的にスコープ外とする項目:
- 認証・認可機能
- データベース連携
- 複雑なCloudflare設定(KV、D1、R2など)
- 本番環境での利用を想定した堅牢性
- CI/CD設定