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 集成