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
72 downloads per month
Used in 8 crates
(via turbomcp-transport)
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-traitsprovides core abstractions - Individual Transports: Each transport (stdio, http, websocket, tcp) is a separate crate
- Backward Compatibility:
turbomcp-transportre-exports all transports
License
MIT
Dependencies
~17–26MB
~365K SLoC