aa-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| AA_SOURCE | No | Backend selection: `auto` | `api` | `rsc`. | auto |
| AA_API_KEY | No | AA JSON API key; enables the `aa:api` backend. Optional — no API key is needed (the server falls back to scraping). | |
| AA_API_TTL | No | API cache TTL (seconds). | 21600 |
| AA_OFFLINE | No | Set to `1` to serve from cache only and never touch the network. | unset |
| AA_BASE_URL | No | Override host (tests/mirrors). | https://artificialanalysis.ai |
| AA_RICH_TTL | No | Rich-dataset (model-page overlay) cache TTL (seconds). | 21600 |
| AA_CACHE_DIR | No | Payload cache directory. | ~/.cache/aa-mcp |
| AA_CACHE_TTL | No | Scrape cache TTL (seconds). | 3600 |
| AA_LOG_LEVEL | No | stderr log level. | WARNING |
| AA_MAX_BYTES | No | Decoded-body cap (gzip-bomb guard). | 50331648 |
| AA_HTTP_TIMEOUT | No | Per-attempt HTTP timeout (seconds). | 30 |
| AA_HTTP_DEADLINE | No | Total budget for one fetch (seconds). | 45 |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| aa_leaderboardA | Rank and filter the ~700 tracked model variants — the default starting point. Answers "which model is smartest / cheapest / fastest / best value right now".
Returns a compact markdown table sorted by Args:
mode: "rank" (default), "value" (intelligence per $/task), or "frontier"
(the Pareto intelligence-vs-$/task frontier — the same code path as
|
| aa_modelA | One model's full digest: specs, indices, benchmark scores, pricing and speed. Use after aa_leaderboard/aa_search when you need everything about a single model. The header and footnote always carry the round-trippable slug. Args: query: model name or slug (fuzzy). Ambiguous names return a candidate table. sections: comma string (or list) of identity/indexes/benchmarks/pricing/ speed/cost/openness/modalities, or all. Default: identity, indexes, benchmarks, pricing, speed. Alias: specs = identity. Unknown names error with the valid list. refresh: bypass the cache and re-fetch. |
| aa_paretoA | The Pareto frontier: any score vs any cost/size/speed axis, with the knee. Always available — no per-benchmark tool needed. Returns the models where no
other model has both a lower-or-equal The three site views this covers:
Args:
score: any rankable with per-model numbers (default intelligence); e.g.
cyberIndex, terminalBench40, gpqa, capabilities.legal, openness.
x: the trade-off axis — cost_per_task (default), index_total_cost,
out_tokens_per_task, time_per_task, context_tokens, params_b, ttft,
price_in, price_out.
top: frontier points to return (default 15; cheapest first).
creator: substring match on the creator/lab.
open_weights: True/False to keep only open- or closed-weights models.
min_intelligence: drop models below this Intelligence Index value.
min_context: drop models with a smaller context window (tokens).
include_deprecated: include deprecated rows (default False).
include_all: return every frontier point instead of the |
| aa_compareA | Side-by-side comparison of 2-12 models on any benchmark (site parity). Mirrors artificialanalysis.ai's comparison pages: models as columns (or a
per-metric delta view), every rankable metric, and a reproducible YAML spec.
Rows AA publishes only on an eval chart set / homepage panel (the cyber
boards, AA-3D, …) are joined in and the source is footnoted; any cell that
stays Media/speech arena models (e.g. "Grok Voice 3.0") also resolve: comparing only arena entries renders their board metrics (Elo / STS / WER, appearances, price, release, open weights) with a footer warning that per-board scores are not cross-comparable; mixing a language model with an arena entry is refused with an explanation. Args:
queries: 2-12 model names or slugs (language models, or arena entries on
one board).
metrics: "all" (every rankable key any selected model has), "benchmarks"
(benchmark/index kinds only), or a comma list of keys/labels/aliases;
empty uses the default rows (Intelligence, Intel/$, $/task, in/out
$/1M, tok/s, TTFT, Context). For an arena comparison the names are
arena fields (elo, sts, wer, ci, appearances, price, release,
open_weights, rank, board, creator).
view: "table" (models as columns) or "diff" (one row per metric, value
plus the delta vs the first model, e.g. 57.6 (+4.9)).
compact: default metric set only — keep the core rows instead of the full
set; ignored (and stated in the footer) whenever metrics= is given.
spec: a YAML or JSON document with models/metrics/view/compact/filters,
merged with the explicit arguments; every reply ends with a
copy-pasteable |
| aa_benchmarksA | Search everything rankable: benchmarks, indexes, derived metrics, arenas. Each hit carries its Args: query: tokenised AND-match over key/label/aliases/description/tags (e.g. "speech", "cyber", "long context"). domain: one domain name (coding, math, science, security, agentic, tool-use, long-context, instruction-following, knowledge, reasoning, safety, multimodal, speech, media, music, video, business, finance, legal, medical, engineering, economics, cost, speed, openness, ...). tag: one raw tag (a narrower filter than domain=). verbose: also show what each thing measures. |
| aa_benchmark_leaderboardA | Rank models on one benchmark, stating the source and coverage honestly. Auto-selects the richest source: the full 700-row leaderboard when the field exists there, else AA's curated eval chart set, else the homepage panel; the header says which and warns when it is not a full leaderboard. Args: benchmark: benchmark key, label or eval slug (e.g. gpqa, gpqa-diamond, "GPQA Diamond", briefcaseElo). top: rows to return (default 15). fields: comma list of columns to show instead of the default set. creator: substring match on the creator/lab. open_weights: True/False to keep only open- or closed-weights models. min_intelligence: drop models below this Intelligence Index value. include_estimates: include AA-estimated scores (default True); estimates are marked with * and footnoted. refresh: bypass the cache and re-fetch. |
| aa_providersA | Provider endpoints: per-host pricing, precision, speed and feature flags. Pass Args: model: model name or slug — switches to per-model endpoint detail. host: substring match on the serving host (e.g. "groq"). top: rows to return (default 15). sort: cost_per_task (default), price_in, price_out, tps, ttft, intelligence or context_tokens. Lower-is-better keys sort ascending. fields: comma list of columns; supports precision, cache_read, discount, e2e, function_calling, json_mode, context_tokens. open_weights: keep only endpoints for open- or closed-weights models. min_context: drop endpoints with a smaller context window (tokens). refresh: bypass the cache and re-fetch. |
| aa_mediaA | Human-preference arenas: image, video, speech, music (Elo + 95% CI). Args: board: any image/video/TTS/music board key (text_to_image, image_editing, text_to_video, image_to_video, video_editing, text_to_speech, text_to_speech_controlled, music_instrumental, music_with_vocals) or a speech board (speech_to_text, speech_to_text_streaming, speech_to_speech — also accepted as realtime_voice / "realtime voice"). Hyphens/spaces/case are ignored (text-to-image == text_to_image). top: rows to return (default 15). fields: comma string (or list) of columns; supports ci_lower, ci_upper, ci (95% CI), open_weights, url. Elo CI is not shown by default. open_weights: keep only open- or closed-weights entries. refresh: bypass the cache and re-fetch. |
| aa_agentsB | AA agent leaderboards: coding agents, chatbots and search APIs. Args: board: coding_agents (default), chatbots or search_api. top: rows to return (default 15). refresh: bypass the cache and re-fetch. |
| aa_searchA | Cheap name -> slug resolver; call this first whenever a name is uncertain. Always returns the slug so the next tool call can be exact. Media/speech arena models (image/video/speech/music boards) are searched too and returned with their board, so a name like "Grok Voice 3.0" resolves instead of coming back empty. Args: query: fuzzy model name or partial slug (e.g. "claude opus"). creator: optional creator/lab substring filter. open_weights: True/False to keep only open- or closed-weights models. top: rows to return (default 15). refresh: bypass the cache and re-fetch. |
| aa_referenceA | Static reference text: tool routing, metric/eval definitions, provenance. No network. Use to learn what the fields mean and which tool answers what. Args: topic: overview (default), indexes, benchmarks, pricing, speed, providers, media, fields (alias list), sources, or all. |
| aa_rawA | Raw JSON escape hatch (token-expensive — prefer the table tools). Args: kind: model, leaderboard, providers, providers_board, media, agents, home, eval or catalog. query: slug/board/slug argument for the chosen kind (e.g. a model slug for "model", a board key for "media"/"agents", an eval slug for "eval"). fields: comma list of top-level keys to keep per record. top: records to return, capped at 5 (default 1). refresh: bypass the cache and re-fetch. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| best_model_for_task | Pick the best model for a task and budget. |
| compare_models | Compare specific models side by side. |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| Metric & benchmark definitions | Metric/eval definitions and methodology notes. |
| Benchmark catalog | The full benchmark registry as JSON. |
| Rankable index | Every rankable thing (benchmarks, indexes, derived metrics, arenas) with its how-to-query hint, as JSON. |
| Rankable index (YAML) | The same rankable index as YAML (aa_benchmarks domain/tag search covers the same data). |
| Comparison spec template | A YAML template for aa_compare's spec= argument (models/metrics/view/compact/filters). |
| Data sources & cache | URLs, cache paths, TTLs, offline mode and recovery. |
| reference: overview | Static reference text for the overview topic. |
| reference: indexes | Static reference text for the indexes topic. |
| reference: benchmarks | Static reference text for the benchmarks topic. |
| reference: pricing | Static reference text for the pricing topic. |
| reference: speed | Static reference text for the speed topic. |
| reference: providers | Static reference text for the providers topic. |
| reference: media | Static reference text for the media topic. |
| reference: fields | Static reference text for the fields topic. |
| reference: sources | Static reference text for the sources topic. |
TDQS
Scored across 12 tools
Tools mostly have distinct roles: aa_search resolves names, aa_reference explains fields, aa_raw is an escape hatch, aa_model is single-model detail. There is some overlap between aa_leaderboard, aa_benchmark_leaderboard, aa_pareto and aa_compare since all rank/compare models and share many filter args, but the descriptions clearly delineate rank-vs-frontier-vs-side-by-side-vs-single-benchmark usage.
All 12 tools use the aa_ prefix with lowercase snake_case (aa_leaderboard, aa_model, aa_pareto, aa_benchmark_leaderboard, aa_reference, aa_raw). The pattern is predictable throughout, with only the shared 'aa_' namespace prefix adding any variation.
12 tools is a well-scoped set for a model-intelligence data server, each mapping to a coherent capability (leaderboard, single model, Pareto, compare, benchmarks, providers, media, agents, search, reference, raw). Nothing feels redundant or missing at the count level.
Coverage is strong: ranking, single-model digests, Pareto frontiers, side-by-side comparison, benchmark search, provider endpoints, media/agents arenas, fuzzy name resolution, static reference, and a raw JSON escape hatch. Minor gaps remain (no explicit write/refresh-scheduling or per-benchmark-specific tools), but aa_benchmark_leaderboard and aa_raw largely cover the workarounds.