mirror of
https://github.com/SuperClaude-Org/SuperClaude_Framework.git
synced 2025-12-17 17:56:46 +00:00
455 lines
10 KiB
Markdown
455 lines
10 KiB
Markdown
|
|
# MCP Optional Design
|
||
|
|
|
||
|
|
## 基本原則: MCPはオプション
|
||
|
|
|
||
|
|
**重要**: SuperClaude Frameworkは **MCPなしでも完全に動作** します。
|
||
|
|
|
||
|
|
```yaml
|
||
|
|
Core Principle:
|
||
|
|
MCPs: Optional enhancements (性能向上のオプション)
|
||
|
|
Native Tools: Always available (常に利用可能)
|
||
|
|
Fallback: Automatic (自動フォールバック)
|
||
|
|
|
||
|
|
Design Philosophy:
|
||
|
|
"MCPs enhance, but never required"
|
||
|
|
"Native tools are the foundation"
|
||
|
|
"Graceful degradation always"
|
||
|
|
```
|
||
|
|
|
||
|
|
## Fallback Strategy
|
||
|
|
|
||
|
|
### MCP vs Native Tools
|
||
|
|
|
||
|
|
```yaml
|
||
|
|
Code Understanding:
|
||
|
|
With MCP: Serena (シンボル追跡、高速)
|
||
|
|
Without MCP: Grep + Read (テキスト検索、確実)
|
||
|
|
Degradation: 機能維持、速度低下のみ
|
||
|
|
|
||
|
|
Complex Analysis:
|
||
|
|
With MCP: Sequential (構造化推論、トークン効率)
|
||
|
|
Without MCP: Native reasoning (同等品質、トークン増)
|
||
|
|
Degradation: トークン使用量増加のみ
|
||
|
|
|
||
|
|
Documentation:
|
||
|
|
With MCP: Context7 (公式ドキュメント、キュレーション済み)
|
||
|
|
Without MCP: WebFetch + WebSearch (生データ、手動フィルタ)
|
||
|
|
Degradation: 情報の質が若干低下
|
||
|
|
|
||
|
|
Research:
|
||
|
|
With MCP: Tavily (最適化検索、構造化結果)
|
||
|
|
Without MCP: WebSearch (標準検索)
|
||
|
|
Degradation: 検索効率が若干低下
|
||
|
|
|
||
|
|
Memory:
|
||
|
|
With MCP: Mindbase (自動管理、永続化)
|
||
|
|
Without MCP: Session context only (セッション内のみ)
|
||
|
|
Degradation: クロスセッション記憶なし
|
||
|
|
```
|
||
|
|
|
||
|
|
## PM Agent Without MCPs
|
||
|
|
|
||
|
|
### Fully Functional Without Any MCP
|
||
|
|
|
||
|
|
```yaml
|
||
|
|
Session Start:
|
||
|
|
With MCPs:
|
||
|
|
- Git status ✅
|
||
|
|
- Read CLAUDE.md ✅
|
||
|
|
- Read docs/patterns/ ✅
|
||
|
|
- Mindbase auto-load ⚡ (optional)
|
||
|
|
|
||
|
|
Without MCPs:
|
||
|
|
- Git status ✅
|
||
|
|
- Read CLAUDE.md ✅
|
||
|
|
- Read docs/patterns/ ✅
|
||
|
|
- Session context only ✅
|
||
|
|
|
||
|
|
Result: 完全動作(クロスセッション記憶以外)
|
||
|
|
|
||
|
|
Pre-Implementation:
|
||
|
|
With MCPs:
|
||
|
|
- Read docs/patterns/ ✅
|
||
|
|
- Read docs/mistakes/ ✅
|
||
|
|
- Context7 official docs ⚡ (optional)
|
||
|
|
- Confidence check ✅
|
||
|
|
|
||
|
|
Without MCPs:
|
||
|
|
- Read docs/patterns/ ✅
|
||
|
|
- Read docs/mistakes/ ✅
|
||
|
|
- WebSearch official docs ✅
|
||
|
|
- Confidence check ✅
|
||
|
|
|
||
|
|
Result: 完全動作(ドキュメント取得が若干遅い)
|
||
|
|
|
||
|
|
During Implementation:
|
||
|
|
With MCPs:
|
||
|
|
- TodoWrite ✅
|
||
|
|
- Serena code understanding ⚡ (optional)
|
||
|
|
- Sequential complex analysis ⚡ (optional)
|
||
|
|
|
||
|
|
Without MCPs:
|
||
|
|
- TodoWrite ✅
|
||
|
|
- Grep + Read code search ✅
|
||
|
|
- Native reasoning ✅
|
||
|
|
|
||
|
|
Result: 完全動作(大規模コードベースで遅い)
|
||
|
|
|
||
|
|
Post-Implementation:
|
||
|
|
With MCPs:
|
||
|
|
- Self-evaluation ✅
|
||
|
|
- docs/patterns/ update ✅
|
||
|
|
- docs/mistakes/ update ✅
|
||
|
|
- Mindbase auto-save ⚡ (optional)
|
||
|
|
|
||
|
|
Without MCPs:
|
||
|
|
- Self-evaluation ✅
|
||
|
|
- docs/patterns/ update ✅
|
||
|
|
- docs/mistakes/ update ✅
|
||
|
|
- Session summary only ✅
|
||
|
|
|
||
|
|
Result: 完全動作(クロスセッション学習以外)
|
||
|
|
```
|
||
|
|
|
||
|
|
## Detection & Auto-Fallback
|
||
|
|
|
||
|
|
### MCP Availability Detection
|
||
|
|
|
||
|
|
```yaml
|
||
|
|
Runtime Detection:
|
||
|
|
Method: Try MCP, catch error, fallback
|
||
|
|
|
||
|
|
Example:
|
||
|
|
try:
|
||
|
|
serena.search_symbols("authenticate")
|
||
|
|
except MCPNotAvailable:
|
||
|
|
fallback_to_grep("authenticate")
|
||
|
|
|
||
|
|
User Impact: None (transparent)
|
||
|
|
Performance: Slightly slower on first detection
|
||
|
|
|
||
|
|
Startup Check:
|
||
|
|
Method: List available MCP servers
|
||
|
|
|
||
|
|
Available MCPs: [mindbase, serena, sequential]
|
||
|
|
Missing MCPs: [context7, tavily]
|
||
|
|
|
||
|
|
→ Auto-configure fallbacks
|
||
|
|
→ Log available MCPs
|
||
|
|
→ Proceed normally
|
||
|
|
```
|
||
|
|
|
||
|
|
### Automatic Fallback Logic
|
||
|
|
|
||
|
|
```yaml
|
||
|
|
Serena MCP Unavailable:
|
||
|
|
Task: "Refactor auth across 15 files"
|
||
|
|
|
||
|
|
Attempt:
|
||
|
|
1. Try Serena symbol tracking
|
||
|
|
2. MCPNotAvailable error
|
||
|
|
3. Fallback to Grep + Read
|
||
|
|
|
||
|
|
Execution:
|
||
|
|
grep -r "authenticate\|auth\|login" .
|
||
|
|
Read all matched files
|
||
|
|
Manual symbol tracking (slower but works)
|
||
|
|
|
||
|
|
Output: Same result, slower execution
|
||
|
|
|
||
|
|
Sequential MCP Unavailable:
|
||
|
|
Task: "Design microservices architecture"
|
||
|
|
|
||
|
|
Attempt:
|
||
|
|
1. Try Sequential reasoning
|
||
|
|
2. MCPNotAvailable error
|
||
|
|
3. Fallback to native reasoning
|
||
|
|
|
||
|
|
Execution:
|
||
|
|
Use native Claude reasoning
|
||
|
|
Break down problem manually
|
||
|
|
Step-by-step analysis (more tokens)
|
||
|
|
|
||
|
|
Output: Same quality, more tokens
|
||
|
|
|
||
|
|
Context7 MCP Unavailable:
|
||
|
|
Task: "How to use React Server Components"
|
||
|
|
|
||
|
|
Attempt:
|
||
|
|
1. Try Context7 official docs
|
||
|
|
2. MCPNotAvailable error
|
||
|
|
3. Fallback to WebSearch
|
||
|
|
|
||
|
|
Execution:
|
||
|
|
WebSearch "React Server Components official docs"
|
||
|
|
WebFetch relevant URLs
|
||
|
|
Manual filtering
|
||
|
|
|
||
|
|
Output: Same info, less curated
|
||
|
|
|
||
|
|
Mindbase MCP Unavailable:
|
||
|
|
Impact: No cross-session memory
|
||
|
|
|
||
|
|
Fallback:
|
||
|
|
- Use session context only
|
||
|
|
- docs/patterns/ for knowledge
|
||
|
|
- docs/mistakes/ for learnings
|
||
|
|
|
||
|
|
Limitation:
|
||
|
|
- Can't recall previous sessions automatically
|
||
|
|
- User can manually reference past work
|
||
|
|
|
||
|
|
Workaround: "Recall our conversation about X"
|
||
|
|
```
|
||
|
|
|
||
|
|
## Configuration
|
||
|
|
|
||
|
|
### MCP Enable/Disable
|
||
|
|
|
||
|
|
```yaml
|
||
|
|
User Configuration:
|
||
|
|
Location: ~/.claude/mcp-config.json (optional)
|
||
|
|
|
||
|
|
{
|
||
|
|
"mcps": {
|
||
|
|
"mindbase": "auto", // enabled if available
|
||
|
|
"serena": "auto", // enabled if available
|
||
|
|
"sequential": "auto", // enabled if available
|
||
|
|
"context7": "disabled", // explicitly disabled
|
||
|
|
"tavily": "enabled" // explicitly enabled
|
||
|
|
},
|
||
|
|
"fallback_mode": "graceful" // graceful | aggressive | disabled
|
||
|
|
}
|
||
|
|
|
||
|
|
Fallback Modes:
|
||
|
|
graceful: Try MCP, fallback silently (default)
|
||
|
|
aggressive: Prefer native tools, use MCP only when significantly better
|
||
|
|
disabled: Never fallback, error if MCP unavailable
|
||
|
|
```
|
||
|
|
|
||
|
|
### Performance Comparison
|
||
|
|
|
||
|
|
```yaml
|
||
|
|
Task: Refactor 15 files
|
||
|
|
|
||
|
|
With Serena MCP:
|
||
|
|
Time: 30 seconds
|
||
|
|
Tokens: 5,000
|
||
|
|
Accuracy: 95%
|
||
|
|
|
||
|
|
Without Serena (Grep fallback):
|
||
|
|
Time: 90 seconds
|
||
|
|
Tokens: 5,000
|
||
|
|
Accuracy: 95%
|
||
|
|
|
||
|
|
Difference: 3x slower, same quality
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
Task: Design architecture
|
||
|
|
|
||
|
|
With Sequential MCP:
|
||
|
|
Time: 60 seconds
|
||
|
|
Tokens: 8,000
|
||
|
|
Accuracy: 90%
|
||
|
|
|
||
|
|
Without Sequential (Native reasoning):
|
||
|
|
Time: 60 seconds
|
||
|
|
Tokens: 15,000
|
||
|
|
Accuracy: 90%
|
||
|
|
|
||
|
|
Difference: Same speed, 2x tokens
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
Task: Fetch official docs
|
||
|
|
|
||
|
|
With Context7 MCP:
|
||
|
|
Time: 10 seconds
|
||
|
|
Relevance: 95%
|
||
|
|
Curated: Yes
|
||
|
|
|
||
|
|
Without Context7 (WebSearch):
|
||
|
|
Time: 30 seconds
|
||
|
|
Relevance: 80%
|
||
|
|
Curated: No
|
||
|
|
|
||
|
|
Difference: 3x slower, less relevant
|
||
|
|
```
|
||
|
|
|
||
|
|
## Testing Without MCPs
|
||
|
|
|
||
|
|
### Test Scenarios
|
||
|
|
|
||
|
|
```yaml
|
||
|
|
Scenario 1: No MCPs Installed
|
||
|
|
Setup: Fresh Claude Code, no MCP servers
|
||
|
|
|
||
|
|
Test Cases:
|
||
|
|
- [ ] Session start works
|
||
|
|
- [ ] CLAUDE.md loaded
|
||
|
|
- [ ] docs/patterns/ readable
|
||
|
|
- [ ] Code search via Grep
|
||
|
|
- [ ] TodoWrite functional
|
||
|
|
- [ ] Documentation updates work
|
||
|
|
|
||
|
|
Expected: All core functionality works
|
||
|
|
|
||
|
|
Scenario 2: Partial MCPs Available
|
||
|
|
Setup: Only Mindbase installed
|
||
|
|
|
||
|
|
Test Cases:
|
||
|
|
- [ ] Session memory works (Mindbase)
|
||
|
|
- [ ] Code search fallback (Grep)
|
||
|
|
- [ ] Analysis fallback (Native)
|
||
|
|
- [ ] Docs fallback (WebSearch)
|
||
|
|
|
||
|
|
Expected: Memory works, others fallback
|
||
|
|
|
||
|
|
Scenario 3: MCP Becomes Unavailable
|
||
|
|
Setup: Start with MCP, MCP crashes mid-session
|
||
|
|
|
||
|
|
Test Cases:
|
||
|
|
- [ ] Detect MCP failure
|
||
|
|
- [ ] Auto-fallback to native
|
||
|
|
- [ ] Session continues normally
|
||
|
|
- [ ] User not impacted
|
||
|
|
|
||
|
|
Expected: Graceful degradation
|
||
|
|
|
||
|
|
Scenario 4: MCP Performance Issues
|
||
|
|
Setup: MCP slow or timeout
|
||
|
|
|
||
|
|
Test Cases:
|
||
|
|
- [ ] Timeout detection (5 seconds)
|
||
|
|
- [ ] Auto-fallback
|
||
|
|
- [ ] Log performance issue
|
||
|
|
- [ ] Continue with native
|
||
|
|
|
||
|
|
Expected: No blocking, auto-fallback
|
||
|
|
```
|
||
|
|
|
||
|
|
## Documentation Strategy
|
||
|
|
|
||
|
|
### User-Facing Documentation
|
||
|
|
|
||
|
|
```yaml
|
||
|
|
Getting Started:
|
||
|
|
"SuperClaude works out of the box without any MCPs"
|
||
|
|
"MCPs are optional performance enhancements"
|
||
|
|
"Install MCPs for better performance, not required"
|
||
|
|
|
||
|
|
Installation Guide:
|
||
|
|
Minimal Setup:
|
||
|
|
- Clone repo
|
||
|
|
- Run installer
|
||
|
|
- Start using (no MCPs)
|
||
|
|
|
||
|
|
Enhanced Setup (Optional):
|
||
|
|
- Install Mindbase (cross-session memory)
|
||
|
|
- Install Serena (faster code understanding)
|
||
|
|
- Install Sequential (token efficiency)
|
||
|
|
- Install Context7 (curated docs)
|
||
|
|
- Install Tavily (better search)
|
||
|
|
|
||
|
|
Performance Comparison:
|
||
|
|
"With MCPs: 2-3x faster, 30-50% fewer tokens"
|
||
|
|
"Without MCPs: Slightly slower, works perfectly"
|
||
|
|
"Recommendation: Start without, add MCPs if needed"
|
||
|
|
```
|
||
|
|
|
||
|
|
### Developer Documentation
|
||
|
|
|
||
|
|
```yaml
|
||
|
|
MCP Integration Guidelines:
|
||
|
|
|
||
|
|
Rule 1: Always provide fallback
|
||
|
|
✅ try_mcp_then_fallback()
|
||
|
|
❌ require_mcp_or_fail()
|
||
|
|
|
||
|
|
Rule 2: Silent degradation
|
||
|
|
✅ Fallback transparently
|
||
|
|
❌ Show errors to user
|
||
|
|
|
||
|
|
Rule 3: Test both paths
|
||
|
|
✅ Test with and without MCPs
|
||
|
|
❌ Only test with MCPs
|
||
|
|
|
||
|
|
Rule 4: Document fallback behavior
|
||
|
|
✅ "Uses Grep if Serena unavailable"
|
||
|
|
❌ "Requires Serena MCP"
|
||
|
|
|
||
|
|
Rule 5: Performance expectations
|
||
|
|
✅ "30% slower without MCP"
|
||
|
|
❌ "Not functional without MCP"
|
||
|
|
```
|
||
|
|
|
||
|
|
## Benefits of Optional Design
|
||
|
|
|
||
|
|
```yaml
|
||
|
|
Accessibility:
|
||
|
|
✅ No barriers to entry
|
||
|
|
✅ Works on any system
|
||
|
|
✅ No additional dependencies
|
||
|
|
✅ Easy onboarding
|
||
|
|
|
||
|
|
Reliability:
|
||
|
|
✅ No single point of failure
|
||
|
|
✅ Graceful degradation
|
||
|
|
✅ Always functional baseline
|
||
|
|
✅ MCP issues don't block work
|
||
|
|
|
||
|
|
Flexibility:
|
||
|
|
✅ Users choose their setup
|
||
|
|
✅ Incremental enhancement
|
||
|
|
✅ Mix and match MCPs
|
||
|
|
✅ Easy testing/debugging
|
||
|
|
|
||
|
|
Maintenance:
|
||
|
|
✅ Framework works independently
|
||
|
|
✅ MCP updates don't break framework
|
||
|
|
✅ Easy to add new MCPs
|
||
|
|
✅ Easy to remove problematic MCPs
|
||
|
|
```
|
||
|
|
|
||
|
|
## Migration Path
|
||
|
|
|
||
|
|
```yaml
|
||
|
|
Current Users (No MCPs):
|
||
|
|
Status: Already working
|
||
|
|
Action: None required
|
||
|
|
Benefit: Can add MCPs incrementally
|
||
|
|
|
||
|
|
New Users:
|
||
|
|
Step 1: Install framework (works immediately)
|
||
|
|
Step 2: Use without MCPs (full functionality)
|
||
|
|
Step 3: Add MCPs if desired (performance boost)
|
||
|
|
|
||
|
|
MCP Adoption:
|
||
|
|
Mindset: "Nice to have, not must have"
|
||
|
|
Approach: Incremental enhancement
|
||
|
|
Philosophy: Core functionality always works
|
||
|
|
```
|
||
|
|
|
||
|
|
## Conclusion
|
||
|
|
|
||
|
|
```yaml
|
||
|
|
Core Message:
|
||
|
|
"SuperClaude Framework is MCP-optional by design"
|
||
|
|
"MCPs enhance performance, not functionality"
|
||
|
|
"Native tools provide reliable baseline"
|
||
|
|
"Choose your enhancement level"
|
||
|
|
|
||
|
|
User Choice:
|
||
|
|
Minimal: No MCPs, full functionality
|
||
|
|
Standard: Mindbase only, cross-session memory
|
||
|
|
Enhanced: All MCPs, maximum performance
|
||
|
|
Custom: Pick and choose based on needs
|
||
|
|
|
||
|
|
Design Success:
|
||
|
|
✅ Zero dependencies for basic operation
|
||
|
|
✅ Graceful degradation always
|
||
|
|
✅ User empowerment through choice
|
||
|
|
✅ Reliable baseline guaranteed
|
||
|
|
```
|