You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository was archived by the owner on Oct 16, 2026. It is now read-only.
Repository navigation
This repository was archived by the owner on Oct 16, 2026. It is now read-only.
feat: snapshot MCP server pattern for reproducible benchmarks #1135
Document and provide tooling for including MCP servers in eval benchmarks without introducing look-ahead bias or non-reproducibility.
Problem
Real-world agent harnesses include MCP servers (filesystem, database, API integrations). But including live MCP servers in benchmarks creates two problems:
Look-ahead bias — live data at eval time may contain information unavailable when the task was authored. The agent could find the answer in post-dated data.
Non-reproducibility — live data changes between runs, so the same eval produces different results on different days. Regression detection becomes unreliable.
Stripping MCP servers from benchmarks avoids these problems but means you're not testing the real harness — you're testing a hobbled version of the agent.
Proposed approach: snapshot MCP
Freeze MCP server data at task-authoring time:
Live database MCP → snapshot the database, serve it read-only
Live API MCP → record API responses, replay them (VCR/cassette pattern)
Live search MCP → pre-cache search results for the task's domain
The MCP server itself is real (the agent calls real MCP tools), but the data it serves is frozen.
Integration with AgentV's workspace model
# EVAL.yamlworkspace: ./cases/customer-lookup/setup:
- command: ./start-snapshot-mcp.sh # starts MCP server with frozen datateardown:
- command: ./stop-snapshot-mcp.shtests:
- id: customer-lookupinput: "Find the customer who placed the most orders last quarter"execution:
evaluators:
- type: tool-trajectoryexpected_tools:
- name: mcp__testdb__query
- type: code-gradercommand: ./verify-answer.sh
Deliverables
Documentation: Guide on snapshot MCP patterns for benchmarks (workspace setup, data freezing strategies)
Example: At least one example eval with a snapshot MCP server (e.g., SQLite database served via MCP)
Tooling (stretch): Helper script or utility for recording/replaying MCP server responses
No new tooling needed. If there's user demand for a convenience helper (e.g., "record MCP responses and replay them"), that can be a separate issue, but the core pattern works today.
Activity
christso commentedon Apr 17, 2026
Closing — this is already achievable with existing workspace primitives.
A snapshot MCP server for benchmarks is just workspace setup:
before_allhook → starts the MCP serverafter_allhook → stops itNo new tooling needed. If there's user demand for a convenience helper (e.g., "record MCP responses and replay them"), that can be a separate issue, but the core pattern works today.