- wire spec: lifecycle, stdio + Streamable HTTP transports, tools, utilities, legacy SSE, versioning, changelog (14 Tier 1) - client ecosystem: Claude Code/VS Code/Cursor/Codex configs, mcp-remote, Smithery, registries, Glama (12 Tier 1) - security/ops: authorization draft, trust model, poisoning, rug pulls, production hardening (12 Tier 1) + 68 Tier 2 cards - conclusions: minimal stdlib client on 2025-11-25, normalizer + resolver agent for pasted configs/GitHub URLs, untrusted-until- consent trust model; nothing built yet - audit PASS (14 subjects, 797 sources, 32 conclusions)
2.9 KiB
2.9 KiB
Logging (server utility, 2025-11-25)
Metadata
| Field | Value |
|---|---|
| Institute | Molodetz Institute - Research & Retrieval Division |
| Subject | mcp-client-support |
| Document type | Source Dossier |
| Tier | 1 |
| Source title | Logging utility (MCP Specification v2025-11-25) |
| Source URL | https://modelcontextprotocol.io/specification/2025-11-25/server/utilities/logging |
| Source publisher / author | Model Context Protocol authors (Anthropic-donated open project; site docs) |
| Source type | standard |
| Source date (published) | 2025-11-25 (version stamp; no other publish date stated) |
| Date researched | 2026-10-18 |
| Researched by | tai (agent), model: Claude Sonnet 5, on behalf of retoor |
| Research method | gather-subagent direct page fetch, parent synthesis from evidence pack |
| Confidence | High |
| Status | Active |
Summary
Servers that emit log notifications must declare the logging capability. Levels follow syslog/RFC 5424 (debug through emergency). Clients may send logging/setLevel and receive server-to-client notifications/message with level, optional logger name, and JSON data. All client handling (display, filtering, search) is MAY-level, so a minimal client may set the level, display messages, or ignore them entirely.
Key findings
- "Servers that emit log message notifications MUST declare the
loggingcapability." - Levels follow syslog/RFC 5424: debug, info, notice, warning, error, critical, alert, emergency.
- Clients "MAY send a
logging/setLevelrequest" ({"level":"info"}). - Server-to-client
notifications/messagecarrieslevel, optionallogger, and JSONdata. - "Clients MAY: Present log messages in the UI; Implement log filtering/search…" (all MAY).
Pros / strengths
- Syslog/RFC 5424 levels are a well-understood 8-level scale, so no new severity taxonomy to learn.
- Entirely optional on the client: set level, display, filter, or ignore are all compliant, which is ideal for a minimal implementation.
- Structured
dataplus optionalloggername gives enough shape for filtering without mandating any client behavior.
Cons / limitations / caveats
- No explicit author names or publish dates appear on the page; the date above is the version stamp in the URL, per the pack's Uncertainty notes.
- Minimal debugging value for a stdio client that already sees server stderr; the feature matters more for HTTP sessions where stderr is unavailable.
- Deprecated in the 2026-07-28 revision (
logging/setLevelremoved; log level becomes per-request_meta), so any client investment here is handshake-era-only.
Relevance to tai
Entirely optional on the client: tai may send logging/setLevel, may display or ignore notifications/message. For a minimal stdlib client this is safely deferred or reduced to ignoring the notifications.
Changelog
| Date | Change |
|---|---|
| 2026-10-18 | Initial dossier created. |