mcpField
N
noyalib-mcp

noyalib-mcp

Local
github.com/sebastienrousseauDeveloper Tools1Updated 2w ago

About noyalib-mcp

noyalib-mcp is an MCP server for inspecting, editing, and validating YAML 1.2, aimed at agents and MCP clients that work with YAML files. It provides lossless edits, typed results, and local or HTTP-based transports, backed by the noyalib library.

Key features

  1. 01Parse and inspect YAML documents
  2. 02Read, set, and edit YAML values
  3. 03Update multiple documents
  4. 04Validate YAML with selectable profiles
  5. 05Lossless file edits confined to a root directory
  6. 06stdio, streamable HTTP, and HTTP+SSE transports

Use cases

  1. 01Inspect YAML configuration through an MCP client
  2. 02Change YAML values while preserving document content
  3. 03Validate YAML files under strict or standard rules
  4. 04Serve YAML tools over HTTP for a remote client

MCP support

Provides six typed YAML tools, prompts, and resources to MCP clients. It supports stdio, streamable HTTP, and legacy HTTP+SSE transports, with protocol revision negotiation.

Configuration

Local server config is the same for every client. Copy it into your client’s MCP config file.

mcp.json · Universal config
{
"mcpServers": {
"sebastienrousseau-noyalib": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"ghcr.io/sebastienrousseau/noyalib-mcp:0.0.58"
]
}
}
}
Run commanddocker run -i --rm ghcr.io/sebastienrousseau/noyalib-mcp:0.0.58

Local servers need a runtime on your machine (e.g. Node.js 18+). Config file locations differ by client; see your client’s docs.

Packages
ocighcr.io/sebastienrousseau/noyalib-mcp:0.0.58

Tools

No tool list yet

Local servers expose tools only once running on your machine, and the maintainer has not provided a tool list.

Details

From the project README

noyalib-mcp logo

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

noyalib-mcp Demo


Contents

Getting started

The noyalib-mcp ecosystem

Library reference

Operational


Install

As a Rust library
[dependencies]
noyalib-mcp = "0.0.58"

Install or run the server through the channel that fits the host:

cargo install noyalib-mcp --locked
docker run --rm -i ghcr.io/sebastienrousseau/noyalib-mcp:latest

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 noyalib at exactly =0.0.58 under the lockstep contract.
  • An MCP client is required to drive the server.
SurfaceMinimum toolchainEnforcement
Server and libraryRust 1.89.0manifest and MSRV CI
Complete test surfaceRust 1.89.0all-target CI

Quick Start

Use stdio for a child-process integration:

noyalib-mcp

A stdio client begins with an MCP initialization request before sending the initialized notification or listing tools:

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "initialize",
  "params": {
    "protocolVersion": "2025-11-25",
    "capabilities": {},
    "clientInfo": {
      "name": "example",
      "version": "0.0.1"
    }
  }
}

Serve streamable HTTP at /mcp, or the legacy HTTP+SSE bridge at /sse and /messages/:

noyalib-mcp --transport streamable-http --host 127.0.0.1 --port 8000
noyalib-mcp --transport sse --host 127.0.0.1 --port 8001

The server negotiates supported MCP revisions during initialize; clients should not send raw tool calls before completing that handshake.

The noyalib-mcp ecosystem

ComponentRole
noyalib-mcpMCP server, transports, tools, prompts, and resources
noyalibYAML parser, CST editor, and schema validator
noya-cliHuman-facing formatting and validation commands
rmcpOfficial Rust MCP SDK used for protocol handling

Capabilities at a glance

AreaCapabilityStatus
Transportstdio, streamable HTTP, and HTTP+SSESupported
ProtocolRevisions from 2024-11-05 through 2026-07-28Negotiated
ResultsText plus typed structuredContentSupported
YAMLParse, get, set, multidocument set, edit, and validateSupported
MetadataTool schemas, annotations, examples, prompts, and resourcesPublished

Ecosystem comparison

Delivery surfaceLossless YAML editsRemote transportTyped tool results
noyalib-mcpYesHTTP and SSEYes
noya-cliYesNoNot applicable
noyalibYesNoNative Rust types

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.

cargo bench --bench mcp_tools

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

OptionEffect
--transport stdioUse process stdin and stdout; this is the default
--transport streamable-httpServe MCP at /mcp
--transport sseServe /sse and /messages/
--host ADDRESSBind an HTTP transport to an address
--port PORTSelect the HTTP listening port
--root DIRConfine the file tools to DIR (default: the working directory, which may not be / or the home directory)
--profile strict|standardRules every tool parses under, the file tools and noyalib_edit included: noyalib's strict YAML 1.2 profile (the default: duplicate keys and odd indentation are errors, tighter limits) or the library defaults
--max-sessions NSessions an HTTP transport holds at once (default 64)

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

Client configuration recipes are in docs/agent-integration.md.

When not to use noyalib-mcp

  • Use noyalib directly inside a Rust application that does not need MCP.
  • Use noya-cli for 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

make
make test
make clippy
make fmt
cargo fuzz run fuzz_tool_call

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

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.

Comments

Markdown supported

New to MCP?

From what the protocol is to installing your first server, these answers cover most first questions.

An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.