# noyalib-mcp [Health: Active]

**Category:** 💻 Developer Tools  
**Repository:** https://github.com/sebastienrousseau/noyalib-mcp  
**GitHub Stars:** 1  
**npm Downloads (last month):** 1166  
**Views:** 0  
**Installs:** 0  
**Upvotes:** 0  
**Directory Page:** https://allmcps.com/mcp/noyalib-mcp

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

## Tools
Capabilities this server exposes over MCP:

- **noyalib_get** — Takes `{ file: string, path: string }`; returns the raw source fragment at the dotted/indexed path (e.g. `server.host`, `items[0].name`). No re-quoting; no canonicalisation.
- **noyalib_set** — Takes `{ file: string, path: string, value: string }`; returns the file rewritten via the lossless CST so only the touched span changes; comments, blank lines, and sibling formatting survive byte-for-byte. The `value` is a YAML fragment (`0.0.2`, `"hello"`, `[1, 2, 3]`); a parse failure leaves the…
- **noyalib_parse** — Takes `{ yaml: string }`; returns the JSON data model of the text (tags stripped, a stream as an array). Stateless: nothing on disk is touched.
- **noyalib_edit** — Takes `{ yaml: string, path: string, value: string }`; returns the whole text with that one value replaced losslessly. Stateless.
- **noyalib_validate** — Takes `{ yaml: string, schema?: string }`; returns `valid` with either the parse error (line and column) or every JSON Schema violation with its path. Stateless.

## Claude Desktop Quick Installation
Install path detected from listing signals. Uses `npx` (confidence: high):

```json
"mcpServers": {
  "noyalib-mcp": {
    "command": "npx",
    "args": ["-y","@sebastienrousseau/noyalib-mcp"]
  }
}
```

## Documentation

## What noyalib-mcp MCP server does

The noyalib-mcp MCP server connects MCP clients with noyalib’s YAML parser, concrete syntax tree editor, and schema validation capabilities. It handles YAML 1.2 data and supports both in-memory text operations and file-oriented path operations.

The server exposes tools for reading a raw fragment, replacing a value in a file, converting YAML into a JSON data model, editing YAML text without unnecessary rewrites, and checking syntax or schema compliance. Parsed streams are represented as arrays, and YAML tags are omitted from the returned JSON model.

## How it works

The server communicates through MCP and supports three transport choices:

- stdio for child-process integrations, used by default
- Streamable HTTP at `/mcp`
- Legacy HTTP with SSE at `/sse` and `/messages/`

HTTP transports accept a configurable host and port. The default loopback binding limits exposure to the local machine unless changed deliberately. Clients must complete MCP initialization and protocol negotiation before invoking tools.

The `noyalib_get` tool accepts a file string and a dotted or indexed path such as `server.host` or `items[0].name`. It returns the source fragment as written, without re-quoting or canonicalization. `noyalib_set` accepts a YAML fragment as the replacement value and rewrites the document through the lossless CST, limiting changes to the selected span while retaining comments, blank lines, and sibling formatting.

`noyalib_parse` and `noyalib_edit` operate on supplied YAML strings and do not access disk. The former returns the JSON data model; the latter replaces one path-selected value and returns the complete edited text. `noyalib_validate` reports either a parse error with line and column information or all JSON Schema violations with their paths.

## Setup and configuration

Install the Rust binary with `cargo install noyalib-mcp --locked`, run the npm wrapper with `npx @sebastienrousseau/noyalib-mcp`, or start the published container image. Building from source requires Rust 1.88.0 or newer. Linux, macOS, and Windows are tested by CI.

Start the default stdio server with `noyalib-mcp`. For network transports, use flags such as `--transport streamable-http --host 127.0.0.1 --port 8000` or select SSE with `--transport sse`. No environment variables are documented as required; configuration is provided through command-line options.

## Tools and capabilities

- Extract raw YAML source at a dotted or indexed path.
- Replace a selected file value using a YAML fragment.
- Parse YAML into a JSON-compatible data model.
- Edit one value in an in-memory YAML string while preserving unrelated text.
- Validate YAML syntax and supplied JSON Schema constraints.
- Return typed MCP results through declared output schemas and structured content.

## Limitations and notes

The noyalib-mcp MCP server does not fetch remote schemas. Callers must provide trusted schema content when schema validation is needed. HTTP deployments should have authentication and authorization in front of them before exposure to an untrusted network.

Use the underlying `noyalib` library directly when MCP is not needed, or use `noya-cli` for shell pipelines and repository-wide validation. Treat YAML, file content, schemas, and MCP metadata as untrusted input. The server is distributed under Apache-2.0 OR MIT licensing.

_Full upstream README: https://allmcps.com/mcp/noyalib-mcp/readme_

