internal/mcp: rename StdIO->Stdio

In CL 682976, Alan Donovan correctly points out that the term in the MCP
spec is 'stdio', and therefore the correct capitalization is Stdio.

Change-Id: Ib5bbe04f1a61de886298b4d0adc13aefd6aadd9c
Reviewed-on: https://go-review.googlesource.com/c/tools/+/683075
Reviewed-by: Alan Donovan <adonovan@google.com>
Auto-Submit: Robert Findley <rfindley@google.com>
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
This commit is contained in:
Rob Findley 2025-06-20 20:14:41 +00:00 • committed by Gopher Robot
commit a590cfe063
7 changed files with 16 additions and 16 deletions

View file

@ -110,7 +110,7 @@ func main() {
server := mcp.NewServer("greeter", "v1.0.0", nil)
server.AddTools(mcp.NewServerTool("greet", "say hi", SayHi))
// Run the server over stdin/stdout, until the client disconnects
if err := server.Run(context.Background(), mcp.NewStdIOTransport()); err != nil {
if err := server.Run(context.Background(), mcp.NewStdioTransport()); err != nil {
log.Fatal(err)
}
}

View file

@ -110,16 +110,16 @@ func NewCommandTransport(cmd *exec.Command) *CommandTransport
func (*CommandTransport) Connect(ctx context.Context) (Connection, error) {
```
The `StdIOTransport` is the server side of the stdio transport, and connects by binding to `os.Stdin` and `os.Stdout`.
The `StdioTransport` is the server side of the stdio transport, and connects by binding to `os.Stdin` and `os.Stdout`.
```go
// A StdIOTransport is a [Transport] that communicates using newline-delimited
// A StdioTransport is a [Transport] that communicates using newline-delimited
// JSON over stdin/stdout.
type StdIOTransport struct { /* unexported fields */ }
type StdioTransport struct { /* unexported fields */ }
func NewStdIOTransport() *StdIOTransport
func NewStdioTransport() *StdioTransport
func (t *StdIOTransport) Connect(context.Context) (Connection, error)
func (t *StdioTransport) Connect(context.Context) (Connection, error)
```
#### HTTP transports
@ -378,7 +378,7 @@ A server that can handle that client call would look like this:
server := mcp.NewServer("greeter", "v1.0.0", nil)
server.AddTools(mcp.NewServerTool("greet", "say hi", SayHi))
// Run the server over stdin/stdout, until the client disconnects.
transport := mcp.NewStdIOTransport()
transport := mcp.NewStdioTransport()
session, err := server.Connect(ctx, transport)
...
return session.Wait()

View file

@ -68,7 +68,7 @@ func main() {
log.Printf("MCP handler listening at %s", *httpAddr)
http.ListenAndServe(*httpAddr, handler)
} else {
t := mcp.NewLoggingTransport(mcp.NewStdIOTransport(), os.Stderr)
t := mcp.NewLoggingTransport(mcp.NewStdioTransport(), os.Stderr)
if err := server.Run(context.Background(), t); err != nil {
log.Printf("Server failed: %v", err)
}

View file

@ -27,7 +27,7 @@ func main() {
server := mcp.NewServer("greeter", "v1.0.0", nil)
server.AddTools(mcp.NewServerTool("greet", "say hi", SayHi))
// Run the server over stdin/stdout, until the client disconnects
if err := server.Run(context.Background(), mcp.NewStdIOTransport()); err != nil {
if err := server.Run(context.Background(), mcp.NewStdioTransport()); err != nil {
log.Fatal(err)
}
}

View file

@ -33,7 +33,7 @@ func runServer() {
server := mcp.NewServer("greeter", "v0.0.1", nil)
server.AddTools(mcp.NewServerTool("greet", "say hi", SayHi))
if err := server.Run(ctx, mcp.NewStdIOTransport()); err != nil {
if err := server.Run(ctx, mcp.NewStdioTransport()); err != nil {
log.Fatal(err)
}
}

View file

@ -26,7 +26,7 @@
//
// A [Transport] connects a bidirectional [Connection] of jsonrpc2 messages. In
// practice, transports in the MCP spec are are either client transports or
// server transports. For example, the [StdIOTransport] is a server transport
// server transports. For example, the [StdioTransport] is a server transport
// that communicates over stdin/stdout, and its counterpart is a
// [CommandTransport] that communicates with a subprocess over its
// stdin/stdout.

View file

@ -52,9 +52,9 @@ type Connection interface {
Close() error // may be called concurrently by both peers
}
// A StdIOTransport is a [Transport] that communicates over stdin/stdout using
// A StdioTransport is a [Transport] that communicates over stdin/stdout using
// newline-delimited JSON.
type StdIOTransport struct {
type StdioTransport struct {
ioTransport
}
@ -68,10 +68,10 @@ func (t *ioTransport) Connect(context.Context) (Connection, error) {
return newIOConn(t.rwc), nil
}
// NewStdIOTransport constructs a transport that communicates over
// NewStdioTransport constructs a transport that communicates over
// stdin/stdout.
func NewStdIOTransport() *StdIOTransport {
return &StdIOTransport{ioTransport{rwc{os.Stdin, os.Stdout}}}
func NewStdioTransport() *StdioTransport {
return &StdioTransport{ioTransport{rwc{os.Stdin, os.Stdout}}}
}
// An InMemoryTransport is a [Transport] that communicates over an in-memory