Noyalib Mcp

io.github.sebastienrousseau由 GitHub 帳號 sebastienrousseau 發布v0.0.58更新於 Oct 24, 2026

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

已驗證STDIO僅桌面檔案與儲存開發者工具

概覽

AI 產生的概覽

本機 MCP 伺服器,提供無損 YAML 1.2 解析、讀取、編輯與驗證,讓助理安全地檢視與修改 YAML 檔案。

可以做什麼
  • 解析 YAML 並回傳具型別的結構化結果
  • 讀取與設定 YAML 文件中的值,包含多文件檔案
  • 無損編輯 YAML,保留原有格式與註解
  • 依呼叫端提供的 schema,在嚴格或標準模式下驗證 YAML
  • 提供提示詞與資源供代理整合使用
適用情境
適合助理需要讀取、修改或檢查 YAML 設定檔(例如 CI 設定、Kubernetes 清單、應用程式設定),且不希望遺失註解與排版的情況。也適合在提交變更前對 YAML 做 schema 驗證的工作流程。
執行需求
預設以 stdio 作為本機程序執行,也可在 /mcp 提供 streamable HTTP 或在 /sse 提供 HTTP+SSE。可透過 cargo install 或已發佈的容器映像安裝;從原始碼建置需要 Rust 1.89.0 以上版本。需要 MCP 用戶端。npm 包裝器目前因未發佈各平台封存檔而拒絕執行。選用參數可設定傳輸方式、主機、連接埠、根目錄、設定檔與工作階段上限。
安裝前請注意
檔案工具會寫入磁碟上的 YAML 檔案,應以根目錄參數限制其可存取範圍;解析到根目錄之外的路徑(含經由符號連結)會被拒絕。HTTP 傳輸不做身分驗證,只拒絕外來的 Host 或 Origin 標頭,未加上驗證與授權層前不要暴露到不受信任的網路。schema 須由呼叫端提供,並應視為不受信任的輸入。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 Noyalib Mcp,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

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

toml
[dependencies]noyalib-mcp = "0.0.58"

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

bash
cargo install noyalib-mcp --lockeddocker 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:

bash
noyalib-mcp

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

json
{  "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/:

bash
noyalib-mcp --transport streamable-http --host 127.0.0.1 --port 8000noyalib-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.

bash
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

bash
makemake testmake clippymake fmtcargo 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.

來源:README.md,提交 19990d2

工具

0
SourceWeft 尚未在沙箱中啟動過該軟體包,因此其工具未知。

版本歷史

12
  1. v0.0.58最新Oct 16, 2026
  2. v0.0.57Oct 9, 2026
  3. v0.0.56Oct 8, 2026
  4. v0.0.54Oct 7, 2026
  5. v0.0.53Oct 6, 2026
  6. v0.0.52Oct 4, 2026
  7. v0.0.51Sep 22, 2026
  8. v0.0.50Sep 22, 2026
  9. v0.0.47Sep 22, 2026
  10. v0.0.45Sep 19, 2026
  11. v0.0.44Sep 17, 2026
  12. v0.0.43Sep 16, 2026

評分

已滿足適用檢查項的 50%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通25 分

    請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。

  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具15 分

    請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。

  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分