Skip to main content
Glama
ajentsor
by ajentsor

⚠️ Project Retired (2026-05-01)

LLM Radar is no longer maintained. The daily data pipeline has been disabled and the repository is archived.

The live dashboard and MCP server may stop working as upstream APIs change. The model data in data/ reflects the last update before retirement.

Code remains here for reference only. Forks are welcome.


LLM Radar

Real-time AI Model Intelligence via MCP

MIT License Python 3.10+ MCP Server Updated Daily

Skip the search. Your AI already has current model info.

Live Dashboard · Model Reference · MCP Setup · Contributing


What is LLM Radar?

LLM Radar is an MCP server that gives your AI assistant current information about AI models from OpenAI, Anthropic, and Google.

The problem: AI assistants have training cutoffs. Ask about models and you get outdated recommendations, deprecated APIs, or hallucinated pricing.

The solution: Connect LLM Radar and your AI already knows what's available today:

  • Fetching fresh data from provider APIs daily

  • Enriching it with Claude for better descriptions

  • Exposing it via MCP for any compatible client


Related MCP server: tokencost-mcp-server

MCP Server Setup

Install via pip

# Install
pip install llm-radar-mcp

# Or run directly
pip install llm-radar-mcp && llm-radar-mcp

Claude Desktop config (local stdio):

{
  "mcpServers": {
    "llm-radar": {
      "command": "llm-radar-mcp"
    }
  }
}

Option 3: Docker

docker run -p 8000:8000 ghcr.io/ajentsor/llm-radar:latest

Then connect to http://localhost:8000/sse


Available MCP Tools

Once connected, you can use these tools:

Tool

Description

query_models

Search/filter models by provider, type, or modality support

compare_models

Side-by-side comparison of specific models

get_model

Get detailed info about a specific model by API ID

list_model_ids

List all available model IDs for a provider

Example Queries

"What models support vision input?"
→ Uses query_models with input_modality="image"

"Compare GPT-4o, Claude Sonnet, and Gemini 2.5 Pro"
→ Uses compare_models with those model IDs

"List all OpenAI model IDs"
→ Uses list_model_ids with provider="openai"

Available Resources

The MCP server also exposes resources you can read directly:

Resource URI

Description

llm-radar://models/all

Complete JSON data

llm-radar://models/openai

OpenAI models only

llm-radar://models/anthropic

Anthropic models only

llm-radar://models/google

Google models only

llm-radar://highlights

Curated recommendations


How It Works

┌─────────────────────────────────────────────────────────────────┐
│                    Daily GitHub Action (8am UTC)                │
├─────────────────────────────────────────────────────────────────┤
│                                                                 │
│  ┌──────────┐   ┌──────────┐   ┌──────────┐                    │
│  │  OpenAI  │   │Anthropic │   │  Google  │   ← Fetch APIs     │
│  │   API    │   │   API    │   │   API    │                    │
│  └────┬─────┘   └────┬─────┘   └────┬─────┘                    │
│       │              │              │                           │
│       └──────────────┼──────────────┘                           │
│                      ▼                                          │
│              ┌──────────────┐                                   │
│              │    Claude    │   ← Enrich & Format               │
│              │   (Sonnet)   │                                   │
│              └──────┬───────┘                                   │
│                     │                                           │
│       ┌─────────────┼─────────────┐                            │
│       ▼             ▼             ▼                            │
│  ┌─────────┐  ┌──────────┐  ┌───────────┐                      │
│  │models.  │  │ MCP      │  │  GitHub   │   ← Deploy           │
│  │  json   │  │ Server   │  │  Pages    │                      │
│  └─────────┘  └──────────┘  └───────────┘                      │
│                                                                 │
└─────────────────────────────────────────────────────────────────┘

Data Format

Each model includes:

Field

Description

id

API model identifier

name

Human-friendly name

provider

openai, anthropic, or google

description

What the model is best for

context_window

Max input tokens

pricing

Input/output cost per 1M tokens

capabilities

vision, function_calling, reasoning, etc.

status

active, preview, or deprecated

released

Release date

recommended_for

Use case suggestions


Local Development

# Clone
git clone https://github.com/ajentsor/llm-radar.git
cd llm-radar

# Install
python3 -m venv venv
source venv/bin/activate
pip install -e ".[dev]"

# Run MCP server (stdio mode)
llm-radar-mcp

# Run MCP server (HTTP mode for testing)
llm-radar-mcp --http --port 8000

# Fetch fresh data (requires API keys)
cp .env.example .env
# Edit .env with your API keys
python3 -m llm_radar.fetch_models
python3 -m llm_radar.aggregate_with_claude

Project Structure

llm-radar/
├── src/llm_radar/              # Main package
│   ├── __init__.py
│   ├── mcp_server.py           # MCP server implementation
│   ├── fetch_models.py         # API fetchers
│   └── aggregate_with_claude.py # Claude enrichment
├── data/
│   ├── models.json             # Structured model data
│   ├── MODELS.md               # Human-readable reference
│   └── raw/                    # Raw API responses
├── docs/                       # Landing page (Cloudflare)
├── Dockerfile                  # Container build
├── docker-compose.yml          # Local container setup
├── pyproject.toml              # Python package config
└── .github/workflows/
    └── update-models.yml       # Daily cron job

Configuration

To run the data fetcher yourself:

# .env file
OPENAI_API_KEY=sk-...
ANTHROPIC_API_KEY=sk-ant-...
GOOGLE_API_KEY=AI...

For GitHub Actions, add these as repository secrets.


Self-Hosting

Docker Compose

version: '3.8'
services:
  llm-radar:
    image: ghcr.io/ajentsor/llm-radar:latest
    ports:
      - "8000:8000"
    restart: unless-stopped

Cloudflare Workers / Fly.io / Railway

The MCP server supports HTTP/SSE transport, making it deployable to any platform that supports long-running HTTP connections.


Contributing

See CONTRIBUTING.md for guidelines.

Key areas for contribution:

  • Additional providers (Cohere, Mistral, etc.)

  • More MCP tools

  • Better data enrichment prompts

  • Documentation improvements


License

MIT License - see LICENSE


Built for developers who want accurate AI model info

Star this repo · Report Issue · View Dashboard

Available Tools

4 tools
compare_modelsA

Compare specific models side-by-side. Provide model IDs to get a detailed comparison.

ParametersJSON Schema
NameRequiredDescriptionDefault
model_idsYesList of model IDs to compare (e.g., ['gpt-4o', 'claude-opus-4-5-20251101'])

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations exist, so the description carries the burden. It implies a read operation ('compare') but does not explicitly state it is non-destructive or disclose output details.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences with zero wasted words, efficiently conveying the tool's purpose and required input. Front-loaded for quick understanding.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple one-parameter tool, the description is functional but lacks detail on what 'detailed comparison' entails. No output schema, so additional context on return format would improve completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% for the single parameter 'model_ids', which is well-described in the schema. The description adds no new semantic meaning beyond what the schema provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Compare specific models side-by-side') and resource, distinguishing it from siblings like 'get_model' (single model) and 'list_model_ids' (listing IDs).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It instructs to 'Provide model IDs to get a detailed comparison,' but lacks explicit when-to-use or when-not-to-use guidance relative to sibling tools. Implicit differentiation is present.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_modelA

Get detailed information about a specific model by its API ID.

ParametersJSON Schema
NameRequiredDescriptionDefault
model_idYesThe exact model ID used in API calls

TDQS

A3.5/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description carries full burden. States 'detailed information' but does not specify what fields are returned or any side effects. Minimal behavioral disclosure.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence, no wasted words. Clearly conveys the essential purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Low complexity tool with 1 parameter and no output schema. Description is adequate but lacks specifics about what 'detailed information' includes, leaving some ambiguity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%. Description merely restates 'by its API ID' which is already in the schema parameter description. Adds no new meaning.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states verb (Get), resource (model), and method (by its API ID). Distinguishes from siblings like compare_models and list_model_ids.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Implied usage (when you have a model ID and want details), but no explicit when-to-use or when-not-to-use compared to siblings. No alternatives mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_model_idsB

List all available model IDs for a provider. Useful for finding exact API identifiers.

ParametersJSON Schema
NameRequiredDescriptionDefault
providerNoFilter by provider

TDQS

B3.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description must fully disclose behavioral traits. It only states the action without mentioning if it is read-only, requires authentication, has rate limits, or describes the output format. This minimal disclosure is insufficient for an agent to understand the tool's behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description consists of two short, front-loaded sentences with no redundant information. Every word adds value, making it highly concise and easy to parse.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite having a single parameter and no output schema, the description fails to mention the return format (e.g., list of strings) or behavior when the optional 'provider' is omitted. This lack of completeness could lead the agent to misuse the output.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% coverage for the one parameter 'provider' with description 'Filter by provider'. The tool description adds no additional meaning beyond the schema. Baseline score of 3 is appropriate since the schema already handles parameter clarity.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool lists all available model IDs for a provider, using the verb 'List' and the resource 'model IDs'. It differentiates from sibling tools like compare_models, get_model, and query_models by focusing on ID enumeration rather than details or comparisons.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description hints at usage with 'Useful for finding exact API identifiers', but does not explicitly state when not to use this tool or mention alternatives. The context from sibling names provides implicit guidance but the description itself lacks exclusion criteria.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

query_modelsB

Search and filter AI models available via API. Filter by provider, type, or modality support.

ParametersJSON Schema
NameRequiredDescriptionDefault
providerNoFilter by provider: 'openai', 'anthropic', or 'google'
model_typeNoFilter by type: 'chat', 'reasoning', 'image', 'audio'
supports_imagesNoOnly show models that accept image input
supports_audioNoOnly show models that support audio input/output
min_contextNoMinimum context window size in tokens
limitNoMaximum number of results to return (default: 10)

TDQS

B3.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden. It only says 'filter by provider, type, or modality support' which adds minimal behavioral info. It omits return format, pagination, error handling, and any side effects. The schema details parameters but not overall behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences with no wasted words. The purpose is front-loaded, and every part is functional. It efficiently conveys the tool's action and filter options.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite 6 parameters and no output schema, the description does not explain what the response contains (e.g., model IDs, full details). It also lacks usage constraints, limits, or pagination behavior. For a search tool, this leaves significant gaps in understanding.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. The description summarizes filter dimensions ('provider, type, modality support') but does not add significant meaning beyond what the schema already provides. The mapping from 'type' to 'model_type' is clear, but no extra context.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses the specific verb 'Search and filter' and clearly identifies the resource as 'AI models available via API'. It distinguishes from sibling tools (compare_models, get_model, list_model_ids) by focusing on search/filter versus comparison, single retrieval, or ID listing.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies when to use (when needing to find models by criteria) but does not explicitly state when not to use or provide alternatives. It mentions filter dimensions but lacks guidance on choosing between this and siblings like get_model for exact model lookup.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

TDQS

A4/5.0
Disambiguation5/5

Each tool has a clearly distinct purpose: comparing models, fetching details, listing IDs, and searching. No overlap.

Naming Consistency5/5

All tools follow a consistent verb_noun snake_case pattern (compare_models, get_model, list_model_ids, query_models).

Tool Count5/5

Four tools cover the essential operations for exploring AI models without being excessive or insufficient.

Completeness5/5

The set covers listing, searching, details, and comparison; query_models allows broad searches, so no critical gaps are apparent.

Maintenance

ActivityInactive
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    B
    quality
    D
    maintenance
    An MCP server that retrieves and provides AI model information from OpenAI, Anthropic, and Google through a unified interface.
    3
    17
    MIT
  • F
    license
    A
    quality
    C
    maintenance
    An MCP server for discovering and querying over 300 AI models available on OpenRouter. It enables users to list, search, filter, compare, and get detailed information about models with pricing, context limits, and capabilities.
    5
    1
  • A
    license
    Not graded
    quality
    B
    maintenance
    MCP server that enables agents to dynamically switch between multiple AI models (OpenAI, Anthropic, Google, etc.) with unified protocol-driven configuration and capability discovery.
    Apache 2.0

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/ajentsor/llm-radar'

If you have feedback or need assistance with the MCP directory API, please join our Discord server