Add MCP conformance tests with client and server test suites (#767)
Implement conformance testing modules with comprehensive client/server test scenarios, sync conversion for client/servlet code, CI integration, and documentation updates. --------- Signed-off-by: Dariusz Jędrzejczyk <dariusz.jedrzejczyk@broadcom.com>
This commit is contained in:
parent
0a8cb1e038
commit
4fe8f3efef
1 changed files with 1558 additions and 0 deletions
62
.github/workflows/conformance.yml
vendored
Normal file
62
.github/workflows/conformance.yml
vendored
Normal file
|
|
@ -0,0 +1,62 @@
|
|||
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-0.18.0-SNAPSHOT.jar'
|
||||
scenario: ${{ matrix.scenario }}
|
||||
expected-failures: ./conformance-tests/conformance-baseline.yml
|
||||
Loading…
Reference in a new issue