Repository navigation
feat: validate SEP-2243 Mcp-Param headers in modern server #865
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: | | |
| ./mvnw clean install -DskipTests | |
| ./mvnw 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: ./mvnw 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: ./mvnw 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 |