Skip to content

Skill README's Go SDK example produces wrong tier verdict — contradicts known-sdks.ts #446

Description

@guglielmo-san

Problem

The Go SDK example in .claude/skills/mcp-sdk-tier-audit/README.md invokes the everything server incorrectly, so following the skill's instructions produces false-negative conformance results.

Following the README verbatim against go-sdk v1.7.0:

| | 2025-06-18 | 2025-11-25 | All* |
| Server | 24/27 | 25/31 | 25/31 (81%) |  ← WRONG

Tier Assessment: Tier 2
Tier 1 Blockers: server_conformance, client_conformance

Running the sdk subcommand against the same checkout:

node dist/index.js sdk go-sdk --path ~/src/mcp/go-sdk --mode server
# → 73/73 passed, 0 failed

node dist/index.js sdk go-sdk --path ~/src/mcp/go-sdk --mode client --skip-build
# → 460/460 passed (13 baselined ext-auth failures excluded)

The go-sdk's own CI is also green — it does the correct invocation. The false failures only appear when someone follows the skill README.

Root cause

The go-sdk everything-server has a -stateless flag that defaults to true. Scenarios from spec revisions before 2026-07-28 (sampling, elicitation, session-lifecycle, SSE multi-stream) require the stateful transport and cannot pass against a stateless server.

The correct invocation is already encoded in src/sdk-runner/known-sdks.ts:

'go-sdk': {
  server: {
    command: './.conformance-server -http=localhost:3000 -stateless=false',
    url: 'http://localhost:3000'
  },
  specOverrides: {
    '2026-07-28': {
      server: { command: './.conformance-server -http=localhost:3000' }
    }
  }
}

With an explicit comment:

"The server's -stateless flag defaults to true; the dated-spec (active suite) scenarios need the stateful transport, so the base command pins -stateless=false and the 2026-07-28 override drops it for the SEP-2575 stateless lifecycle."

The skill README's example ignores both the -stateless=false flag and the /mcp URL path that both known-sdks.ts and the go-sdk CI workflow use.

Suggested fix

Minimal: update the two Go SDK blocks in the skill README to match the go-sdk CI's two-run pattern (start server with -stateless=false, run older specs, restart in stateless mode, run 2026-07-28).

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions