Skip to content

Repository files navigation

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

About

MCP server that pings 130+ free coding LLM models across 17 providers in real-time, ranks by latency, and helps AI agents pick the fastest available model.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages