Context7
Up-to-date docs for AI agents
作者による説明(英語の原文)
Evaluate RAG retrieval, agent tool calls and prompt regressions with deterministic metrics.
この3つを1つのスコアにまとめることはしません。意見、測定、人気はそれぞれ別のものだからです。
このサーバーのやさしい解説はまだ書いていません。以下はレジストリから読み取った事実です。
使っているAIアプリを選んで、設定をコピーしてください。
EVALSMITH_JUDGE_BASE_URL, EVALSMITH_JUDGE_MODEL, EVALSMITH_JUDGE_API_KEY, LOG_LEVEL「秘密」と表示された値は、あなたのアカウントの鍵です。絶対に人に教えたり、チャットに貼り付けたりしないでください。
必要なもの
どのアプリを使っていますか?
上でアプリを選んでください。選んだアプリを覚えておくので、次からはボタンに「…にインストール」と表示されます。
Claude Desktop → Settings → Developer → Edit Config を開き、claude_desktop_config.json にこれを貼り付けます
{
"mcpServers": {
"evalsmith": {
"command": "npx",
"args": [
"-y",
"evalsmith-mcp"
],
"env": {
"EVALSMITH_JUDGE_BASE_URL": "your-value",
"EVALSMITH_JUDGE_MODEL": "your-value",
"EVALSMITH_JUDGE_API_KEY": "your-value",
"LOG_LEVEL": "your-value"
}
}
}
}ターミナルでこれを実行します
claude mcp add evalsmith --env EVALSMITH_JUDGE_BASE_URL=your-value --env EVALSMITH_JUDGE_MODEL=your-value --env EVALSMITH_JUDGE_API_KEY=your-value --env LOG_LEVEL=your-value -- npx -y evalsmith-mcp動かす前に、空欄の値を入力してください。
プロジェクトの .cursor/mcp.json、または ~/.cursor/mcp.json に貼り付けます
{
"mcpServers": {
"evalsmith": {
"command": "npx",
"args": [
"-y",
"evalsmith-mcp"
],
"env": {
"EVALSMITH_JUDGE_BASE_URL": "your-value",
"EVALSMITH_JUDGE_MODEL": "your-value",
"EVALSMITH_JUDGE_API_KEY": "your-value",
"LOG_LEVEL": "your-value"
}
}
}
}ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。
プロジェクトの .vscode/mcp.json に貼り付けます
{
"servers": {
"evalsmith": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"evalsmith-mcp"
],
"env": {
"EVALSMITH_JUDGE_BASE_URL": "your-value",
"EVALSMITH_JUDGE_MODEL": "your-value",
"EVALSMITH_JUDGE_API_KEY": "your-value",
"LOG_LEVEL": "your-value"
}
}
}
}ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。
これはパソコンで動くサーバーですが、ChatGPTがつなげるのはインターネット上のサーバーだけです。ほかのアプリを選んでください。
選んだアプリは、この端末のCookieに保存されます。アカウントは不要です。
EVALSMITH_JUDGE_BASE_URL envEVALSMITH_JUDGE_MODEL envLOG_LEVEL envこの設定は、作者のレジストリ登録情報から作成しています。READMEと違う場合は、READMEに従ってください。
パソコンで動くサーバーです。インストールすると、ツール一覧がAIアプリに表示されます。
誰でも見られる情報をチェックしており、コードは読んでいません。当てはまらない項目は数に入れていません。 · 2026年11月8日にチェック
レジストリ名は、リポジトリを所有するGitHubアカウント diegoperezg7 で確認済みです
このリポジトリはまだGitHubから読み取っていません
このリポジトリはまだGitHubから読み取っていません
これはパソコンで動くため、インターネット上のエンドポイントはありません
パソコンで動き、代わりにローカルの設定を使います
パソコンで動くサーバーです。ツール一覧を読み取れるのは、インターネット上のエンドポイントがある場合だけです
レジストリでこのカテゴリにある有効なすべてのサーバーと比較しています。スターは、公開者がリポジトリの所有者である場合だけ数えます。
当てはまる基本チェック1項目のうち1項目に合格しました。コードは読んでいません。キーやトークンを追加する前に、サーバーがどんなアクセスを求めているかを確認し、必要な権限だけを持つキーを使ってください。
入力が必要なもの:EVALSMITH_JUDGE_API_KEY
あなたのパソコンで動きます。必要なときにAIアプリが起動し、データは作者のサーバーを通りません(サーバー自体がオンラインサービスを呼び出す場合を除きます)。
GitHubリポジトリの最終更新は–、最新バージョン(0.1.0)がレジストリに届いたのは11 日前です。
Claude Desktop、Claude Code、Cursor、VS CodeなどのMCP対応アプリで使えます。パソコンにNode.jsも必要です。
同じカテゴリには:Context7, Codebase Memory, Exa
同じカテゴリで、ほかの作者が作ったサーバー。スターの多い順。
カードの見方:★ GitHubスターi3つの柱:レビュー · チェック · 利用状況i更新=最新バージョンをレジストリに公開した日i
Up-to-date docs for AI agents
Codebase knowledge graph for AI agents — 162 languages, sub-ms queries, 99% fewer tokens.
Connect AI agents to Exa for web search, content fetching, and multi-step research.
作者のリポジトリから書かれたとおりにコピーしたものです。PopNx MCPは内容を確認・推奨していません。HTML、画像、スクリプトは取り除いています。リンクはこのサイトの外へ移動します。
Evaluate RAG retrieval and AI agents with deterministic metrics, from any MCP client or from CI.
evalsmith answers four questions that come up every time a retriever, prompt or agent changes:
Everything is deterministic and runs offline. An LLM judge exists for a second opinion, but it is off by default and never decides the verdict. Results come out as a terminal table, Markdown, JSON, JUnit XML or a self-contained HTML report, and the GitHub Action turns them into a merge gate.
flowchart LR
subgraph Clients A[MCP client desktop app, IDE, agent] B[Remote MCP client or service] C[Terminal / CI job] D[GitHub workflow] end subgraph evalsmith S1[MCP server stdio] S2[MCP server Streamable HTTP, stateless] S3[CLI evalsmith run] S4[GitHub Action uses: evalsmith-mcp@v0] CORE[(src/core metrics, bootstrap, matchers, checks, gates, reports)] end A --> S1 --> CORE B --> S2 --> CORE C --> S3 --> CORE D --> S4 --> CORE S3 -. exit code + JUnit + HTML .-> C S4 -. outputs + job summary .-> D
| Interface | Entry point | Who uses it | Why it exists |
|---|---|---|---|
| MCP over stdio | dist/mcp/server.js | Desktop MCP clients, IDE assistants, local agents | An assistant can score a run, compare configs or audit a trace mid-conversation, with typed structuredContent back. |
| MCP over Streamable HTTP | EVALSMITH_TRANSPORT=http | Remote clients, internal platforms, the MCP Inspector | Same tools over the network. Stateless: no sessions to store, scales horizontally. |
| CLI / CI | evalsmith run evalsmith.yaml | Pipelines and terminals | --fail-under recall@5=0.8 turns a metric into a merge gate. Exit codes, Markdown summary, JUnit XML, HTML report. |
| GitHub Action | uses: diegoperezg7/evalsmith-mcp@v0 | GitHub workflows | The same gates as a step, with outputs, a job summary and no install. |
All four call the same functions in src/core. The MCP tools are thin adapters: parse input with Zod, call the core, return structuredContent validated against an output schema.
flowchart TB
subgraph Tools T1[evaluate_retrieval] T2[compare_configs] T3[check_tool_calls] T4[detect_prompt_regression] T5[generate_report] T6[run_suite] end subgraph Resources R1["evalsmith://examples/{name} 12 synthetic datasets + suite"] end subgraph Prompts P1[compare_rag_configs] P2[audit_agent_trace] P3[review_prompt_change] end T1 -- structuredContent --> T5 T2 -- structuredContent --> T5 T3 -- structuredContent --> T5 T4 -- structuredContent --> T5 classDef tool fill:#ffedd5,stroke:#c2410c,color:#431407 classDef res fill:#e0f2fe,stroke:#0369a1,color:#082f49 classDef prom fill:#ede9fe,stroke:#6d28d9,color:#2e1065 class T1,T2,T3,T4,T5,T6 tool class R1 res class P1,P2,P3 prom
Every tool declares an input and an output Zod schema, returns structuredContent plus a JSON text block, and is annotated readOnly and non-destructive. Four tools are also idempotent and closed-world. detect_prompt_regression and run_suite are declared open-world and non-idempotent: annotations are per tool, and with the judge enabled they call an external model whose answers can vary. With the judge off (the default) they behave like the others.
| Tool | Input | Output | ||
|---|---|---|---|---|
evaluate_retrieval | qrels, run, optional k list | Mean recall/precision/nDCG/hit rate at every k, MRR, per-query values, skipped and missing queries | ||
compare_configs | qrels, 2-3 {name, run}, primary metric, bootstrap {samples, seed, confidence} | Ranking with intervals, winner, runner-up, paired interval of the gap, significant | ||
check_tool_calls | trace as logged (evalsmith, Anthropic Messages, OpenAI Chat or Responses), expected, `order: strict \ | lax` | passed, score, matched position and reasons per expected call, unexpected calls | |
detect_prompt_regression | golden, baseline, candidate, optional judge {enabled} | Verdict, pass rates, regressions, improvements, per-case failures, judge votes when enabled | ||
generate_report | Any of the results above, gates, `format: markdown \ | json \ | junit` | passed, rendered report |
run_suite | Optional config path to an evalsmith.yaml, gates, judge, format | passed, rendered report and every section's results, read from the suite's files |
run_suite runs the same suites as evalsmith run, so a client can evaluate data that lives in files instead of pasting it into the conversation. It only reads inside the workspace root (EVALSMITH_ROOT, the directory the server started in by default), following symlinks before it checks, and runs the bundled example suite when no config is given.
Bad input (unknown metric, duplicate config names, qrels with no relevant documents) comes back as an InvalidParams tool error with a message the model can act on. A judge endpoint that is down or returns an HTTP error is an InternalError.
evalsmith://examples/{name} lists and serves the synthetic datasets in examples/datasets, so a client can try every tool before wiring in its own data:
| Name | Content |
|---|---|
rag-corpus, rag-queries, rag-qrels | 20 help-center articles of a fictional invoicing app, 12 questions, graded judgements |
rag-run-bm25, rag-run-hybrid, rag-run-hybrid-rerank | Top-10 rankings from three retrieval configurations |
agent-trace, agent-expected | A support agent refunding a duplicate charge, and the calls it should make |
prompts-golden, prompts-baseline, prompts-candidate, prompts-candidate-regressed | Six golden cases and three sets of outputs |
suite | The example evalsmith.yaml |
| Prompt | Argument | What it asks the model to do |
|---|---|---|
compare_rag_configs | metric | Compare the configurations, report the gap with its interval and the weakest queries |
audit_agent_trace | order | Check the trace and propose the smallest fix for each failed step |
review_prompt_change | candidate | Detect regressions, build a Markdown report, decide ship / do not ship |
sequenceDiagram
autonumber actor User participant Host as MCP client (LLM host) participant ES as evalsmith (stdio) participant Core as src/core
User->>Host: "Is the reranker worth it on our help-center set?" Host->>ES: initialize, tools/list, resources/list ES-->>Host: 6 tools + JSON Schemas, 13 resources Host->>ES: resources/read evalsmith://examples/rag-qrels (+ 3 runs) ES-->>Host: qrels and runs as JSON Host->>ES: tools/call compare_configs {metric: "ndcg@5", configs: [...]} ES->>Core: compareConfigs(qrels, configs, "ndcg@5", {seed: 42}) Core-->>ES: ranking, intervals, paired delta ES-->>Host: structuredContent {winner: "hybrid+rerank", significant: true, ...} Host->>ES: tools/call generate_report {format: "markdown", comparison} ES-->>Host: Markdown report Host-->>User: "Yes: +0.153 nDCG@5 over hybrid, 95% CI [0.069, 0.251]."
For a query $q$ with relevant set $R_q$ (documents with grade $> 0$) an
冒頭だけを表示しています。続きはリポジトリで読めます