6.0 KiB
6.0 KiB
Claude CodeでClaude Code的環境を作る方法
Claude CodeでClaude Codeのようなことを実現する様々なアプローチをご紹介!
🎯 方法1: MCP Server経由でローカルLLMに委譲
claude-code-mcp を使用
# Claude Code MCPサーバーのセットアップ
git clone https://github.com/steipete/claude-code-mcp
cd claude-code-mcp
# Claude Codeをローカルで呼び出すMCPサーバーとして動作
npm install
npm start
仕組み:
- Claude Code → MCP Server → ローカルLLM → 結果を返す
- Claude Codeを全権限バイパス(--dangerously-skip-permissions)で実行
- Agent in Agent 構造の実現
🎯 方法2: Claude Desktop + Custom MCP Server
カスタムMCPサーバーでローカルLLM統合
# custom_llm_mcp_server.py
import asyncio
import json
from mcp.server import Server
from mcp.types import Tool, TextContent
import requests
app = Server("local-llm-mcp")
@app.tool("run_local_llm")
async def run_local_llm(prompt: str, model: str = "qwen2.5-coder:14b") -> str:
"""ローカルLLMでコード生成・分析を実行"""
response = requests.post("http://localhost:11434/api/generate", json={
"model": model,
"prompt": prompt,
"stream": False
})
return response.json()["response"]
@app.tool("execute_code")
async def execute_code(code: str, language: str = "python") -> str:
"""生成されたコードを実行"""
# セキュアな実行環境でコード実行
# Docker containerやsandbox環境推奨
pass
if __name__ == "__main__":
asyncio.run(app.run())
Claude Desktop設定
{
"mcpServers": {
"local-llm": {
"command": "python",
"args": ["custom_llm_mcp_server.py"]
}
}
}
🎯 方法3: VS Code拡張 + MCP統合
VS Code設定でClaude Code風環境
// settings.json
{
"mcp.servers": {
"claude-code-local": {
"command": ["python", "claude_code_local.py"],
"args": ["--model", "qwen2.5-coder:14b"]
}
}
}
VS Codeは両方の構成(ローカル/リモート)をサポートしているから、柔軟に設定できるよ〜
🎯 方法4: API Gateway パターン
Claude Code → API Gateway → ローカルLLM
# api_gateway.py
from fastapi import FastAPI
import requests
app = FastAPI()
@app.post("/v1/chat/completions")
async def proxy_to_local_llm(request: dict):
"""OpenAI API互換エンドポイント"""
# Claude Code → この API → Ollama
ollama_response = requests.post(
"http://localhost:11434/api/chat",
json={
"model": "qwen2.5-coder:14b",
"messages": request["messages"]
}
)
# OpenAI API形式で返却
return {
"choices": [{
"message": {"content": ollama_response.json()["message"]["content"]}
}]
}
Claude Code設定
# 環境変数でローカルAPIを指定
export ANTHROPIC_API_KEY="dummy"
export ANTHROPIC_BASE_URL="http://localhost:8000/v1"
claude code --api-base http://localhost:8000
🎯 方法5: Docker Compose 統合環境
docker-compose.yml
version: '3.8'
services:
ollama:
image: ollama/ollama:latest
ports:
- "11434:11434"
volumes:
- ollama_data:/root/.ollama
mcp-server:
build: ./mcp-server
ports:
- "3000:3000"
depends_on:
- ollama
environment:
- OLLAMA_URL=http://ollama:11434
claude-desktop:
image: claude-desktop:latest
volumes:
- ./config:/app/config
environment:
- MCP_SERVER_URL=http://mcp-server:3000
volumes:
ollama_data:
DockerはMCPサーバーの展開と管理を簡素化し、分離とポータビリティを提供
🎯 方法6: 簡易プロキシスクリプト
claude_to_local.py
#!/usr/bin/env python3
import subprocess
import sys
import json
def claude_code_wrapper():
"""Claude CodeコマンドをインターセプトしてローカルLLMに転送"""
# Claude Codeの引数を取得
args = sys.argv[1:]
prompt = " ".join(args)
# ローカルLLMで処理
result = subprocess.run([
"ollama", "run", "qwen2.5-coder:14b", prompt
], capture_output=True, text=True)
# 結果を整形してClaude Code風に出力
print("🤖 Local Claude Code (Powered by Qwen2.5-Coder)")
print("=" * 50)
print(result.stdout)
# 必要に応じてファイル操作も実行
if "--write" in args:
# ファイル書き込み処理
pass
if __name__ == "__main__":
claude_code_wrapper()
エイリアス設定
# .bashrc または .zshrc
alias claude-code="python claude_to_local.py"
🎯 方法7: Aider + Claude Code 統合
設定方法
# Aiderでローカルモデル使用
aider --model ollama/qwen2.5-coder:14b
# Claude Codeから呼び出し
claude code "Run aider with local model to implement feature X"
💡 どの方法がおすすめ?
用途別推奨:
- 🔧 開発効率重視: MCP Server方式(方法1,2)
- 🏠 統合環境: Docker Compose(方法5)
- ⚡ 簡単設置: プロキシスクリプト(方法6)
- 🎨 カスタマイズ: API Gateway(方法4)
🚀 実装のコツ
セキュリティ考慮
- サンドボックス環境でコード実行
- ファイルアクセス権限の制限
- API キーの適切な管理
パフォーマンス最適化
- ローカルLLMのGPU使用確認
- MCP サーバーのキャッシュ機能
- 並列処理の活用
デバッグ方法
# MCP サーバーのログ確認
tail -f ~/.config/claude-desktop/logs/mcp.log
# Ollama の動作確認
ollama ps
curl http://localhost:11434/api/tags
🎉 まとめ
Claude CodeでClaude Code的な環境を作るには、MCPプロトコルを活用するのが最も効果的!ローカルLLMの性能も向上しているので、実用的な環境が構築できるよ〜✨
どの方法から試してみる?アイが一緒に設定をお手伝いするからね!