
Rlg Mcp
io.github.sebastienrousseauPublished by GitHub account sebastienrousseauv0.0.18Updated Nov 7, 2026
MCP server exposing rlg log streams to LLM agents via JSON-RPC 2.0 over stdio.
Overview
MCP server that exposes rlg structured log streams to AI agents over stdio, letting an assistant read and work with application logs.
- What you can do
- Read and query rlg log streams through the server's tools, prompt and resources
- Work with records produced by the rlg logging engine, which formats them as JSON, ECS, logfmt and other formats
- Support agent-side triage of production logs alongside the rlg-cli filter and rlg-report summary tools
- Serve the same log data over stdio, streamable HTTP or HTTP+SSE
- When to use it
- Useful when you already log with the rlg Rust library and want an assistant to inspect those records during debugging or on-call triage. Not needed for low-volume logging or if you rely on span-based tracing instead.
- Requirements
- Runs as a local process on the user's machine, installed via cargo install rlg-mcp or the published container image. Building from source needs Rust 1.89.0 or newer; native sinks target macOS or Linux. No authentication, environment variables or headers are declared.
Installation
In SourceWeft
- Open Rlg Mcp in the dashboard and add it to a workspace.
- Enable the server for the chats that should use its tools.
Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.
Other MCP clients
Follow the launch instructions in the repository.
README
rlg
Near-lock-free structured logging for Rust: records leave the application thread with a few atomic operations and are formatted and written by a background flusher.
[Build] [Registry] [Docs] [OpenSSF Scorecard] [OpenSSF Best Practices] [License: Apache-2.0 OR MIT] [Minimum supported Rust version 1.89.0]
Contents
Getting started
- Install — Cargo for the libraries,
cargo installfor the CLIs and the MCP server - Requirements — toolchain floor, platforms
- Quick Start — one structured record, fired and flushed
The rlg ecosystem
- The rlg ecosystem —
rlg,rlg-cli,rlg-report,rlg-mcp,rlg-otlp,rlg-redact,rlg-tower,rlg-test,rlg-wasm,rlg-ebpf
Library reference
- Capabilities at a glance — the current surface by theme
- Ecosystem comparison — short matrix; full table at
docs/COMPARISON.md - Benchmarks — headline numbers; full table at
docs/BENCHMARKS.md - Features — module-level capability list
- Configuration — core options
- Examples — runnable example index
Operational
- When not to use rlg — limitations
- Development — make targets, fuzzing, CI
- Security — guarantees and compliance
- Documentation — all reference docs
- Stability guarantees — SemVer axis, output stability, minimum toolchain discipline
- License
Install
As a Rust library
Satellites install the same way, all at the same version:
Command-line tools
From a checkout, make install builds the three binaries and installs
them with their manpages and bash, zsh and fish completions under
/usr/local (PREFIX and DESTDIR are honoured; make uninstall
reverses it). The binaries generate both themselves:
rlg --manpage > rlg.1, rlg --completions zsh > _rlg.
rlg-mcp is also published as a container image,
ghcr.io/sebastienrousseau/rlg-mcp, and listed in the MCP registry.
Requirements
- Rust 1.89.0 or newer (edition 2024). CI builds every library and binary on 1.89.0; see the toolchain policy.
- macOS or Linux for the native sinks (
os_log,journald). Everywhere else, including Windows, rlg writes to a file or stdout.
Quick Start
fire() checks the level, pushes the record into a ring buffer and
returns; the flusher thread formats it as JSON and writes it to the
platform sink. This block is compiled and run by cargo test.
The rlg ecosystem
Ten crates at lockstep version 0.0.18, released together.
Capabilities at a glance
Ecosystem comparison
rlg trades tracing's span model for an event-only engine that keeps
formatting and I/O off the application thread and ships native sinks,
many formats and an agent interface in the box.
See docs/COMPARISON.md for the evidence and complete matrix.
Benchmarks
The competitive_bench suite times rlg's fire() against
tracing::info! and log::info! for single records, records with
attributes, 10,000-record bursts and latency distribution. It runs in
CI on every release tag, and its results are published as workflow
artifacts.
On the calling thread rlg now costs about what tracing costs, without
formatting there; what it buys is that the caller never waits on the
sink's I/O.
See docs/BENCHMARKS.md for methodology and full results.
Features
Everything optional is off by default.
Configuration
Config loads from TOML, validates, and creates the log paths it needs.
Load it with Config::load(Some("rlg.toml")), or with the tokio
feature Config::load_async, and follow edits with
Config::hot_reload_async. RUST_LOG sets the level too. The
crate README lists every field.
Examples
CI runs every example on each pull request (examples-smoke.yml), except
example_config and example_utils, async demos whose behaviour the
crate's own tests cover.
When not to use rlg
- Low volume. Below about a hundred records a second, a background thread and a 65k-slot buffer buy nothing a synchronous logger does not already give you.
- Spans are your model. rlg records events. If hierarchical spans are
what you analyse, use
tracingdirectly; rlg's layer only bridges its events. - Windows Event Log. There is no native Windows sink; rlg writes to a file or stdout there.
- Every record must survive a crash. Records wait in memory until the
flusher writes them; a process killed before the
FlushGuarddrops loses what is still buffered. - You need a stable API. rlg is at
0.0.x: any release may break, and it has one maintainer.
Development
DEVELOPMENT.md lists every gate with its local
command: Miri, Loom and Kani for the engine's concurrency and memory
safety, four fuzz targets, cargo-deny and cargo-vet for the dependency
tree, cargo-semver-checks, a 95% coverage floor and complexity ceilings.
Contribution and signing rules are in CONTRIBUTING.md
and AGENTS.md.
Security
- Reporting: privately, by email or GitHub's advisory form; never in a
public issue. The process and response time are in
SECURITY.md. - Memory safety:
unsafeis denied across the workspace except the documented macOSos_logFFI incrates/rlg/src/sink.rs. The engine runs under Miri on every push. - Resource limits: the ring buffer is bounded at 65,536 records and
evicts the oldest when full;
rlg-otlpcaps a collector's response headers at 16 KiB and times out every request. - Fuzzing: four cargo-fuzz targets (record parsing, format names,
config loading, redaction) run on every pull request; see
docs/OSS-FUZZ.mdfor OSS-Fuzz status. - Supply chain: every dependency passes cargo-deny and cargo-vet;
releases publish through crates.io Trusted Publishing with
sigstore-signed SBOMs (
pkg/VERIFY.md).
Report vulnerabilities according to SECURITY.md.
Documentation
Stability guarantees
- SemVer axis: rlg is at
0.0.x, so under Cargo's rules every release may be breaking. Breaking changes are marked Breaking in the CHANGELOG, and cargo-semver-checks runs on every pull request so none slips through unannounced. - Output stability: the bytes a format produces are an interface. A change to them for the same record is breaking even when no signature moves, and is recorded the same way.
- Minimum toolchain: Rust 1.89.0, enforced in CI; a rise is its own
CHANGELOG entry with the reason.
docs/POLICIES.mdhas the full policy.
License
Dual-licensed under either of
- Apache License, Version 2.0 (
LICENSE-APACHE) - MIT license (
LICENSE-MIT)
at your option. Unless you state otherwise, any contribution you submit for inclusion in rlg is dual-licensed as above, without additional terms.
Source: README.md at commit 92d6ae6
Tools
0Version history
6- v0.0.18LatestNov 7, 2026
- v0.0.16Nov 3, 2026
- v0.0.15Oct 11, 2026
- v0.0.14Oct 1, 2026
- v0.0.13Oct 1, 2026
- v0.0.12Sep 16, 2026
Score
50% of the applicable checks met
How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.
- Reached in the last 30 days25 pts
Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.
- Auth declared10 pts
Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.
- Tools listed15 pts
Answer tools/list without a credential, or ship a package that starts in a sandbox without one.
- DescriptionRequired15 pts
- Logo10 pts
- Documentation15 pts
- License10 pts