# MCP Server セットアップガイド Claude Code + ローカルLLM統合環境 ## 🚀 セットアップ手順 ### 1. 依存関係のインストール ```bash # 仮想環境作成 python -m venv mcp-env mcp-env\Scripts\activate # Windows # source mcp-env/bin/activate # Linux/Mac # 必要なパッケージをインストール pip install mcp requests pathlib asyncio ``` ### 2. Ollamaのセットアップ ```bash # Ollamaのインストール(https://ollama.com) # Windows: インストーラーをダウンロード # Linux: curl -fsSL https://ollama.com/install.sh | sh # Qwen2.5-Coderモデルをダウンロード ollama pull qwen2.5-coder:14b-instruct-q4_K_M # Ollamaサーバー起動確認 ollama serve ``` ### 3. Claude Desktop設定 #### claude_desktop_config.json の作成 **Windows**: `%APPDATA%\Claude\claude_desktop_config.json` **macOS**: `~/Library/Application Support/Claude/claude_desktop_config.json` **Linux**: `~/.config/claude/claude_desktop_config.json` ```json { "mcpServers": { "local-llm": { "command": "python", "args": ["/path/to/your/local_llm_mcp_server.py"], "env": { "OLLAMA_URL": "http://localhost:11434", "DEFAULT_MODEL": "qwen2.5-coder:14b-instruct-q4_K_M" } } } } ``` ### 4. Claude Code設定 ```bash # Claude Codeをインストール(既にインストール済みの場合はスキップ) # 公式サイトからダウンロード # MCP サーバーを追加 claude mcp add local-llm # または手動で設定ファイルを編集 # ~/.config/claude-code/config.json ``` ## 🎯 使用方法 ### Claude Codeから使用 ```bash # Claude Codeを起動 claude code # プロンプト例: # "Use local LLM to implement a Python quicksort function" # "Analyze main.py with local model for potential bugs" # "Generate a REST API using the local coding model" ``` ### 利用可能なツール 1. **code_with_local_llm** - タスク: `"Implement a binary search tree in Python"` - プロジェクトコンテキスト含む: `true` 2. **read_file_with_analysis** - ファイルパス: `"src/main.py"` - 分析タイプ: `"bugs"` | `"optimization"` | `"documentation"` 3. **write_code_to_file** - ファイルパス: `"utils/helpers.py"` - タスク説明: `"Create utility functions for data processing"` 4. **debug_with_llm** - エラーメッセージ: `"IndexError: list index out of range"` - コードコンテキスト: 該当するコード部分 5. **explain_code** - コード: 解説したいコード - 詳細レベル: `"basic"` | `"medium"` | `"detailed"` 6. **switch_model** - モデル名: `"qwen2.5-coder:7b-instruct"` ## 🔧 カスタマイズ ### モデル設定の変更 ```python # デフォルトモデルの変更 llm = LocalLLMServer("deepseek-coder:6.7b-instruct-q4_K_M") # 複数モデル対応 models = { "coding": "qwen2.5-coder:14b-instruct-q4_K_M", "general": "qwen2.5:14b-instruct-q4_K_M", "light": "mistral-nemo:12b-instruct-q5_K_M" } ``` ### プロンプトのカスタマイズ ```python # システムプロンプトの調整 system_prompt = """You are an expert coding assistant specialized in: - Clean, efficient code generation - Best practices and design patterns - Security-conscious development - Performance optimization Always provide: - Working, tested code - Comprehensive comments - Error handling - Performance considerations""" ``` ## 🛠️ トラブルシューティング ### よくある問題 1. **MCPサーバーが起動しない** ```bash # ログ確認 tail -f ~/.config/claude-desktop/logs/mcp.log # Pythonパスの確認 which python ``` 2. **Ollamaに接続できない** ```bash # Ollamaの状態確認 ollama ps curl http://localhost:11434/api/tags # サービス再起動 ollama serve ``` 3. **モデルが見つからない** ```bash # インストール済みモデル確認 ollama list # モデルの再ダウンロード ollama pull qwen2.5-coder:14b-instruct-q4_K_M ``` ### パフォーマンス最適化 ```python # Ollamaの設定調整 { "temperature": 0.1, # 一貫性重視 "top_p": 0.95, # 品質バランス "num_predict": 2048, # 応答長制限 "num_ctx": 4096 # コンテキスト長 } ``` ### セキュリティ設定 ```python # ファイルアクセス制限 ALLOWED_DIRECTORIES = [ os.getcwd(), os.path.expanduser("~/projects") ] # 実行可能コマンドの制限 ALLOWED_COMMANDS = ["git", "python", "node", "npm"] ``` ## 🎉 使用例 ### 1. 新機能の実装 ``` Claude Code Prompt: "Use local LLM to create a user authentication system with JWT tokens in Python Flask" → MCPサーバーがローカルLLMでコード生成 → ファイルに自動保存 → Claude Codeが結果を表示 ``` ### 2. バグ修正 ``` Claude Code Prompt: "Analyze app.py for bugs and fix them using the local model" → ファイル読み込み + LLM分析 → 修正版コードを生成 → バックアップ作成後に上書き ``` ### 3. コードレビュー ``` Claude Code Prompt: "Review the entire codebase with local LLM and provide optimization suggestions" → プロジェクト全体をスキャン → 各ファイルをLLMで分析 → 改善提案をレポート形式で生成 ``` ## 📊 パフォーマンス比較 | 機能 | Claude Code (公式) | ローカルLLM + MCP | |------|-------------------|-------------------| | 応答速度 | ⚡ 高速 | 🟡 中程度 | | プライバシー | 🟡 クラウド | 🟢 完全ローカル | | カスタマイズ | 🟡 限定的 | 🟢 完全自由 | | コスト | 💰 従量課金 | 🟢 無料 | | 専門性 | 🟢 汎用的 | 🟢 カスタマイズ可能 | ## 🔄 今後の拡張 - [ ] 複数LLMモデルの同時利用 - [ ] コード実行環境の統合 - [ ] Gitワークフローの自動化 - [ ] プロジェクトテンプレートの生成 - [ ] 自動テスト生成機能