Skip to content

Commit 97d06f3

Browse files
authored
Merge branch 'main' into fix/1081-empty-handler-response
2 parents b75cdfa + 4186ca1 commit 97d06f3

78 files changed

Lines changed: 5609 additions & 848 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

‎.github/workflows/ci.yml‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ name: CI
22

33
on:
44
pull_request: {}
5+
workflow_dispatch: {}
56

67
jobs:
78
build:

‎.github/workflows/conformance.yml‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ jobs:
2727
timeout 30 bash -c 'until curl -s http://localhost:8080/mcp > /dev/null 2>&1; do sleep 0.5; done'
2828
2929
- name: Run conformance tests
30-
uses: modelcontextprotocol/conformance@v0.1.11
30+
uses: modelcontextprotocol/conformance@v0.1.16
3131
with:
3232
mode: server
3333
url: http://localhost:8080/mcp
@@ -54,7 +54,7 @@ jobs:
5454
run: mvn clean install -DskipTests
5555

5656
- name: Run conformance test
57-
uses: modelcontextprotocol/conformance@v0.1.11
57+
uses: modelcontextprotocol/conformance@v0.1.16
5858
with:
5959
mode: client
6060
command: 'java -jar conformance-tests/client-jdk-http-client/target/client-jdk-http-client-*-SNAPSHOT.jar'

‎.gitignore‎

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,4 +65,5 @@ site/
6565
.profiler/
6666
s3.properties
6767
.*.swp
68-
.DS_Store
68+
.DS_Store
69+
.envrc

‎CHANGELOG.md‎

Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,73 @@
1+
# Changelog
2+
3+
All notable changes to the MCP Java SDK are documented in the
4+
[GitHub Releases](https://github.com/modelcontextprotocol/java-sdk/releases),
5+
which serve as the canonical, detailed changelog for every version. This file
6+
summarizes the release history and the currently maintained release lines.
7+
8+
Versioning follows [Semantic Versioning](https://semver.org/); see
9+
[VERSIONING.md](VERSIONING.md) for the breaking-change policy and
10+
[SECURITY.md](SECURITY.md) for the supported-versions security policy.
11+
12+
## Release lines
13+
14+
| Line | Latest | Spec revision | Status |
15+
|--------|--------|---------------|--------|
16+
| 2.0.x | [2.0.1](https://github.com/modelcontextprotocol/java-sdk/releases/tag/v2.0.1) (2026-08-19) | 2025-11-25 | Active development |
17+
| 1.1.x | [1.1.4](https://github.com/modelcontextprotocol/java-sdk/releases/tag/v1.1.4) (2026-08-19) | 2025-06-18 | Security patches only |
18+
| 0.18.x | [0.18.4](https://github.com/modelcontextprotocol/java-sdk/releases/tag/v0.18.4) (2026-08-19) | 2025-06-18 | Security patches only |
19+
20+
## 2.0.1 — 2026-08-19
21+
22+
- Bound STDIO and HTTP client/server reads to a configurable maximum size
23+
24+
Full notes: [v2.0.1 release](https://github.com/modelcontextprotocol/java-sdk/releases/tag/v2.0.1)
25+
26+
## 2.0.0 — 2026-06-11
27+
28+
First major release since 1.x, tracking the **2025-11-25** MCP specification.
29+
Upgrading from 1.x? See the [v2 migration guide](MIGRATION-2.0.md).
30+
31+
- New JSON compatibility foundation for forward/backward wire compatibility,
32+
with pluggable Jackson 2 / Jackson 3 serialization modules
33+
- Spec-accurate schema: enforced required fields, lenient wire deserialization
34+
- End-to-end validation of tool inputs and embedded JSON Schema documents
35+
(JSON Schema 2020-12, SEP-1613)
36+
- Richer elicitation: client-side schema defaults (SEP-1034), URL elicitation
37+
(SEP-1036), form-based elicitation schemas
38+
- Icons and metadata support (SEP-973)
39+
- Streamable HTTP first: SSE transports deprecated in favor of Streamable HTTP
40+
- Module restructuring: `mcp-core`, `mcp-json-jackson2`, `mcp-json-jackson3`,
41+
`mcp-bom`
42+
43+
Full notes: [v2.0.0 release](https://github.com/modelcontextprotocol/java-sdk/releases/tag/v2.0.0)
44+
(preceded by milestones [M1](https://github.com/modelcontextprotocol/java-sdk/releases/tag/v2.0.0-M1),
45+
[M2](https://github.com/modelcontextprotocol/java-sdk/releases/tag/v2.0.0-M2),
46+
[M3](https://github.com/modelcontextprotocol/java-sdk/releases/tag/v2.0.0-M3),
47+
[RC1](https://github.com/modelcontextprotocol/java-sdk/releases/tag/v2.0.0-RC1)).
48+
49+
## 1.x
50+
51+
- [1.1.4](https://github.com/modelcontextprotocol/java-sdk/releases/tag/v1.1.4) — 2026-08-19:
52+
bound HTTP client/server reads (backport)
53+
- [1.1.3](https://github.com/modelcontextprotocol/java-sdk/releases/tag/v1.1.3) /
54+
[1.0.2](https://github.com/modelcontextprotocol/java-sdk/releases/tag/v1.0.2) — 2026-05-21:
55+
SSE client transport message-endpoint validation (backports)
56+
- [1.1.2](https://github.com/modelcontextprotocol/java-sdk/releases/tag/v1.1.2) — 2026-04-25
57+
- [1.1.1](https://github.com/modelcontextprotocol/java-sdk/releases/tag/v1.1.1) /
58+
[1.0.1](https://github.com/modelcontextprotocol/java-sdk/releases/tag/v1.0.1) — 2026-03-27
59+
- [1.1.0](https://github.com/modelcontextprotocol/java-sdk/releases/tag/v1.1.0) — 2026-03-13
60+
- [1.0.0](https://github.com/modelcontextprotocol/java-sdk/releases/tag/v1.0.0) — 2026-02-23:
61+
first stable release; see the [1.0 migration guide](MIGRATION-1.0.md)
62+
63+
## 0.x
64+
65+
- [0.18.4](https://github.com/modelcontextprotocol/java-sdk/releases/tag/v0.18.4) — 2026-08-19:
66+
bound HTTP client/server reads (backport)
67+
- [0.18.3](https://github.com/modelcontextprotocol/java-sdk/releases/tag/v0.18.3) — 2026-06-09:
68+
security fix for GHSA-hv2w-8mjj-jw22
69+
- [0.18.0](https://github.com/modelcontextprotocol/java-sdk/releases/tag/v0.18.0) –
70+
[0.18.2](https://github.com/modelcontextprotocol/java-sdk/releases/tag/v0.18.2) — 2026-02 to 2026-05
71+
- [0.8.0](https://github.com/modelcontextprotocol/java-sdk/releases/tag/v0.8.0) –
72+
[0.17.2](https://github.com/modelcontextprotocol/java-sdk/releases/tag/v0.17.2) — 2025-03 to 2026-01:
73+
see the [full release list](https://github.com/modelcontextprotocol/java-sdk/releases)

‎CONTRIBUTING.md‎

Lines changed: 21 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,12 @@ propose an enhancement. Bug reports should have a reproducer in the form of a co
3535
sample or a repository attached that the maintainers or contributors can work with to
3636
address the problem.
3737

38+
## AI agents
39+
40+
**We accept contributions created with the help of AI coding agents, but they must be carefully reviewed by a human who remains accountable for the quality of the contribution.**
41+
These can be issues or pull requests. For issues, please ensure you describe your particular use-case, and not general considerations found by an AI agent.
42+
Contributions submitted by GitHub accounts controlled by autonomous AI bots are forbidden.
43+
3844
## Making Changes
3945

4046
1. Create a new branch:
@@ -63,15 +69,25 @@ git checkout -b feature/your-feature-name
6369

6470
## Submitting Changes
6571

72+
Please don't submit pull requests:
73+
74+
- With GitHub accounts managed by autonomous AI bots
75+
- For already assigned issues (as the assignee is or plans to work on it)
76+
77+
When submitting changes:
78+
6679
1. For non-trivial changes, please clarify with the maintainers in an issue whether
6780
you can contribute the change and the desired scope of the change.
6881
2. For trivial changes (for example a couple of lines or documentation changes) there
6982
is no need to open an issue first.
70-
3. Push your changes to your fork.
71-
4. Submit a pull request to the main repository.
72-
5. Follow the pull request template.
73-
6. Wait for review.
74-
7. For any follow-up work, please add new commits instead of force-pushing. This will
83+
3. Maintainers will triage issues and act on them. There is no such guarantee on pull requests.
84+
PRs opened without being discussed in an issue MAY be ignored, and maintainers reserve the right
85+
to close these PRs without justification.
86+
4. Push your changes to your fork.
87+
5. Submit a pull request to the main repository.
88+
6. Follow the pull request template.
89+
7. Wait for review.
90+
8. For any follow-up work, please add new commits instead of force-pushing. This will
7591
allow the reviewer to focus on incremental changes instead of having to restart the
7692
review process.
7793

‎ROADMAP.md‎

Lines changed: 17 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -6,40 +6,35 @@ The SDK tracks implementation of MCP spec components via GitHub Projects, with a
66

77
## Current Focus Areas
88

9-
### 2025-11-25 Spec Implementation
9+
### 2.x — Stable Line (2025-11-25 spec)
1010

11-
The Java SDK is actively implementing the [2025-11-25 MCP specification revision](https://github.com/orgs/modelcontextprotocol/projects/26/views/1).
11+
The current stable release line is **2.x** (latest: [2.0.1](https://github.com/modelcontextprotocol/java-sdk/releases/tag/v2.0.1), August 2026), implementing the [2025-11-25 MCP specification revision](https://modelcontextprotocol.io/specification/2025-11-25), including:
1212

13-
Key features in this revision include:
13+
- **Spec-accurate schema**: enforced required fields with lenient wire deserialization, and a JSON compatibility foundation for forward/backward wire compatibility
14+
- **Enhanced schemas**: JSON Schema 2020-12 validation of tool inputs and embedded schema documents (SEP-1613)
15+
- **Richer elicitation**: client-side schema defaults (SEP-1034), URL mode elicitation (SEP-1036), form-based elicitation schemas
16+
- **Icons metadata** (SEP-973): icons for tools, resources, resource templates, and prompts
17+
- **Streamable HTTP first**: SSE transports deprecated in favor of Streamable HTTP
18+
- **Pluggable JSON serialization**: Jackson 2 and Jackson 3 modules
1419

15-
- **Tasks**: Experimental support for tracking durable requests with polling and deferred result retrieval
16-
- **Tool calling in sampling**: Support for `tools` and `toolChoice` parameters
17-
- **URL mode elicitation**: Client-side URL elicitation requests
18-
- **Icons metadata**: Servers can expose icons for tools, resources, resource templates, and prompts
19-
- **Enhanced schemas**: JSON Schema 2020-12 as default, improved enum support, default values for elicitation
20-
- **Security improvements**: Updated security best practices, enhanced authorization flows, enabling OAuth integrations
20+
2.x development continues with patch and minor releases for bug fixes, conformance improvements, and non-breaking features. See [CHANGELOG.md](CHANGELOG.md) for the release history.
2121

22-
See the full [changelog](https://modelcontextprotocol.io/specification/2025-11-25/changelog) for details.
22+
The earlier **1.x and 0.x release lines receive security patches only** — no feature or bug-fix backports. Users on those lines are encouraged to upgrade via the [v2 migration guide](MIGRATION-2.0.md).
2323

24-
### Tier 1 SDK Support
24+
### 3.x — 2026-07-28 Spec Support
2525

26-
Once we catch up on the most recent MCP specification revision we aim to fully support all the upcoming specification features on the day of its release.
26+
The next major version, **3.x**, will implement the [2026-07-28 MCP specification revision](https://modelcontextprotocol.io/specification/2026-07-28), including `server/discover` and the SEP-2575 stateless lifecycle. The first 3.0.0 milestone releases are planned for **September 2026**, tracked via a dedicated spec revision project board.
2727

28-
### v1.x Development
28+
### SDK Tiering
2929

30-
The Java SDK is currently in active development as v1.x, following a recent stable 1.0.0 release. The SDK provides:
30+
The Java SDK is an official [Tier 2 SDK](https://modelcontextprotocol.io/community/sdk-tiers) committed to full protocol support: new spec revisions are implemented within the Tier 2 six-month window, with conformance continuously verified against the [MCP conformance suite](https://github.com/modelcontextprotocol/conformance) in CI. Once caught up on the most recent specification revision, we aim for Tier 1: fully supporting new specification features on the day of their release.
3131

32-
- MCP protocol implementation
33-
- Synchronous and asynchronous programming models
34-
- Multiple transport options (STDIO, HTTP/SSE, Servlet)
35-
- Pluggable JSON serialization (Jackson 2 and Jackson 3)
36-
37-
Development is tracked via [GitHub Issues](https://github.com/modelcontextprotocol/java-sdk/issues) and [GitHub Projects](https://github.com/orgs/modelcontextprotocol/projects).
38-
39-
### Future Versions
32+
### Future Directions
4033

4134
Major version updates will align with MCP specification changes and breaking API changes as needed. The SDK is designed to evolve with the Java ecosystem, including:
4235

4336
- Virtual Threads and Structured Concurrency support
4437
- Additional transport implementations
4538
- Performance optimizations
39+
40+
Development is tracked via [GitHub Issues](https://github.com/modelcontextprotocol/java-sdk/issues) and [GitHub Projects](https://github.com/orgs/modelcontextprotocol/projects).

‎VERSIONING.md‎

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,14 @@ The following are **not** considered breaking:
4141
3. **Migration guide**: Major version releases include a migration guide describing what changed and how to update.
4242
4. **PR labels**: Pull requests containing breaking changes are labeled with `breaking change`.
4343

44+
## Release lines
45+
46+
| Line | Latest | Spec revision | Status |
47+
|--------|--------|---------------|--------|
48+
| 2.0.x | [2.0.1](https://github.com/modelcontextprotocol/java-sdk/releases/tag/v2.0.1) (2026-08-19) | 2025-11-25 | Active development |
49+
| 1.1.x | [1.1.4](https://github.com/modelcontextprotocol/java-sdk/releases/tag/v1.1.4) (2026-08-19) | 2025-06-18 | Security patches only |
50+
| 0.18.x | [0.18.4](https://github.com/modelcontextprotocol/java-sdk/releases/tag/v0.18.4) (2026-08-19) | 2025-06-18 | Security patches only |
51+
4452
## Maven Coordinates
4553

4654
All SDK modules share the same version number and are released together. The BOM (`mcp-bom`) provides dependency management for all SDK modules to ensure version consistency.

0 commit comments

Comments
 (0)