Solving coordination tax in agentic teams - where Opus + 4 Sonnets burns 15x tokens but only gets 1.9x performance.
- Node.js 18+
- npm or yarn
- Claude Desktop (for MCP integration)
Current agentic team patterns have terrible token efficiency:
- Traditional: 1 request × 4K tokens = 4K tokens
- Agentic Team: 1 coordinator + 4 workers × 12K tokens each = 48K+ tokens
- Efficiency: 1.9x performance / 15x cost = 12% efficiency
This MCP server provides shared memory for agentic teams to achieve 6x token efficiency while maintaining coordination benefits.
- Store shared context once, reference by key
- 10:1 compression ratio with intelligent summarization
- Workers get 100-token summaries instead of full context
- Append-only discovery system
- Workers share findings in real-time
- Delta updates prevent retransmission
- Claim-based work distribution
- Dependency tracking and resolution
- Reactive task handoff between workers
- Context compression and lazy loading
- Delta updates since last version
- Expansion on demand for specific sections
# Clone the repository
git clone https://github.com/haasonsaas/shared-memory-mcp.git
cd shared-memory-mcp
# Install dependencies
npm install
# Build the server
npm run build# Run in development mode
npm run dev
# Or run the built server
npm start
# Test the agentic workflow
npm test# or
npm run test-workflow// 1. Create agentic session (coordinator)constsession=awaitmcp.callTool('create_agentic_session',{coordinator_id: 'opus-coordinator-1',worker_ids: ['sonnet-1','sonnet-2','sonnet-3','sonnet-4'],task_description: 'Analyze large codebase for performance issues',codebase_files: [...],// Full context stored oncerequirements: [...],constraints: [...]});// 2. Workers get compressed context (not full retransmission)constcontext=awaitmcp.callTool('get_worker_context',{session_id: session.session_id,worker_id: 'sonnet-1'});// Returns summary + reference, not full context// 3. Publish work units for coordinationawaitmcp.callTool('publish_work_units',{session_id: session.session_id,work_units: [{unit_id: 'analyze-auth',type: 'security',priority: 'high'},{unit_id: 'optimize-db',type: 'performance',dependencies: ['analyze-auth']}]});// 4. Workers claim and executeawaitmcp.callTool('claim_work_unit',{session_id: session.session_id,unit_id: 'analyze-auth',worker_id: 'sonnet-1',estimated_duration_minutes: 15});// 5. Share discoveries incrementallyawaitmcp.callTool('add_discovery',{session_id: session.session_id,worker_id: 'sonnet-1',discovery_type: 'vulnerability_found',data: {vulnerability: 'SQL injection in auth module'},affects_workers: ['sonnet-2']// Notify relevant workers});// 6. Get only new updates (delta, not full context)constdelta=awaitmcp.callTool('get_context_delta',{session_id: session.session_id,worker_id: 'sonnet-2',since_version: 5// Only get changes since version 5});┌─────────────────┐ ┌─────────────────┐
│ Opus Coordinator│ │ Shared Memory │
│ │────│ MCP Server │
│ - Task Planning │ │ │
│ - Work Units │ │ - Context Store │
│ - Coordination │ │ - Discovery Log │
└─────────────────┘ │ - Work Queue │
│ - Dependencies │
┌─────────────────┐ └─────────────────┘
│ Sonnet Workers │ │
│ │───────────┘
│ - Specialized │ │ - Parallel │ ┌─────────────────┐
│ - Coordinated │ │ Token Efficiency│
└─────────────────┘ │ │
│ 48K → 8K tokens │
│ 6x improvement │
│ 1200% better ROI│
└─────────────────┘
// Instead of sending full context (12K tokens):{full_context: {/* massive object */}}// Send compressed reference (100 tokens):{summary: "Task: Analyze TypeScript codebase...",reference_key: "ctx_123",expansion_hints: ["codebase_files","requirements"]}// Instead of retransmitting everything:get_full_context()// 12K tokens each time// Send only changes:get_context_delta(since_version: 5)// 200 tokens// Workers request details only when needed:expand_context_section("codebase_files")// 2K tokensrequest_detail("file_content","auth.ts")// 500 tokenscreate_agentic_session- Initialize coordinator + workersget_session_info- Get session detailsupdate_session_status- Update session state
get_worker_context- Get compressed context for workerexpand_context_section- Get detailed section dataget_context_delta- Get incremental updates
publish_work_units- Publish available workclaim_work_unit- Claim work for executionupdate_work_status- Update work progress
add_discovery- Share findings with teamget_discoveries_since- Get recent discoveries
declare_outputs- Declare future outputsawait_dependency- Wait for dependencypublish_output- Publish output for others
Copy the example configuration:
cp claude-desktop-config.example.json claude-desktop-config.json
Edit
claude-desktop-config.jsonand update the path to your installation:{ "mcpServers": { "shared-memory": { "command": "node", "args": ["/absolute/path/to/shared-memory-mcp/dist/server.js"] } } }Add this configuration to your Claude Desktop config file:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json - Linux:
~/.config/Claude/claude_desktop_config.json
- macOS:
Note: The claude-desktop-config.json file is gitignored as it contains machine-specific paths.
| Metric | Traditional | Agentic (Current) | Shared Memory MCP |
|---|---|---|---|
| Token Usage | 4K | 48K+ | 8K |
| Performance Gain | 1x | 1.9x | 1.9x |
| Cost Efficiency | 100% | 12% | 1200% |
| Coordination | None | Poor | Excellent |
MIT