Skip to main content
Glama

FreeModel MCP

Stop paying Claude prices for every task. Route coding to DeepSeek, reasoning to Qwen, writing to Gemini — automatically. One API key, 25+ platforms, the right model every time.

npx freemodel-mcp

FreeModel is a model router for Claude Code. It looks at what you're doing — writing code, analyzing data, translating text — and picks the best model for that specific task. Not just the cheapest. Not just the most popular. The one that actually scores highest on the relevant benchmarks.


Why this exists

Every model router does the same thing: "route cheap prompts to cheap models." They classify by complexity (simple → Haiku, complex → Opus) and call it a day.

FreeModel answers a different question: which model actually performs well on this type of task?

Other routers:                FreeModel:
"How hard is this?"           "What kind of task is this?"
         ↓                              ↓
  simple / medium / hard        coding / reasoning / writing
         ↓                              ↓
  pick cheaper model            pick model that scores highest
  at same complexity            on this task type's benchmarks

The difference is data. FreeModel scores every model across six dimensions (Code, Knowledge, Math, Instruction, Safety, Efficiency) using 18 public benchmarks — LiveCodeBench, MMLU-Pro, MATH-500, IFEval, SimpleQA, and more. The scores are public at model.leyijian.com/classification.html.


Related MCP server: Delegation MCP

vs. the alternatives

mcp-multi-model

claude-code-llm-router

llm-routing

FreeModel

Routing logic

keyword match in yaml

complexity regression

confidence score

6-dim benchmark scores

Task types

none

simple/medium/hard

none

coding, reasoning, writing, chat, creative, multimodal

Model catalog

12 platforms, manual config

20 platforms, auto-detect

20 platforms

25 platforms, 982 models

Why this model?

"you configured it"

"complexity match"

"confidence score"

"scores 92 on coding benchmarks"

Tier system

no

no

no

L1–L5, public rubric

Subscription routing

no

no

no

yes, auto-prioritizes paid subs

Pricing

static yaml

static

static

live API prices

Data transparency

N/A

N/A

N/A

public classification page


How it works

Tier system (L1–L5)

Every model gets a tier based on six-dimension benchmark scores — not marketing copy, not vibes.

Tier

Label

Threshold

Example

L1

Specialist

single-dim excellence

DeepSeek-R1 (Reasoning 95)

L2

Professional

≥70 composite

Claude Opus 4, GPT-5

L3

Competent

≥55 composite

Qwen3-Max, DeepSeek-V4

L4

Capable

≥35 composite

GLM-4-Flash, ERNIE-Speed

L5

Basic

<35 composite

Small/fast models

Task auto-detection

6 task types detected from the user's prompt before routing:

  • coding — 写代码、debug、爬虫、API、build、修复

  • reasoning — 分析、数学、架构、安全审计、规划

  • writing — 翻译、写作、总结、报告、文档

  • creative — 头脑风暴、命名、设计、营销

  • chat — 问答、推荐、对比、讨论 (default)

  • multimodal — 图片、OCR、视频

Task type → filter to models that score well on relevant benchmarks → pick best price/performance.

Scoring dimensions

Code ────────── LiveCodeBench, SWE-bench, HumanEval
Knowledge ───── MMLU-Pro, GPQA Diamond
Math ────────── MATH-500, AIME 2024
Instruction ─── IFEval, MT-Bench
Safety ──────── SimpleQA, TruthfulQA
Efficiency ──── speed, throughput, cost

18 data sources, 6 dimensions, all public.


Quick start

Add to ~/.claude/mcp.json:

{
  "mcpServers": {
    "freemodel": {
      "command": "npx",
      "args": ["-y", "freemodel-mcp"],
      "env": {
        "FREEMODEL_KEY": "sk-your-key"
      }
    }
  }
}

Get a key at model.leyijian.com → Settings → API Keys.

Option 2: git clone

git clone https://github.com/yummy342/freemodel-mcp.git
cd freemodel-mcp && npm install
{
  "mcpServers": {
    "freemodel": {
      "command": "node",
      "args": ["/path/to/freemodel-mcp/server.js"],
      "env": {
        "FREEMODEL_KEY": "sk-your-key"
      }
    }
  }
}

MCP Tools

Tool

What it does

freemodel_key_health

Subscription status, platform health, recommended model

freemodel_status

Session summary: active model, healthy count

freemodel_models

List your available platforms and models

freemodel_recommend

Describe a task → get 2-3 model picks with reasons

freemodel_run

Execute on a specific model (platform + model name)

Install the Claude Code skill for full auto-routing:

  1. Copy skill.md to ~/.claude/skills/freemodel/skill.md

  2. Claude Code auto-loads it on startup

  3. Every task is auto-classified → routed to the best model → executed

The skill adds: subscription priority routing, platform health sorting, quota exhaustion prevention, task-type auto-detection, and model fallback chains.


What you need

  1. A FreeModel API key (get one here)

  2. Add platform keys in the dashboard (DeepSeek, Alibaba, etc.)

  3. Node.js ≥ 18

That's it. No API keys in config files — everything lives in your FreeModel account, encrypted.


Privacy

This is a local relay. Prompts go from your machine → FreeModel API → target platform. No telemetry, no analytics. Your platform API keys stay encrypted in your FreeModel account.


The data

All tier scores, benchmark results, and data sources are public:

model.leyijian.com/classification.html


License

MIT

Available Tools

5 tools
freemodel_key_healthA

Check API key health: subscription status, platform health, and recommended model. Use FIRST before task routing.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4/5.0
Behavior2/5

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

No annotations are provided, so the description must carry the full burden of behavioral disclosure. It describes what the tool checks but does not explicitly state that it is read-only, whether it has side effects, what the output format looks like, or any error behavior. The verb 'Check' implies non-destructive, but that is not explicit.

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 one informative sentence followed by a clear directive. Every word earns its place, with no filler or repetition of schema information.

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 zero-parameter tool, the description covers the core purpose and usage. It mentions the three key outputs (subscription status, platform health, recommended model), which is sufficient for an agent to understand the result. However, lacking an output schema, it could have explicitly described the return value structure, but that's a minor gap given the simplicity.

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 tool has zero parameters, so the description does not need to explain parameter usage. The schema is empty, and the description adds no parameter-related ambiguity. Baseline is 4 for 0-param tools.

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 checks API key health, listing specific aspects (subscription status, platform health, recommended model). It distinguishes itself from sibling tools like freemodel_status or freemodel_recommend by focusing on key health and giving a directive to use it first.

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?

Explicitly says 'Use FIRST before task routing,' providing clear when-to-use context. However, it does not name alternative tools or state when not to use it, so it falls short of a 5 which requires explicit alternatives or exclusions.

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

freemodel_modelsA

List all AI models available to you across platforms. Returns platform and model names.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.8/5.0
Behavior3/5

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

No annotations are provided, so the description must disclose behavior. It states the operation is a listing and describes the return content, which is adequate for a simple read-only tool. However, it does not mention error conditions, authentication, or any operational constraints, leaving some behavioral burden unmet.

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 a single, front-loaded sentence with no unnecessary words. Every piece of information earns its place: the action, the scope, and the return content.

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 the tool's simplicity (no parameters, no output schema), the description adequately covers the main context: what it lists and what it returns. It lacks minor details like potential size or pagination, but these are not critical for a basic listing tool.

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 tool has zero parameters, and the baseline for 0 params is 4. The description adds valid context by specifying the output fields, which is sufficient given no parameters exist to document.

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 a specific verb 'List' with a resource 'all AI models available to you across platforms' and explicitly notes the return content ('platform and model names'). This distinguishes it from sibling tools like freemodel_key_health and freemodel_run, which serve different purposes.

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 provides no guidance on when to use this tool versus the siblings. It does not mention alternatives, prerequisites, or exclusions, leaving the agent to infer usage solely from the tool's name and basic description.

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

freemodel_recommendA

Recommend the best AI model for a given task. Analyzes your task and recommends 2-3 models with reasons.

ParametersJSON Schema
NameRequiredDescriptionDefault
taskYesTask description e.g. "写一个Python爬虫"

TDQS

A4/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden. It discloses the core behavior (analyzes and recommends) and the output (2-3 models with reasons), but does not mention prerequisites (e.g., API key), potential side effects, or limitations. For a simple recommendation tool, this is adequate but not rich.

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 two sentences, front-loaded with the main purpose, and contains zero wasted words. Every word contributes to understanding what the tool does.

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?

The tool is simple (one required parameter), and the description explains the output sufficiently (2-3 models with reasons) without an output schema. It could mention prerequisites like a valid API key given sibling freemodel_key_health, but the description is otherwise self-contained and adequate.

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% with a clear example for the 'task' parameter, so the schema already handles the semantics. The description adds little beyond restating that the task is analyzed, fitting the baseline 3 for high 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 clearly states the tool recommends the best AI model for a given task, analyzing the task and providing 2-3 models with reasons. This verb+resource combination is specific and distinct from sibling tools like freemodel_run (which runs models) and freemodel_models (which lists 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 usage when the user needs model recommendations for a task, providing clear context. However, it does not explicitly mention when not to use it or point to alternatives like freemodel_run for execution, so it stops short of a full 5.

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

freemodel_runA

Execute a task using a specific AI model from a specific platform. Uses your stored API keys.

ParametersJSON Schema
NameRequiredDescriptionDefault
taskYesThe task to execute
modelYesModel e.g. "step-3.7-flash"
systemNoSystem prompt (optional)
platformYesPlatform ID: "stepfun","baidu","zhipu","aliyun","silicon","openrouter" etc.
max_tokensNoMax output tokens. Default varies by platform. Set 4000+ for reasoning models to prevent empty output.
temperatureNoTemperature (default 0.7)
reasoning_effortNoReasoning depth for step-3.7-flash. low=faster, high=deeper.

TDQS

A3.6/5.0
Behavior2/5

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

With no annotations, the description carries full responsibility for behavioral disclosure. It mentions 'Uses your stored API keys,' which is useful, but does not disclose potential side effects (costs, API calls), return format, or any rate/timeout quirks. This is a significant gap for a tool that executes tasks.

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 a single, information-dense sentence. It front-loads the primary action and includes the key prerequisite (stored API keys), with no wasted words.

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?

The tool has 7 parameters and no output schema, yet the description does not explain what the tool returns or any side effects. It also lacks information about when to adjust parameters like max_tokens or reasoning_effort. While the schema helps, the description alone is insufficient for an agent to fully anticipate the tool's behavior.

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%, and each parameter has a descriptive comment (e.g., model, platform, max_tokens). The tool description adds no parameter information beyond the schema, so the baseline score of 3 is appropriate.

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 function with a specific verb ('Execute a task') and resource ('a specific AI model from a specific platform'). It distinguishes from sibling tools like freemodel_status or freemodel_models, which focus on health and listing, not execution.

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 by positioning it as the execution tool among siblings, but it does not explicitly mention alternatives or exclusions. The context is clear, but no direct 'use this when' guidance is provided.

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

freemodel_statusA

Get FreeModel session summary: active model, platform, subscription, healthy count.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.6/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It implies a read-only operation but does not explicitly state side effects, authentication requirements, or failure behavior. For a status/summary tool, this is a notable gap.

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 a single, front-loaded sentence with no filler. Every word contributes to understanding the tool's purpose and output, making it exceptionally concise and well-structured.

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 zero-parameter status tool, the description covers the essential return elements (active model, platform, subscription, healthy count). Given the low complexity and absence of an output schema, this is reasonably complete, though it could mention potential caveats such as unavailable sessions or error conditions.

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 tool has zero parameters, so the baseline is 4. The description adds meaningful context about what the returned summary contains, which helps the agent understand the output even though no parameters exist.

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 a specific action ('Get') and resource ('FreeModel session summary'), and enumerates the key contents (active model, platform, subscription, healthy count). This unambiguously differentiates the tool from siblings like freemodel_key_health or freemodel_run, which target different aspects.

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 is provided on when to use this tool versus alternatives. The description simply states what it does without indicating scenarios, exclusions, or relationships with sibling tools, leaving the agent to infer usage context.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 5 tool updatesv1.0.0
    • First observedfreemodel_key_health
    • First observedfreemodel_models
    • First observedfreemodel_recommend
    • First observedfreemodel_run
    • First observedfreemodel_status

TDQS

A4/5.0

Scored across 5 tools

Disambiguation4/5

Each tool has a clear primary purpose: health checks, session status, model listing, recommendation, and execution. However, freemodel_key_health and freemodel_status both touch on health/status, which could cause slight confusion, though their descriptions distinguish them.

Naming Consistency5/5

All tool names follow the consistent pattern freemodel_<verb_noun> (e.g., freemodel_key_health, freemodel_models). The verb is implicit in some (models, status), but the prefix unifies them perfectly.

Tool Count5/5

Five tools is well-scoped for a model routing/execution server. Each tool covers a distinct step in the workflow, and nothing feels redundant or missing.

Completeness5/5

The tool surface covers the full lifecycle from health check and status to listing models, getting recommendations, and executing tasks. There are no obvious dead ends; the workflow is clear and self-contained.

Maintenance

ActivityStale
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

  • -
    license
    Not graded
    quality
    Not graded
    maintenance
    Intelligent routing service that selects optimal AI models based on capability requirements and normalizes input/output formats across multiple providers like OpenAI, Anthropic, Google, and others.
    -
  • A
    license
    A
    quality
    A
    maintenance
    Routes your AI tasks to the best available model across 20+ providers — automatically selecting based on task type, budget, and subscription pressure. Supports text, image, video, and audio with built-in cost optimization and fallback chains.
    60
    77
    MIT

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/yummy342/freemodel-mcp'

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