mcpField
N
noyalib-mcp

noyalib-mcp

ローカル
github.com/sebastienrousseau開発ツール12 週間前に更新

noyalib-mcp について

noyalib-mcp は、YAML 1.2 の検査、編集、検証を行う MCP サーバーで、YAML ファイルを扱うエージェントや MCP クライアントを対象とします。noyalib を基盤に、ロスレス編集、型付き結果、ローカルおよび HTTP のトランスポートを提供します。

主な機能

  1. 01YAML ドキュメントの解析と検査
  2. 02YAML 値の読み取り、設定、編集
  3. 03複数ドキュメントの更新
  4. 04選択可能なプロファイルによる YAML 検証
  5. 05指定ルート内に制限したロスレスなファイル編集
  6. 06stdio、streamable HTTP、HTTP+SSE に対応

活用シーン

  1. 01MCP クライアントから YAML 設定を確認
  2. 02内容を保ちながら YAML 値を変更
  3. 03strict または standard の規則で YAML ファイルを検証
  4. 04HTTP 経由でリモートクライアントに YAML ツールを提供

MCP 対応

6 種類の型付き YAML ツール、プロンプト、リソースを MCP クライアントに提供します。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 Scorecard ライセンス:Apache-2.0 OR MIT MSRV 1.89.0 Glama MCP サーバーのスコア

noyalib-mcp のデモ


目次

はじめに

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が含まれている場合にのみバイナリを実行します。リリースではまだプラットフォームごとのアーカイブを公開していないため、現時点では実行を拒否し、上記の2つのコマンドを案内します。

要件

  • ソースからビルドする場合は、Rust 1.89.0以降が必要です。
  • Linux、macOS、WindowsはCIでテストされています。
  • ロックステップ契約に基づき、クレートは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"
    }
  }
}

ストリーム可能な HTTP を /mcp で提供するか、レガシーな HTTP+SSE ブリッジを /sse と /messages/ で提供します。

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 の読み取り、編集、解析、検証を行う、型付きの 6 つのツール。
  • outputSchema、structuredContent、アノテーション、例を宣言します。
  • stdio、ストリーム可能な HTTP、レガシーな HTTP+SSE トランスポート。
  • エージェント統合用のプロンプトとリソース。
  • プロトコルリビジョンのネゴシエーションとセッションを考慮したルーティング。

設定

オプション効果
--transport stdioプロセスの標準入力と標準出力を使用します。これがデフォルトです
--transport streamable-http/mcp で MCP を提供します
--transport sse/sse と /messages/ を提供します
--host ADDRESSHTTP トランスポートを指定したアドレスにバインドします
--port PORTHTTP のリスニングポートを指定します
--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 を参照してください。

例

  • mcp_session.rs:SDK を使用したメモリ内セッション。
  • handshake.sh:初期化してツールを一覧表示します。
  • set-then-get.sh:損失のない変更と読み戻しを行います。

クライアント設定のレシピは、docs/agent-integration.md に記載されています。

noyalib-mcp を使用しない場合

  • MCP が不要な Rust アプリケーションでは、noyalib を直接使用してください。
  • シェルのパイプラインやリポジトリ全体の検証には、noya-cli を使用してください。
  • 認証・認可レイヤーを前段に設けずに、信頼できないネットワークへ HTTP トランスポートを公開しないでください。
  • サーバーはリモートスキーマを取得しません。呼び出し側が信頼できるスキーマの内容を用意する必要があります。

詳細な README リファレンスには、クライアントのセットアップ、ツールの詳細、検証手順、適合性に関する説明が記載されています。

開発

make
make test
make clippy
make fmt
cargo fuzz run fuzz_tool_call

CI では、Rust のフォーマット、リンティング、テスト、ドキュメント、依存関係のポリシー、ファジングの回帰、プロトコルの動作、共通の YAML テストスイートをチェックします。DEVELOPMENT.mdを参照してください。

セキュリティ

脆弱性はSECURITY.mdを通じて報告してください。このクレートではunsafeコードを禁止し、依存関係を監査し、上限のある noyalib 操作を使用するとともに、リリースのアテステーションと SBOM を生成します。ファイルの内容、YAML、スキーマ、MCP メタデータは信頼できない入力として扱ってください。

ドキュメント

安定性の保証

  • 0.0.xの間は、パッチ番号が破壊的変更の軸になります。
  • ツール名、引数スキーマ、出力スキーマ、トランスポートのルートは、公開される互換性の対象です。
  • プロトコルのリビジョンは、推測ではなくネゴシエーションによって決定されます。
  • MSRV を引き上げる場合は、変更履歴で説明したうえで、破壊的変更の軸でのみ引き上げられます。

ライセンス

Apache License, Version 2.0またはMIT Licenseのいずれかを選択して、デュアルライセンスのもとで提供されます。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。