MCP over HTTP: Tumult as a Service

Originally published 2026-04-01; reviewed for Tumult 2.16.1 on 2026-07-21.

Tumult’s MCP server now supports Streamable HTTP transport, enabling any MCP-compatible agent to connect over the network. This unlocks container-to-container communication, multi-agent orchestration, and fleet-wide chaos engineering.

Why HTTP?

The original stdio transport works for local use; MCP-compatible IDEs and agents connect directly. But for production agent fleets, containers, and CI/CD pipelines, you need network transport.

The MCP 2025-11-25 specification defines Streamable HTTP; a protocol where clients POST JSON-RPC requests and receive responses as Server-Sent Events (SSE). This gives us:

  • Stateful sessions; each client gets a session ID, enabling concurrent users
  • Streaming results; long-running experiments can stream progress
  • Standard HTTP; works through proxies, load balancers, firewalls
  • Session resumability; clients can reconnect and resume

Usage

# Local; stdio (default, for IDE integration)
tumult-mcp

# Network; Streamable HTTP (for containers and agent fleets)
tumult-mcp --transport http --port 3100

# Docker
docker run --network tumult-e2e -p 3100:3100 tumult-mcp

Live Demo

All 40 MCP tools accessible over HTTP (summarized by group; see the MCP guide for the full list):

$ curl -s POST http://localhost:3100/mcp \
    -H "Accept: text/event-stream, application/json" \
    -d '{"jsonrpc":"2.0","id":1,"method":"tools/list","params":{}}'

Available tools: 40
  Experiments:            tumult_run_experiment, tumult_validate, tumult_discover, ...
  Journals and analytics: tumult_read_journal, tumult_analyze, tumult_report, ...
  GameDays:               tumult_gameday_run, tumult_gameday_analyze, ...
  Intelligence:           tumult_recommend, tumult_coverage, ...
  Agentic testing:        tumult_agentic_list_scenarios, ...
  ChaosGraph:             tumult_chaosgraph_query, ...
  Topology:               tumult_topology_map, ...
  Autopilot:              tumult_autopilot_run, ...
  Access:                 tumult_whoami

Running a live experiment via HTTP:

$ curl POST http://localhost:3100/mcp \
    -d '{"method":"tools/call","params":{
      "name":"tumult_run_experiment",
      "arguments":{"experiment_path":"examples/postgres-failover.toon"}}}'

status: completed
duration_ms: 228
steady_state_before: met: true
steady_state_after:  met: true
full_recovery: true
mttr_s: 0

Querying the persistent analytics store:

$ curl POST http://localhost:3100/mcp \
    -d '{"method":"tools/call","params":{
      "name":"tumult_store_stats","arguments":{}}}'

store: analytics.duckdb
experiments: 67
activities: 244
size_mb: 2.51

Architecture

┌──────────────────────┐  Streamable HTTP  ┌─────────────────┐
│  Coding Agent        │◄─────────────────►│  tumult-mcp     │
│  (AQE, IDEs,         │   :3100/mcp       │  --transport http│
│   Cursor, etc.)      │                   │                 │
└──────────────────────┘                   └────────┬────────┘
                                                    │
                                           ┌────────┴────────┐
                                           │  tumult-core    │
                                           │  16 plugins     │
                                           │  91 actions     │
                                           │  DuckDB store   │
                                           └─────────────────┘

Docker Compose

The Tumult MCP container runs in HTTP mode by default:

services:
  tumult-mcp:
    image: tumult-mcp:latest
    ports:
      - "3100:3100"
    environment:
      TUMULT_MCP_TOKEN: ${TUMULT_MCP_TOKEN:-tumult-dev}
    networks:
      - tumult-e2e

Any agent on the same Docker network can connect to http://tumult-mcp:3100/mcp.

What This Enables

  • Agentic QE Fleet; quality engineering agents run chaos experiments through Tumult
  • CI/CD chaos gates; pipeline steps can call Tumult MCP to validate resilience
  • Multi-tenant; multiple agents can share one Tumult instance via sessions
  • Remote chaos; run experiments against production from a central control plane

Next: connecting the Agentic QE Fleet to Tumult for autonomous chaos engineering.


Tumult is open source under the Apache-2.0 license.