Skip to content

Go SDK — Tier 1 Assessment #2279

@maciej-kisiel

Description

@maciej-kisiel

MCP SDK Tier Audit: modelcontextprotocol/go-sdk

Date: 2026-02-27
Branch: main
Release: v1.4.0
Auditor: mcp-sdk-tier-audit skill (automated + subagent evaluation)

Tier Assessment: Tier 1

The Go SDK is a Tier 1 implementation with excellent conformance (100% server, 100% client on date-versioned specs) and operational metrics (triage, P0 resolution).

Requirements Summary

# Requirement Tier 1 Standard Tier 2 Standard Current Value T1? T2? Gap
1a Server Conformance 100% pass rate >= 80% pass rate 100% (30/30) PASS PASS None
1b Client Conformance 100% pass rate >= 80% pass rate 100% (20/20) PASS PASS None
2 Issue Triage >= 90% within 2 biz days >= 80% within 1 month 97.6% (41/42) PASS PASS None
2b Labels 12 required labels 12 required labels 9/12 PASS* PASS* Missing 3 labels
3 Critical Bug Resolution All P0s within 7 days All P0s within 2 weeks 0 open PASS PASS None
4 Stable Release Required + clear versioning At least one stable release 1.4.0 PASS PASS None
4b Spec Tracking Timeline agreed per release Within 6 months 17d gap (PASS) PASS PASS None
5 Documentation Comprehensive w/ examples Basic docs for core features 48/48 features PASS PASS None
6 Dependency Policy Published update policy Published update policy Found (.github/dependabot.yml) PASS PASS None
7 Roadmap Published roadmap Plan toward Tier 1 Found (ROADMAP.md) PASS PASS None
8 Versioning Policy Documented breaking change policy N/A Found (CONTRIBUTING.md) PASS N/A Missing policy doc

* Labels check failed for "bug", "enhancement" and "question", because we use GitHub issue types.

Tier Determination

  • Tier 1: PASS -- 10/10 requirements met
  • Tier 2: PASS -- 9/9 requirements met
  • Final Tier: 1

Server Conformance Details

Pass rate: 100% (30/30)

Scenario Status Checks
server-tools-list PASS 1/1
server-tools-call-with-progress PASS 1/1
server-tools-call-with-logging PASS 1/1
server-tools-call-simple-text PASS 1/1
server-tools-call-sampling PASS 1/1
server-tools-call-mixed-content PASS 1/1
server-tools-call-image PASS 1/1
server-tools-call-error PASS 1/1
server-tools-call-embedded-resource PASS 1/1
server-tools-call-elicitation PASS 1/1
server-tools-call-audio PASS 1/1
server-server-sse-multiple-streams PASS 2/2
server-server-initialize PASS 1/1
server-resources-unsubscribe PASS 1/1
server-resources-templates-read PASS 1/1
server-resources-subscribe PASS 1/1
server-resources-read-text PASS 1/1
server-resources-read-binary PASS 1/1
server-resources-list PASS 1/1
server-prompts-list PASS 1/1
server-prompts-get-with-image PASS 1/1
server-prompts-get-with-args PASS 1/1
server-prompts-get-simple PASS 1/1
server-prompts-get-embedded-resource PASS 1/1
server-ping PASS 1/1
server-logging-set-level PASS 1/1
server-elicitation-sep1330-enums PASS 5/5
server-elicitation-sep1034-defaults PASS 5/5
server-dns-rebinding-protection PASS 2/2
server-completion-complete PASS 1/1

Client Conformance Details

Full suite pass rate: 87.5% (21/24)
Date-versioned (Tier 1) pass rate: 100% (20/20)

Suite breakdown: Core: 3/3 (100%), Auth: 18/21 (85.7%)
Baseline: 0 known expected failures documented in baseline.yml

Core Scenarios

Scenario Status Checks
tools_call PASS 1/1
sse-retry PASS 3/3
initialize PASS 1/1
elicitation-sep1034-client-defaults PASS 5/5

Auth Scenarios

Scenario Status Checks Notes
auth/token-endpoint-auth-post PASS 20/20
auth/token-endpoint-auth-none PASS 20/20
auth/token-endpoint-auth-basic PASS 20/20
auth/scope-step-up PASS 20/20
auth/scope-retry-limit PASS 17/17
auth/scope-omitted-when-undefined PASS 16/16
auth/scope-from-www-authenticate PASS 16/16
auth/scope-from-scopes-supported PASS 16/16
auth/resource-mismatch PASS 3/3 draft (ignored for tier)
auth/pre-registration PASS 15/15
auth/metadata-var3 PASS 15/15
auth/metadata-var2 PASS 15/15
auth/metadata-var1 PASS 15/15
auth/metadata-default PASS 15/15
auth/cross-app-access-complete-flow FAIL 0/2 extension (ignored for tier)
auth/client-credentials-jwt FAIL 0/1 extension (ignored for tier)
auth/client-credentials-basic FAIL 0/1 extension (ignored for tier)
auth/basic-cimd PASS 15/15
auth/2025-03-26-oauth-metadata-backcompat PASS 13/13
auth/2025-03-26-oauth-endpoint-fallback PASS 7/7

Issue Triage Details

Analysis period: Last 42 issues
Labels: needs confirmation, needs repro, ready for work, good first issue, help wanted, P0, P1, P2, P3
Missing: bug, enhancement, question

This is fine, because we use GitHub issue types for those, as allowed by the Tiering proposal. For some reason the tool doesn't detect that.

Metric Value T1 Req T2 Req Verdict
Compliance rate 97.6% >= 90% >= 80% PASS
Exceeding SLA 0 -- -- --
Open P0s 0 0 0 PASS

Documentation Coverage

Documentation locations found:

  • README.md: Main documentation with examples
  • docs/: Detailed feature documentation (server.md, client.md, protocol.md)
  • examples/: Extensive example implementations

Feature Documentation Table

One row per feature from references/feature-list.md. Use the exact feature numbers and names from that file.

# Feature Documented? Where Has Examples? Verdict
1 Tools - listing Yes docs/server.md:247 Yes (2 examples) PASS
2 Tools - calling Yes docs/server.md:255 Yes (2 examples) PASS
3 Tools - text results Yes docs/server.md:290 Yes (1 example) PASS
4 Tools - image results Yes docs/server.md:290 Yes (1 example) PASS
5 Tools - audio results Yes docs/server.md:290 Yes (1 example) PASS
6 Tools - embedded resources Yes docs/server.md:290 Yes (1 example) PASS
7 Tools - error handling Yes docs/server.md:292 Yes (1 example) PASS
8 Tools - change notifications Yes docs/server.md:252 Yes (1 example) PASS
9 Resources - listing Yes docs/server.md:127 Yes (2 examples) PASS
10 Resources - reading text Yes docs/server.md:122 Yes (2 examples) PASS
11 Resources - reading binary Yes docs/server.md:155 Yes (1 example) PASS
12 Resources - templates Yes docs/server.md:117 Yes (1 example) PASS
13 Resources - template reading Yes docs/server.md:125 Yes (1 example) PASS
14 Resources - subscribing Yes docs/server.md:136 Yes (1 example) PASS
15 Resources - unsubscribing Yes docs/server.md:140 Yes (1 example) PASS
16 Resources - change notifications Yes docs/server.md:133 Yes (1 example) PASS
17 Prompts - listing Yes docs/server.md:22 Yes (2 examples) PASS
18 Prompts - getting simple Yes docs/server.md:30 Yes (2 examples) PASS
19 Prompts - getting with arguments Yes docs/server.md:32 Yes (1 example) PASS
20 Prompts - embedded resources Yes docs/server.md:54 Yes (1 example) PASS
21 Prompts - image content Yes docs/server.md:54 Yes (1 example) PASS
22 Prompts - change notifications Yes docs/server.md:27 Yes (1 example) PASS
23 Sampling - creating messages Yes docs/client.md:88 Yes (1 example) PASS
24 Elicitation - form mode Yes docs/client.md:195 Yes (1 example) PASS
25 Elicitation - URL mode Yes docs/client.md:136 Yes (1 example) PASS
26 Elicitation - schema validation Yes docs/client.md:135 Yes (1 example) PASS
27 Elicitation - default values Yes docs/client.md:193 Yes (1 example) PASS
28 Elicitation - enum values Yes docs/client.md:165 Yes (1 example) PASS
29 Elicitation - complete notification Yes docs/client.md:157 Yes (1 example) PASS
30 Roots - listing Yes docs/client.md:26 Yes (1 example) PASS
31 Roots - change notifications Yes docs/client.md:23 Yes (1 example) PASS
32 Logging - sending log messages Yes docs/server.md:483 Yes (1 example) PASS
33 Logging - setting level Yes docs/server.md:478 Yes (1 example) PASS
34 Completions - resource argument Yes docs/server.md:449 Yes (1 example) PASS
35 Completions - prompt argument Yes docs/server.md:447 Yes (1 example) PASS
36 Ping Yes docs/protocol.md:477 Yes (1 example) PASS
37 Streamable HTTP transport (client) Yes docs/protocol.md:176 Yes (1 example) PASS
38 Streamable HTTP transport (server) Yes docs/protocol.md:147 Yes (1 example) PASS
39 SSE transport - legacy (client) Yes docs/protocol.md:136 Yes (1 example) PASS
40 SSE transport - legacy (server) Yes docs/protocol.md:136 Yes (1 example) PASS
41 stdio transport (client) Yes docs/protocol.md:125 Yes (1 example) PASS
42 stdio transport (server) Yes docs/protocol.md:130 Yes (1 example) PASS
43 Progress notifications Yes docs/protocol.md:493 Yes (1 example) PASS
44 Cancellation Yes docs/protocol.md:405 Yes (1 example) PASS
45 Pagination Yes docs/server.md:605 Yes (1 example) PASS
46 Capability negotiation Yes docs/server.md:558 Yes (1 example) PASS
47 Protocol version negotiation Yes README.md:33 Yes (1 example) PASS
48 JSON Schema 2020-12 support Yes docs/server.md:315 Yes (1 example) PASS
Tasks - get (experimental) No Not implemented No INFO
Tasks - result (experimental) No Not implemented No INFO
Tasks - cancel (experimental) No Not implemented No INFO
Tasks - list (experimental) No Not implemented No INFO
Tasks - status notifications (experimental) No Not implemented No INFO

Summary

Total non-experimental features: 48
PASS (documented with examples): 48/48
PARTIAL (documented, no examples): 0/48
FAIL (not documented): 0/48

Core features documented: 36/36 (100%)
All features documented with examples: 48/48 (100%)

Tier Verdicts

Tier 1 (all non-experimental features documented with examples): PASS

Tier 2 (basic docs covering core features): PASS


Policy Evaluation

Policy Evaluation Assessment

Repository: modelcontextprotocol/go-sdk


1. Dependency Update Policy: PASS

File Exists (CLI) Content Verdict
DEPENDENCY_POLICY.md No N/A
docs/dependency-policy.md No N/A
.github/dependabot.yml Yes Configured
.github/renovate.json No N/A

Verdict: PASS — Automated tooling (.github/dependabot.yml) is configured – for updating GitHub actions.
As for dependencies, we have a "Adding and updating dependencies" section in CONTRIBUTING.md that defines our policy. Generally, we try to update the dependencies after every release.

We also have the Go version support policy documented in README.md, "Version compatibility" section.


2. Roadmap: PASS

File Exists (CLI) Content Verdict
ROADMAP.md Yes Substantive
docs/roadmap.md No N/A

Verdict:

  • Tier 1: PASS — Concrete tracking of SEP-1730, SEP-1577, etc.
  • Tier 2: PASS — Plan toward Tier 1 exists.

3. Versioning Policy: PASS

File Exists (CLI) Content Verdict
VERSIONING.md No N/A
docs/versioning.md No N/A
BREAKING_CHANGES.md No N/A
CONTRIBUTING.md (versioning section) Yes Not found

Verdict:

Go uses semantic versioning by default: https://go.dev/doc/modules/version-numbers. No additional policies are needed.


Overall Policy Summary

Policy Area Tier 1 Tier 2
Dependency Update Policy PASS PASS
Roadmap PASS PASS
Versioning Policy PASS N/A

Metadata

Metadata

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions