Skip to main content

model-radar

MCP server that pings free coding LLM models across HTTPS providers and subscription CLIs (Claude Code, Grok, Antigravity/agy, Codex), ranks them by latency, and helps AI agents pick the fastest available model — or pin several subscriptions for a parallel review.

Inspired by free-coding-models.

Install

pip install model-radar-mcp

Quick Start

1. Configure an API key

# Option A: Save to ~/.model-radar/config.json
model-radar configure nvidia nvapi-xxx

# Option B: Environment variable
export NVIDIA_API_KEY=nvapi-xxx

Or copy the template: cp config.example.json ~/.model-radar/config.json and edit it.

2. Add to your MCP client

Claude Code (~/.claude/settings.json):

{
  "mcpServers": {
    "model-radar": {
      "command": "model-radar",
      "args": ["serve"]
    }
  }
}

Cursor (~/.cursor/mcp.json):

Stdio (Cursor starts the server):

{
  "mcpServers": {
    "model-radar": {
      "command": "/path/to/your/.venv/bin/model-radar",
      "args": ["serve"]
    }
  }
}

Streamable HTTP (persistent server — recommended):

{
  "mcpServers": {
    "model-radar": {
      "url": "http://127.0.0.1:8743/mcp",
      "transportType": "streamable-http"
    }
  }
}

Start the server first:

model-radar serve --transport sse --port 8743

OpenClaw (~/.openclaw/config/mcporter.json):

{
  "mcpServers": {
    "model-radar": {
      "type": "http",
      "url": "http://127.0.0.1:8743/mcp"
    }
  }
}

Web dashboard: Add --web for a localhost UI at http://127.0.0.1:8743/ for status, config, discovery, and running prompts. The server binds to 127.0.0.1 only; keys never leave your machine.

model-radar serve --transport sse --port 8743 --web

Auto-restart wrapper:

while true; do model-radar serve --transport sse --port 8743; sleep 1; done

Then call restart_server() from any MCP client to reload with updated code.

3. CLI usage

# Scan models
model-radar scan --min-tier S --limit 10

# List providers
model-radar providers

# Save a key
model-radar configure nvidia nvapi-xxx

Catalogs are live

Model ids are not a hardcoded list. On startup, once an hour, and after a completion 404, model-radar fetches each provider’s /v1/models (Ollama /api/tags, grok models / agy models) and replaces that provider’s catalog — new ids in, retired ids gone. GET /v1/models is free; completions are what you pay for.

Seed tuples in the package are a fallback plus SWE-bench overlays for known ids. See Catalog playbook.

model-radar db refresh              # force live replace
python scripts/catalog-report.py    # seed vs live vs missing keys (no secrets)

Providers

HTTPS providers take an API key (configure_key or env). Call list_providers() for the current count and key status.

Provider Env Var Notes
NVIDIA NIM NVIDIA_API_KEY Rate-limited, no expiry
Groq GROQ_API_KEY Free tier
Cerebras CEREBRAS_API_KEY Small, fast; catalog rotates often
SambaNova SAMBANOVA_API_KEY $5 credits / 3 months
OpenRouter OPENROUTER_API_KEY :free ids change frequently
Hugging Face HF_TOKEN / HUGGINGFACE_API_KEY Free monthly credits
Replicate REPLICATE_API_TOKEN Dev quota
DeepInfra DEEPINFRA_API_KEY Free dev tier
Fireworks FIREWORKS_API_KEY $1 free credits
Codestral/Mistral CODESTRAL_API_KEY 30 req/min, 2000/day
Hyperbolic HYPERBOLIC_API_KEY $1 free trial
Scaleway SCALEWAY_API_KEY 1M free tokens
Google AI GOOGLE_API_KEY 14.4K req/day
SiliconFlow SILICONFLOW_API_KEY Free model quotas
Together AI TOGETHER_API_KEY Credits vary
Cloudflare CLOUDFLARE_API_TOKEN 10K neurons/day
Perplexity PERPLEXITY_API_KEY Tiered limits
xAI XAI_API_KEY Or use the grok CLI instead
Inference.net INFERENCE_NET_API_KEY Free tier
SEA-LION SEALION_API_KEY Free tier
MiniMax MINIMAX_API_KEY api.minimax.io (M3). Same token works on /anthropic — do not set ANTHROPIC_AUTH_TOKEN globally
Ollama none (local daemon) Models already pulled on 127.0.0.1:11434

CLI subscriptions

If you already pay for a monthly plan, model-radar can ride that subscription — no API key. The official CLI is auto-detected from $PATH at startup.

CLI Rides Login
claude Claude Pro / Max claude auth login
grok SuperGrok grok login
agy (provider key gemini) Google AI Pro/Ultra / Gemini run agy once to sign in
codex ChatGPT Plus / Pro codex login

The old gemini CLI was deprecated (June 2026) in favor of Antigravity CLI (agy). Install: curl -fsSL https://antigravity.google/cli/install.sh | bash. agy models may also list Claude and GPT-OSS on the same login. Codex-in-agy is a conversation mode; for model-radar use the standalone codex CLI.

These never join get_fastest() / default ask() — that would spend quota by accident. Pin them:

ask(prompt="Review this paragraph…", providers=["claude", "grok", "gemini"])
ask(prompt="…", model_ids=["sonnet", "grok-4.6"])

MCP Tools

Discovery

  • list_providers() — See all providers, API-key status, and installed subscription CLIs
  • list_models(tier?, provider?, min_tier?, free_only?) — Browse the catalog (refreshes a provider if its list is older than an hour)
  • scan(verify?) — Ping models in parallel, ranked by latency. verify=True checks for non-empty output.
  • get_fastest(min_tier?, count?, free_only?, verified?) — Best N models right now
  • get_workers(count?, min_tier?, verified?) — N verified-alive models from N distinct providers
  • provider_status() — Per-provider health check

Execution

  • run(prompt, model_id?, free_only?) — Execute on fastest model with auto-fallback
  • ask(prompt, count=3, model_ids?, providers?) — Same prompt on N models (Ollama sequential, remotes parallel)
  • recommend(job) — Short diverse lineup for translate / rewrite / review / code / dict
  • quality_probe(job) — Time + pass/fail on a fixed prompt (dict = Paper B five headwords)
  • still_free(speed?) — Which Lane A hosts still answer; up to 3 chat models each in parallel (speed=fast prefers small/flash ids)
  • batch_run(prompts, results_file?) — Batch execution with incremental JSONL, resume support, adaptive concurrency

Evaluation (LLM-as-Judge)

  • judge(prompt, rubric, count=3, exclude_providers?) — Rate a single item with N diverse judges (pass the producer to exclude)
  • compare(item_a, item_b, blind=True) — Blind A/B comparison, randomized order per judge
  • batch_judge(items, rubric, results_file?) — Evaluate at scale with incremental results
  • backtranslate_eval(..., exclude_providers?) — Back-translation quality metric; do not use the producer

Quality & Setup

  • benchmark(model_id?) — Quality-test with 5 coding challenges
  • refresh_models() — Fetch live lists and replace each provider’s catalog (purge retired ids)
  • setup_guide(provider?) — Setup instructions for unconfigured providers
  • configure_key(provider, api_key) — Save an API key
  • restart_server() — Restart for code updates (SSE mode)
  • server_stats() — Uptime and start time

Tier Scale (SWE-bench Verified)

Tier Score Meaning
S+ 70%+ Elite frontier coders
S 60-70% Excellent
A+ 50-60% Great
A 40-50% Good
A- 35-40% Decent
B+ 30-35% Average
B 20-30% Below average
C <20% Lightweight/edge

Documentation

License

MIT

Release files for model-radar-mcp 0.12.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for model-radar-mcp 0.12.0
File Size Uploaded
model_radar_mcp-0.12.0.tar.gz 97.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for model-radar-mcp 0.12.0
File Interpreter ABI Platform
model_radar_mcp-0.12.0-py3-none-any.whl Python 3 none any Details

Total release size: 210.2 kB

Release files / model_radar_mcp-0.12.0.tar.gz

Download URL model_radar_mcp-0.12.0.tar.gz
Size 97.0 kB
Tags Source
SHA-256 checksum
How to use checksums
e496b48ecdc3a0456fd316608e5acf62056c3f963f8a67e1fb40602779f74765
BLAKE2b-256 checksum
How to use checksums
e03013cfa345f3b3be98eaa996b0eb28279e088ff00c9379a0531530fa9c2bcd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 15, 2026.

Transparency log

Release files / model_radar_mcp-0.12.0-py3-none-any.whl

Download URL model_radar_mcp-0.12.0-py3-none-any.whl
Size 113.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
fb79fe0a2ecba681b548f0a3a60a2b2869215884437df2897b296c48382b2187
BLAKE2b-256 checksum
How to use checksums
e68e0b2cdf10103b0afbeb4501c8c3241c74afeaf7b4b18814896f393719588c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 15, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.12.0 This release

2 release files

0.11.0

2 release files

0.5.1

2 release files

0.4.1

2 release files

0.4.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page