ken-1200/react-fastapi-mcp-server
3.1
If you are the rightful owner of react-fastapi-mcp-server and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.
This project implements a Model Context Protocol (MCP) server using React for the frontend and FastAPI for the backend.
React FastAPI MCP Server
このプロジェクトは、React(フロントエンド)とFastAPI(バックエンド)を使用したMCP(Model Context Protocol)サーバーの実装です。
https://github.com/user-attachments/assets/4b54699b-64f9-4046-b27b-6d0962d9dd5c
🚀 主な機能
- MCP Server: FastAPIベースのModel Context Protocolサーバー
- React Frontend: Next.js + TypeScriptによるモダンなWebフロントエンド
- OpenAI LLM統合: 自然言語でのツール自動選択・実行
- ツール実行許可機能: セキュリティを考慮したツール実行前の許可確認
- リアルタイム通信: Server-Sent Events (SSE) による双方向通信
- 多様なチャット UI: シンプルなMCP通信から高度なLLM統合まで
📁 プロジェクト構造
.
├── backend/ # FastAPIバックエンドサーバー
│ ├── app/ # FastAPIアプリケーション
│ ├── tests/ # テストファイル
│ └── README.md # バックエンド詳細説明
├── frontend/ # Next.js + React フロントエンド
│ ├── app/ # Next.js App Router
│ ├── components/ # Reactコンポーネント
│ ├── lib/ # ユーティリティ・クライアント
│ └── README.md # フロントエンド詳細説明
├── infra/ # インフラストラクチャ設定
└── README.md # このファイル
🛠 セットアップ
前提条件
- Python 3.11+
- Node.js 18+
- pnpm (推奨) または npm
バックエンドセットアップ
# バックエンドディレクトリに移動
cd backend
# 開発環境のセットアップ
make dev
# 開発サーバーの起動
make run-dev
サーバーは http://localhost:8000 で起動します。
フロントエンドセットアップ
# フロントエンドディレクトリに移動
cd frontend
# 依存関係のインストール
pnpm install
# 環境変数の設定(必要に応じて)
cp .env.example .env.local
# .env.local を編集してOpenAI API キーなどを設定
# 開発サーバーの起動
pnpm dev
フロントエンドは http://localhost:3000 で起動します。
🎯 使用方法
1. シンプルなMCP通信
- URL: http://localhost:3000/mcp
- 説明: 基本的なMCP通信機能
2. OpenAI LLM統合(許可機能付き)
- URL: http://localhost:3000/llm
- 説明: OpenAI APIを使用した自然言語処理とツール実行許可機能
- 機能:
- 自然言語でのツール自動選択
- ツール実行前の許可確認ダイアログ
- 日本語での意図解析・応答生成
3. その他のインターフェース
- Claude風: http://localhost:3000/claude
- SSE通信: http://localhost:3000/sse
- 最適化版: http://localhost:3000/llm-optimized
🔧 開発
バックエンド開発
cd backend
# テストの実行
make test
# リンターの実行
make lint
# コードフォーマット
make format
# 型チェック
make typecheck
フロントエンド開発
cd frontend
# テストの実行
pnpm test
# リンターの実行
pnpm lint
# 型チェック
pnpm type-check
# ビルド
pnpm build
🐳 Docker を使用した起動
バックエンド
cd backend
# 開発環境で起動
make docker-run-dev
# 本番環境で起動
make docker-run-prod
フロントエンド
cd frontend
# Dockerでの起動
docker build -t react-mcp-frontend .
docker run -p 3000:3000 react-mcp-frontend
📊 API ドキュメント
サーバー起動後、以下のURLでAPIドキュメントを確認できます:
- Swagger UI: http://localhost:8000/docs
- ReDoc: http://localhost:8000/redoc
🛡️ セキュリティ機能
ツール実行許可機能
/llm
ページでは、MCPツールを実行する前にユーザーの明示的な許可を求めます:
- ツール名・説明・引数の表示
- 実行理由の説明
- 許可/拒否の選択
- 許可機能のON/OFF切り替え
🔗 主要技術スタック
バックエンド
- FastAPI: モダンなPython Webフレームワーク
- Pydantic: データ検証・設定管理
- uvicorn: ASGIサーバー
- pytest: テストフレームワーク
フロントエンド
- Next.js 15: Reactフレームワーク
- TypeScript: 型安全性
- Tailwind CSS: ユーティリティファーストCSS
- Lucide React: アイコンライブラリ
- AI SDK: OpenAI API統合
📝 環境変数
フロントエンド (.env.local)
# OpenAI API設定
OPENAI_API_KEY=your_openai_api_key_here
OPENAI_MODEL=gpt-4o-mini # 使用するモデル
OPENAI_TEMPERATURE=0.7
OPENAI_MAX_TOKENS=1000
# バックエンドURL
NEXT_PUBLIC_BACKEND_URL=http://localhost:8000
🤝 コントリビューション
- フォークしてください
- フィーチャーブランチを作成してください (
git checkout -b feature/AmazingFeature
) - 変更をコミットしてください (
git commit -m 'Add some AmazingFeature'
) - ブランチにプッシュしてください (
git push origin feature/AmazingFeature
) - プルリクエストを開いてください
📄 ライセンス
このプロジェクトはMITライセンスの下で公開されています。詳細は ファイルを参照してください。
🙋♂️ サポート
質問や問題がある場合は、Issues を作成してください。