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

51 lines
2.3 KiB
Markdown

# 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. |