Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
68 commits
Select commit Hold shift + click to select a range
e7901da
fix: Support form and url fields in Elicitation capability per 2025-1…
rhtnr Jan 8, 2026
dce4892
add 2025-11-25 version to ProtocolVersions (#733)
sdelamo Jan 8, 2026
cb533b2
Fix fomratting
tzolov Jan 8, 2026
b518393
Expose resourcesUpdateConsumer() in sync client (#735)
Randgalt Jan 8, 2026
f7a460f
Upgrade to testcontainers 1.21.4 (#743)
sdeleuze Jan 12, 2026
af65356
Fix everything-server-based integration tests (#756)
chemicL Jan 20, 2026
2456a0e
Add Support for Jackson 3 (#742)
filiphr Jan 26, 2026
0a8cb1e
Decouple mcp-test and mcp-spring modules from Jackson implementation …
chemicL Jan 27, 2026
4fe8f3e
Add MCP conformance tests with client and server test suites (#767)
chemicL Jan 30, 2026
67db591
Use junit.version for all junit dependencies
filiphr Jan 15, 2026
a47920c
Update JUnit 5.10.2 -> 6.0.2
Kehrlann Feb 4, 2026
96c9bbe
Add Origin header validation
Kehrlann Feb 4, 2026
5ed6063
Update conformance tests with DNS rebinding protection
Kehrlann Feb 4, 2026
ef8399c
feat: broadcast 2025-11-25 as latest supported client version (#758)
LucaButBoring Feb 6, 2026
09a853f
Add tool name validation SEP-986 (#764)
ashakirin Feb 10, 2026
be5ec12
Polish gh-764
Kehrlann Feb 10, 2026
c3b9ab0
Move mcp-json into mcp-core, add OSGi support
scottslewis Jan 28, 2026
6f39064
Move mcp-core integration tests to mcp-test package
Kehrlann Feb 11, 2026
38c0f3b
Run integration tests with Jackson 2 in CI
Kehrlann Feb 11, 2026
5e186a9
README: update module structure & key decisions with mcp-json removal
Kehrlann Feb 11, 2026
82102a1
Remove unused abstract test classes in mcp-core
Kehrlann Feb 12, 2026
b57b126
Polish gh-771
Kehrlann Feb 12, 2026
f6c3fde
DNS rebinding protection: check host header
Kehrlann Feb 5, 2026
8549e36
Conformance testing: host validation
Kehrlann Feb 5, 2026
e60a074
Refine `McpJsonDefaults` method names (#789)
sdeleuze Feb 13, 2026
a1048b9
Add embedded MkDocs documentation site (#795)
tzolov Feb 15, 2026
d26d403
Update README links
tzolov Feb 15, 2026
adc492f
Fix broken doc links
tzolov Feb 15, 2026
c62972c
Add blog section to the docs
tzolov Feb 15, 2026
d7590f0
change theme
tzolov Feb 16, 2026
a5d3cfb
Add docs version support
tzolov Feb 16, 2026
3a39366
docs set default versions
tzolov Feb 16, 2026
af25e25
Fix README doc links
tzolov Feb 16, 2026
42887a8
docs version management improvements
tzolov Feb 16, 2026
5ebe616
Another round of improving mkdocs docs
tzolov Feb 16, 2026
a1199b1
docs: hide alias name from drop down
tzolov Feb 16, 2026
7dd609c
Update issue templates
chemicL Feb 17, 2026
3ab8292
Bump version from 0.18.0-SNAPSHOT to 1.0.0-SNAPSHOT
tzolov Feb 18, 2026
4adc81d
Improve reference docs version alias handling
tzolov Feb 18, 2026
77f59ad
Stdio integration tests: increase initialize timeout to 25s
Kehrlann Feb 18, 2026
159eb96
Fix and simplification for osgi manifest.mf
scottslewis Feb 14, 2026
90ad2be
Make AbstractMcpAsyncClientResiliencyTests#host access public
tzolov Feb 20, 2026
2859669
Update SECURITY.md to use GitHub Security Advisories
localden Feb 18, 2026
86cde46
Fix code formatting
tzolov Feb 20, 2026
77bc64a
Move mcp-spring-webflux and mcp-spring-webmvc to Spring AI 2.0 (#805)
tzolov Feb 20, 2026
4c1c3d8
Remove deprecated APIs and modules for 1.0.0 release (#807)
chemicL Feb 20, 2026
5b99cd6
Conformance testing: add app to test auth suite (#806)
Kehrlann Feb 20, 2026
72f9da9
Add governance documentation for SEP-1730 (#808)
chemicL Feb 20, 2026
6b2b31c
chore: exclude internal modules from Maven Central publishing
tzolov Feb 20, 2026
11b597c
Release version 1.0.0-RC2
tzolov Feb 20, 2026
acb7e4d
Next development version
tzolov Feb 20, 2026
bdb373c
Change StackOverflow link and tag for support (#824)
chemicL Feb 20, 2026
479e52e
Release version 1.0.0-RC3
tzolov Feb 20, 2026
7e08a8e
Next development version
tzolov Feb 20, 2026
29dc250
Excplude the conformance projects from maven deploy
tzolov Feb 20, 2026
27c859c
Update the quickstart bom versionto 1.0.0
tzolov Feb 22, 2026
d689cdd
Next development version
tzolov Feb 23, 2026
863e748
Use dynamic jar discovery for conformance tests (#832)
chemicL Feb 23, 2026
46bacda
Add migration notes for 0.18.1 to 1.0.0 update (#828)
chemicL Feb 23, 2026
81a18ed
Client Auth Conformance Tests - change parent POM (#827)
Kehrlann Mar 2, 2026
d4c4a25
Fix instructions for running conformance tests
Kehrlann Mar 2, 2026
ce2c747
Bump spring-javaformat 0.0.43 -> 0.0.47
Kehrlann Mar 2, 2026
7f68ea5
Support resource subscriptions (#839)
chemicL Mar 2, 2026
725cdab
ci: GitHub release and better version management (#1-#6)
emnigma Jul 15, 2025
4b610be
hide args (#7)
emnigma Sep 12, 2025
440468b
fix error handler setter and explicitly type error messages with code…
emnigma Dec 24, 2025
8e36fe9
add ci on push
emnigma Dec 24, 2025
9d2b538
fix: Add STDIO error propagation and reactor err handling
emnigma Mar 2, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/ISSUE_TEMPLATE/bug_report.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
name: Bug report
about: Create a bug report to help us improve the project
title: ''
labels: 'type: bug, status: waiting-for-triage'
labels: status/waiting for triage
assignees: ''

---
Expand Down
4 changes: 2 additions & 2 deletions .github/ISSUE_TEMPLATE/config.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
blank_issues_enabled: false
contact_links:
- name: Questions and Community Support
url: https://stackoverflow.com/questions/tagged/spring-ai-mcp
about: Please ask and answer questions on StackOverflow with the spring-ai tag
url: https://stackoverflow.com/questions/tagged/mcp-java-sdk
about: Please ask and answer questions on StackOverflow with the mcp-java-sdk tag
2 changes: 1 addition & 1 deletion .github/ISSUE_TEMPLATE/feature_request.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
name: Feature request
about: Suggest an idea for this project
title: ''
labels: 'status: waiting-for-triage, type: feature'
labels: status/waiting for triage
assignees: ''

---
Expand Down
2 changes: 1 addition & 1 deletion .github/ISSUE_TEMPLATE/miscellaneous.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
name: Miscellaneous
about: Suggest an improvement for this project
title: ''
labels: 'status: waiting-for-triage'
labels: status/waiting for triage
assignees: ''

---
Expand Down
22 changes: 22 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
version: 2
updates:
- package-ecosystem: 'github-actions'
directory: '/'
schedule:
interval: monthly
- package-ecosystem: 'maven'
directory: '/'
schedule:
interval: monthly
open-pull-requests-limit: 10
ignore:
# Freeze production dependencies of mcp-core
- dependency-name: 'org.slf4j:slf4j-api'
- dependency-name: 'com.fasterxml.jackson.core:jackson-annotations'
- dependency-name: 'tools.jackson.core:jackson-databind'
- dependency-name: 'io.projectreactor:reactor-bom'
- dependency-name: 'io.projectreactor:reactor-core'
- dependency-name: 'jakarta.servlet:jakarta.servlet-api'
# mcp-json-jackson2 and mcp-json-jackson3 dependencies
- dependency-name: 'com.fasterxml.jackson.core:jackson-databind'
- dependency-name: 'com.networknt:json-schema-validator'
23 changes: 22 additions & 1 deletion .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -1,11 +1,12 @@
name: CI

on:
push:
pull_request: {}

jobs:
build:
name: Build branch
name: Build and Test
runs-on: ubuntu-latest
steps:
- name: Checkout source code
Expand All @@ -18,5 +19,25 @@ jobs:
distribution: 'temurin'
cache: 'maven'

- name: Verify Docker
run: docker info

- name: Build
run: mvn verify

jackson2-tests:
name: Jackson 2 Integration Tests
runs-on: ubuntu-latest
steps:
- name: Checkout source code
uses: actions/checkout@v4

- name: Set up JDK 17
uses: actions/setup-java@v4
with:
java-version: '17'
distribution: 'temurin'
cache: 'maven'

- name: Jackson 2 Integration Tests
run: mvn -pl mcp-test -am -Pjackson2 test
104 changes: 104 additions & 0 deletions .github/workflows/conformance.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,104 @@
name: Conformance Tests

on:
pull_request: {}
push:
branches: [main]
workflow_dispatch:

jobs:
server:
name: Server Conformance
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4

- name: Set up JDK 17
uses: actions/setup-java@v4
with:
java-version: '17'
distribution: 'temurin'
cache: 'maven'

- name: Build and start server
run: |
mvn clean install -DskipTests
mvn exec:java -pl conformance-tests/server-servlet -Dexec.mainClass="io.modelcontextprotocol.conformance.server.ConformanceServlet" &
timeout 30 bash -c 'until curl -s http://localhost:8080/mcp > /dev/null 2>&1; do sleep 0.5; done'

- name: Run conformance tests
uses: modelcontextprotocol/conformance@v0.1.11
with:
mode: server
url: http://localhost:8080/mcp
suite: active
expected-failures: ./conformance-tests/conformance-baseline.yml

client:
name: Client Conformance
runs-on: ubuntu-latest
strategy:
matrix:
scenario: [initialize, tools_call, elicitation-sep1034-client-defaults, sse-retry]
steps:
- uses: actions/checkout@v4

- name: Set up JDK 17
uses: actions/setup-java@v4
with:
java-version: '17'
distribution: 'temurin'
cache: 'maven'

- name: Build client
run: mvn clean install -DskipTests

- name: Run conformance test
uses: modelcontextprotocol/conformance@v0.1.11
with:
mode: client
command: 'java -jar conformance-tests/client-jdk-http-client/target/client-jdk-http-client-*-SNAPSHOT.jar'
scenario: ${{ matrix.scenario }}
expected-failures: ./conformance-tests/conformance-baseline.yml

auth:
name: Auth Conformance
runs-on: ubuntu-latest
strategy:
matrix:
scenario:
- auth/metadata-default
- auth/metadata-var1
- auth/metadata-var2
- auth/metadata-var3
- auth/basic-cimd
- auth/scope-from-www-authenticate
- auth/scope-from-scopes-supported
- auth/scope-omitted-when-undefined
- auth/scope-step-up
- auth/scope-retry-limit
- auth/token-endpoint-auth-basic
- auth/token-endpoint-auth-post
- auth/token-endpoint-auth-none
- auth/pre-registration
steps:
- uses: actions/checkout@v4

- name: Set up JDK 17
uses: actions/setup-java@v4
with:
java-version: '17'
distribution: 'temurin'
cache: 'maven'

- name: Build client
run: mvn clean install -DskipTests

- name: Run conformance test
uses: modelcontextprotocol/conformance@v0.1.15
with:
node-version: '22' # see https://github.com/modelcontextprotocol/conformance/pull/162
mode: client
command: 'java -jar conformance-tests/client-spring-http-client/target/client-spring-http-client-*-SNAPSHOT.jar'
scenario: ${{ matrix.scenario }}
expected-failures: ./conformance-tests/conformance-baseline.yml
54 changes: 54 additions & 0 deletions .github/workflows/docs.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
name: Deploy Documentation

on:
push:
branches:
- main
paths:
- 'docs/**'
- 'mkdocs.yml'
release:
types:
- published
workflow_dispatch:

permissions:
contents: write

jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0

- uses: actions/setup-python@v5
with:
python-version: 3.x

- run: pip install mkdocs-material mike

- name: Configure git user
run: |
git config user.name "github-actions[bot]"
git config user.email "github-actions[bot]@users.noreply.github.com"

- name: Deploy docs (push to main)
if: github.event_name == 'push' || github.event_name == 'workflow_dispatch'
run: |
PROJECT_VERSION=$(mvn help:evaluate -Dexpression=project.version --quiet -DforceStdout)
if [[ "${PROJECT_VERSION}" == *-SNAPSHOT ]]; then
ALIAS="latest-snapshot"
else
ALIAS="latest"
fi
mike deploy --push --update-aliases "${PROJECT_VERSION}" "${ALIAS}"
mike set-default latest --push

- name: Deploy versioned docs (release)
if: github.event_name == 'release'
run: |
VERSION=${GITHUB_REF_NAME}
mike deploy --push --update-aliases "${VERSION}" latest
mike set-default latest --push
54 changes: 27 additions & 27 deletions .github/workflows/maven-central-release.yml
Original file line number Diff line number Diff line change
@@ -1,41 +1,41 @@
name: Release to Maven Central
name: Publish package to GitHub Packages

on:
workflow_dispatch:
inputs:
version:
description: 'Version'
required: true
type: string
workflow_call:
inputs:
version:
description: 'Version'
required: true
type: string
env:
RELEASE_VERSION: ${{ inputs.version }}

jobs:
publish:
runs-on: ubuntu-latest
permissions:
contents: read
packages: write
steps:
- uses: actions/checkout@v4

- name: Set up Java
- name: Set up Java for publishing to GitHub Packages
uses: actions/setup-java@v4
with:
java-version: '17'
distribution: 'temurin'
cache: 'maven'
server-id: central
server-username: MAVEN_USERNAME
server-password: MAVEN_PASSWORD
gpg-private-key: ${{ secrets.GPG_SECRET_KEY }}
gpg-passphrase: MAVEN_GPG_PASSPHRASE

- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '20'

- name: Build and Test
run: mvn clean verify

- name: Publish to Maven Central
run: |
mvn --batch-mode \
-Prelease \
-Pjavadoc \
deploy
# - name: Setup Node.js
# uses: actions/setup-node@v4
# with:
# node-version: '20'
# - name: Build and Test
# run: mvn clean verify
- name: Publish to GitHub Packages
run: mvn -X -Drevision=${RELEASE_VERSION} -DskipTests --batch-mode deploy
env:
MAVEN_USERNAME: ${{ secrets.OSSRH_USERNAME }}
MAVEN_PASSWORD: ${{ secrets.OSSRH_TOKEN }}
MAVEN_GPG_PASSPHRASE: ${{ secrets.SIGNING_PASSPHRASE }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
44 changes: 0 additions & 44 deletions .github/workflows/publish-snapshot.yml

This file was deleted.

4 changes: 4 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ build/
out
/.gradletasknamecache
**/*.flattened-pom.xml
**/dependency-reduced-pom.xml

### IDE - Eclipse/STS ###
.apt_generated
Expand Down Expand Up @@ -56,6 +57,9 @@ node_modules/
package-lock.json
package.json

### MkDocs ###
site/

### Other ###
.antlr/
.profiler/
Expand Down
Loading