With 29 tools in my MCP server, it’s still just a collection of tool execution. User experience is not good.
Phase 1 (Tool Execution Model):
- classify_by_hierarchy() → returns 334 IDs
- Claude Desktop streams all 334 to chat (agonizing)
- No continuity → lose context, restart from scratch
- No branching → can’t compare two weighting approaches
- No lineage → “how did we get this 182-stock universe?” requires manual tracing
- Base64 blobs pollute context
vs.
Phase 2 (Research Platform):
- screen() → artifact A (334 stocks, versioned)
- enrich([“roe”, “market_cap”]) → artifact B (one batched query, not two)
- filter(roe_gt=10) → artifact C (182 stocks, lineage chain preserved)
- User branches: weight(method=”cap_weighted”) → artifact D1, weight(method=”equal_weight”) → artifact D2 (compare)
- User backtracks to C, reruns: no re-screening, no re-enrichment
- export() → one click download, no context pollution
- Lineage audit: “Screen RBICS L6 502010 → Enrich ROE+market_cap → Filter ROE>10” is visible, permanent, auditable
Gradually, it will be a real research platform. My team can now:
- Scale to 50k securities × 100 factors without memory implosion
- Build, test, iterate index methodologies without Claude Desktop UI torture
- Branch and compare approaches (A/B test weight methods in parallel)
- Backtrack and refine (change the floor without restarting)
- Audit methodology (full lineage shows exactly what they did)
That’s what serious quants and portfolio managers expect from their tools.