modelparams.dev

MCP server

Give your coding agent the catalog, so it can check which parameters a model accepts before it calls one — instead of guessing from training data and eating a 400, or worse, having a parameter silently ignored. Hosted over Streamable HTTP, nothing to install.

Connect a client

Endpoint: https://modelparams.dev/mcp. Pick a client to see its install command.

claude mcp add --transport http modelparams https://modelparams.dev/mcp

Tools

Four read-only tools, all answering from the catalog this site is serving.

validate_model_params

Check a set of request parameters against what a model actually accepts, before you call it. Catches unknown parameters, out-of-range values, and combinations the provider rejects — such as top_p alongside a non-default temperature on Anthropic models. Returns a corrected `safeParams` payload that is guaranteed to validate.

Input
{
  "type": "object",
  "properties": {
    "model": {
      "type": "string",
      "description": "Catalog id, bare slug, or wire string with baseUrl."
    },
    "baseUrl": {
      "type": "string",
      "description": "The base URL your SDK uses."
    },
    "params": {
      "type": "object",
      "additionalProperties": true,
      "description": "Provider-native parameter paths to values."
    }
  },
  "required": [
    "model"
  ],
  "additionalProperties": false
}
Example output
{
  "model": "anthropic/claude-3-opus-20240229",
  "valid": false,
  "summary": "1 parameter(s) would be rejected or silently ignored by anthropic/claude-3-opus-20240229.",
  "issues": [
    {
      "path": "top_p",
      "code": "not_applicable",
      "message": "top_p does not apply when temperature ≠ 1",
      "conflictsWith": [
        "temperature"
      ]
    }
  ],
  "safeParams": {
    "temperature": 0.5
  }
}

get_model_params

Every parameter one model accepts — type, allowed range or enum values, default, and the conditional rules that gate it. Also returns lifecycle status and migration guidance when tracked.

Input
{
  "type": "object",
  "properties": {
    "model": {
      "type": "string",
      "description": "Catalog id, bare slug, or wire string with baseUrl."
    },
    "baseUrl": {
      "type": "string",
      "description": "The base URL your SDK uses."
    }
  },
  "required": [
    "model"
  ],
  "additionalProperties": false
}
Example output
{
  "model": "anthropic/claude-opus-4-8",
  "provider": "anthropic",
  "authType": "api_key",
  "status": "active",
  "parameterCount": 6,
  "params": [
    {
      "path": "temperature",
      "type": "number",
      "default": 1,
      "range": {
        "min": 0,
        "max": 1
      },
      "group": "sampling"
    }
  ],
  "defaults": {
    "temperature": 1
  },
  "docs": "https://modelparams.dev/models/anthropic/claude-opus-4-8"
}

list_models

Model ids in the catalog, optionally filtered by provider or a substring. Use it to resolve the exact id the other tools expect.

Input
{
  "type": "object",
  "properties": {
    "provider": {
      "type": "string",
      "description": "Restrict to one provider slug, e.g. \"anthropic\"."
    },
    "query": {
      "type": "string",
      "description": "Case-insensitive substring match on the model id."
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "description": "Default 100."
    }
  },
  "additionalProperties": false
}
Example output
{
  "total": 382,
  "returned": 3,
  "truncated": false,
  "providers": [
    "alibaba",
    "anthropic",
    "bedrock"
  ],
  "models": [
    "anthropic/claude-opus-4-8",
    "anthropic/claude-sonnet-4-6",
    "anthropic/claude-haiku-4-5"
  ]
}

list_provider_models

Everything one provider serves in one call: its models, the wire id each one needs, their lifecycle status, and the parameter surfaces they expose. Models that share a surface share a profile, so a provider with dozens of models stays small enough to read. Use it to pick a model and configure it in one step — especially on Bedrock and Vertex, where parameter paths differ from the model's native API.

Input
{
  "type": "object",
  "properties": {
    "provider": {
      "type": "string",
      "description": "Provider slug, e.g. \"bedrock\", \"vertex\", \"anthropic\"."
    },
    "query": {
      "type": "string",
      "description": "Case-insensitive substring match on the model id."
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "description": "Default 200."
    }
  },
  "required": [
    "provider"
  ],
  "additionalProperties": false
}
Example output
{
  "provider": "bedrock",
  "baseUrls": [
    "https://bedrock-runtime.*.amazonaws.com"
  ],
  "total": 56,
  "returned": 56,
  "truncated": false,
  "paramProfiles": [
    {
      "id": "p1",
      "modelCount": 41,
      "parameterCount": 4,
      "params": [
        {
          "path": "inferenceConfig.maxTokens",
          "type": "integer",
          "range": {
            "min": 1
          }
        }
      ],
      "defaults": {}
    }
  ],
  "models": [
    {
      "model": "bedrock/claude-opus-4-6",
      "authType": "api_key",
      "wireId": "{scope}.anthropic.claude-opus-4-6-v1",
      "profile": "p2"
    }
  ],
  "wireIdNote": "A wireId containing {scope} needs one substitution before you send it…"
}

For agents

Prefer a plain file? The whole catalog, including this MCP server, is described in /llms.txt and /llms-full.txt.

How to use

Building with an AI agent? Hit Copy to grab this whole guide as Markdown and paste it in — or point your agent straight at /llms.txt.

modelparams.dev is an open, community-maintained catalog of model parameters. Each entry shows the knobs you can turn — type, default, range, and the conditions that gate it.

The same model accessed via an API key and via a subscription usually exposes a different set of parameters. We list both as separate entries so the data stays honest.

Catalog API

The full catalog is static JSON, CORS-enabled, served from the edge.

curl https://modelparams.dev/api/v1/models.json

Each entry is keyed by provider/model for API-key variants; subscription variants append -subscription.

If you only need the params for one model contract, use the providerless endpoint. Subscription contracts are model slugs with -subscription.

curl https://modelparams.dev/api/v1/models/openai/gpt-5.5.json
curl https://modelparams.dev/api/v1/models/openai/gpt-5.5-subscription.json

Single model

curl https://modelparams.dev/api/v1/models/anthropic/claude-opus-4-7.json
curl https://modelparams.dev/api/v1/models/anthropic/claude-opus-4-7-subscription.json

JSON Schema

Every entry validates against a JSON Schema you can use in your editor or pipeline.

curl https://modelparams.dev/api/v1/schema.json

Add this header to any YAML you author for autocomplete in VS Code:

# yaml-language-server: $schema=https://modelparams.dev/api/v1/schema.json

Logos

Provider logos are available at /assets/logos/{provider}.svg where {provider} is the provider slug. They use currentColor so they inherit your text color.

curl https://modelparams.dev/assets/logos/anthropic.svg

Logos are sourced from the models.dev repo (MIT) and used under nominative fair use.

Contribute

The data lives in YAML under models/{provider}/{model}-{auth}.yaml in the GitHub repo. Open a PR; CI validates against the schema and rebuilds.

Edit on GitHub MIT licensed