name: Conformance Tests on: push: branches: [main] pull_request: workflow_dispatch: concurrency: group: conformance-${{ github.ref }} cancel-in-progress: true permissions: contents: read jobs: server-conformance: runs-on: ubuntu-latest steps: - name: Check out code uses: actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955 # v4 - name: Set up Go uses: actions/setup-go@d35c59abb061a4a6fb18e82ac0862c26744d6ab5 # v5 with: go-version: "^1.25" - name: Start everything-server run: | go run ./conformance/everything-server/main.go -http=":3001" & # Wait for the server to be ready. timeout 15 bash -c 'until curl -s http://localhost:3001/mcp; do sleep 0.5; done' - name: "Run conformance tests" uses: modelcontextprotocol/conformance@c2f3fdaf781dcd5a862cb0d2f6454c1c210bf0f0 # v0.1.11 with: mode: server url: http://localhost:3001/mcp suite: active expected-failures: ./conformance/baseline.yml client-conformance: runs-on: ubuntu-latest steps: - name: Check out code uses: actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955 # v4 - name: Set up Go uses: actions/setup-go@d35c59abb061a4a6fb18e82ac0862c26744d6ab5 # v5 with: go-version: "^1.25" - name: "Run conformance tests" uses: modelcontextprotocol/conformance@c2f3fdaf781dcd5a862cb0d2f6454c1c210bf0f0 # v0.1.11 with: mode: client command: go run ./conformance/everything-client/main.go suite: core expected-failures: ./conformance/baseline.yml