Skip to main content
Glama
MGM-FALCON

quelllm-mcp

by MGM-FALCON

quelllm-mcp

MCP server exposing the quelllm.fr catalog of 190+ open-weights LLMs via Model Context Protocol tools. Use it from Claude Code, Cursor, Continue, or any MCP-compatible client to query models, compare them, estimate VRAM, and compute API vs self-hosted cost.

Tools exposed

Tool

Description

list_models(filter_origin?, filter_family?, max_params_b?)

List models with filters (origin code, family, max params in B)

get_model(model_id)

Full record for one model (params, vram per quant, context window, family, tags, license, URLs)

compare(model_a_id, model_b_id)

Side-by-side comparison with verdict

estimate_vram(model_id, quant)

VRAM in GB at chosen quant + recommended GPU/Mac tiers

estimate_cost(input_tokens_per_month, output_tokens_per_month, ...)

Cost in EUR — full table API providers vs self-hosted hardware OR a specific id

search_models(query, limit?)

Fuzzy search by name, family, tag, author

Related MCP server: HydraMCP

Install

Install from source (not yet on PyPI) :

pip install git+https://github.com/MGM-FALCON/quelllm-mcp.git

Or run without installing, using uv :

uvx --from git+https://github.com/MGM-FALCON/quelllm-mcp.git quelllm-mcp

For local development :

git clone https://github.com/MGM-FALCON/quelllm-mcp.git
cd quelllm-mcp
pip install -e .

Use with Claude Code

Add to ~/.claude.json or a project's .mcp.json. If you installed with pip :

{
  "mcpServers": {
    "quelllm": {
      "command": "quelllm-mcp"
    }
  }
}

Or zero-install with uvx :

{
  "mcpServers": {
    "quelllm": {
      "command": "uvx",
      "args": ["--from", "git+https://github.com/MGM-FALCON/quelllm-mcp.git", "quelllm-mcp"]
    }
  }
}

Use with Claude Desktop

Edit ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) :

{
  "mcpServers": {
    "quelllm": {
      "command": "quelllm-mcp"
    }
  }
}

Use with Cursor / Continue / Cline

Most MCP clients accept the same JSON config :

{
  "command": "quelllm-mcp"
}

Example queries (from your client)

> Quels LLM Mistral peuvent tourner sur RTX 5070 Ti 16GB ?
→ list_models(filter_family='Mistral', max_params_b=24)
→ estimate_vram('mistral-small-24b', 'q4')

> Compare Llama 3.3 70B vs Qwen 2.5 32B
→ compare('llama33-70b', 'qwen25-32b')

> J'utilise 10M tokens input + 2.5M output / mois. Combien je paye chez OpenAI vs DeepSeek ?
→ estimate_cost(10_000_000, 2_500_000)

Data source

All data pulled from quelllm.fr/api/ (CC BY 4.0, no key, CORS-enabled). Cached locally for 1h to avoid rate-limiting.

API pricing data (GPT-5, Claude Opus 4.7, Gemini 2.5, DeepSeek, Mistral) and hardware pricing (RTX 50-series, Mac M4) are hardcoded as of 2026-05 — verify semestrially.

License

MIT — see LICENSE.

Contributing

Source : https://github.com/MGM-FALCON/quelllm-mcp Issues + PRs welcome. Particularly :

  • API pricing updates (semestrial)

  • Hardware additions (new GPUs, Mac Mx series)

  • New tools (e.g. find_alternatives_to(model_id), recommend_gpu(budget_eur))

Tests

A pytest smoke suite lives under tests/. It covers all 6 tools and the v1.1.0 output invariants, never touches the network (local fixture + mocked httpx), and stubs the mcp SDK when it isn't importable — so it also runs on Python 3.9.

pip install -e ".[test]"
pytest

Author

Mohamed Meguedmi — LinkedIn · Hugging Face Founder of La Gazette IA and QuelLLM.fr.

Available Tools

6 tools
compareA

Compare two LLMs side-by-side.

Args: model_a_id: first model ID model_b_id: second model ID

Returns: comparison dict with VRAM, params, license, context window, family, origin for both models, plus a verdict

ParametersJSON Schema
NameRequiredDescriptionDefault
model_a_idYes
model_b_idYes

TDQS

A3.5/5.0
Behavior4/5

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

With no annotations, the description carries full burden. It transparently lists return fields (VRAM, params, license, etc.) and mentions a verdict, indicating read-only behavior. Minimal missing details like error handling or side effects.

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

Conciseness4/5

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

The description is concise with a clear docstring format (args/returns). The returns section lists many fields but is structured. No wasted words, though could be slightly shorter.

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 tool with 2 string parameters and no output schema, the description adequately explains what it does and returns. However, it misses edge cases (invalid IDs) and usage context, leaving some gaps.

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

Parameters2/5

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

Input schema has 0% description coverage. The description adds 'first model ID' and 'second model ID,' but these add little beyond the parameter names. More semantic detail (e.g., format, source) would be needed to compensate.

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 'Compare two LLMs side-by-side,' specifying the verb and resource. It distinguishes from sibling tools like list_models or get_model by focusing on side-by-side comparison.

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

Usage Guidelines2/5

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

The description does not provide explicit guidance on when to use this tool versus alternatives. It only implies usage for comparing two models, lacking 'when not to use' or reference to siblings.

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

estimate_costA

Estimate monthly cost for LLM usage — API providers OR self-hosted hardware.

Args: input_tokens_per_month: total input tokens per month output_tokens_per_month: total output tokens per month model_or_hardware: specific model/hw ID (e.g. 'gpt-5', 'rtx-5090'). If None, returns full comparison table. amort_months: amortization period for hardware purchase, default 24 months electricity_eur_per_kwh: electricity rate, default 0.20 EUR/kWh (FR 2026 average) hours_active_per_day: hours of active inference per day, default 4 caching_hit_rate: 0..0.9 fraction of input tokens hitting prompt cache (Anthropic 90% off / Gemini 75% off). Default 0. batch_mode: True applies 50% off input+output for batchable APIs (24h delay). Default False. off_peak: True applies DeepSeek off-peak discount (50% V3.5 / 75% R1). Default False. pc_always_on: True = idle (24-hours_active) × idleW. False = PC off out of active hours (0W idle). Default True. vat_recoverable: True = subtract 16.67% VAT from hardware purchase price (HT pour pro). Default False.

Returns: cost estimate in EUR (with USD-to-EUR conversion ~0.92 for APIs)

ParametersJSON Schema
NameRequiredDescriptionDefault
off_peakNo
batch_modeNo
amort_monthsNo
pc_always_onNo
vat_recoverableNo
caching_hit_rateNo
model_or_hardwareNo
hours_active_per_dayNo
input_tokens_per_monthYes
electricity_eur_per_kwhNo
output_tokens_per_monthYes

TDQS

A4.7/5.0
Behavior5/5

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

With no annotations, the description carries full burden and excels. It discloses all behavioral traits: parameter effects (caching discounts, batch/off-peak discounts, VAT handling), default values, and return format (EUR cost with USD conversion). No contradictions.

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

Conciseness4/5

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

The description is well-structured with a clear purpose sentence followed by detailed bullet points. It is somewhat lengthy but efficient for the complexity. Every sentence provides value; no waste.

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

Completeness5/5

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

Given 11 parameters, no output schema, and high complexity, the description is complete. It covers all inputs with defaults, return format, and conversion notes. No gaps identified.

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

Parameters5/5

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

Schema coverage is 0%, but the description explains all 11 parameters in detail with examples and default behaviors (e.g., 'caching_hit_rate: 0..0.9 fraction... Default 0.'). This adds substantial meaning beyond the bare schema.

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 it estimates monthly cost for LLM usage across API providers and self-hosted hardware, using specific verbs and resources. It distinguishes from sibling tools like compare, estimate_vram, get_model, list_models, search_models.

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?

The description provides clear context: if model_or_hardware is None, returns full comparison table; billing options are detailed. However, it does not explicitly state when to use this tool versus siblings like compare or estimate_vram, lacking explicit when-not-to-use guidance.

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

estimate_vramA

Estimate VRAM required to run a model at a given quantization.

Args: model_id: the model ID quant: quantization level — one of 'q4', 'q5', 'q8', 'fp16'. Default 'q4'.

Returns: dict with vram_gb (estimate including context overhead) + recommended GPU tiers

ParametersJSON Schema
NameRequiredDescriptionDefault
quantNoq4
model_idYes

TDQS

A4.5/5.0
Behavior4/5

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

No annotations are provided, so the description carries the burden. It discloses that the result is an 'estimate including context overhead' and specifies the return format (dict with vram_gb and recommended GPU tiers). This is transparent for a computation tool. Additional details like potential error conditions or performance characteristics are missing but not critical.

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 is concise: one line for purpose, then bullet-like args and returns. No unnecessary words. Front-loaded with the verb.

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

Completeness5/5

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

Given the tool's simplicity (2 params, no output schema, no annotations), the description covers inputs and outputs adequately. It explains what the tool does and what it returns, meeting the needs for selection and invocation.

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

Parameters4/5

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

The schema has 0% description coverage, so the description must compensate. It explains 'quant' with enumerated values ('q4', 'q5', 'q8', 'fp16') and default, and describes 'model_id' as 'the model ID'. This adds value beyond the schema. However, 'model_id' could be more specific (e.g., Hugging Face ID).

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's purpose: 'Estimate VRAM required to run a model at a given quantization.' It uses a specific verb ('Estimate') and resource ('VRAM'), and distinguishes itself from siblings like estimate_cost and list_models.

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?

The description implies when to use the tool (when VRAM estimation is needed), but does not explicitly state when not to use it or mention alternatives. The purpose is clear, so a minor deduction.

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

get_modelA

Get full details for a single model.

Args: model_id: the model ID (e.g. 'mistral-7b-instruct', 'qwen3-8b')

Returns: full model record with params, vram per quant, context window, family, tags, license, and URLs.

ParametersJSON Schema
NameRequiredDescriptionDefault
model_idYes

TDQS

A4.4/5.0
Behavior4/5

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

With no annotations, description carries full burden. It details what the output contains (params, vram, etc.), implying read-only behavior. However, it lacks explicit disclosure of any constraints (e.g., API limits, authentication) though minimal given simplicity.

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?

Concise, well-structured with Args and Returns sections. Every sentence adds value; no redundancy. Front-loaded with main action.

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

Completeness4/5

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

For a simple 1-param tool with no output schema or annotations, description covers purpose, parameter, and output fields. Lacks edge cases (e.g., model not found) but sufficient for typical use.

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

Parameters4/5

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

Single parameter model_id has 0% schema coverage, but description provides concrete examples ('mistral-7b-instruct', 'qwen3-8b') adding value. Could hint at expected naming convention, but adequate.

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?

Clearly states 'Get full details for a single model' with specific verb and resource, and distinguishes from siblings like list_models and search_models. Example model IDs reinforce purpose.

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?

Implicitly clear when to use (for a known model ID), but no explicit alternatives or when-not-to-use guidance. With sibling tools like list_models and search_models, additional clarification would help but is not critical.

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

list_modelsA

List open-weights LLMs from quelllm.fr catalog (190+ models).

Args: filter_origin: filter by author origin code, e.g. 'fr', 'us', 'cn' filter_family: filter by model family, e.g. 'Mistral', 'Qwen', 'Llama' max_params_b: maximum number of params in billions (e.g. 32 for ≤32B models)

Returns: dict with keys: count, models (list of {id, name, author, params, family, license, vram_q4_gb})

ParametersJSON Schema
NameRequiredDescriptionDefault
max_params_bNo
filter_familyNo
filter_originNo

TDQS

A4.3/5.0
Behavior3/5

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

No annotations provided, so description must disclose behavior. It describes the return format (dict with count and list of models) but omits details like read-only nature, rate limits, or authorization requirements. Adequate for a simple list tool but lacks full transparency.

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?

Compact docstring format with Args and Returns sections. Every sentence adds value, no fluff. Front-loaded with main purpose.

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

Completeness4/5

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

Given no output schema, description provides return type and fields. Covers all 3 parameters with examples. Missing mention of pagination, sorting, or default max results, but overall sufficient for a listing tool.

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

Parameters5/5

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

Schema coverage is 0%, but description compensates fully: explains each parameter with examples (e.g., filter_origin: 'fr', 'us', 'cn'; max_params_b: 'e.g. 32 for ≤32B models'). Adds meaning well beyond the bare schema.

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?

Clearly states 'List open-weights LLMs from quelllm.fr catalog (190+ models).' Uses specific verb 'List' and resource 'open-weights LLMs', distinguishes from siblings like get_model (single) and search_models (search).

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?

Provides context for listing with optional filters, but does not explicitly state when to use versus alternatives (e.g., search_models for full-text search). Still, the purpose is clear for basic listing tasks.

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

search_modelsA

Fuzzy search models by name, family, tag, or author.

Args: query: search string limit: max number of results, default 10

Returns: dict with count and matching models (sorted by relevance)

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
queryYes

TDQS

A3.6/5.0
Behavior3/5

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

No annotations provided, so description carries burden. It discloses that search is fuzzy and returns sorted results, but lacks details on algorithm, rate limits, pagination, or error handling.

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

Conciseness4/5

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

Description is concise and well-structured: purpose sentence, then argument list, then return info. Every sentence adds value, though more detail on fuzzy behavior could be added.

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?

Return shape is described, but missing details on error cases, pagination, and exact fuzzy algorithm. Given no output schema and limited annotations, description is adequate but not complete.

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

Parameters4/5

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

Schema descriptions are absent, so description adds value by explaining each parameter: query is a search string, limit controls max results with a default. This compensates for the 0% schema coverage.

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 specifies the verb 'search' and the resource 'models', listing searchable fields (name, family, tag, author). It clearly distinguishes from sibling tools like 'list_models' and 'get_model'.

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

Usage Guidelines2/5

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

No guidance on when to use this tool vs alternatives. It does not mention exclusions or prerequisites, leaving the agent to infer context.

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

TDQS

A4.2/5.0
Disambiguation5/5

Each tool has a clearly distinct purpose: listing models, searching, getting details, comparing, estimating cost, and estimating VRAM. No significant overlap or ambiguity.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern in snake_case (e.g., list_models, estimate_cost), making it easy to predict functionality from the name.

Tool Count5/5

With 6 tools, the count is appropriate for the domain of LLM discovery and analysis. Each tool serves a clear purpose without unnecessary bloat or deficiency.

Completeness4/5

The toolset covers core operations: listing, searching, detail retrieval, comparison, cost estimation, and VRAM estimation. Minor gaps exist, such as direct pricing for specific models, but the overall workflow is well-supported.

Maintenance

ActivitySlowing
ResponsivenessSyncing

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
    A
    quality
    C
    maintenance
    An MCP server that enables users to query, compare, and synthesize responses from multiple local and cloud LLMs simultaneously using existing subscriptions. It provides tools for parallel model evaluation, consensus polling with an LLM-as-judge, and response synthesis across different model providers.
    8
    15
    15
    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

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/MGM-FALCON/quelllm-mcp'

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