No initialize handshake. No session state. Restart or load-balance the server between calls — clients never notice. tools/list answers with CacheableResult fields (ttlMs: 3600000, cacheScope: "private") so hosts can cache the tool list, and unknown versions are rejected with -32022 naming the supported list — never silently swallowed.
Handshake-era clients (Claude Desktop, VS Code, Codex) keep working unchanged. Both eras, one process — with a test that runs them mixed against one server instance.
- get-policy now attests what execution actually grants We caught our own policy report underreporting the filesystem surface: it said preopens: [] while every core-module run actually grants the ephemeral sandbox dir as /sandbox. The fix derives the reported preopens from the same truth as the run witness — and a test now executes a real tool and fails CI if report and witness ever diverge again:
python
reported = engine.policy_for(spec) # what get-policy says
outcome = engine.execute(spec, params) # what actually ran
assert reported["preopens"] == \
outcome.report.security_baseline["preopens"]
- One version, three signals The previous wheel said 1.0.3 on the box and 1.0.1 on the wire. Version is now single-sourced — and a test enforces pyproject.toml == runtime version forever.
How we verified it
Fresh venv, plain pip install ephemora-cell, 13/13 acceptance checks against the published wheel: both MCP eras, version negotiation, policy/witness agreement, legacy compatibility unchanged. Bonus finding: the same echo call consumed identical fuel (21143) across two different installs on different machines — the determinism claim held in the wild.
Try it
bash
pip install ephemora-cell
ephemora-cell-mcp # bundled clock + echo; --tools-dir for your own
Feedback welcome — repo, issues and the full CHANGELOG are at https://github.com/MichaelS1011/ephemora-cell
Top comments (2)
Skipping initialize and caching tools/list fixes the cold-start penalty when agents spin up short-lived processes. The part that usually bites in production is tool schema drift. Once hosts cache the schema for an hour, an in-place server update causes parameter mismatches until the TTL expires unless you force client disconnects.
Feedback welcome — repo, issues and the full CHANGELOG are at github.com/MichaelS1011/ephemora-cell