Prototype · Preview: every server in the official registry, synced every 30 minutes. Reviews and accounts come in a later step.
PopNx MCPMCP servers for people who use AI · explained in plain words

Agent Eval

by RudrenduPaulversion 0.1.8i★ –iRuns on your computer
Registry nameio.github.RudrenduPaul/agent-eval

Install

Overview

Description from the maker (original English)

Statistical regression testing for LLM agents: p-value, effect size, and CI on behavior change.

PopNx MCP’s three pillars

These three are never merged into one score: opinions, measurements and popularity are different things.

What you can do with it

We have not written a plain-language summary for this one yet. Below are the facts we read from the registry.

  • Connection: Runs on your computer
  • Transport: stdio
  • Category: Search & AI memory

Install

Pick the AI app you use, then copy the settings.

Before you install

  • Basic checks: 1 of 1 passed
  • Runs on your computer with your user’s permissions (files, network, apps).
  • The registry lists no key to fill in.

You need

  • PyPIPython’s uv installed (for the uvx command)

Which app do you use?

Pick your app above. We remember it, so next time the button says “Install in …”.

Open Claude Desktop → Settings → Developer → Edit Config, and paste this into claude_desktop_config.json

{
  "mcpServers": {
    "agent-eval": {
      "command": "uvx",
      "args": [
        "agent-regress-cli",
        "agent-regress-mcp"
      ]
    }
  }
}

Run this in your terminal

claude mcp add agent-eval -- uvx agent-regress-cli agent-regress-mcp

Open in Cursor

Or copy the settings yourself

Paste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json

{
  "mcpServers": {
    "agent-eval": {
      "command": "uvx",
      "args": [
        "agent-regress-cli",
        "agent-regress-mcp"
      ]
    }
  }
}

Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.

Open in VS Code

Or copy the settings yourself

Paste into .vscode/mcp.json in your project

{
  "servers": {
    "agent-eval": {
      "type": "stdio",
      "command": "uvx",
      "args": [
        "agent-regress-cli",
        "agent-regress-mcp"
      ]
    }
  }
}

Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.

This one runs on your computer, and ChatGPT can only connect to servers on the internet. Pick another app.

Your choice stays on this device in a cookie; no account needed.

These settings are generated from the maker’s registry entry. If the README says otherwise, follow the README.

What it can do

Runs on your computer; the tool list appears in your AI app after you install it.

Basic checksi

We check information anyone can see; we have not read the code. Checks that do not apply are left out of the count. · Checked Nov 7, 2026

  • ✓ Pass

    Maker matches the repo

    The registry name was verified with the GitHub account RudrenduPaul, which owns the repo

  • … Not checked yet

    Still maintained

    We have not read this repo from GitHub yet

  • … Not checked yet

    Has a licence

    We have not read this repo from GitHub yet

  • – Not applicable

    Endpoint responds

    This one runs on your computer; there is no internet endpoint

  • – Not applicable

    Sign-in with OAuth

    Runs on your computer and uses local settings instead

  • … Not checked yet

    No hidden instructions in tool descriptions

    Runs on your computer; we can only read tool lists from internet endpoints

Compared with others in Search & AI memoryi

  • More stars than 0% of the other 7249 servers in this category
  • Published to the registry more recently than 29% of the other 7249 servers in this category
  • Basic checks equal to or better than 100% of the other 7249 servers in this category

Compared with every active server in this category in the registry. Stars count only when the publisher owns the repo.

Common questions

Is Agent Eval safe?

It passed 1 of 1 applicable basic checks. We have not read the code. Before adding a key or token, see what access the server asks for and use a key with only the permissions you need.

What keys or codes does it need?

The registry does not list a required key, though some servers ask you to sign in on first use.

Does it run on my computer or in the cloud?

It runs on your computer. Your AI app starts it when needed, and data does not pass through the maker’s servers (unless it calls an online service itself).

Is it still maintained?

The GitHub repo last changed –, and the latest version (0.1.8) reached the registry 3 months ago.

Which apps can use it?

Apps that support MCP, such as Claude Desktop, Claude Code, Cursor and VS Code. You also need Python (uv) on your computer.

What can I use instead?

In the same category: Context7, Codebase Memory, Exa

Alternatives

Servers in the same category from other makers, sorted by stars.

Reading a card:★ GitHub starsiThree pillars: reviews · checks · usageiUpdated = latest version published to the registryi

Context7

by upstash

Feeds AI the latest docs for libraries and frameworks before it answers, so code it writes does not use outdated, removed functions.

Computer or cloud★ 64,224MITUpdated today
Install

Codebase Memory

by DeusData

Codebase knowledge graph for AI agents — 162 languages, sub-ms queries, 99% fewer tokens.

Runs on your computer★ 48,148MITUpdated 20 days ago
Install

Exa

by exa-labs

Connect AI agents to Exa for web search, content fetching, and multi-step research.

Runs in the cloud★ 5,213MITUpdated last month
Install

README from the maker

Open the README

Copied from the maker’s repo as written. PopNx MCP has not reviewed or endorsed it. HTML, images and scripts are removed. Links lead off this site.

Agent Evaluation

Statistical regression testing for LLM agents: run version A and version B 50x each and get a p-value, an effect size, and a 95% confidence interval on whether behavior actually shifted.

pip install agent-regress-cli

(uv add and the npm/npx wrapper are covered in Install below.)

The test that every eval framework skips

You changed a prompt. Your evals still pass. But your agent's tool accuracy dropped from 84% to 70%.

Is that a real regression? Or is it LLM run-to-run noise?

Threshold testing cannot answer that question. agent-eval can.

Run your agent 50x on version A, 50x on version B. Get a p-value, an effect size, and a 95% confidence interval on whether behavior actually shifted.

p=0.003, Cohen's d=-0.61 -> REGRESSED (deploy blocked)

p=0.410, Cohen's d=0.021 -> STABLE (safe to ship)

[!NOTE]

Promptfoo, one of the most widely used open-source LLM eval frameworks, was acquired by OpenAI in March 2026, staying open source but folding its team into OpenAI's Frontier platform. agent-eval is Apache 2.0-licensed, self-hostable, and has no commercial dependency. The statistical core (Mann-Whitney U, bootstrap CI, Cohen's d) will never be paywalled.


Install

pip install agent-regress-cli

or

uv add agent-regress-cli

or, from Node/npx (thin wrapper around the same Python CLI)

npx agent-regress-cli


Quickstart

In 30 seconds (CLI)

Already have per-run scores from your own harness? Point the CLI at two JSON arrays of scores, one per version:

pip install agent-regress-cli

agent-regress compare \ --version-a-results v1_scores.json \ --version-b-results v2_scores.json \ --metric tool_accuracy

============================================================

agent-regress Report -- tool_accuracy

============================================================

Verdict: REGRESSED

p-value: 0.0000

Cohen's d: -2.193

95% CI: [-0.213, -0.148]

#

Version A: 0.8470 +/- 0.0525 (n=50)

Version B: 0.6685 +/- 0.1025 (n=50)

Delta: -0.1786

============================================================

Add --json --fail-on-regression to get clean, parseable output and a non-zero exit code on REGRESSED, for wiring straight into CI.

All `agent-regress compare` flags:

FlagDefaultDescription
--version-a-results PATH*(required)*Path to a JSON array of per-run scores for version A (baseline).
--version-b-results PATH*(required)*Path to a JSON array of per-run scores for version B (candidate).
--metric NAMEaccuracyName of the metric being compared, shown in the report.
--p-threshold P0.05Significance threshold for the Mann-Whitney U p-value.
--min-effect D0.2Minimum \Cohen's d\to call a statistically significant difference REGRESSED/IMPROVED rather than STABLE.
--n-resamples N1000Number of bootstrap resamples used for the confidence interval (minimum: 100).
--jsonoffPrint the report as a single JSON object to stdout instead of the human-readable format. Warnings still go to stderr, so stdout stays clean, parseable JSON.
--fail-on-regressionoffExit with status 1 if the verdict is REGRESSED (useful for CI). Without this flag, the command exits 0 regardless of verdict.

The top-level agent-regress --version flag prints the installed version and exits.

Exit codes:

CodeMeaning
0Ran successfully. Verdict may be REGRESSED, STABLE, IMPROVED, or INSUFFICIENT_DATA — without --fail-on-regression, the exit code doesn't reflect the verdict.
1--fail-on-regression was passed and the verdict is REGRESSED.
2Usage or data error: invalid/missing arguments, no subcommand given, a --version-*-results file that doesn't exist or isn't valid JSON, an empty/non-numeric scores array, or an out-of-range value for --p-threshold (must be in (0, 1)), --min-effect (must be >= 0), or --n-resamples (must be >= 100).
In your code (Python API)

Driving the agent yourself instead of pre-computing scores? Use the Python API:

from agent_regress import compare

Any callable that takes a test case dict and returns a score 0.0-1.0

def agent_v1(test_case: dict) -> float: ... # your existing agent

def agent_v2(test_case: dict) -> float: ... # your updated agent

test_suite = [ {"query": "find SKU for order 8823", "expected": "SKU-4492"},

... more test cases

]

report = compare( version_a=agent_v1, version_b=agent_v2, test_suite=test_suite, n_runs=50, metric="tool_accuracy", # use any name except "accuracy" when agents return floats )

print(report) # structured output with p-value, CI, effect size report.assert_stable() # raises AssertionError if behavior regressed

Agent returns text? Pass a scorer or use the built-ins:

from agent_regress import compare, exact_match_scorer, f1_scorer

exact_match_scorer: 1.0 if str(output).strip() == str(expected).strip()

f1_scorer: token-level F1 (multiset — handles repeated tokens correctly)

report = compare( version_a=agent_v1, version_b=agent_v2, test_suite=test_suite, n_runs=50, scorer=exact_match_scorer, # test_case must have an "expected" key )

Or write your own:

def my_scorer(output: str, test_case: dict) -> float:

return 1.0 if output.strip() == test_case["expected"] else 0.0

report = compare(..., scorer=my_scorer)


MCP Server

agent-eval ships a Model Context Protocol server so an AI agent (Claude, Cursor, or any MCP-compatible client) can run statistical regression tests directly, without a human invoking the CLI by hand.

Install the extra:

pip install "agent-regress-cli[mcp]"

Add it to your MCP client's config (for Claude Desktop, claude_desktop_config.json):

{

"mcpServers": { "agent-eval": { "command": "uvx", "args": ["--from", "agent-regress-cli", "agent-regress-mcp"] } } }

The server exposes one tool, run, that shells out to the agent-regress CLI with the given subcommand and arguments plus --json, and returns the parsed JSON result:

run(["compare", "--version-a-results", "a.json", "--version-b-results", "b.json", "--metric", "accuracy"])

Transport is stdio, so there is nothing to host: the MCP client spawns the server as a local subprocess. Source: src/agent_regress/mcp_server.py.


Why not DeepEval, Promptfoo, or Braintrust?

CapabilityAgent EvaluationDeepEvalBraintrustPromptfoo
Statistical version comparison (p-values)YesNoNoNo
Effect size reporting (Cohen's d)YesNoNoNo
Bootstrap 95% confidence intervalsYesNoNoNo
Distributional shift detectionYesNoNoNo
Tau-bench pass^k harness (k=1,4,8)YesNoNoNo
GAIA Level 1-3 split harnessYesNoNoNo
SWE-bench scaffold score harnessYesNoNoNo
Self-hostable, zero SaaS requiredYesPartialNoYes
Sample size warningsYesNoNoNo
Core licenseApache 2.0MITProprietaryMIT†
Requires cloud accountNoOptionalYesNo
Test typeDistributionalThresholdThresholdThreshold

†Promptfoo acquired by OpenAI, March 2026; remains open source under its current license.

DeepEval tests whether an individual agent response clears a quality bar. Agent Evaluation tests whether behavior changed significantly between two agent versions, a different statistical question that threshold testing cannot answer. The scipy Mann-Whitney U call at the core is one line, so any SaaS eval platform can add it. What accumulates over time through production use is version-specific regression history and a community-maintained benchmark leaderboard with independent result verification.


Real regressions statistical testing catches that threshold testing misses

LangGraph

  • #5243: a new typed context= API replaced untyped config['configurable']. A single run on either invocation style still clears a threshold check; only a version-A-vs-B comparison shows whether the switch changed measured behavior.
  • #4486: node/task-level result caching can silently mask repeated-sampling variance. Threshold checks don't care whether a result came from cache; a statistical comparison depends on genuinely independent samples, so agent-eval added cache-busting to protect that assumption.

OpenAI Agents SDK

  • #2463: agent-as-tool calls were silently dropping the parent run's RunConfig. The nested call still returns a normal-looking response, so a single-response check clears; only inspecting config propagation across runs reveals the regression.
  • #2214: image/audio/file tool outputs were silently downgraded to text-only. A text-only threshold scorer has no way to notice a dropped attachment.

CrewAI

  • #6134: a security fix for file tools leaking absolute filesystem paths in responses. A quality scorer checks whether the answer is correct, not whether it also leaks a path, so the leak clears the bar.
  • #6236: tools gained an optional Pydantic output_schema, moving from unstructured str() output to structured JSON. Both the old and new format can look "reasonable" to a threshold scorer even though the schema changed underneath.

These are the regressions that motivated this project. Full detail on all 14 individually-documented PRs (drawn from a 29-PR, 239-row validation campaign across LangGraph, CrewAI, and the OpenAI Agents SDK) is in docs/pr-analysis.md.


The probl

Only the beginning is shown; read the rest in the repo

Ask PopNx