MCP Transports
A transport is the pipe an MCP server and client talk through. The protocol is
the same in every case — JSON-RPC 2.0 messages — but how those messages travel
decides where the server can run, how many clients it can serve at once, whether
it has sessions, and what securing it involves. TMS AI Studio ships four server
transports (STDIO, Named Pipe, SSE, Streamable HTTP), four matching client
transports, and a standalone HTTP server the HTTP transports build on.
Documentation
Start here
Use when
Getting started
You want a server reachable by a client.
User guide
You want task-oriented chapters grouped by feature area.
API reference
You want exact class, property, method, and event contracts.
Release notes
You want the version history for this component.
Key classes
Class
Role
TTMSMCPTransport
Abstract base. Defines Start, Stop, Run, session enumeration, and notification delivery.
TTMSMCPStdioTransport
Standard input/output. The default when no transport is assigned.
TTMSMCPNamedPipeTransport
Windows named pipe, local or across machines.
TTMSMCPSseTransport
HTTP with Server-Sent Events, using separate SSE and message endpoints.
TTMSMCPStreamableHTTPTransport
The current HTTP transport: one endpoint, sessions, TLS, CORS, and OAuth 2.1.
TTMSMCPHTTPServer
The HTTP server the two HTTP transports are built on.
TTMSMCPClientTransport
Base class for the client-side transports.
TTMSMCPClientTransportSTDIO
Client side of STDIO — launches a server process and talks to it.
TTMSMCPClientTransportHTTP
Client side of Streamable HTTP.
TTMSMCPClientTransportSSE
Client side of SSE.
TTMSMCPAccessTokenValidation
The outcome of validating a bearer token: validity, subject, client, scopes, expiry, and error detail.
Minimal example
procedure TServerApp.Run;
var
Server: TTMSMCPServer;
Transport: TTMSMCPStdioTransport;
begin
Server := TTMSMCPServer.Create(nil);
try
Server.ServerName := 'InventoryServer';
Server.ServerVersion := '1.0.0';
RegisterTools(Server);
Transport := TTMSMCPStdioTransport.Create(Server);
Server.Transport := Transport;
Server.Start;
{ Blocks, pumping messages until stdin closes. }
Transport.Run;
finally
Server.Free;
end;
end;
Choosing one
Transport
Reach
Sessions
Typical use
STDIO
The process that launched the server
No
A desktop AI assistant launching your executable.
Named Pipe
Local machine, or a named machine
No
A running desktop application exposed to a local client.
SSE
Network
Limited
Clients that expect the earlier two-endpoint HTTP shape.
Streamable HTTP
Network
Yes
A hosted, multi-client server. The current HTTP choice.
API map
Role
Types
Server transports
TTMSMCPTransport, TTMSMCPStdioTransport, TTMSMCPNamedPipeTransport, TTMSMCPSseTransport, TTMSMCPStreamableHTTPTransport
Client transports
TTMSMCPClientTransport, TTMSMCPClientTransportSTDIO, TTMSMCPClientTransportHTTP, TTMSMCPClientTransportSSE
HTTP plumbing
TTMSMCPHTTPServer, TTMSMCPHTTPServerRequest, TTMSMCPHTTPServerResponse, TTMSMCPHTTPServerConnection, TTMSMCPHTTPServerHeaders, TTMSMCPHTTPServerMethod
Authentication
TTMSMCPAccessTokenValidation, TTMSMCPValidateAccessTokenEvent
Message events
TTMSMCPTransportProcessMessageEvent, TTMSMCPTransportSessionCreatedEvent, TTMSMCPTransportSessionRemovedEvent
HTTP header events
TTMSMCPGetCustomHeaderEvent, TTMSMCPSetCustomHeaderEvent
Stream payloads
TTMSMCPSSEMessage, TTMSMCPStreamableHTTPMessage
Guides
Guide
Covers
Choosing a transport
What each transport can and cannot do, STDIO and Named Pipe in detail, the client side, and error reporting and diagnostics.
HTTP transports
Streamable HTTP and SSE: endpoints, TLS, sessions, CORS, public host, custom headers, and bearer authentication.
See Also