Files
tai/research/cap-protocol/modelcontextprotocol-sampling-model-preferences.md
T

2.3 KiB

MCP specification 2025-06-18: Sampling (model preferences)

Metadata

Field Value
Institute Molodetz Institute — Research & Retrieval Division
Subject cap-protocol
Document type Source Dossier
Tier 1
Source title MCP specification 2025-06-18: Sampling (model preferences)
Source URL https://modelcontextprotocol.io/specification/2025-06-18/client/sampling
Source publisher / author Model Context Protocol project
Source type standard
Source date (published) 2025-06-18
Date researched 2026-10-25
Researched by tai (agent), model: Claude Sonnet 5, on behalf of retoor
Research method direct page fetch
Confidence High
Status Active

Summary

The MCP feature by which a server asks the client's model for a completion, notable here for its model-selection abstraction.

Key findings

  • A server cannot simply request a model by name because the client may not have that model or may prefer another provider's equivalent.
  • Preferences combine three normalized priorities, costPriority, speedPriority, intelligencePriority (0 to 1), with optional hints.
  • Hints are substrings that match model names flexibly, are evaluated in order, MAY map to equivalent models from other providers, and are advisory: 'clients make final model selection'.
  • Example: hints claude-3-sonnet then claude, with cost 0.3, speed 0.8, intelligence 0.5.
  • Humans in the loop: there SHOULD always be a way to deny sampling requests; clients SHOULD show requests and responses for review, rate-limit, and respect hints.

Pros / strengths

A finished, widely implemented answer to 'how does a caller name a model without knowing the callee's catalog': substring hints plus capability priorities, resolved by the owner of the models.

Cons / limitations / caveats

Priorities are unitless hints; the spec does not say how a client turns them into a choice.

Relevance to tai

Matches the shape of tai's fuzzy @model resolution (substring-style hints resolved by the side that knows the catalog). A tool input of hints plus optional priorities is a precedent for ask_agent(model_hint=...). Human-in-the-loop rules inform the approval default.

Changelog

Date Change
2026-10-25 Initial dossier created.