Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
25 changes: 7 additions & 18 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand Down Expand Up @@ -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
Expand Down
2 changes: 0 additions & 2 deletions examples/hello/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -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",
Expand Down
25 changes: 7 additions & 18 deletions internal/readme/README.src.md
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand Down Expand Up @@ -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
Expand Down
6 changes: 3 additions & 3 deletions mcp/tool.go
Original file line number Diff line number Diff line change
Expand Up @@ -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
}

Expand Down
2 changes: 1 addition & 1 deletion mcp/transport.go
Original file line number Diff line number Diff line change
Expand Up @@ -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..
//
Expand Down
Loading