This is an automated email from the ASF dual-hosted git repository.

jamesbognar pushed a commit to branch docs
in repository https://gitbox.apache.org/repos/asf/juneau.git


The following commit(s) were added to refs/heads/docs by this push:
     new 167f09f075 MCP docs: surface shared-core/per-revision adapter shape + 
dependency-hygiene rationale
167f09f075 is described below

commit 167f09f0759f2fcedf6ec38163f09f53accc040a
Author: James Bognar <[email protected]>
AuthorDate: Wed Aug 12 10:10:05 2026 -0400

    MCP docs: surface shared-core/per-revision adapter shape + 
dependency-hygiene rationale
---
 pages/topics/05.07.JuneauBeanMcp.md          |  2 +-
 pages/topics/11.00.JuneauMcp.md              |  2 +-
 pages/topics/11.02.JuneauMcpChoosingSetup.md | 24 ++++++++++++++++++++++++
 pages/topics/11.04.JuneauRestServerMcp.md    |  2 +-
 pages/topics/11.05.JuneauRestClientMcp.md    |  2 +-
 src/pages/about.md                           | 20 ++++++++++----------
 6 files changed, 38 insertions(+), 14 deletions(-)

diff --git a/pages/topics/05.07.JuneauBeanMcp.md 
b/pages/topics/05.07.JuneauBeanMcp.md
index eb1cddd219..cc5e6f9802 100644
--- a/pages/topics/05.07.JuneauBeanMcp.md
+++ b/pages/topics/05.07.JuneauBeanMcp.md
@@ -4,7 +4,7 @@ slug: JuneauBeanMcp
 ---
 
 
-The `juneau-bean-mcp-v20250618` module provides Java beans modelling the 
[Model Context Protocol (MCP)](https://modelcontextprotocol.io/) `2025-06-18` 
wire format. It's paired with a separate, revision-neutral module, 
`juneau-bean-jsonrpc`, which carries the underlying JSON-RPC 2.0 envelope.
+The `juneau-bean-mcp-v20250618` module provides Java beans modelling the 
[Model Context Protocol (MCP)](https://modelcontextprotocol.io/) `2025-06-18` 
wire format. It's paired with a separate, revision-neutral module, 
`juneau-bean-jsonrpc`, which carries the underlying JSON-RPC 2.0 envelope, and 
with a `2026-07-28` sibling, `juneau-bean-mcp-v20260728`. See [Choosing your 
MCP 
setup](/docs/topics/JuneauMcpChoosingSetup#module-shape-3-shared-cores-6-per-revision-adapters)
 for why the two re [...]
 
 ## Overview
 
diff --git a/pages/topics/11.00.JuneauMcp.md b/pages/topics/11.00.JuneauMcp.md
index 711cefb34f..3d00ba5fa5 100644
--- a/pages/topics/11.00.JuneauMcp.md
+++ b/pages/topics/11.00.JuneauMcp.md
@@ -6,7 +6,7 @@ slug: JuneauMcp
 
 Juneau provides both server-side and client-side support for the [Model 
Context Protocol (MCP)](https://modelcontextprotocol.io/), a JSON-RPC 2.0 
protocol that lets AI assistants and agents discover and invoke external 
**tools**, **prompts**, and **resources**.
 
-Two protocol revisions are supported side-by-side as separate, revision-bound 
Maven modules: `2025-06-18` and `2026-07-28` (the current revision). A 
client/server pair picks one revision at compile time — see [Choosing your MCP 
setup](/docs/topics/JuneauMcpChoosingSetup) for the full comparison.
+Two protocol revisions are supported side-by-side as separate, revision-bound 
Maven modules: `2025-06-18` and `2026-07-28` (the current revision). A 
client/server pair picks one revision at compile time — see [Choosing your MCP 
setup](/docs/topics/JuneauMcpChoosingSetup) for the full comparison, why the 
MCP ecosystem is 9 artifacts (3 shared cores + 6 per-revision adapters) rather 
than 6 independent ones, and why the two revisions are maintained differently 
going forward.
 
 ## Where to start
 
diff --git a/pages/topics/11.02.JuneauMcpChoosingSetup.md 
b/pages/topics/11.02.JuneauMcpChoosingSetup.md
index 41ea7989ec..50b4d24ec7 100644
--- a/pages/topics/11.02.JuneauMcpChoosingSetup.md
+++ b/pages/topics/11.02.JuneauMcpChoosingSetup.md
@@ -5,6 +5,30 @@ slug: JuneauMcpChoosingSetup
 
 Three independent decisions determine which classes you extend/implement and 
which Maven artifacts you depend on. They can be mixed freely — e.g. 
`2026-07-28` + mixin + Spring Boot is a perfectly normal combination.
 
+## Module shape: 3 shared cores, 6 per-revision adapters
+
+The MCP ecosystem is **9 Maven artifacts, not 6 independent ones**. Three of 
them are revision-neutral **cores** — each has zero compile-time knowledge of 
`2025-06-18` vs `2026-07-28` — and each core carries two thin **adapter** 
modules on top, one per protocol revision:
+
+```
+juneau-bean-jsonrpc                 JSON-RPC 2.0 envelope (revision-neutral)
+├── juneau-bean-mcp-v20250618           2025-06-18 wire beans
+└── juneau-bean-mcp-v20260728           2026-07-28 wire beans
+
+juneau-rest-server-mcp              server dispatch core (revision-neutral)
+├── juneau-rest-server-mcp-v20250618
+└── juneau-rest-server-mcp-v20260728
+
+juneau-rest-client-mcp              client core (revision-neutral)
+├── juneau-rest-client-mcp-v20250618
+└── juneau-rest-client-mcp-v20260728
+```
+
+The three decisions below only concern which **adapter** coordinate you pick 
per side — the neutral cores come along transitively; you don't depend on or 
configure them directly.
+
+**Why a separate artifact per revision, instead of one artifact with a runtime 
revision switch:** Maven/Gradle dependency resolution happens at build time, so 
keeping a `2025-06-18`-only consumer off `2026-07-28`-only dependencies has to 
be a compile-time artifact choice, not a runtime flag. The `2026-07-28` server 
adapter alone pulls in `juneau-rest-server-reactive` (reactive-streams SSE, for 
subscriptions), `juneau-rest-server-auth-oauth` (OAuth 2.1), and 
`juneau-rest-server-auth-jwt`  [...]
+
+**Why the two adapters keep diverging in size rather than converging:** 
`2025-06-18` is maintained for bug fixes and spec-correctness only, 
indefinitely. All new MCP capability work — Multi-Round-Trip Requests, 
subscriptions, sampling, elicitation, OAuth 2.1 hardening, cache hints, 
structured tool output, resource templates, `_meta`/trace-context propagation — 
lands only in `2026-07-28`. The capability table below reflects that split as 
of today; expect the gap to widen, not close.
+
 ## 1. Which protocol revision: `2025-06-18` vs `2026-07-28`
 
 A client/server pair is revision-bound at compile time — pick one adapter 
module per side. There is no automatic runtime revision switching.
diff --git a/pages/topics/11.04.JuneauRestServerMcp.md 
b/pages/topics/11.04.JuneauRestServerMcp.md
index 33a6298df8..e58c9ccc12 100644
--- a/pages/topics/11.04.JuneauRestServerMcp.md
+++ b/pages/topics/11.04.JuneauRestServerMcp.md
@@ -10,7 +10,7 @@ New to MCP in Juneau? Start with the [MCP 
Quickstart](/docs/topics/JuneauMcpQuic
 
[`juneau-examples-mcp`](https://github.com/apache/juneau/tree/master/juneau-examples/juneau-examples-mcp)
 is a complete, copy-me Maven module exercising every major surface on this 
page — tools, elicitation/MRTR, prompts + completion, resources + resource 
templates, and subscriptions — against a tiny in-memory "notes" service, 
targeting revision `2026-07-28`. It ships as a downloadable project zip in the 
Apache release. See [MCP 
Recipes](/docs/topics/JuneauMcpRecipes#full-example-juneau- [...]
 :::
 
-`juneau-rest-server-mcp` is a **revision-neutral core** for exposing a [Model 
Context Protocol (MCP)](https://modelcontextprotocol.io/) JSON-RPC endpoint on 
`juneau-rest-server`. On its own it has zero compile-time knowledge of any MCP 
protocol revision; a protocol revision is supplied by a separate adapter 
module. Today that's **`juneau-rest-server-mcp-v20250618`**, which binds the 
core to the `2025-06-18` wire beans in 
[`juneau-bean-mcp-v20250618`](/docs/topics/JuneauBeanMcp). This pag [...]
+`juneau-rest-server-mcp` is a **revision-neutral core** for exposing a [Model 
Context Protocol (MCP)](https://modelcontextprotocol.io/) JSON-RPC endpoint on 
`juneau-rest-server`. On its own it has zero compile-time knowledge of any MCP 
protocol revision; a protocol revision is supplied by a separate adapter module 
— `juneau-rest-server-mcp-v20250618` or `juneau-rest-server-mcp-v20260728`. 
This page covers all three modules. See [Choosing your MCP 
setup](/docs/topics/JuneauMcpChoosingSetu [...]
 
 ## Overview
 
diff --git a/pages/topics/11.05.JuneauRestClientMcp.md 
b/pages/topics/11.05.JuneauRestClientMcp.md
index f82476ee29..cc24aad9c9 100644
--- a/pages/topics/11.05.JuneauRestClientMcp.md
+++ b/pages/topics/11.05.JuneauRestClientMcp.md
@@ -10,7 +10,7 @@ New to MCP in Juneau? Start with the [MCP 
Quickstart](/docs/topics/JuneauMcpQuic
 
[`juneau-examples-mcp`](https://github.com/apache/juneau/tree/master/juneau-examples/juneau-examples-mcp)
 is a complete, copy-me Maven module pairing a `2026-07-28` MCP server with a 
guided `McpClient` walkthrough (`ExampleClient`) that exercises every client 
call covered by this reference — discovery, tool calls, resource/template 
reads, completions, prompts, subscriptions, and an elicitation round-trip. It 
ships as a downloadable project zip in the Apache release. See [MCP 
Recipes](/do [...]
 :::
 
-`juneau-rest-client-mcp` is the revision-neutral MCP client core built on 
`juneau-rest-client`, with two dated adapters: 
`juneau-rest-client-mcp-v20250618` and `juneau-rest-client-mcp-v20260728`.
+`juneau-rest-client-mcp` is the revision-neutral MCP client core built on 
`juneau-rest-client`, with two dated adapters: 
`juneau-rest-client-mcp-v20250618` and `juneau-rest-client-mcp-v20260728`. See 
[Choosing your MCP 
setup](/docs/topics/JuneauMcpChoosingSetup#module-shape-3-shared-cores-6-per-revision-adapters)
 for why the two adapters are separate artifacts and why `v20260728` keeps 
growing larger than `v20250618` rather than the two converging.
 
 ## Overview
 
diff --git a/src/pages/about.md b/src/pages/about.md
index 92b4c85b2e..80efa58082 100644
--- a/src/pages/about.md
+++ b/src/pages/about.md
@@ -26,7 +26,7 @@ Not sure if Juneau is right for your project? Check out our 
detailed [Why Choose
 
 ## Ecosystem
 
-The Juneau ecosystem consists of the following parts:
+The Juneau ecosystem consists of the following parts. A few rows are **grouped 
families** rather than fully independent modules — a shared, revision- or 
spec-neutral core plus multiple thin sibling modules built on it (the 
JSON-RPC/MCP core-plus-adapter rows below are one example, alongside the 
pre-existing OpenAPI/Swagger spec-version pair); each row's description says 
how it relates to its siblings, and [Choosing your MCP 
setup](/docs/topics/JuneauMcpChoosingSetup#module-shape-3-shared [...]
 
 | Component | Description |
 |-----------|-------------|
@@ -43,10 +43,10 @@ The Juneau ecosystem consists of the following parts:
 | [juneau-bean-html5](/docs/topics/JuneauBeanHtml5) | DTOs for HTML5 elements. 
|
 | [juneau-bean-jsonapi](/docs/topics/JuneauBeanJsonApi) | DTOs for the 
JSON:API specification. |
 | [juneau-bean-jsonpatch](/docs/topics/JuneauBeanJsonPatch) | DTOs for JSON 
Patch (RFC 6902). |
-| [juneau-bean-jsonrpc](/docs/topics/JuneauBeanJsonRpc) | Revision-neutral 
JSON-RPC 2.0 envelope DTOs 
(`JsonRpcRequest`/`JsonRpcResponse`/`JsonRpcError`/`McpException`) shared by 
the MCP bean/client/server modules. |
+| [juneau-bean-jsonrpc](/docs/topics/JuneauBeanJsonRpc) | Revision-neutral 
JSON-RPC 2.0 envelope DTOs 
(`JsonRpcRequest`/`JsonRpcResponse`/`JsonRpcError`/`McpException`) — the core 
the two `juneau-bean-mcp-v2*` adapter rows below are built on. |
 | [juneau-bean-jsonschema](/docs/topics/JuneauBeanJsonSchema) | DTOs for JSON 
Schema. |
-| [juneau-bean-mcp-v20250618](/docs/topics/JuneauBeanMcp) | DTOs for the MCP 
`2025-06-18` wire format — tool/prompt/resource descriptors, capability beans, 
and polymorphic content types. |
-| 
[juneau-bean-mcp-v20260728](/docs/topics/JuneauBeanMcp#mcp-2026-07-28-cache-hints-resource-templates)
 | DTOs for the MCP `2026-07-28` wire format — adds cache hints and resource 
templates on top of the 2025-06-18 baseline. |
+| [juneau-bean-mcp-v20250618](/docs/topics/JuneauBeanMcp) | Adapter on 
`juneau-bean-jsonrpc` above: DTOs for the MCP `2025-06-18` wire format — 
tool/prompt/resource descriptors, capability beans, and polymorphic content 
types. |
+| 
[juneau-bean-mcp-v20260728](/docs/topics/JuneauBeanMcp#mcp-2026-07-28-cache-hints-resource-templates)
 | Adapter on `juneau-bean-jsonrpc` above: DTOs for the MCP `2026-07-28` wire 
format — adds cache hints and resource templates on top of the 2025-06-18 
baseline. |
 | [juneau-bean-openapi-v3](/docs/topics/JuneauBeanOpenApi3) | DTOs for the 
OpenAPI v3 specification. |
 | [juneau-bean-rfc7807](/docs/topics/JuneauBeanRfc7807) | DTOs for RFC 7807 
Problem Details. |
 | [juneau-bean-swagger-v2](/docs/topics/JuneauBeanSwagger2) | DTOs for the 
Swagger/OpenAPI v2 specification. |
@@ -55,9 +55,9 @@ The Juneau ecosystem consists of the following parts:
 | [juneau-rest-common-classic](/docs/topics/JuneauRestCommon) | Apache 
HttpClient 4.5–compatible HTTP type facades 
(`org.apache.juneau.http.classic.*`) for the classic REST client/server stack. |
 | [juneau-rest-server](/docs/topics/JuneauRestServer) | Annotation-driven REST 
server with automatic OpenAPI/Swagger docs and content negotiation. |
 | [juneau-rest-server-springboot](/docs/topics/JuneauRestServerSpringboot) | 
Spring Boot auto-configuration for juneau-rest-server. |
-| [juneau-rest-server-mcp](/docs/topics/JuneauRestServerMcp) | Model Context 
Protocol (MCP) server endpoint support. |
-| 
[juneau-rest-server-mcp-v20250618](/docs/topics/JuneauRestServerMcp#getting-started)
 | MCP `2025-06-18` protocol adapter for juneau-rest-server-mcp. |
-| 
[juneau-rest-server-mcp-v20260728](/docs/topics/JuneauRestServerMcp#configuring-the-endpoint-mcpoptions-mcp-2026-07-28)
 | MCP `2026-07-28` protocol adapter — adds OAuth 2.1 resource-server support, 
cache hints, and multi-round-trip requests. |
+| [juneau-rest-server-mcp](/docs/topics/JuneauRestServerMcp) | 
Revision-neutral Model Context Protocol (MCP) server dispatch core — the two 
rows below are its per-revision adapters. |
+| 
[juneau-rest-server-mcp-v20250618](/docs/topics/JuneauRestServerMcp#getting-started)
 | MCP `2025-06-18` protocol adapter for juneau-rest-server-mcp above. |
+| 
[juneau-rest-server-mcp-v20260728](/docs/topics/JuneauRestServerMcp#configuring-the-endpoint-mcpoptions-mcp-2026-07-28)
 | MCP `2026-07-28` protocol adapter for juneau-rest-server-mcp above — adds 
OAuth 2.1 resource-server support, cache hints, and multi-round-trip requests. |
 | [juneau-rest-server-auth-jwt](/docs/topics/AuthFilterFramework) | JWT 
authentication filter. |
 | [juneau-rest-server-auth-saml](/docs/topics/SamlAuthSupport) | SAML 2.0 
authentication filter. |
 | [juneau-rest-server-auth-oauth](/docs/topics/OAuthAuthSupport) | OAuth 2.0 / 
OIDC authentication and token introspection filter. |
@@ -79,9 +79,9 @@ The Juneau ecosystem consists of the following parts:
 | 
[juneau-rest-client-apache-httpclient-50](/docs/topics/RestClientApacheHttpClient50)
 | Adapter for Apache HttpClient 5.x. |
 | [juneau-rest-client-okhttp](/docs/topics/RestClientOkHttp) | Adapter for 
OkHttp. |
 | [juneau-rest-client-jetty](/docs/topics/RestClientJetty) | Adapter for Jetty 
HTTP client. |
-| [juneau-rest-client-mcp](/docs/topics/JuneauRestClientMcp) | Model Context 
Protocol (MCP) client support. |
-| 
[juneau-rest-client-mcp-v20250618](/docs/topics/JuneauRestClientMcp#revision-binding)
 | MCP `2025-06-18` protocol adapter for juneau-rest-client-mcp. |
-| 
[juneau-rest-client-mcp-v20260728](/docs/topics/JuneauRestClientMcp#elicitation-mcp-2026-07-28-sep-2322)
 | MCP `2026-07-28` protocol adapter — adds elicitation, OAuth 2.1 auth 
support, and response caching. |
+| [juneau-rest-client-mcp](/docs/topics/JuneauRestClientMcp) | 
Revision-neutral Model Context Protocol (MCP) client core — the two rows below 
are its per-revision adapters. |
+| 
[juneau-rest-client-mcp-v20250618](/docs/topics/JuneauRestClientMcp#revision-binding)
 | MCP `2025-06-18` protocol adapter for juneau-rest-client-mcp above. |
+| 
[juneau-rest-client-mcp-v20260728](/docs/topics/JuneauRestClientMcp#elicitation-mcp-2026-07-28-sep-2322)
 | MCP `2026-07-28` protocol adapter for juneau-rest-client-mcp above — adds 
elicitation, OAuth 2.1 auth support, and response caching. |
 | 
[juneau-rest-client-mcp-auth](/docs/topics/JuneauRestClientMcp#oauth-21-authorization-juneau-rest-client-mcp-auth)
 | OAuth 2.1 client-side authorization support for juneau-rest-client-mcp (DCR, 
PKCE, protected-resource metadata discovery). |
 | [juneau-rest-mock](/docs/topics/JuneauRestMock) | Serverless REST mock 
client for unit testing without a servlet container. |
 | **juneau-microservice** | |

Reply via email to