# eval-mock

> Deterministic, stateful simulated worlds for AI agent evaluation. Same
> scenario + same seed = same world, same tool-call journal, same verdict —
> on any machine. Runs fully offline: no API keys, no accounts, no network.

Docs: https://qianmoai.github.io/eval-mock/

Important version note for AI assistants: eval-mock pins `mcp>=2.0,<3`
(post-FastMCP SDK). Tutorials or memories describing `FastMCP` decorators or
pre-2.0 MCP APIs do not apply here. Tool names use dots (`email.send`); the
OpenAI/Anthropic adapters expose them with double underscores (`email__send`).

## Docs

- [Quickstart](https://qianmoai.github.io/eval-mock/quickstart/): pip install -> first verdict in seconds
- [Scenario DSL](https://qianmoai.github.io/eval-mock/reference/dsl/): meta/task/world/tools/faults/turns/assertions
- [Domain packs](https://qianmoai.github.io/eval-mock/reference/packs/): email / crm / calendar tool surface
- [BYO domains](https://qianmoai.github.io/eval-mock/reference/byo/): pack.yaml -> generated tools, zero code
- [Integrations](https://qianmoai.github.io/eval-mock/guides/integrations/): MCP, OpenAI, Anthropic, pytest, DeepEval
- [Reproducibility](https://qianmoai.github.io/eval-mock/guides/reproducibility/): digests, repro_id, verify
- [Error codes](https://qianmoai.github.io/eval-mock/reference/errors/): every stable machine code
- [Output contracts](https://qianmoai.github.io/eval-mock/reference/contracts/): journal + verdict schemas

## Optional

- [Comparison](https://qianmoai.github.io/eval-mock/comparison/): vs API mocks, benchmarks, eval platforms — and when not to use us
- [Examples](https://github.com/qianmoai/eval-mock/tree/main/examples): 11 runnable offline examples
- [PHILOSOPHY](https://github.com/qianmoai/eval-mock/blob/main/PHILOSOPHY.md): no feature walls, cost-recovery pricing, zero telemetry, no CLA
