mcpField
N
noyalib-mcp

noyalib-mcp

本地服务
github.com/sebastienrousseau开发工具12 周前更新

关于 noyalib-mcp

noyalib-mcp 是供 Agent 和 MCP 客户端检查、编辑及校验 YAML 1.2 的 MCP 服务。它支持无损编辑和类型化结果,可通过本地或 HTTP 传输使用,并由 noyalib 库提供底层能力。

主要功能

  1. 01解析并检查 YAML 文档
  2. 02读取、设置和编辑 YAML 值
  3. 03修改多个文档
  4. 04按可选规则配置校验 YAML
  5. 05限制在指定根目录内无损编辑文件
  6. 06支持 stdio、streamable HTTP 和 HTTP+SSE

适用场景

  1. 01通过 MCP 客户端检查 YAML 配置
  2. 02修改 YAML 值并保留文档内容
  3. 03按 strict 或 standard 规则校验 YAML 文件
  4. 04通过 HTTP 为远程客户端提供 YAML 工具

MCP 相关

向 MCP 客户端提供六种类型化 YAML 工具、提示词和资源。支持 stdio、streamable HTTP 和旧版 HTTP+SSE 传输,并协商协议版本。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"sebastienrousseau-noyalib": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"ghcr.io/sebastienrousseau/noyalib-mcp:0.0.58"
]
}
}
}
启动命令docker run -i --rm ghcr.io/sebastienrousseau/noyalib-mcp:0.0.58

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
ocighcr.io/sebastienrousseau/noyalib-mcp:0.0.58

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

noyalib-mcp 标志

noyalib-mcp

用于无损检查、编辑和验证 YAML 的 Model Context Protocol 服务。

构建 注册表 文档 OpenSSF 评分卡 许可证:Apache-2.0 或 MIT MSRV 1.89.0 Glama MCP 服务评分

noyalib-mcp 演示


目录

开始使用

  • 安装 — Cargo、npm 包装器和容器
  • 要求 — 工具链最低版本、平台
  • 快速开始 — 通过 stdio 或 HTTP 启动服务

noyalib-mcp 生态系统

库参考

运维


安装

作为 Rust 库
[dependencies]
noyalib-mcp = "0.0.58"

通过适合宿主环境的方式安装或运行服务:

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

npm 包装器(npx @sebastienrousseau/noyalib-mcp)仅当其软件包包含适用于你平台的 SHA-256 时才会运行二进制文件。目前,各平台的发布包尚未提供,因此它会拒绝运行,并提示使用上面的两条命令。

要求

  • 从源代码构建时需要 Rust 1.89.0 或更高版本。
  • CI 会在 Linux、macOS 和 Windows 上进行测试。
  • 根据锁步契约,该 crate 将 noyalib 固定为精确版本 =0.0.58。
  • 需要 MCP 客户端来驱动此服务。
范围最低工具链强制执行方式
服务和库Rust 1.89.0清单和 MSRV CI
完整测试范围Rust 1.89.0全目标 CI

快速入门

使用 stdio 集成子进程:

noyalib-mcp

stdio 客户端在发送 initialized 通知或列出工具之前,会先发送 MCP 初始化请求:

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

在 /mcp 提供可流式 HTTP 服务,或在 /sse 和 /messages/ 提供旧版 HTTP+SSE 桥接:

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

服务端会在 initialize 期间协商支持的 MCP 版本;客户端应先完成该握手,再发送原始工具调用。

noyalib-mcp 生态系统

组件作用
noyalib-mcpMCP 服务、传输、工具、提示词和资源
noyalibYAML 解析器、CST 编辑器和架构验证器
noya-cli面向用户的格式化和验证命令
rmcp用于协议处理的官方 Rust MCP SDK

功能一览

类别功能状态
传输stdio、可流式 HTTP 和 HTTP+SSE支持
协议从 2024-11-05 到 2026-07-28 的版本已协商
结果文本及类型化 structuredContent支持
YAML解析、获取、设置、多文档设置、编辑和验证支持
元数据工具架构、注释、示例、提示词和资源已发布

生态系统对比

交付方式无损 YAML 编辑远程传输类型化工具结果
noyalib-mcp是HTTP 和 SSE是
noya-cli是否不适用
noyalib是否Rust 原生类型

有关范围和依据,请参阅 docs/COMPARISON.md。

基准测试

仓库中提供的 mcp_tools Criterion 测试框架用于测量工具分发和 YAML 操作,不会将受噪声影响的计时值作为正确性门槛。

cargo bench --bench mcp_tools

有关方法,请参阅 docs/BENCHMARKS.md。

功能

  • 提供六种用于 YAML 读取、编辑、解析和验证的类型化工具。
  • 声明 outputSchema、structuredContent、注释和示例。
  • 支持 stdio、可流式 HTTP 和旧版 HTTP+SSE 传输。
  • 提供用于 Agent 集成的提示词和资源。
  • 支持协议版本协商和会话感知路由。

配置

选项效果
--transport stdio使用进程标准输入和标准输出;这是默认设置
--transport streamable-http在 /mcp 提供 MCP 服务
--transport sse提供 /sse 和 /messages/
--host ADDRESS将 HTTP 传输绑定到指定地址
--port PORT选择 HTTP 监听端口
--root DIR将文件工具的访问限制在 DIR 内(默认:工作目录,该目录可能不是 / 或主目录)
--profile strict|standard规定每种工具解析时使用的规则,包括文件工具和 noyalib_edit:noyalib 的严格 YAML 1.2 配置(默认设置:重复键和异常缩进会报错,限制更严格),或库的默认规则
--max-sessions NHTTP 传输同时持有的会话数(默认 64)

请谨慎绑定远程传输。默认的环回主机可避免服务暴露给本机以外的设备。文件工具(noyalib_get、noyalib_set、noyalib_set_multidoc)会拒绝任何解析后位于根目录之外的路径,包括符号链接;请使用 --root 启动服务,并将其指向客户端可访问的目录。HTTP 传输会拒绝外部的 Host 或 Origin,且不进行身份验证。完整的信任模型请参阅 SECURITY.md。

示例

客户端配置示例请参阅 docs/agent-integration.md。

何时不应使用 noyalib-mcp

  • 在不需要 MCP 的 Rust 应用程序中直接使用 noyalib。
  • 使用 noya-cli 执行 Shell 管道和全仓库验证。
  • 请勿在未通过身份验证和授权层保护的情况下,将 HTTP 传输暴露给不可信网络。
  • 服务不会获取远程架构;调用方必须提供可信的架构内容。

详细 README 参考保留了客户端设置、工具详情、验证步骤和一致性讨论。

开发

make
make test
make clippy
make fmt
cargo fuzz run fuzz_tool_call

CI 会检查 Rust 格式、Lint、测试、文档、依赖策略、模糊测试回归、协议行为和共享 YAML 测试套件。请参阅 DEVELOPMENT.md。

安全

请通过 SECURITY.md 报告漏洞。此 crate 禁止使用 unsafe 代码、审计依赖项、使用有界的 noyalib 操作,并生成发布证明和 SBOM。请将文件内容、YAML、架构和 MCP 元数据视为不可信输入。

文档

稳定性保证

  • 在 0.0.x 阶段,补丁版本号是破坏性变更的版本轴。
  • 工具名称、参数架构、输出架构和传输路由构成公开兼容性接口。
  • 协议修订通过协商确定,而非推断得出。
  • MSRV 只能在破坏性变更版本轴上提高,并须在变更日志中说明原因。

许可证

可根据您的选择,采用 Apache License, Version 2.0 或 MIT License 双重授权。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。