AI Benchmark Index

com.aibenchmarkindex由 aibenchmarkindex.com 發布官方發布者v1.0.0更新於 Oct 26, 2026

Search 264 AI benchmarks by category, with data sources and licences for each.

已驗證Streamable HTTP可網頁執行資料與分析AI 與機器學習

概覽

AI 產生的概覽

AI Benchmark Index 的遠端 MCP 端點,讓助理依文字、地點與類別檢索已發布的 AI 基準測試,並查看其資料來源。

可以做什麼
  • 依文字、地點與類別搜尋已發布的基準測試,並依 slug 取得單一基準測試
  • 列出有基準測試的國家、地區與城市,以及各類別及其基準測試數量
  • 讀取索引統計資料,例如已發布基準測試、地點與類別的數量以及資料最後變更時間
  • 列出基準測試背後的資料來源,以及每個來源的授權條款與更新方式
適用情境
當你需要依主題、地區或類別尋找 AI 基準測試,或在引用、比較之前想確認基準資料來自何處、以何種授權條款發布時適用。
執行需求
遠端 streamable HTTP 端點;未宣告任何套件、環境變數或請求標頭,也未宣告身分驗證。
安裝前請注意
此端點僅對已發布的索引資料做唯讀查詢,不會索取憑證。請注意 README 描述的是另一個開源基準引擎,其 run_benchmark 工具使用 OPENROUTER_API_KEY,且評分端點沒有內建身分驗證,請確認你實際連接的是哪個介面。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 AI Benchmark Index,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Web executable,透過 Streamable HTTP。 遠端服務在工作區中設定後即可從網頁執行環境執行。

交給代理程式安裝

把這段提示詞貼上到 Claude Code、Codex、Cursor 等代理程式,或 SourceWeft 對話中。代理程式會讀取該伺服器的安裝指南,先向你展示發布者、端點和登入方式,經你同意後再把它新增到你的客戶端。金鑰不會寫進任何命令。

閱讀 https://sourceweft.com/mcp/com.aibenchmarkindex%2Fdirectory/install.md,並按其中說明把這個 MCP 伺服器接入我的客戶端。修改任何設定之前,先告訴我它的發布者、端點和登入方式,等我確認。不要把 API 金鑰寫進命令或我會提交的檔案;問我金鑰應從哪裡取得。

檢視代理程式所依據的安裝指南

其他 MCP 客戶端

把它新增到你客戶端的 mcpServers 設定中。

{
  "mcpServers": {
    "ai-benchmark-index": {
      "type": "http",
      "url": "https://aibenchmarkindex.com/mcp"
    }
  }
}

README

benchmark-core

[npm] [downloads] [license] [types]

AI Benchmark Index · npm · API · MCP

benchmark-core is an open-source TypeScript engine for reproducible AI model benchmarks. One definition produces an SDK, command-line interface (CLI), Model Context Protocol (MCP) server, and HTTP API.

It measures whatever your tasks and deterministic grader define. The included example measures 20 arithmetic answers and one tool-use episode with a transient order-service fault.

bash
npx benchmark-core run --model offline --provider mock --json
json
{"model":"mock:1","mean":0.5238,"confidenceInterval95":{"low":0.3333,"high":0.7143},"totals":{"tasks":21,"passed":11,"failed":0}}

The example data comes from a committed seeded generator. Seed 20261015 reproduces every public task.

Install

benchmark-core requires Node.js 20 or newer.

bash
npm install benchmark-core

The package has one runtime dependency: the official MCP TypeScript SDK.

Define a benchmark

ts
import { defineBenchmark, exactMatch, run, mockAdapter } from "benchmark-core";
const benchmark = defineBenchmark({  id: "benchmark-colors",  name: "Color recall",  tagline: "Checks exact color recall.",  tags: ["science"],  category: "memory",  whatItMeasures: "Exact recall of a named color.",  version: "0.1.0",  status: "alpha",  tasks: [{ id: "sky", kind: "single", prompt: "Name the sky color.", expected: "blue" }],  grade: (task, submission) => exactMatch(task.expected, submission.answer ?? ""),  provenance: [{    name: "Maintainer-written task",    kind: "human-written",    url: "https://github.com/example/benchmark-colors",    licence: "MIT",    howToGet: "Read data/tasks.jsonl.",    retrievedAt: "2026-10-15T00:00:00.000Z",    contaminationNotes: "Public task; use a hidden split for final comparisons.",    refresh: "Review and add tasks through pull requests."  }],  gradingMethod: "Exact string match."});
const report = await run(benchmark, mockAdapter(), { concurrency: 2, seed: 7 });console.log(report.mean);

tasks can be replaced by an asynchronous loadTasks() function. Task IDs must be unique, and each task declares kind: "single" | "episode".

How it works

text
defineBenchmark({ tasks, grade, environment, provenance })                  │        ┌─────────┼──────────┐        │         │          │       SDK       CLI      MCP server        │         │          │        └─────────┴──── HTTP handler                  │             RunReport JSON

The runner preserves task order while it uses bounded concurrency. Each row records attempts, latency, score, reason, usage, and errors. Episode rows also contain the transcript, tool log, final state, and abort reason.

The 95% confidence interval uses 2,000 seeded bootstrap resamples. Identical scores and seeds produce identical intervals.

Runtime surfaces

CLI

A benchmark package calls createCli(benchmark, { bin }). The returned main(argv) supports:

  • list
  • show <task>
  • run --model <id> --provider <openrouter|openai|mock> with optional episode limits
  • score <results.json>
  • card <report.json> [output.svg]
  • provenance
  • index-entry
  • serve [port]
  • mcp

Every command accepts --json. Exit code 0 means success, 1 means invalid usage, and 2 means a run or runtime failure.

Model Context Protocol

createMcpServer(benchmark) exposes list_tasks, get_task, score_answer, run_benchmark, and get_provenance. startMcp(benchmark) connects it to standard input and output.

run_benchmark uses OpenRouter and requires OPENROUTER_API_KEY. The other four tools need no network or key.

HTTP API

createHandler(benchmark) returns (request: Request) => Promise<Response>. It has no global state and works with Node.js or Cloudflare Workers.

MethodRouteResult
GET/healthPackage identity and health
GET/v1/tasksAll tasks
GET/v1/tasks/:idOne task
POST/v1/scoreDeterministic score for { taskId, submission }
GET/v1/provenanceData sources
GET/v1/index-entryDirectory entry

GET responses include permissive Cross-Origin Resource Sharing (CORS). Request bodies over 1 MiB return a stable REQUEST_TOO_LARGE error.

serve(handler, { port }) hosts the same handler with node:http.

The server listens on 127.0.0.1 by default. Use serve --host 0.0.0.0 only when a container or proxy needs an external bind.

POST /v1/score has no built-in authentication. Put authorization and rate limits in front of public deployments. An opt-in LLM-judged grader makes a paid model call for every score request.

Tool-use episodes

An episode task runs against a seeded, in-process Environment. The environment exposes JSON-schema tool definitions and four deterministic methods:

ts
interface Environment {  reset(task, seed): { system: string; tools: ToolSpec[] };  callTool(name, args): { result: unknown; error?: { code: string; message: string } };  state(): unknown;  done(): boolean;}

runEpisode(task, adapter, environment, options) enforces turn, tool-call, and dollar limits. A budget breach returns an episode with aborted: "budget"; the main runner still sends its trace to the grader.

The universal submission is a Trace:

ts
{  answer?: string;  toolLog?: ToolLogEntry[];  finalState?: unknown;}

replay(environment, task, toolLog, seed) resets the simulator and repeats only recorded calls. Episode graders can compute a result without a model or network call.

The reference OrderLookupEnvironment injects an HTTP 500 on its first seeded lookup. Its good mock policy retries, loads a $35 order, and applies the $50 refund limit.

Model adapters

  • mockAdapter({ seed, policies }) works offline. It returns a deterministic mix of expected and wrong answers, then follows benchmark-supplied good(task) or bad(task) episode scripts.
  • openrouterAdapter({ model }) reads OPENROUTER_API_KEY.
  • openaiCompatAdapter({ baseUrl, model }) reads OPENAI_BASE_URL and OPENAI_API_KEY when options omit them.

Adapters implement complete(prompt, context) for single tasks and chat({ messages, tools }, context) for episodes. API-reported usage and cost flow into each row and report total.

Graders

  • exactMatch(expected, answer) compares JSON values exactly.
  • regexMatch(pattern, answer) tests string answers.
  • numericWithin(expected, tolerance, answer) accepts numbers within an inclusive tolerance.
  • jsonSchemaMatch(schema, answer) checks a dependency-free JSON Schema subset.
  • judgeWithLLM(adapter, prompt?) creates an opt-in model grader.

jsonSchemaMatch supports type, enum, required, properties, items, additionalProperties, pattern, minimum, and maximum.

The default judge prompt is exported as DEFAULT_JUDGE_PROMPT:

Score the candidate answer from 0 to 1. Return only JSON with numeric score and string reason.

A judge must return {"score": number, "reason": string}. Model judging is off unless benchmark code calls judgeWithLLM.

Reports and metadata

  • renderCard(report) returns a 1200×630 SVG share card.
  • renderMarkdown(report) returns a Markdown summary and task table.
  • indexEntry(benchmark) returns the AI Benchmark Index record.
  • provenanceMarkdown(benchmark) renders provenance documentation from code.

Commit the rendered provenance file beside tasks.jsonl. The end-to-end test compares the example file byte for byte.

Utilities and types

mulberry32(seed) provides the small seeded random number generator. bootstrapCI(values, seed?, resamples?) returns percentile bounds.

The package exports these types:

  • Task, Trace, TaskScore, and GradeContext
  • ToolSpec, ToolCall, ToolLogEntry, ToolResult, and ToolError
  • Environment, EnvironmentStart, Episode, and EpisodeOptions
  • BenchmarkDefinition, Benchmark, BenchmarkTag, and BenchmarkStatus
  • ModelAdapter, ModelAdapterContext, CompletionResult, ChatRequest, ChatResult, ChatMessage, and ModelUsage
  • MockPolicies and ScriptedTurn
  • RunOptions, RunRow, and RunReport
  • Provenance, ProvenanceKind, and IndexEntry
  • JsonSchema, JsonSchemaObject, JsonValue, JsonPrimitive, and Answer

Limits

The runner does not hide failed tasks. Exhausted retries become zero-score rows with an error message.

A timeout stops waiting and aborts the provider signal. Provider work can continue in the background if its adapter ignores that signal.

The built-in schema grader implements the documented subset, not the full JSON Schema specification. Cost stays absent when a provider omits it.

The public arithmetic and order tasks test the surfaces, not frontier model ability. Use a private or held-out split for serious comparisons.

Development

bash
npm cinpm run ci:local

The gate lints, type-checks, builds, and runs one end-to-end script. That script exercises every task, API route, and MCP tool, then writes artifacts/e2e-report.json.

Version 0.1.0 is alpha. Report defects through GitHub issues.

License

MIT © Pooria Arab

Cite

Please cite this package with its Zenodo DOI. The DOI below names all versions. GitHub also shows a "Cite this repository" box from CITATION.cff.

bibtex
@software{arab2026benchmarkcore,  author  = {Arab, Pooria},  title   = {benchmark-core},  year    = {2026},  version = {0.1.0},  doi     = {10.5281/zenodo.23422358},  url     = {https://private-repo-337e.com/benchmarks/benchmark-core}}

來源:README.md,提交 d5ab532

工具

6

search_listings

Search published benchmarks by text, place and category.

輸入參數qcitysortlimitcursorregioncountrycategory

get_listing

Get one published benchmark by its slug.

輸入參數slug必填

list_places

List countries, regions and cities that have benchmarks.

無需輸入參數。

list_categories

List categories with their benchmark counts.

無需輸入參數。

get_stats

Get the number of published benchmarks, places and categories, and when the data last changed.

無需輸入參數。

list_sources

List where the benchmark data comes from, with the license and refresh of each source.

無需輸入參數。

版本歷史

1
  1. v1.0.0最新Oct 16, 2026

評分

已滿足適用檢查項的 100%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通必需25 分
  • 已宣告認證方式必需10 分
  • 已列出工具必需15 分
  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分

其他 Aibenchmarkindex 整合