io.github.sebastienrousseau/noyalib-mcp

Registre officiel Autres

MCP server for lossless YAML 1.2 parsing, formatting, and validation (pure Rust).

Que pouvez-vous faire avec io.github.sebastienrousseau/noyalib-mcp ?

  • 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.

Installation

Ajoutez ceci à la configuration MCP de votre client (Claude Desktop : claude_desktop_config.json ; Cursor : .cursor/mcp.json ; VS Code et les autres utilisent la même forme « mcpServers »).

OCI package ghcr.io/sebastienrousseau/noyalib-mcp:0.0.58
Claude Code
claude mcp add noyalib-mcp -- docker run -i --rm ghcr.io/sebastienrousseau/noyalib-mcp:0.0.58
Configuration JSON (Claude Desktop, Cursor, VS Code)
{
    "mcpServers": {
        "noyalib-mcp": {
            "command": "docker",
            "args": [
                "run",
                "-i",
                "--rm",
                "ghcr.io/sebastienrousseau/noyalib-mcp:0.0.58"
            ]
        }
    }
}

Documentation

Tirée du README du projet sur GitHub, actualisée chaque semaine. Les liens ouvrent GitHub.

Sommaire
  1. noyalib-mcp
  2. Contents
  3. Install
  4. Requirements
  5. Quick Start
  6. The noyalib-mcp ecosystem
  7. Capabilities at a glance
  8. Ecosystem comparison
  9. Benchmarks
  10. Features
  11. Configuration
  12. Examples
  13. When not to use noyalib-mcp
  14. Development
  15. Security
  16. Documentation
  17. Stability guarantees
  18. License

noyalib-mcp

Model Context Protocol server for lossless YAML inspection, editing, and validation.


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\standard`Rules 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.

Questions fréquentes

Qu'est-ce que io.github.sebastienrousseau/noyalib-mcp ?

MCP server for lossless YAML 1.2 parsing, formatting, and validation (pure Rust).

Comment installer io.github.sebastienrousseau/noyalib-mcp ?

Il s'exécute sur votre machine. Dans Claude Code : claude mcp add noyalib-mcp -- docker run -i --rm ghcr.io/sebastienrousseau/noyalib-mcp:0.0.58. Pour les autres clients, collez la configuration JSON de cette page dans leurs réglages MCP.

Faut-il une clé API pour io.github.sebastienrousseau/noyalib-mcp ?

Son entrée au registre n'indique aucune clé ni secret obligatoire. Certaines fonctions peuvent tout de même demander un compte auprès du service auquel il se connecte.

io.github.sebastienrousseau/noyalib-mcp est-il open source ?

Oui. Son code est sur GitHub sous licence Apache-2.0.

Qui maintient io.github.sebastienrousseau/noyalib-mcp ?

Il est publié par sebastienrousseau. AI.tn le référence sans le maintenir ni le recommander.

Issu du registre MCP officiel. Être listé n'est pas une recommandation : vérifiez le code et les permissions d'un serveur avant de lui donner accès à vos données.