Learning signal
Claude Code is both an MCP client and an MCP server
Claude Code consumes external MCP tools and can expose its own capabilities over MCP.
Why it matters: This moves the product from assistant-with-tools to platform-in-an-ecosystem.
Engineering tradeoffs
- More auth and transport complexity.
- Prompt-budget control becomes more important.
Evidence
src/services/mcp/client.tssrc/entrypoints/mcp.ts
Learning signal
Remote and bridge modes go beyond a local-only CLI
Remote sessions, bridge mode, and direct connect show distributed execution intent.
Why it matters: Most coding agents assume user, model, and machine all live in one place.
Engineering tradeoffs
- Permission handling becomes networked.
- State synchronization becomes harder.
Evidence
src/bridge/bridgeMain.tssrc/remote/RemoteSessionManager.tssrc/server/createDirectConnectSession.ts
Learning signal
Tools run inside a dedicated orchestration layer
Claude Code schedules, streams, wraps, and orders tool execution deliberately.
Why it matters: This is much stronger than a trivial sequential function-call loop.
Engineering tradeoffs
- Implementation is more complex.
- It demands richer contracts and more testing.
Evidence
src/services/tools/toolOrchestration.tssrc/services/tools/StreamingToolExecutor.tssrc/services/tools/toolExecution.ts
Learning signal
Permissions are layered and policy-aware
Claude Code combines permission modes, managed settings, and tool-specific risk logic.
Why it matters: It avoids reducing safety to one auto-approve toggle.
Engineering tradeoffs
- Contributors face more cognitive load.
- UX must explain decisions clearly.
Evidence
src/utils/permissions/permissionSetup.tssrc/utils/permissions/permissions.tssrc/types/permissions.ts
Learning signal
Skills, plugins, MCP, and LSP form one extensibility story
Claude Code does not force one extension mechanism to rule them all.
Why it matters: This creates a composable developer platform.
Engineering tradeoffs
- Composition is harder to reason about.
- Loader and validation paths grow in complexity.
Evidence
src/commands.tssrc/utils/plugins/pluginLoader.tssrc/services/mcp/config.tssrc/services/lsp/
Learning signal
Session persistence is treated as a durability problem
Transcript storage includes resume safety, subagent support, compatibility repair, and large-history handling.
Why it matters: This is production engineering, not just chat logging.
Engineering tradeoffs
- Persistence rules leak into many layers.
- Backward compatibility becomes a long-term burden.
Evidence
src/utils/sessionStorage.tssrc/bootstrap/state.ts