rstream CLI, local MCP server, and Go SDK for secure outbound-only tunnels.
- ✓Open-source license (Apache-2.0)
- ✓Actively maintained (<30d)
- ✓Clear description
- ✓Topics declared
- ✓Mature repo (>1y old)
- ✓Documented (README)
git clone https://github.com/rstreamlabs/rstream-go{
"mcpServers": {
"rstream-go": {
"command": "rstream-go"
}
}
}Resumen de MCP Servers
# rstream-go
`rstream-go` is the Go SDK for **rstream**, a secure connectivity platform built around a globally distributed edge network and lightweight agents. Agents maintain outbound-only tunnels from local and private environments, while the edge network authenticates traffic, enforces access policy, and routes requests to upstream services. rstream supports HTTP and non-HTTP workloads and provides end-to-end visibility through connection logs and metrics.
The Go SDK is the **reference implementation**. It covers the broadest rstream API surface and is the most complete SDK in terms of protocol support and tunnel lifecycle features. The rstream CLI is implemented in Go and lives in this repository, so the SDK and CLI share the same configuration model and operational behavior.
Looking for native integration? The C++ SDK is available at https://github.com/rstreamlabs/rstream-cpp.
## What is a tunnel?
A tunnel is a secure way to expose services without requiring inbound ports, public IPs, or NAT changes. In rstream, tunnels are established **outbound** to the edge network, reducing exposure while keeping access controllable and observable.
When you create a **published** tunnel with rstream, you get a forwarding address that routes inbound traffic to a local service. For example, a tunnel for `localhost:8080` provides a forwarding address like `https://abc123.rstream.io` that forwards HTTP requests to local port 8080.
## How rstream works
rstream establishes outbound tunnels between environments running services or devices and the rstream edge network. Clients connect to the edge using a forwarding address for published tunnels or a tunnel identifier for private tunnels. The edge authenticates the connection, applies policy, and forwards traffic through the existing tunnel path to the upstream service.
Tunnel transports are encrypted, and edge enforcement decisions are surfaced through logs and metrics.
## Tunnel types
rstream supports two fundamental tunnel types:
**Bytestream tunnels** (TCP-like) provide reliable, ordered transmission for protocols such as HTTP and TLS, as well as custom bytestream services.
**Datagram tunnels** (UDP-like) provide low-latency, message-oriented communication for protocols such as QUIC and DTLS, as well as custom datagram services.
## Published vs private tunnels
**Published tunnels** are accessible via standard clients (browsers, curl, etc.) through forwarding addresses. Published tunnels can be configured with edge authentication and access policies depending on protocol and deployment.
**Private tunnels** require an rstream client to connect. Private tunnels are accessed by name (if specified) or by ID through the rstream dialer instead of a public forwarding address.
## Use cases
**Local development**: Expose a local service for testing, demos, and collaboration without changing network configuration.
**Fleet operations**: Provide controlled access to devices and machines across environments with consistent identity, policy, and observability.
**Infrastructure and platforms**: Use rstream as a connectivity layer for internal tools, CI workflows, and production access paths.
**Generative AI workflows**: Distribute work across fleets of runners or machines while keeping access scoped and auditable.
**Real-time systems**: Support low-latency traffic patterns for telemetry, streaming, and datagram workloads.
## Supported features
**Core tunneling**: Create tunnels for TCP-like and UDP-like workloads with outbound-only connectivity.
**Multi-protocol support**: HTTP (1.1, 2, 3), TLS, DTLS, QUIC, plus WebSocket and WebTransport in HTTP tunnels.
**Access control**: IP restrictions, GeoIP policies, mutual TLS, token-based access, and account-based access depending on tunnel configuration.
**Operational visibility**: Connection logs and metrics for traffic, enforcement decisions, and performance signals.
**Transport configuration**: IPv4/IPv6 selection, DNS override, interface binding, HTTP CONNECT proxy support, SOCKS5 proxy support, and MASQUE proxy support for QUIC transport.
**Resilience**: Long-lived agents, reconnect behavior, and transport-level multiplexing for stable connectivity.
## Supported protocols
**HTTP protocols**: HTTP/1.1, HTTP/2 (H2C), HTTP/3 with WebSocket and WebTransport support.
**Secure transports**: TLS- and QUIC-based transports for agent-to-edge connectivity, plus DTLS and QUIC as published tunnel protocols when enabled by the deployment.
**Network options**: IPv4/IPv6, MPTCP, HTTP CONNECT, SOCKS5, MASQUE CONNECT-UDP for QUIC transport, and custom DNS resolution.
## Compatibility
rstream is compatible with Linux, macOS and Windows. Additionally, rstream supports other UNIX systems such as FreeBSD, OpenBSD and NetBSD through manual installation.
## Installation (rstream CLI)
The installation paths in this section install the `rstream` CLI binary and its runtime dependencies. They do not install the Go SDK as a library dependency.
### Local build
To build the CLI locally from this repository on the current platform, run:
```bash
make
```
### Debian/Ubuntu
For Debian-based distributions, the installer deploys packaged CLI binaries and dependencies:
```bash
sudo /bin/bash -i -c "$(curl -fsSL https://rstream.io/scripts/install-debian.sh)"
```
### macOS
On macOS, the Homebrew tap provides the standard CLI installation path:
```bash
brew tap rstreamlabs/rstream && brew install rstream
```
### Windows
On Windows, add the `rstream` source once from an elevated terminal and install with `winget`:
```powershell
winget source add -n rstream -a https://winget.rstream.io/api -t Microsoft.Rest
winget install rstream
```
If `winget` is not available, use the PowerShell installer:
```powershell
& { Invoke-Expression ([System.Text.Encoding]::UTF8.GetString((Invoke-WebRequest -Uri 'https://rstream.io/scripts/install.ps1' -UseBasicParsing).Content)) }
```
### Manual installation
For generic environments, use the manual installer script for the CLI binary:
```bash
/bin/bash -i -c "$(curl -fsSL https://rstream.io/scripts/install.sh)"
```
### Docker
If you run the CLI in containers, pull the public image:
```bash
docker pull rstream/rstream:latest
```
## Authentication
The standard developer-machine path is browser-based login:
```bash
rstream login
```
This uses OAuth 2.0 Device Authorization Grant by default. The legacy rstream login flow remains available for compatibility checks with `rstream login --auth-flow legacy`.
If this is a new rstream account, the browser step opened by `rstream login` is also where the user signs up or signs in and approves CLI access.
Codex can start the same flow through local MCP after `rstream codex setup`: `rstream_auth_start` returns the approval URL, and `rstream_auth_poll` stores the approved token locally without returning it to the prompt. The approval code is only returned separately when the provider cannot embed it in the URL. The default MCP login scope is limited; when the user explicitly asks Codex to create projects or change project settings, `rstream_auth_start` can request a broader `permissions` array and the hosted approval page shows that elevated grant.
For advanced authentication modes (token-based login, remote device flows, and project-scoped contexts), see [docs/001-cli-workflow.md](docs/001-cli-workflow.md).
Before running SDK examples, ensure a project context is set up with the CLI (`rstream project use <project-endpoint>`). The SDK and CLI share the same configuration model and config file.
For agent and CI checks, run:
```bash
rstream doctor -o json
```
The diagnostic output covers config, context, token claims, Control plane API authentication, project resolution, DNS, TLS, and engine inventory without printing secrets.
## Environment variables
These variables are shared across CLI and SDK configuration resolution. Prefer configuration contexts for regular usage, and use overrides for automation or constrained environments.
- `RSTREAM_CONFIG`: Override the CLI config file path.
- `RSTREAM_CONTEXT`: Select the context by name.
- `RSTREAM_ENGINE`: Override the engine URL used for Engine API operations.
- `RSTREAM_AUTHENTICATION_TOKEN`: Override the authentication token.
- `RSTREAM_MTLS_CERT_FILE`: Client certificate file for mTLS agent authentication.
- `RSTREAM_MTLS_KEY_FILE`: Client private key file for mTLS agent authentication.
- `RSTREAM_API_URL`: Override the Control plane API URL.
- `RSTREAM_REGION`: Select an authorized region for a managed project.
- `RSTREAM_CONTROL_PLANE_HEADERS`: Add Control plane request headers as a JSON object.
Resolution behavior follows the same model used by `config.NewClientFromEnv()`: explicit SDK options are evaluated first, then environment overrides, then context/environment values from the config file. `RSTREAM_CONFIG` selects the config file path before fallback to the default config location. Token authentication and mTLS agent authentication are mutually exclusive for the control-channel connection. When the mTLS certificate and key variables are set, config-derived tokens are not used for that connection; setting mTLS variables together with `RSTREAM_AUTHENTICATION_TOKEN` is an error. Engine HTTP API requests use token authentication.
Region selection requires a managed project endpoint and cannot be combined
with an explicit engine override. Control plane headers are intended for an
additional deployment access layer. Authentication, forwarding, and hop-by-hop
headers are reserved; malformed values and case-insensitive duplicates are
rejected before network I/O.
## Usage
### Basic HTTP tunnel
Use this command to publish a local HTTP service with default protocol and publication settings.
```bash
# Create an HTTP tunnel for local port 8080 (default: HTTP protocol, published)
rstream forward 8080
```
This command creates a public HTTP tunnel and displays the forwarding address (e.g., `https://abc123.rstreamLo que la gente pregunta sobre rstream-go
¿Qué es rstreamlabs/rstream-go?
+
rstreamlabs/rstream-go es mcp servers para el ecosistema de Claude AI. rstream CLI, local MCP server, and Go SDK for secure outbound-only tunnels. Tiene 1 estrellas en GitHub y su última actualización registrada es del 2026-08-05.
¿Cómo se instala rstream-go?
+
Puedes instalar rstream-go clonando el repositorio (https://github.com/rstreamlabs/rstream-go) o siguiendo las instrucciones del README en GitHub. ClaudeWave también te ofrece bloques de instalación rápida en esta misma página.
¿Es seguro usar rstreamlabs/rstream-go?
+
Nuestro agente de seguridad ha analizado rstreamlabs/rstream-go y le ha asignado un Trust Score de 100/100 (tier: Verified). Revisa el desglose completo de comprobaciones superadas y flags en esta página.
¿Quién mantiene rstreamlabs/rstream-go?
+
rstreamlabs/rstream-go es mantenido por rstreamlabs. La última actividad registrada en GitHub es del 2026-08-05, con 1 issues abiertos.
¿Hay alternativas a rstream-go?
+
Sí. En ClaudeWave puedes explorar mcp servers similares en /categories/mcp, ordenados por popularidad o actividad reciente.
Despliega rstream-go en tu cloud
Lleva este repo a producción en minutos. Cada plataforma genera su propio entorno con variables de entorno editables.
¿Mantienes este repo? Añade un badge a tu README
Pega el badge en tu README de GitHub para mostrar que está auditado por ClaudeWave. Cada badge enlaza de vuelta a esta página y muestra el Trust Score actual.
[](https://claudewave.com/repo/rstreamlabs-rstream-go)<a href="https://claudewave.com/repo/rstreamlabs-rstream-go"><img src="https://claudewave.com/api/badge/rstreamlabs-rstream-go" alt="Featured on ClaudeWave: rstreamlabs/rstream-go" width="320" height="64" /></a>Más MCP Servers
Fair-code workflow automation platform with native AI capabilities. Combine visual building with custom code, self-host or cloud, 400+ integrations.
User-friendly AI Interface (Supports Ollama, OpenAI API, ...)
An open-source AI agent that brings the power of Gemini directly into your terminal.
The fastest path to AI-powered full stack observability, even for lean teams.
Real-time global intelligence dashboard. AI-powered news aggregation, geopolitical monitoring, and infrastructure tracking in a unified situational awareness interface
🕷️ An adaptive Web Scraping framework that handles everything from a single request to a full-scale crawl!