add MCP conformance tests to goose CI (combines #10800 + #10801) (#10940)

Signed-off-by: Jack Amadeo <jackamadeo@squareup.com>
Co-authored-by: Jack Amadeo <jackamadeo@squareup.com>
This commit is contained in:
Alex Hancock
2026-08-20 21:51:53 +00:00
committed by GitHub
parent 810bb68fff
commit 2f5169af35
18 changed files with 1380 additions and 126 deletions
+27
View File
@@ -413,6 +413,33 @@ win-total-rls *allparam:
just win-bld-rls{{allparam}}
just win-run-rls
# Build the binaries the MCP conformance driver needs.
mcp-conformance-build:
cargo build -p goose-cli --bin goose --bin mcp_conformance_driver
# suite: all, core, extensions, backcompat, auth, metadata, draft, sep-835
# build: "false" reuses the existing target/debug binaries instead of rebuilding
# Example: just mcp-conformance
# Example: just mcp-conformance 2025-11-25 auth
# Example: just mcp-conformance 2025-11-25 auth 0.2.0-alpha.10
# Example: just mcp-conformance 2025-11-25 auth 0.2.0-alpha.10 false
# Example: just mcp-conformance 2025-11-25 all 0.2.0-alpha.10 true crates/goose-cli/tests/mcp-conformance/expected-failures-2025-11-25-0.2.0-alpha.10.yaml
[doc("Run an MCP client conformance suite against Goose.")]
mcp-conformance version="2025-11-25" suite="all" conformance_version="0.2.0-alpha.10" build="true" baseline="":
#!/usr/bin/env bash
set -euo pipefail
if [ "{{build}}" = "true" ]; then
just mcp-conformance-build
elif [ ! -x target/debug/mcp_conformance_driver ]; then
echo "target/debug/mcp_conformance_driver not found; run 'just mcp-conformance-build' first" >&2
exit 1
fi
baseline_args=()
if [ -n "{{baseline}}" ]; then
baseline_args=(--expected-failures "{{baseline}}")
fi
GOOSE_DISABLE_KEYRING=1 npx -y @modelcontextprotocol/conformance@{{conformance_version}} client --command "target/debug/mcp_conformance_driver" --spec-version "{{version}}" --suite "{{suite}}" ${baseline_args[@]+"${baseline_args[@]}"}
build-test-tools:
cargo build -p goose-test