24 releases (stable)

Uses new Rust 2024

new 3.1.0 Apr 20, 2026
3.0.14 Apr 15, 2026
3.0.10 Mar 27, 2026
3.0.0-exp.2 Jan 13, 2026
3.0.0-beta.5 Feb 24, 2026

#6 in #tcp-transport

Download history 4/week @ 2026-01-28 1/week @ 2026-02-04 10/week @ 2026-02-18 1/week @ 2026-02-25 80/week @ 2026-03-04 43/week @ 2026-03-11 12/week @ 2026-03-18 22/week @ 2026-03-25 13/week @ 2026-04-01 18/week @ 2026-04-08

72 downloads per month
Used in 8 crates (via turbomcp-transport)

MIT license

1MB
19K SLoC

turbomcp-tcp

TCP socket transport implementation for the TurboMCP SDK.

Overview

This crate provides TCP transport with:

  • Server Mode: Accept multiple client connections with automatic handling
  • Client Mode: Connect to a remote TCP server
  • Bidirectional Communication: Full-duplex message exchange
  • Backpressure Handling: Bounded channels prevent memory exhaustion
  • Graceful Shutdown: Clean task termination on disconnect
  • Message Framing: Uses LinesCodec for reliable newline-delimited JSON

Installation

[dependencies]
turbomcp-tcp = "3.0.2"

Or use through the main transport crate:

[dependencies]
turbomcp-transport = { version = "3.0.2", features = ["tcp"] }

Quick Start

Server Mode

use turbomcp_tcp::{TcpTransport, TcpTransportBuilder};
use turbomcp_transport_traits::Transport;
use std::net::SocketAddr;

#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
    let addr: SocketAddr = "127.0.0.1:8080".parse()?;
    let transport = TcpTransportBuilder::new()
        .bind_addr(addr)
        .build();

    transport.connect().await?; // Starts listening
    Ok(())
}

Client Mode

use turbomcp_tcp::{TcpTransport, TcpTransportBuilder};
use turbomcp_transport_traits::Transport;
use std::net::SocketAddr;

#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
    let bind_addr: SocketAddr = "127.0.0.1:0".parse()?;
    let remote_addr: SocketAddr = "127.0.0.1:8080".parse()?;

    let transport = TcpTransportBuilder::new()
        .bind_addr(bind_addr)
        .remote_addr(remote_addr)
        .build();

    transport.connect().await?;
    Ok(())
}

v3.0 Modular Architecture

This crate is part of TurboMCP v3.0's modular transport architecture:

  • Foundation: turbomcp-transport-traits provides core abstractions
  • Individual Transports: Each transport (stdio, http, websocket, tcp) is a separate crate
  • Backward Compatibility: turbomcp-transport re-exports all transports

License

MIT

Dependencies

~17–26MB
~365K SLoC