1+ name : Conformance Tests
2+
3+ on :
4+ pull_request : {}
5+ push :
6+ branches : [main]
7+ workflow_dispatch :
8+
9+ jobs :
10+ server :
11+ name : Server Conformance
12+ runs-on : ubuntu-latest
13+ steps :
14+ - uses : actions/checkout@v4
15+
16+ - name : Set up JDK 17
17+ uses : actions/setup-java@v4
18+ with :
19+ java-version : ' 17'
20+ distribution : ' temurin'
21+ cache : ' maven'
22+
23+ - name : Build and start server
24+ run : |
25+ 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'
28+
29+ - name : Run conformance tests
30+ uses : modelcontextprotocol/conformance@v0.1.11
31+ with :
32+ mode : server
33+ url : http://localhost:8080/mcp
34+ suite : active
35+ expected-failures : ./conformance-tests/conformance-baseline.yml
36+
37+ client :
38+ name : Client Conformance
39+ runs-on : ubuntu-latest
40+ strategy :
41+ matrix :
42+ scenario : [initialize, tools_call, elicitation-sep1034-client-defaults, sse-retry]
43+ steps :
44+ - uses : actions/checkout@v4
45+
46+ - name : Set up JDK 17
47+ uses : actions/setup-java@v4
48+ with :
49+ java-version : ' 17'
50+ distribution : ' temurin'
51+ cache : ' maven'
52+
53+ - name : Build client
54+ run : mvn clean install -DskipTests
55+
56+ - name : Run conformance test
57+ uses : modelcontextprotocol/conformance@v0.1.11
58+ 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
63+
64+ auth :
65+ name : Auth Conformance
66+ runs-on : ubuntu-latest
67+ strategy :
68+ matrix :
69+ scenario :
70+ - auth/metadata-default
71+ - auth/metadata-var1
72+ - auth/metadata-var2
73+ - auth/metadata-var3
74+ - auth/basic-cimd
75+ - auth/scope-from-www-authenticate
76+ - auth/scope-from-scopes-supported
77+ - auth/scope-omitted-when-undefined
78+ - auth/scope-step-up
79+ - auth/scope-retry-limit
80+ - auth/token-endpoint-auth-basic
81+ - auth/token-endpoint-auth-post
82+ - auth/token-endpoint-auth-none
83+ - auth/pre-registration
84+ steps :
85+ - uses : actions/checkout@v4
86+
87+ - name : Set up JDK 17
88+ uses : actions/setup-java@v4
89+ with :
90+ java-version : ' 17'
91+ distribution : ' temurin'
92+ cache : ' maven'
93+
94+ - name : Build client
95+ run : mvn clean install -DskipTests
96+
97+ - name : Run conformance test
98+ uses : modelcontextprotocol/conformance@v0.1.15
99+ with :
100+ node-version : ' 22' # see https://github.com/modelcontextprotocol/conformance/pull/162
101+ mode : client
102+ command : ' java -jar conformance-tests/client-spring-http-client/target/client-spring-http-client-*-SNAPSHOT.jar'
103+ scenario : ${{ matrix.scenario }}
104+ expected-failures : ./conformance-tests/conformance-baseline.yml
0 commit comments