
Noyalib Mcp
io.github.sebastienrousseauPublished by GitHub account sebastienrousseauv0.0.58Updated Oct 24, 2026
MCP server for lossless YAML 1.2 parsing, formatting, and validation (pure Rust).
Overview
Local MCP server for lossless YAML 1.2 parsing, reading, editing and validation, letting an assistant inspect and modify YAML files safely.
- What you can do
- Parse YAML and return typed structured results
- Read and set values in YAML documents, including multidocument files
- Edit YAML losslessly while preserving formatting and comments
- Validate YAML against a caller-supplied schema under a strict or standard profile
- Expose prompts and resources for agent integration
- When to use it
- Useful when an assistant needs to read, change or check YAML configuration files, such as CI configs, Kubernetes manifests or app settings, without losing comments or layout. Also fits workflows that need schema validation of YAML before committing changes.
- Requirements
- Runs as a local process over stdio by default; can also serve streamable HTTP at /mcp or HTTP+SSE. Install via cargo install or the published container image; building from source needs Rust 1.89.0 or newer. An MCP client is required. The npm wrapper currently refuses to run because per-platform archives are not published. Optional flags set the transport, host, port, root directory, profile and session limit.
Installation
In SourceWeft
- Open Noyalib 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
noyalib-mcp
Model Context Protocol server for lossless YAML inspection, editing, and validation.
[Build] [Registry] [Docs] [OpenSSF Scorecard] [License: Apache-2.0 OR MIT] [MSRV 1.89.0] [Glama MCP server score]
Contents
Getting started
- Install — Cargo, npm wrapper, and container
- Requirements — toolchain floor, platforms
- Quick Start — start a server over stdio or HTTP
The noyalib-mcp ecosystem
- The noyalib-mcp ecosystem — protocol and library relationships
Library reference
- Capabilities at a glance — the current surface by theme
- Ecosystem comparison — short matrix; full table at
docs/COMPARISON.md - Benchmarks — harness coverage; full method at
docs/BENCHMARKS.md - Features — MCP tools and resources
- Configuration — transports and endpoints
- Examples — runnable clients
Operational
- When not to use noyalib-mcp — limitations
- Development — make targets, fuzzing, CI
- Security — guarantees and compliance
- Documentation — all reference docs
- Stability guarantees — protocol, SemVer, and toolchain discipline
- License
Install
As a Rust library
Install or run the server through the channel that fits the host:
The npm wrapper (npx @sebastienrousseau/noyalib-mcp) runs a binary only
when its package carries a SHA-256 for your platform. Releases do not yet
publish per-platform archives, so today it refuses to run and points to
the two commands above.
Requirements
- Rust 1.89.0 or newer when building from source.
- Linux, macOS, and Windows are tested by CI.
- The crate pins
noyalibat exactly=0.0.58under the lockstep contract. - An MCP client is required to drive the server.
Quick Start
Use stdio for a child-process integration:
A stdio client begins with an MCP initialization request before sending the initialized notification or listing tools:
Serve streamable HTTP at /mcp, or the legacy HTTP+SSE bridge at /sse
and /messages/:
The server negotiates supported MCP revisions during initialize; clients
should not send raw tool calls before completing that handshake.
The noyalib-mcp ecosystem
Capabilities at a glance
Ecosystem comparison
See docs/COMPARISON.md for scope and evidence.
Benchmarks
The checked-in mcp_tools Criterion harness measures tool dispatch and YAML
operations without treating noisy timing values as correctness gates.
See docs/BENCHMARKS.md for methodology.
Features
- Six typed tools for YAML reads, edits, parsing, and validation.
- Declared
outputSchema,structuredContent, annotations, and examples. - stdio, streamable HTTP, and legacy HTTP+SSE transports.
- Prompts and resources for agent integration.
- Protocol revision negotiation and session-aware routing.
Configuration
Bind remote transports deliberately. The default loopback host avoids exposing
the server beyond the local machine. The file tools (noyalib_get, noyalib_set,
noyalib_set_multidoc) refuse any path that resolves outside the root, symlinks
included; start the server with --root on the directory a client may touch.
The HTTP transports refuse a foreign Host or Origin and do not
authenticate. SECURITY.md has the full trust model.
Examples
mcp_session.rs: SDK-backed in-memory session.handshake.sh: initialize and list tools.set-then-get.sh: lossless mutation and readback.
Client configuration recipes are in
docs/agent-integration.md.
When not to use noyalib-mcp
- Use
noyalibdirectly inside a Rust application that does not need MCP. - Use
noya-clifor shell pipelines and repository-wide validation. - Do not expose an HTTP transport to an untrusted network without an authentication and authorization layer in front of it.
- The server does not fetch remote schemas; callers must supply trusted schema content.
The detailed README reference retains client setup, tool detail, verification steps, and conformance discussion.
Development
CI checks Rust formatting, linting, tests, documentation, dependency policy,
fuzz regressions, protocol behaviour, and the shared YAML test suite. See
DEVELOPMENT.md.
Security
Report vulnerabilities through SECURITY.md. The crate forbids
unsafe code, audits dependencies, uses bounded noyalib operations, and emits
release attestations and SBOMs. Treat file content, YAML, schemas, and MCP
metadata as untrusted input.
Documentation
- User Manual
- API reference
- Developer documentation
- Agent integration
- Tool reference
- Architecture
- Engineering policies
- Compliance grade
- Detailed README reference
Stability guarantees
- During
0.0.x, the patch component is the breaking-change axis. - Tool names, argument schemas, output schemas, and transport routes form the public compatibility surface.
- Protocol revisions are negotiated rather than inferred.
- The MSRV may rise only on the breaking axis with a changelog explanation.
License
Dual-licensed under either the Apache License, Version 2.0 or the MIT License, at your option.
Source: README.md at commit 19990d2
Tools
0Version history
12- v0.0.58LatestOct 16, 2026
- v0.0.57Oct 9, 2026
- v0.0.56Oct 8, 2026
- v0.0.54Oct 7, 2026
- v0.0.53Oct 6, 2026
- v0.0.52Oct 4, 2026
- v0.0.51Sep 22, 2026
- v0.0.50Sep 22, 2026
- v0.0.47Sep 22, 2026
- v0.0.45Sep 19, 2026
- v0.0.44Sep 17, 2026
- v0.0.43Sep 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