Skip to content

Commit 4216a73

Browse files
committed
ci: use conformance composite action instead of npx scripts
Replace manual npx conformance invocations with the composite GitHub Action from modelcontextprotocol/conformance. This: - Removes continue-on-error (replaced by expected-failures baseline) - Adds conformance-baseline.yml for tracking known failures - Builds conformance tool from source at the referenced commit - Passes node-version: 24 to match SDK requirements
1 parent 25f288b commit 4216a73

2 files changed

Lines changed: 68 additions & 41 deletions

File tree

.github/workflows/conformance.yml

Lines changed: 55 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -1,51 +1,65 @@
11
name: Conformance Tests
22

33
on:
4-
push:
5-
branches: [main]
6-
pull_request:
7-
workflow_dispatch:
4+
push:
5+
branches: [main]
6+
pull_request:
7+
workflow_dispatch:
88

99
concurrency:
10-
group: conformance-${{ github.ref }}
11-
cancel-in-progress: true
10+
group: conformance-${{ github.ref }}
11+
cancel-in-progress: true
1212

1313
permissions:
14-
contents: read
14+
contents: read
1515

1616
jobs:
17-
client-conformance:
18-
runs-on: ubuntu-latest
19-
continue-on-error: true
20-
steps:
21-
- uses: actions/checkout@v4
22-
- name: Install pnpm
23-
uses: pnpm/action-setup@v4
24-
with:
25-
run_install: false
26-
- uses: actions/setup-node@v4
27-
with:
28-
node-version: 24
29-
cache: pnpm
30-
cache-dependency-path: pnpm-lock.yaml
31-
- run: pnpm install
32-
- run: pnpm run build:all
33-
- run: pnpm run test:conformance:client:all
17+
client-conformance:
18+
runs-on: ubuntu-latest
19+
steps:
20+
- uses: actions/checkout@v4
21+
- name: Install pnpm
22+
uses: pnpm/action-setup@v4
23+
with:
24+
run_install: false
25+
- uses: actions/setup-node@v4
26+
with:
27+
node-version: 24
28+
cache: pnpm
29+
cache-dependency-path: pnpm-lock.yaml
30+
- run: pnpm install
31+
- run: pnpm run build:all
32+
- uses: modelcontextprotocol/conformance@4a42c25058c4636aca1ae7f6547ee30805de36ee
33+
with:
34+
mode: client
35+
command: "npx tsx src/conformance/everything-client.ts"
36+
suite: all
37+
expected-failures: ./conformance-baseline.yml
38+
node-version: "24"
3439

35-
server-conformance:
36-
runs-on: ubuntu-latest
37-
continue-on-error: true
38-
steps:
39-
- uses: actions/checkout@v4
40-
- name: Install pnpm
41-
uses: pnpm/action-setup@v4
42-
with:
43-
run_install: false
44-
- uses: actions/setup-node@v4
45-
with:
46-
node-version: 24
47-
cache: pnpm
48-
cache-dependency-path: pnpm-lock.yaml
49-
- run: pnpm install
50-
- run: pnpm run build:all
51-
- run: pnpm run test:conformance:server
40+
server-conformance:
41+
runs-on: ubuntu-latest
42+
steps:
43+
- uses: actions/checkout@v4
44+
- name: Install pnpm
45+
uses: pnpm/action-setup@v4
46+
with:
47+
run_install: false
48+
- uses: actions/setup-node@v4
49+
with:
50+
node-version: 24
51+
cache: pnpm
52+
cache-dependency-path: pnpm-lock.yaml
53+
- run: pnpm install
54+
- run: pnpm run build:all
55+
- name: Start everything-server
56+
run: |
57+
npx tsx src/conformance/everything-server.ts &
58+
timeout 15 bash -c 'until curl -s http://localhost:3000/mcp > /dev/null 2>&1; do sleep 0.5; done'
59+
echo "Server ready"
60+
- uses: modelcontextprotocol/conformance@4a42c25058c4636aca1ae7f6547ee30805de36ee
61+
with:
62+
mode: server
63+
url: http://localhost:3000/mcp
64+
expected-failures: ./conformance-baseline.yml
65+
node-version: "24"

conformance-baseline.yml

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
# MCP Conformance Test Expected Failures
2+
# List scenario names that are known to fail in this SDK.
3+
# Format:
4+
# server:
5+
# - scenario-name-1
6+
# - scenario-name-2
7+
# client:
8+
# - scenario-name-3
9+
#
10+
# The conformance runner will:
11+
# - Exit 0 if only expected failures occur
12+
# - Exit 1 if unexpected failures occur (regression)
13+
# - Exit 1 if expected failures now pass (stale baseline, update this file)

0 commit comments

Comments
 (0)