mcpField
E
evalview-mcp

evalview-mcp

ローカル
github.com/hidai25開発ツール1402 週間前に更新

evalview-mcp について

evalview-mcp は、AI エージェント向けのスナップショットテストツールです。ツール呼び出し、その順序、出力を含む現在の動作を記録し、変更後に基準から逸脱した場合に通知します。LangGraph、CrewAI、OpenAI、Claude などを使うチームを対象とし、マージ前のリグレッションゲートとして利用できます。

主な機能

  1. 01エージェント動作のスナップショット基準の記録
  2. 02ツール呼び出しの全体的な軌跡と順序の比較
  3. 03API キー不要のオフラインでのツール差分確認
  4. 04出力品質採点のためのオプションの LLM 判定
  5. 05PR コメントと合否ゲートによる CI 連携
  6. 06Python ライブラリのインターフェース

活用シーン

  1. 01モデルやプロンプト変更後のエージェント動作の確認
  2. 02CI でリグレッションを起こす Pull Request のブロック
  3. 03HTTP 経由で公開されたエージェント出力の比較

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"hidai25-evalview": {
"command": "uvx",
"args": [
"evalview"
],
"env": {
"OPENAI_API_KEY": "<OPENAI_API_KEY>"
}
}
}
}
起動コマンドuvx evalview
設定が必要な環境変数
OPENAI_API_KEYシークレットOpenAI API key for LLM-as-judge output quality scoring. Optional — deterministic tool/sequence evaluation works without it.

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
pypievalview0.6.0

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

EvalView
AI エージェント向けのスナップショットテスト。
今日エージェントが行ったことを記録します。動作がひそかに変わったときに通知します。

PyPI バージョン PyPI ダウンロード数 パッケージ CI コアのドッグフーディング ライブプロバイダーチェック(手動) GitHub スター ライセンス


エージェントは 200 を返し、問題なさそうに見えます。しかし、モデルの更新、プロバイダーの変更、あるいはプロンプトの一行編集によって、確認を省略したり、誤ったツールを呼び出したり、出力品質をひそかに低下させたりすることがあります。テストは依然として成功します。変化に気づくのは、あなたより先にユーザーです。

EvalView は、エージェントの動作(呼び出すツール、その順序、出力内容)をスナップショットとして記録し、動作が変わった瞬間に通知します。 Jest のスナップショットのようなものですが、ツール呼び出しや複数ターンのエージェント向けです。

デモ.gif

↑ 30 秒のライブデモ — API キーは不要です

クイックスタート

OpenAI アダプターの移行: OpenAI は Assistants API を 2026 年 8 月 26 日 に終了しました。 公開済みの最新 EvalView リリースである 0.8.1 は、現在もこの API を使用しています。Responses API への移行は、現在 未リリースのソースコード です。openai-assistants を使用している場合は、 テストを実行する前に移行ガイドに従ってください。assistant_id だけでは、エージェントの設定を維持できません。他のアダプターには影響しません。

pip install evalview
evalview snapshot    # Record your agent's current behavior as the baseline
evalview check       # After any change, diff against the baseline

これで一連の作業は完了です。check は次のいずれかを返します。

  ✓ login-flow        PASSED          behavior matches baseline
  ⚠ refund-request    TOOLS_CHANGED   called a different tool, or in a different order
  ✗ billing-dispute   REGRESSION      score dropped — output quality fell

最終的な文字列だけでなく、ツール名、パラメーター、呼び出し順序といった軌跡全体を比較します。決定論的なツールとシーケンスの差分は、API キーなしでオフライン実行されます。出力品質のスコアリングが必要な場合にのみ、LLM ジャッジを追加してください。

エージェントを実行すると、バックエンドの API 料金が発生する場合があります。--no-judge がスキップするのはジャッジであり、API 呼び出しではありません。埋め込みベースのセマンティック比較はオプトインです。

まだエージェントがありませんか?30 秒で動作を確認できます。

evalview demo

なぜアサーションではなくスナップショットテストなのか?

多くの評価ツールでは、「望ましい状態」をアサーション、メトリクス、評価基準としてあらかじめ記述する必要があります。これは事前の作業が多く、想定してアサーションを設定した失敗しか検出できません。

EvalView はこれを逆転させます。エージェントが現在実際に行っていることを記録し、そこからの逸脱を検出します。 アサーションを一切書かなくても、予想していなかったリグレッションを検出できます。新しい動作が正しければ、evalview snapshot で新しいベースラインとして受け入れます。Jest でスナップショットを更新するのと同じです。

EvalViewアサーションベースの評価ツール
セットアップ現在の動作を記録まずアサーション/メトリクスを記述
検出対象ベースラインからのあらゆる逸脱アサーションで指定したものだけ
非決定性複数バリアントのベースライン(最大5つの有効なパス)自分で対処
比較単位ツール呼び出しの軌跡全体通常は最終出力

そのため EvalView はマージ時のリグレッションゲートとして機能します。これは、可観測性(Langfuse、LangSmith)やメトリクスによるスコアリング(promptfoo、DeepEval、Braintrust)とは異なる役割です。多くのチームは、可視化のためにそのいずれかを使い、さらに EvalView をゲートとして利用しています。率直な比較 →

EvalView は毎日、自らを公開環境でテストしています

毎日 09:00 UTC に、プルリクエスト時と main へのプッシュ時に、 Core Dogfood がオンラインテスト以外のテストスイート、 型チェック、ローカルのモックエージェントによる snapshot/check、evalview demo、エンドツーエンドの フロー、そして evalview monitor のスモークテストを実行します。有料 API の認証情報は使用せず、 有料の推論呼び出しも行いません。GitHub ランナーの利用料金は別途発生します。

Live Provider Checks は、メンテナーが main 上で有料 API の使用を明示的に許可した場合に限り、実際の評価器と チャットアシスタントをテストします。自動スケジュールはありません。バッジには最後の手動実行が記録されます。コアのバッジが緑色でも、ライブプロバイダーの健全性が確認されたことにはならず、プロバイダーのドリフトも否定できません。

パッケージ CI、コアの dogfood、ライブチェックには、それぞれ別のバッジがあります。失敗したチェックや未完了のチェックは、それぞれの範囲内で引き続き確認でき、ログとレポートはアーティファクトとして保存されます。継続中の問題には、dogfood-core と dogfood-live の別々のラベルが付けられます。プロバイダーの停止、クォータの枯渇、または認証情報の欠如により、ライブの健全性を確認できない場合がありますが、これはエージェントのリグレッションを証明するものではありません。

過去の インシデント #264 は、両方の範囲から得られた新しい証拠をメンテナーが確認するために引き続き利用できます。どちらのワークフローも、このインシデントを自動でクローズしません。信頼性に関する警告は調査すべき証拠であり、不正な操作や特定の根本原因を証明するものではありません。

コアの実行結果 → · 手動ライブ実行 → · 実行とトリアージのガイド →

CI:すべての PR でリグレッションをブロック

# .github/workflows/evalview.yml
name: EvalView
on: [pull_request]
jobs:
  agent-check:
    runs-on: ubuntu-latest
    permissions: { pull-requests: write }
    steps:
      - uses: actions/checkout@v4
      - uses: hidai25/[email protected]
        with:
          openai-api-key: ${{ secrets.OPENAI_API_KEY }}

差分、コスト/レイテンシの変化、合否ゲートを含む PR コメントが表示されます。CI/CD ガイド →

お使いのスタックで動作

LangGraph · CrewAI · OpenAI · Claude · Mistral · Ollama · MCP · あらゆる HTTP API。

evalview check --agent http://localhost:8000/invoke

フレームワークの詳細 →

ライブラリとして使用

from evalview import gate

result = gate(test_dir="tests/")
result.passed   # bool
result.diffs    # per-test scores and tool diffs

Python API →

その他

EvalView は、複数ターンのテスト、統計的な/pass@k 実行、記録/再生カセット、モデルドリフトのカナリア、Slack アラート付きの本番環境モニタリング、インシデントからのリグレッションテストの自動生成にも対応しています。これらは上級者向けの機能です。まずは snapshot と check から始め、必要に応じてほかの機能を利用してください。

→ 全機能リファレンス · はじめに · FAQ

→ ドキュメント一覧 · OpenAI からの移行 · リリース手順

EvalView を構築した理由

成功しているように見えたエージェントが、ドキュメント全体をコンテキストに取り込み続け、1つの質問に $42.93 かかりました。この経験をきっかけに EvalView を構築しました。このことについては、「I Was Running an AI Casino. Then I Started Writing Tests for My Agents」で書いています。2025年12月の投稿は開発の経緯を伝えるものであり、セットアップやコマンドについては最新のドキュメントをご利用ください。

貢献

このプロジェクトはまだ始まったばかりで、開発の大半を1人の開発者が担っています。Issue、PR、「試してみたところ、X が分かりにくかった」というフィードバックはいずれも、本当に役立ちます。

ライセンス: Apache 2.0


Star History Chart

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。