This is the documentation for the v2 beta — looking for the v1 documentation?
Skip to content

MCP TypeScript SDK (V2) / @modelcontextprotocol/server / server/stdio

server/stdio

Classes

StdioServerTransport

Defined in: packages/server/src/server/stdio.ts:19

Server transport for stdio: this communicates with an MCP client by reading from the current process' stdin and writing to stdout.

This transport is only available in Node.js environments.

Example

ts
const server = new McpServer({ name: 'my-server', version: '1.0.0' });
const transport = new StdioServerTransport();
await server.connect(transport);

Implements

Constructors

Constructor

new StdioServerTransport(_stdin?, _stdout?, options?): StdioServerTransport

Defined in: packages/server/src/server/stdio.ts:24

Parameters
_stdin?

Readable = process.stdin

_stdout?

Writable = process.stdout

options?
maxBufferSize?

number

Maximum size of the read buffer in bytes. If a single message exceeds this size the transport will emit an error and close.

Defaults to 10 MB.

Returns

StdioServerTransport

Properties

onclose?

optional onclose?: () => void

Defined in: packages/server/src/server/stdio.ts:40

Callback for when the connection is closed for any reason.

This should be invoked when close() is called as well.

Returns

void

Implementation of

Transport.onclose

onerror?

optional onerror?: (error) => void

Defined in: packages/server/src/server/stdio.ts:41

Callback for when an error occurs.

Note that errors are not necessarily fatal; they are used for reporting any kind of exceptional condition out of band.

Parameters
error

Error

Returns

void

Implementation of

Transport.onerror

onmessage?

optional onmessage?: (message) => void

Defined in: packages/server/src/server/stdio.ts:42

Callback for when a message (request or response) is received over the connection.

Includes the request and authInfo if the transport is authenticated.

The request can be used to get the original request information (headers, etc.)

Parameters
message

JSONRPCMessage

Returns

void

Implementation of

Transport.onmessage

Methods

_ondata()

_ondata(chunk): void

Defined in: packages/server/src/server/stdio.ts:45

Parameters
chunk

Buffer

Returns

void

_onerror()

_onerror(error): void

Defined in: packages/server/src/server/stdio.ts:54

Parameters
error

Error

Returns

void

_onstdouterror()

_onstdouterror(error): void

Defined in: packages/server/src/server/stdio.ts:57

Parameters
error

Error

Returns

void

close()

close(): Promise<void>

Defined in: packages/server/src/server/stdio.ts:95

Closes the connection.

Returns

Promise<void>

Implementation of

Transport.close

send()

send(message): Promise<void>

Defined in: packages/server/src/server/stdio.ts:119

Sends a JSON-RPC message (request or response).

If present, relatedRequestId is used to indicate to the transport which incoming request to associate this outgoing message with.

Parameters
message

JSONRPCMessage

Returns

Promise<void>

Implementation of

Transport.send

start()

start(): Promise<void>

Defined in: packages/server/src/server/stdio.ts:67

Starts listening for messages on stdin.

Returns

Promise<void>

Implementation of

Transport.start