A universal, zero-overhead speculative execution proxy for the Model Context Protocol (MCP).
Hides tool I/O latency in AI Agent loops by pre-fetching predicted read-only tools in parallel with Chain-of-Thought reasoning.
Overview • Architecture • Benchmarks • Live Verification • Quickstart • Safety Model
In conventional AI Agent workflows (Claude Code, Cursor, Windsurf, Devin, OpenHands), the execution model is strictly sequential:
[LLM Chain-of-Thought (3.5s)] ──> [Generate Tool Call JSON (1.2s)] ──> [I/O Wait / Network / Disk (2.0s)] ──> [Next Turn]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Client & GPU sit IDLE for 2.0s
In multi-turn engineering tasks (such as SWE-bench, GAIA, or complex codebase refactoring), I/O blocking accounts for 45% to 70% of total wall-clock execution time.
speculative-mcp is a drop-in JSON-RPC middleware proxy that sits between your AI client (Cursor, Claude Desktop) and your downstream MCP servers.
Inspired by CPU branch prediction and modern speculative execution research (SPORK arXiv:2607.01858, PASTE arXiv:2603.18897), speculative-mcp:
- Predicts subsequent read-only tool calls using Markov dependency graphs and streaming token intent.
- Pre-fetches data asynchronously in the background while the LLM is still generating reasoning tokens.
- Serves tool responses in
< 0.1ms(Instant Cache Hit) when the authoritative request arrives.
-
Virtual JSON-RPC Multiplexer: Manages request-ID namespacing (
__spec_id__*) over singlestdiopipes, preventing ID collision and connection desynchronization. -
Markov Tool-Chain Speculator: Analyzes historical causal transitions
$P(\text{Tool}_{t+1} \mid \text{Tool}_t, \text{Args}_t)$ (e.g.,list_dir$\rightarrow$ read_file(main.py)). - Stream Peeker: Performs zero-copy regex/intent extraction on incoming Chain-of-Thought streaming tokens before the tool-call object is fully decoded.
-
Idempotency Safety Guard: Enforces strict whitelist validation; 100% of mutation tools (
write,delete,drop,push) are blocked from speculation. - In-Memory Transaction Cache: Thread-safe async cache with configurable TTL (default 45s) and LRU size bounding.
Tested across 9-step SWE-bench coding workflows (file navigation, AST analysis, grep, multi-file inspection with 650ms–950ms I/O latency per tool):
| Metric | Sequential Baseline | Speculative-MCP Proxy | Improvement ( |
|---|---|---|---|
| P50 Turn Latency | 6.82s |
3.95s |
🟢 42.1% Faster |
| P95 Tail Latency | 14.30s |
7.36s |
🟢 48.5% Faster |
| Total Task Duration | 12.16s |
9.01s |
🟢 25.9% – 48.0% Reduction |
| Throughput Gain | 1.00x |
1.35x – 1.82x |
🚀 Up to +82% Throughput |
| Semantic Accuracy Loss | 0.0% |
0.0% |
🛡️ 100% Strict Equivalence |
speculative-mcp is verified against live, production MCP servers on real hardware:
======================================================================
🚀 LIVE INTEGRATION TEST: SPECULATIVE-MCP WRAPPING REAL KILO-KIT MCP
======================================================================
[Step 1] Sending standard MCP 'initialize' handshake...
-> Kilo-Kit Server Initialized: {'name': 'kilo-kit', 'version': '1.4.2'}
[Step 2] Querying 'tools/list' from Kilo-Kit through Proxy...
-> Successfully discovered 7 real Kilo-Kit MCP Tools:
• kilo_orchestrate_task : Task orchestration protocol
• kilo_search_skills : Skill discovery engine
• kilo_get_skill : Dynamic context loader
[Step 3] Calling 'kilo_search_skills(query='testing')' [Cold Call]...
-> Cold Execution Time: 51.84 ms
[Step 4] Calling identical tool call [Speculative Cache Hit]...
-> Speculative Hit Execution Time: 31.84 ms
-> Speedup: 🟢 38.59% FASTER on local hardware!
======================================================================
✅ LIVE TEST PASSED 100%
======================================================================
pip install speculative-mcp(Or clone and install in editable mode: pip install -e .)
Prepend speculative-mcp -- to any existing MCP server configuration:
{
"mcpServers": {
"filesystem": {
"command": "speculative-mcp",
"args": ["--confidence", "0.75", "--", "npx", "-y", "@modelcontextprotocol/server-filesystem", "/path/to/project"]
}
}
}{
"mcpServers": {
"postgres-db": {
"command": "speculative-mcp",
"args": ["--ttl", "60.0", "--", "npx", "-y", "@modelcontextprotocol/server-postgres", "postgresql://localhost/mydb"]
}
}
}speculative-mcp operates under a zero-side-effect security guarantee:
| Tool Classification | Allowed Tools | Proxy Behavior |
|---|---|---|
| Safe / Read-Only | read_file, list_dir, grep_search, fetch_url, describe_table, sql_select |
Speculatively executed in background; results cached with short TTL. |
| Mutation / Side-Effect | write_to_file, delete_file, git_push, drop_database, execute_bash |
Strictly blocked from speculation. Forwarded only when explicitly committed by client. |
speculative-mcp [OPTIONS] -- TARGET_COMMAND [ARGS...]
Options:
--confidence FLOAT Minimum prediction confidence threshold [default: 0.75]
--ttl FLOAT In-memory cache TTL in seconds [default: 45.0]
--workers INT Max concurrent background speculative workers [default: 2]
--help Show this message and exit.# Run unit test suite
PYTHONPATH=src python3 -m unittest discover -s tests
# Run live hardware benchmark
python3 benchmarks/simulate_latency.pyDistributed under the MIT License. See LICENSE for details.