Skip to main content
Glama

DollhouseMCP

by DollhouseMCP
FINAL_CAPABILITY_INDEX_ANALYSIS.md4.47 kB
# Final Capability Index Analysis - What We Actually Learned ## 1. HOW THE INDEX IS INJECTED ### Method: CLAUDE.md File Volume Mount ```bash # Create CLAUDE.md with index content cat > /test_dir/CLAUDE.md << EOF CAPABILITY_INDEX: personas → list_elements("personas") debug → search_collection("debug") EOF # Mount in Docker container -v "$(pwd)/test_dir/CLAUDE.md:/home/claude/CLAUDE.md:ro" ``` ### VERIFIED: Claude CAN Read CLAUDE.md **Test with tracer marker:** - Input: CLAUDE.md with "UNIQUE_MARKER_ABCDEF" - Query: "Say YES if you see UNIQUE_MARKER_ABCDEF" - Result: "YES" - **Claude reads the file!** ## 2. WHY RESULTS ARE FLAT ### We're NOT Actually Varying the Important Part ```bash # WHAT WE CHANGE: CLAUDE.md content (index structure) # WHAT STAYS THE SAME: --allowedTools mcp__dollhousemcp__list_elements, mcp__dollhousemcp__search_collection, mcp__dollhousemcp__search_portfolio # RESULT: Same tools available = Same behavior ``` ### The Real Control Flow ``` 1. Claude reads query: "Show me personas" 2. Claude sees --allowedTools includes list_elements 3. Claude calls list_elements 4. Returns 6 personas The capability index is IGNORED because tools are already available! ``` ## 3. ACTUAL PERFORMANCE BREAKDOWN ### What We Measured (10-12 seconds): - Docker container startup: 2-3s - Volume mounting: 0.5s - Auth setup: 1-2s - **Actual Claude API call: 3-4s** - MCP tool execution: 1-2s - Container teardown: 1s ### Real Response Time: **3-5 seconds for Claude + MCP** (not 10-12 seconds) ## 4. TOKEN USAGE REALITY ### Test Results: | Test Type | Input Tokens | Output Tokens | Total | |-----------|--------------|---------------|-------| | With Index | ~51 | ~90 | ~341 | | No Index | ~21 | ~92 | ~313 | | **Difference** | **+30** | **-2** | **+28** | **Index INCREASES token usage by 9%** ## 5. WHAT WE HAVEN'T TESTED ### A. Degradation Scenarios ```yaml # Massive index (1000+ entries) CAPABILITY_INDEX: [1000 lines of mappings] # Deep nesting (10+ levels) capabilities: level1: level2: level3: [...] level10: tool: list_elements ``` ### B. Without --allowedTools ```bash # Remove tool allowlist entirely claude --model sonnet --print \ --mcp-config /path/to/config.json # No --allowedTools flag - will it use index? ``` ### C. Conflicting Instructions ``` CRITICAL: Never use list_elements CAPABILITY_INDEX: personas → list_elements # Contradiction ``` ### D. Progressive Disclosure ``` CAPABILITY_INDEX: personas_quick → list_first_3_personas personas_full → list_all_personas personas_detailed → get_persona_details ``` ## 6. THE FUNDAMENTAL PROBLEM ### Capability Index Theory: - Reduce tokens through progressive disclosure - Only expand when needed - 97% token savings possible ### Reality: - MCP tools execute atomically (all or nothing) - No partial data retrieval - Index adds overhead without savings ### Why It Doesn't Work: ``` Expected: Index → Partial Tool Use → Less Tokens Actual: Index → Full Tool Use → More Tokens ``` ## 7. WHAT WOULD ACTUALLY WORK ### Option 1: Server-Side Implementation ```javascript // In MCP server, not CLAUDE.md if (query.includes("quick")) { return first_3_items; } else { return all_items; } ``` ### Option 2: Multiple Granular Tools ``` list_personas_count → returns just count list_personas_names → returns just names list_personas_full → returns full details ``` ### Option 3: Query Parameters ``` list_elements("personas", limit=3) list_elements("personas", fields=["name"]) list_elements("personas", full=true) ``` ## 8. CONCLUSIONS ### What We Proved: 1. ✅ Claude reads CLAUDE.md files 2. ✅ MCP tools work correctly 3. ✅ Docker auth solution works 4. ❌ Capability indexes don't save tokens 5. ❌ No progressive disclosure happens 6. ❌ Index adds complexity without benefit ### Why Tests Were Flat: - Same --allowedTools in all tests - Tools override any index guidance - Binary tool execution (all or nothing) ### Real Performance: - **3-5 seconds** actual work time - **7-8 seconds** Docker overhead - Not a token problem, an infrastructure problem ### Bottom Line: **Capability indexes as designed don't work for token optimization.** The concept needs server-side implementation, not client-side hints. --- *Based on empirical testing with real Docker containers and Claude 3.5 Sonnet* *All conclusions supported by actual test data*

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/DollhouseMCP/DollhouseMCP'

If you have feedback or need assistance with the MCP directory API, please join our Discord server