diff options
| author | main <main@swarm.moe> | 2026-03-19 17:15:25 -0400 |
|---|---|---|
| committer | main <main@swarm.moe> | 2026-03-19 17:15:25 -0400 |
| commit | 84e898d9ba699451d5d13fe384e7bbe220564bc1 (patch) | |
| tree | bcb6140c8dbbf34a67f7c007440c4fc5a3d351ce /docs | |
| parent | 478b0bc47fade5864f4f397de7ea519beddab749 (diff) | |
| download | libmcp-84e898d9ba699451d5d13fe384e7bbe220564bc1.zip | |
Add orthogonal detail controls to libmcp
Diffstat (limited to 'docs')
| -rw-r--r-- | docs/spec.md | 17 |
1 files changed, 15 insertions, 2 deletions
diff --git a/docs/spec.md b/docs/spec.md index f8a72d4..80e464b 100644 --- a/docs/spec.md +++ b/docs/spec.md @@ -163,6 +163,11 @@ Nontrivial tools should default to `render=porcelain`. Structured `render=json` must remain available, but it is opt-in unless a tool is intrinsically structured and tiny. +`render` and detail are orthogonal concerns. + +- `render=porcelain|json` selects text versus structured output. +- `detail=concise|full` selects summary versus expanded output. + Porcelain output should be: - line-oriented @@ -174,6 +179,7 @@ Porcelain output should be: The library should therefore provide reusable primitives for: - render mode selection +- detail selection - bounded/truncated text shaping - stable note emission - path rendering @@ -181,10 +187,17 @@ The library should therefore provide reusable primitives for: - generic JSON-to-porcelain projection for consumers that have not yet earned bespoke renderers -`libmcp` does not require a universal detail taxonomy like -`summary|compact|full`. Consumers may add extra detail controls when their tool +`libmcp` standardizes only the minimal shared detail axis +`concise|full`. Consumers may add richer local taxonomies when their tool surface actually needs them. +When a tool supports both detail levels: + +- `porcelain + concise` should be the hot-path default +- `json + concise` should return a structured summary rather than the full + backing object +- `json + full` should remain the authoritative structured payload + ### Normalization The library should reduce trivial model-facing friction where the semantics are |