diff --git a/README.md b/README.md index 49dd6bd9..504eccc6 100644 --- a/README.md +++ b/README.md @@ -6,13 +6,14 @@ module, once it exists. --> [![PkgGoDev](https://pkg.go.dev/badge/golang.org/x/tools)](https://pkg.go.dev/github.com/modelcontextprotocol/go-sdk) -This repository contains an implementation of the official Go software -development kit (SDK) for the Model Context Protocol (MCP). +This repository contains an unreleased implementation of the official Go +software development kit (SDK) for the Model Context Protocol (MCP). -**WARNING**: The SDK is currently unstable and subject to breaking changes. -Please test it out and file bug reports or API proposals. The [TODO](#todo) -section below outlines outstanding release blockers. We aim to release a stable -version of the SDK in August, 2025. +**WARNING**: The SDK should be considered unreleased, and is currently unstable +and subject to breaking changes. Please test it out and file bug reports or API +proposals, but don't use it in real projects. See the issue tracker for known +issues and missing features. We aim to release a stable version of the SDK in +August, 2025. ## Package documentation @@ -111,18 +112,6 @@ func main() { The `examples/` directory contains more example clients and servers. -## TODO - -The following TODOs block the release of this SDK: - -- Better support for resumability in the Streamable HTTP transport: a - server-side event store and client-side retry configuration. -- OAuth support (or examples of implementing OAuth using middleware). -- Support for the changes in the - [2025-06-18](https://modelcontextprotocol.io/specification/2025-06-18/changelog) - version of the MCP spec. -- More examples and documentation. - ## Design The design doc for this SDK is at [design.md](./design/design.md), which was diff --git a/examples/hello/main.go b/examples/hello/main.go index 5f343ff9..cff4d74f 100644 --- a/examples/hello/main.go +++ b/examples/hello/main.go @@ -30,8 +30,6 @@ func SayHi(ctx context.Context, ss *mcp.ServerSession, params *mcp.CallToolParam }, nil } -// TODO(jba): it should be OK for args to be a pointer, but this fails in -// jsonschema. Needs investigation. func PromptHi(ctx context.Context, ss *mcp.ServerSession, params *mcp.GetPromptParams) (*mcp.GetPromptResult, error) { return &mcp.GetPromptResult{ Description: "Code review prompt", diff --git a/internal/readme/README.src.md b/internal/readme/README.src.md index 337cb180..9938366e 100644 --- a/internal/readme/README.src.md +++ b/internal/readme/README.src.md @@ -5,13 +5,14 @@ module, once it exists. --> [![PkgGoDev](https://pkg.go.dev/badge/golang.org/x/tools)](https://pkg.go.dev/github.com/modelcontextprotocol/go-sdk) -This repository contains an implementation of the official Go software -development kit (SDK) for the Model Context Protocol (MCP). +This repository contains an unreleased implementation of the official Go +software development kit (SDK) for the Model Context Protocol (MCP). -**WARNING**: The SDK is currently unstable and subject to breaking changes. -Please test it out and file bug reports or API proposals. The [TODO](#todo) -section below outlines outstanding release blockers. We aim to release a stable -version of the SDK in August, 2025. +**WARNING**: The SDK should be considered unreleased, and is currently unstable +and subject to breaking changes. Please test it out and file bug reports or API +proposals, but don't use it in real projects. See the issue tracker for known +issues and missing features. We aim to release a stable version of the SDK in +August, 2025. ## Package documentation @@ -40,18 +41,6 @@ with its client over stdin/stdout: The `examples/` directory contains more example clients and servers. -## TODO - -The following TODOs block the release of this SDK: - -- Better support for resumability in the Streamable HTTP transport: a - server-side event store and client-side retry configuration. -- OAuth support (or examples of implementing OAuth using middleware). -- Support for the changes in the - [2025-06-18](https://modelcontextprotocol.io/specification/2025-06-18/changelog) - version of the MCP spec. -- More examples and documentation. - ## Design The design doc for this SDK is at [design.md](./design/design.md), which was diff --git a/mcp/tool.go b/mcp/tool.go index 1f6da53e..56129a0a 100644 --- a/mcp/tool.go +++ b/mcp/tool.go @@ -26,13 +26,13 @@ type ToolHandlerFor[In, Out any] func(context.Context, *ServerSession, *CallTool // A rawToolHandler is like a ToolHandler, but takes the arguments as as json.RawMessage. type rawToolHandler = func(context.Context, *ServerSession, *CallToolParamsFor[json.RawMessage]) (*CallToolResult, error) -// A Tool is a tool definition that is bound to a tool handler. +// A ServerTool is a tool definition that is bound to a tool handler. type ServerTool struct { Tool *Tool Handler ToolHandler - // Set in NewServerTool or Server.AddToolsErr. + // Set in NewServerTool or Server.addToolsErr. rawHandler rawToolHandler - // Resolved tool schemas. Set in Server.AddToolsErr. + // Resolved tool schemas. Set in Server.addToolsErr. inputResolved, outputResolved *jsonschema.Resolved } diff --git a/mcp/transport.go b/mcp/transport.go index 8498eb39..0fadca33 100644 --- a/mcp/transport.go +++ b/mcp/transport.go @@ -26,7 +26,7 @@ var ErrConnectionClosed = errors.New("connection closed") // and server. // // Transports should be used for at most one call to [Server.Connect] or -// [Client.Start]. +// [Client.Connect]. type Transport interface { // Connect returns the logical JSON-RPC connection.. //