go-sdk/mcp
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Guglielmo Colombo dd978160ab
mcp: Implement server-side support for discover method (SEP-2575) (#987)
## Summary
Part 3 of the SEP-2575 ("Make MCP Stateless") implementation. Builds on
PR #975 which landed the client-side discover/fallback flow and the
per-request `_meta` plumbing. This PR adds the **server-side**
counterparts:

- `server/discover` handler (replaces the
stub),ProtocolVersionSupporter`
- transport hook for per-transport version filtering,
- transport-agnostic version validation and method-removal enforcement
in `ServerSession.handle`,
- HTTP-level wire compliance for SEP-2575 error codes/status codes,
- bug fix in `internal/jsonrpc2`,`processResult` with an `MCPGODEBUG`
opt-out for backward compatibility.
2026-06-08 17:52:10 +02:00
..
testdata mcp: return input validation errors as tool results, not JSON-RPC errors (#863) 2026-03-31 10:14:36 +02:00
capabilities_test.go all: clean up Go 1.24 specific code. (#850) 2026-03-20 12:28:56 +01:00
client.go mcp: Implement retry on advised supportedVersions in UnsupportedProtocolVersion error (#989) 2026-06-08 15:09:07 +02:00
client_example_test.go mcp: fix goroutine leaks in unit tests (#496) 2025-10-16 11:13:30 -04:00
client_list_test.go mcp: allow any value for schemas (#517) 2025-09-26 11:55:54 -04:00
client_test.go mcp: Implement server-side support for discover method (SEP-2575) (#987) 2026-06-08 17:52:10 +02:00
cmd.go mcp: speed up TestCommandTransportDuration 2025-09-12 12:00:29 -04:00
cmd_export_test.go mcp: speed up TestCommandTransportDuration 2025-09-12 12:00:29 -04:00
cmd_test.go all: modernize code (#868) 2026-03-31 10:58:02 +02:00
conformance_test.go all: fix typos (#869) 2026-03-30 18:43:01 +02:00
content.go all: use case-sensitive JSON unmarshaling (#807) 2026-02-18 16:38:36 +01:00
content_nil_test.go feat: multi-round-trip request implementation (SEP-2322) (#950) 2026-05-29 09:29:34 +02:00
content_test.go mcp: switch icon theme to named string type (#733) 2025-12-19 16:44:10 -05:00
elicitation_test.go all: clean up Go 1.24 specific code. (#850) 2026-03-20 12:28:56 +01:00
error_test.go mcp: align resource not found error code with sep-2164 (#931) 2026-05-05 16:20:02 +02:00
event.go mcp: use http.ResponseController to ensure writes are flushed (#870) 2026-03-31 13:13:16 +02:00
event_test.go mcp: handle empty chunks in MemoryEventStore (#862) 2026-03-27 16:58:03 +01:00
features.go mcp: minor cleanup of some TODOs (#332) 2025-08-20 12:55:19 -04:00
features_test.go mcp: change tool handler design (#325) 2025-08-20 19:36:34 -04:00
logging.go mcp: use golang.org/x/time/rate for LoggingHandler rate limiting (#927) 2026-05-06 10:31:01 +02:00
mcp.go mcp: fix inaccurate package doc (#534) 2025-09-26 14:16:10 -04:00
mcp_example_test.go docs: add feature and troubleshooting documentation (#463) 2025-09-16 11:13:40 -04:00
mcp_test.go mcp: add configurable keepalive failure threshold (#982) 2026-05-31 10:25:49 +02:00
mrtr.go feat: multi-round-trip request implementation (SEP-2322) (#950) 2026-05-29 09:29:34 +02:00
mrtr_test.go mcp: Implement server-side support for discover method (SEP-2575) (#987) 2026-06-08 17:52:10 +02:00
prompt.go mcp: align PromptHandler args with other handlers (#348) 2025-08-22 10:44:05 -04:00
protocol.go mcp: add support for logging level (SEP-2575) (#997) 2026-06-08 15:56:38 +02:00
protocol_test.go feat: multi-round-trip request implementation (SEP-2322) (#950) 2026-05-29 09:29:34 +02:00
requests.go mcp: Implement support for SEP-2575 on client side (#975) 2026-06-02 14:17:01 +02:00
resource.go mcp: align resource not found error code with sep-2164 (#931) 2026-05-05 16:20:02 +02:00
resource_test.go mcp/Resource: Refactor URI Template Matching with uritemplate Library (#100) 2025-07-08 15:52:54 -04:00
sampling_test.go mcp: simplify and unify unit tests introduced for sampling with tools. (#799) 2026-03-02 10:55:35 +01:00
schema_cache.go perf: add schema caching to avoid repeated reflection (#685) 2026-01-20 20:16:46 -05:00
schema_cache_test.go all: modernize code (#868) 2026-03-31 10:58:02 +02:00
server.go mcp: Implement server-side support for discover method (SEP-2575) (#987) 2026-06-08 17:52:10 +02:00
server_example_test.go doc: document logging (#497) 2025-09-19 11:58:58 -04:00
server_test.go mcp: Implement server-side support for discover method (SEP-2575) (#987) 2026-06-08 17:52:10 +02:00
session.go mcp: support stateless streamable sessions (#277) 2025-08-11 16:43:46 -04:00
shared.go mcp: Implement server-side support for discover method (SEP-2575) (#987) 2026-06-08 17:52:10 +02:00
shared_test.go mcp: add support for logging level (SEP-2575) (#997) 2026-06-08 15:56:38 +02:00
sse.go mcp: remove default cross origin protection (#906) 2026-04-24 11:35:22 +02:00
sse_example_test.go SSE: Add support for SSE handler options (#508) 2025-09-19 13:01:57 -04:00
sse_test.go mcp: remove default cross origin protection (#906) 2026-04-24 11:35:22 +02:00
streamable.go mcp: Implement server-side support for discover method (SEP-2575) (#987) 2026-06-08 17:52:10 +02:00
streamable_bench_test.go all: modernize code (#868) 2026-03-31 10:58:02 +02:00
streamable_client.go mcp: do not call DELETE for sessionless & doc adjustments (#960) 2026-05-15 21:47:34 +02:00
streamable_client_test.go mcp: Implement support for SEP-2575 on client side (#975) 2026-06-02 14:17:01 +02:00
streamable_example_test.go mcp: update latestProtocolVersion to 2025-11-25 (#724) 2026-03-03 10:30:11 +01:00
streamable_headers.go mcp: HTTP Header Standardization for x-mcp-header (#915) 2026-05-08 12:39:18 +02:00
streamable_headers_test.go mcp: HTTP Header Standardization for x-mcp-header (#915) 2026-05-08 12:39:18 +02:00
streamable_server.go mcp: simplify stream state management in streamable transport 2025-12-10 13:28:25 -05:00
streamable_test.go mcp: Implement server-side support for discover method (SEP-2575) (#987) 2026-06-08 17:52:10 +02:00
tool.go all: use case-sensitive JSON unmarshaling (#807) 2026-02-18 16:38:36 +01:00
tool_example_test.go mcp: allow any value for schemas (#517) 2025-09-26 11:55:54 -04:00
tool_test.go all: expose JSON-RPC error codes, and support URLElicitationRequired errors (#655) 2025-12-01 11:29:17 -05:00
transport.go mcp: Implement server-side support for discover method (SEP-2575) (#987) 2026-06-08 17:52:10 +02:00
transport_example_test.go all: clean up Go 1.24 specific code. (#850) 2026-03-20 12:28:56 +01:00
transport_test.go fix: handle Windows CRLF in MCP client(#664) (#665) 2025-12-01 12:16:39 -05:00
util.go all: use case-sensitive JSON unmarshaling (#807) 2026-02-18 16:38:36 +01:00