Skip to content

Commit de3cb16

Browse files
committed
Merge upstream main and retain idle GET regression
2 parents 980e6a2 + 54e8b61 commit de3cb16

140 files changed

Lines changed: 14585 additions & 446 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/dependabot.yml‎

Lines changed: 90 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -1,28 +1,92 @@
11
version: 2
22
updates:
3-
- package-ecosystem: 'github-actions'
4-
directory: '/'
5-
schedule:
6-
interval: monthly
7-
labels:
8-
- 'github_actions'
9-
- 'waiting for triage'
10-
- package-ecosystem: 'maven'
11-
directory: '/'
12-
schedule:
13-
interval: monthly
14-
open-pull-requests-limit: 10
15-
labels:
16-
- 'dependencies'
17-
- 'waiting for triage'
18-
ignore:
19-
# Freeze production dependencies of mcp-core
20-
- dependency-name: 'org.slf4j:slf4j-api'
21-
- dependency-name: 'com.fasterxml.jackson.core:jackson-annotations'
22-
- dependency-name: 'tools.jackson.core:jackson-databind'
23-
- dependency-name: 'io.projectreactor:reactor-bom'
24-
- dependency-name: 'io.projectreactor:reactor-core'
25-
- dependency-name: 'jakarta.servlet:jakarta.servlet-api'
26-
# mcp-json-jackson2 and mcp-json-jackson3 dependencies
27-
- dependency-name: 'com.fasterxml.jackson.core:jackson-databind'
28-
- dependency-name: 'com.networknt:json-schema-validator'
3+
- package-ecosystem: 'github-actions'
4+
directory: '/'
5+
schedule:
6+
interval: weekly
7+
labels:
8+
- 'github_actions'
9+
- 'waiting for triage'
10+
# Active development line: all updates, except minor and major updates of production dependencies
11+
- package-ecosystem: 'maven'
12+
directory: '/'
13+
schedule:
14+
interval: weekly
15+
open-pull-requests-limit: 15
16+
labels:
17+
- 'dependencies'
18+
- 'waiting for triage'
19+
ignore:
20+
# mcp-core production dependencies
21+
- dependency-name: 'org.slf4j:slf4j-api'
22+
update-types: ['version-update:semver-major', 'version-update:semver-minor']
23+
- dependency-name: 'com.fasterxml.jackson.core:jackson-annotations'
24+
update-types: ['version-update:semver-major', 'version-update:semver-minor']
25+
- dependency-name: 'io.projectreactor:reactor-bom'
26+
update-types: ['version-update:semver-major', 'version-update:semver-minor']
27+
- dependency-name: 'io.projectreactor:reactor-core'
28+
update-types: ['version-update:semver-major', 'version-update:semver-minor']
29+
- dependency-name: 'jakarta.servlet:jakarta.servlet-api'
30+
update-types: ['version-update:semver-major', 'version-update:semver-minor']
31+
# mcp-json-jackson2 and mcp-json-jackson3 production dependencies
32+
- dependency-name: 'com.fasterxml.jackson.core:jackson-databind'
33+
update-types: ['version-update:semver-major', 'version-update:semver-minor']
34+
- dependency-name: 'tools.jackson.core:jackson-databind'
35+
update-types: ['version-update:semver-major', 'version-update:semver-minor']
36+
- dependency-name: 'com.networknt:json-schema-validator'
37+
update-types: ['version-update:semver-major', 'version-update:semver-minor']
38+
# mcp-test compile dependencies, which end up on consumers' test classpath
39+
- dependency-name: 'org.assertj:assertj-core'
40+
update-types: ['version-update:semver-major']
41+
- dependency-name: 'org.junit.jupiter:*'
42+
update-types: ['version-update:semver-major']
43+
- dependency-name: 'org.mockito:mockito-core'
44+
update-types: ['version-update:semver-major']
45+
- dependency-name: 'org.testcontainers:*'
46+
update-types: ['version-update:semver-major']
47+
- dependency-name: 'org.awaitility:awaitility'
48+
update-types: ['version-update:semver-major']
49+
- dependency-name: 'ch.qos.logback:logback-classic'
50+
update-types: ['version-update:semver-major']
51+
- dependency-name: 'net.javacrumbs.json-unit:json-unit-assertj'
52+
update-types: ['version-update:semver-major']
53+
# Maintenance lines: patch updates only
54+
- package-ecosystem: 'maven'
55+
directory: '/'
56+
target-branch: '2.1.x'
57+
schedule:
58+
interval: monthly
59+
open-pull-requests-limit: 10
60+
labels:
61+
- 'dependencies'
62+
- 'maintenance'
63+
- 'waiting for triage'
64+
ignore:
65+
- dependency-name: '*'
66+
update-types: ['version-update:semver-major', 'version-update:semver-minor']
67+
- package-ecosystem: 'maven'
68+
directory: '/'
69+
target-branch: '1.1.x'
70+
schedule:
71+
interval: monthly
72+
open-pull-requests-limit: 10
73+
labels:
74+
- 'dependencies'
75+
- 'maintenance'
76+
- 'waiting for triage'
77+
ignore:
78+
- dependency-name: '*'
79+
update-types: ['version-update:semver-major', 'version-update:semver-minor']
80+
- package-ecosystem: 'maven'
81+
directory: '/'
82+
target-branch: '0.18.x'
83+
schedule:
84+
interval: monthly
85+
open-pull-requests-limit: 10
86+
labels:
87+
- 'dependencies'
88+
- 'maintenance'
89+
- 'waiting for triage'
90+
ignore:
91+
- dependency-name: '*'
92+
update-types: ['version-update:semver-major', 'version-update:semver-minor']

‎.github/workflows/ci.yml‎

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,37 +4,40 @@ on:
44
pull_request: {}
55
workflow_dispatch: {}
66

7+
permissions:
8+
contents: read
9+
710
jobs:
811
build:
912
name: Build and Test
1013
runs-on: ubuntu-latest
1114
steps:
1215
- name: Checkout source code
13-
uses: actions/checkout@v4
16+
uses: actions/checkout@v7
1417

1518
- name: Set up JDK 17
16-
uses: actions/setup-java@v4
19+
uses: actions/setup-java@v6
1720
with:
1821
java-version: '17'
1922
distribution: 'temurin'
2023
cache: 'maven'
2124

2225
- name: Build
23-
run: mvn verify
26+
run: ./mvnw verify
2427

2528
jackson2-tests:
2629
name: Jackson 2 Integration Tests
2730
runs-on: ubuntu-latest
2831
steps:
2932
- name: Checkout source code
30-
uses: actions/checkout@v4
33+
uses: actions/checkout@v7
3134

3235
- name: Set up JDK 17
33-
uses: actions/setup-java@v4
36+
uses: actions/setup-java@v6
3437
with:
3538
java-version: '17'
3639
distribution: 'temurin'
3740
cache: 'maven'
3841

3942
- name: Jackson 2 Integration Tests
40-
run: mvn -pl mcp-test -am -Pjackson2 test
43+
run: ./mvnw -pl mcp-test -am -Pjackson2 test

‎.github/workflows/conformance.yml‎

Lines changed: 66 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,48 @@ on:
66
branches: [main]
77
workflow_dispatch:
88

9+
permissions:
10+
contents: read
11+
12+
env:
13+
CONFORMANCE: '@modelcontextprotocol/conformance@0.2.0-alpha.12'
14+
915
jobs:
1016
server:
1117
name: Server Conformance
1218
runs-on: ubuntu-latest
19+
steps:
20+
- uses: actions/checkout@v7
21+
22+
- name: Set up JDK 17
23+
uses: actions/setup-java@v6
24+
with:
25+
java-version: '17'
26+
distribution: 'temurin'
27+
cache: 'maven'
28+
29+
- name: Build and start server
30+
run: |
31+
./mvnw clean install -DskipTests
32+
./mvnw exec:java -pl conformance-tests/server-servlet -Dexec.mainClass="io.modelcontextprotocol.conformance.server.ConformanceServlet" &
33+
timeout 30 bash -c 'until curl -s http://localhost:8080/mcp > /dev/null 2>&1; do sleep 0.5; done'
34+
35+
- name: Set up Node.js
36+
uses: actions/setup-node@v4
37+
with:
38+
node-version: '22'
39+
40+
- name: Run conformance tests
41+
run: |
42+
npx --yes "$CONFORMANCE" server \
43+
--url http://localhost:8080/mcp \
44+
--suite active \
45+
--spec-version 2025-11-25 \
46+
--expected-failures ./conformance-tests/conformance-baseline.yml
47+
48+
modern-server:
49+
name: Modern Server Conformance (2026-07-28)
50+
runs-on: ubuntu-latest
1351
steps:
1452
- uses: actions/checkout@v4
1553

@@ -23,16 +61,19 @@ jobs:
2361
- name: Build and start server
2462
run: |
2563
mvn clean install -DskipTests
26-
mvn exec:java -pl conformance-tests/server-servlet -Dexec.mainClass="io.modelcontextprotocol.conformance.server.ConformanceServlet" &
27-
timeout 30 bash -c 'until curl -s http://localhost:8080/mcp > /dev/null 2>&1; do sleep 0.5; done'
64+
mvn exec:java -pl conformance-tests/server-servlet-modern &
65+
timeout 30 bash -c 'until curl -s http://localhost:8081/mcp > /dev/null 2>&1; do sleep 0.5; done'
2866
29-
- name: Run conformance tests
30-
uses: modelcontextprotocol/conformance@v0.1.16
67+
- name: Set up Node.js
68+
uses: actions/setup-node@v4
3169
with:
32-
mode: server
33-
url: http://localhost:8080/mcp
34-
suite: active
35-
expected-failures: ./conformance-tests/conformance-baseline.yml
70+
node-version: '22'
71+
72+
- name: Run conformance tests
73+
run: |
74+
npx --yes "$CONFORMANCE" server \
75+
--url http://localhost:8081/mcp \
76+
--requirements 2026-07-28
3677
3778
client:
3879
name: Client Conformance
@@ -41,25 +82,30 @@ jobs:
4182
matrix:
4283
scenario: [initialize, tools_call, elicitation-sep1034-client-defaults, sse-retry]
4384
steps:
44-
- uses: actions/checkout@v4
85+
- uses: actions/checkout@v7
4586

4687
- name: Set up JDK 17
47-
uses: actions/setup-java@v4
88+
uses: actions/setup-java@v6
4889
with:
4990
java-version: '17'
5091
distribution: 'temurin'
5192
cache: 'maven'
5293

5394
- name: Build client
54-
run: mvn clean install -DskipTests
95+
run: ./mvnw clean install -DskipTests
5596

56-
- name: Run conformance test
57-
uses: modelcontextprotocol/conformance@v0.1.16
97+
- name: Set up Node.js
98+
uses: actions/setup-node@v4
5899
with:
59-
mode: client
60-
command: 'java -jar conformance-tests/client-jdk-http-client/target/client-jdk-http-client-*-SNAPSHOT.jar'
61-
scenario: ${{ matrix.scenario }}
62-
expected-failures: ./conformance-tests/conformance-baseline.yml
100+
node-version: '22'
101+
102+
- name: Run conformance test
103+
run: |
104+
npx --yes "$CONFORMANCE" client \
105+
--command 'java -jar conformance-tests/client-jdk-http-client/target/client-jdk-http-client-*-SNAPSHOT.jar' \
106+
--scenario ${{ matrix.scenario }} \
107+
--spec-version 2025-11-25 \
108+
--expected-failures ./conformance-tests/conformance-baseline.yml
63109
64110
auth:
65111
name: Auth Conformance
@@ -82,17 +128,17 @@ jobs:
82128
- auth/token-endpoint-auth-none
83129
- auth/pre-registration
84130
steps:
85-
- uses: actions/checkout@v4
131+
- uses: actions/checkout@v7
86132

87133
- name: Set up JDK 17
88-
uses: actions/setup-java@v4
134+
uses: actions/setup-java@v6
89135
with:
90136
java-version: '17'
91137
distribution: 'temurin'
92138
cache: 'maven'
93139

94140
- name: Build client
95-
run: mvn clean install -DskipTests
141+
run: ./mvnw clean install -DskipTests
96142

97143
- name: Run conformance test
98144
uses: modelcontextprotocol/conformance@v0.1.16

‎.github/workflows/docs.yml‎

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,11 +19,11 @@ jobs:
1919
deploy:
2020
runs-on: ubuntu-latest
2121
steps:
22-
- uses: actions/checkout@v4
22+
- uses: actions/checkout@v7
2323
with:
2424
fetch-depth: 0
2525

26-
- uses: actions/setup-python@v5
26+
- uses: actions/setup-python@v7
2727
with:
2828
python-version: 3.x
2929

@@ -37,7 +37,7 @@ jobs:
3737
- name: Deploy docs (push to main)
3838
if: github.event_name == 'push' || github.event_name == 'workflow_dispatch'
3939
run: |
40-
PROJECT_VERSION=$(mvn help:evaluate -Dexpression=project.version --quiet -DforceStdout)
40+
PROJECT_VERSION=$(./mvnw help:evaluate -Dexpression=project.version --quiet -DforceStdout)
4141
if [[ "${PROJECT_VERSION}" == *-SNAPSHOT ]]; then
4242
ALIAS="latest-snapshot"
4343
else

‎.github/workflows/maven-central-release.yml‎

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,17 @@ name: Release to Maven Central
33
on:
44
workflow_dispatch:
55

6+
permissions:
7+
contents: read
8+
69
jobs:
710
publish:
811
runs-on: ubuntu-latest
912
steps:
10-
- uses: actions/checkout@v4
13+
- uses: actions/checkout@v7
1114

1215
- name: Set up Java
13-
uses: actions/setup-java@v4
16+
uses: actions/setup-java@v6
1417
with:
1518
java-version: '17'
1619
distribution: 'temurin'
@@ -22,19 +25,21 @@ jobs:
2225
gpg-passphrase: MAVEN_GPG_PASSPHRASE
2326

2427
- name: Setup Node.js
25-
uses: actions/setup-node@v4
28+
uses: actions/setup-node@v7
2629
with:
2730
node-version: '20'
2831

2932
# Deploy runs the integration tests, but only with Jackson 3
3033
# We run Jackson 2 IT manually
3134
- name: Jackson 2 Integration Tests
32-
run: mvn -pl mcp-test -am -Pjackson2 test
35+
run: ./mvnw -pl mcp-test -am -Pjackson2 test
3336

3437
# Deploy runs all previous maven goals, including test and verify
38+
# Use the wrapper (Maven 3.9.x): with Maven 3.10, central-publishing 0.7.0 leaves
39+
# maven-metadata-local.xml files in the bundle, and Central rejects it.
3540
- name: Publish to Maven Central
3641
run: |
37-
mvn --batch-mode \
42+
./mvnw --batch-mode \
3843
-Prelease \
3944
-Pjavadoc \
4045
clean deploy

0 commit comments

Comments
 (0)