Repository navigation
Modern stateless server for MCP 2026-07-28 #819
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Conformance Tests | |
| on: | |
| pull_request: {} | |
| push: | |
| branches: [main] | |
| workflow_dispatch: | |
| env: | |
| CONFORMANCE: '@modelcontextprotocol/conformance@0.2.0-alpha.12' | |
| 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: Set up Node.js | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version: '22' | |
| - name: Run conformance tests | |
| run: | | |
| npx --yes "$CONFORMANCE" server \ | |
| --url http://localhost:8080/mcp \ | |
| --suite active \ | |
| --spec-version 2025-11-25 \ | |
| --expected-failures ./conformance-tests/conformance-baseline.yml | |
| modern-server: | |
| name: Modern Server Conformance (2026-07-28) | |
| 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-modern & | |
| timeout 30 bash -c 'until curl -s http://localhost:8081/mcp > /dev/null 2>&1; do sleep 0.5; done' | |
| - name: Set up Node.js | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version: '22' | |
| - name: Run conformance tests | |
| run: | | |
| npx --yes "$CONFORMANCE" server \ | |
| --url http://localhost:8081/mcp \ | |
| --requirements 2026-07-28 | |
| 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: Set up Node.js | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version: '22' | |
| - name: Run conformance test | |
| run: | | |
| npx --yes "$CONFORMANCE" client \ | |
| --command 'java -jar conformance-tests/client-jdk-http-client/target/client-jdk-http-client-*-SNAPSHOT.jar' \ | |
| --scenario ${{ matrix.scenario }} \ | |
| --spec-version 2025-11-25 \ | |
| --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.16 | |
| 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 |