mcpField
S
schemaguard

schemaguard

ローカル
github.com/sethclawd-prog開発ツール036 週間前に更新

schemaguard について

schemaguard は、OpenAPI 仕様の比較と個別仕様のリントを行うコマンドラインツールで、プログラム用 API も備えています。破壊的変更を検出し、CI パイプラインやエージェント向けに構造化結果を出力します。

主な機能

  1. 012つの OpenAPI 仕様の比較
  2. 02破壊的・非破壊的変更の検出
  3. 03メタデータやセキュリティ設定の検査
  4. 04終了コードを使った CI モード
  5. 05構造化 JSON の出力
  6. 06TypeScript プログラム用 API

活用シーン

  1. 01デプロイ前の API 互換性確認
  2. 02CI パイプラインでの破壊的変更の阻止
  3. 03公開前の仕様品質チェック

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"sethclawd-prog-schemaguard": {
"command": "npx",
"args": [
"-y",
"@sethclawd/schemaguard"
]
}
}
}
起動コマンドnpx -y @sethclawd/schemaguard

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
npm@sethclawd/schemaguard0.1.2

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

SchemGuard

API スキーマのドリフト監視 — OpenAPI 仕様の破壊的変更を、利用側に影響が出る前に検出します。

npm version License: MIT

理由

API は気づかないうちに壊れます。フィールド名が変更されたり、エンドポイントが削除されたり、列挙型の値がなくなったりすると、本番環境で下流の利用側に影響が及びます。SchemGuard は、デプロイ前にこれらを検出します。

インストール

npm install -g schemaguard

使用方法

2 つの仕様を比較する
schemaguard diff old-api.yaml new-api.yaml

出力:

Found 11 change(s):

❌ BREAKING CHANGES (9):
──────────────────────────────────────────────────
  ⛔ [endpoint-removed]
     Endpoint removed: DELETE /pets/{petId}
     at: DELETE /pets/{petId}

  ⛔ [field-type-changed]
     Parameter type changed: petId (string → integer)
     at: GET /pets/{petId} > param petId
  ...

🚨 9 breaking change(s) detected — deployment blocked.
CI モード
schemaguard ci --spec ./openapi.yaml --baseline ./main-openapi.yaml
  • 終了コード 0 = 破壊的変更なし。安全にデプロイできます
  • 終了コード 1 = 破壊的変更を検出。パイプラインを停止します
  • 終了コード 2 = エラー(仕様が無効、ファイルが見つからない)
仕様をリントする
schemaguard lint ./openapi.yaml

operationId の不足、説明の不足、セキュリティスキームがないことなどをチェックします。

JSON 出力
schemaguard diff old.yaml new.yaml --format json

エージェントや CI ツールがプログラムから利用できる、構造化された JSON を返します。

検出項目

破壊的変更(終了コード 1)
ルール説明
endpoint-removedエンドポイントが削除された
method-removedパスから HTTP メソッドが削除された
required-param-added新しい必須パラメーターが追加された
param-removed既存のパラメーターが削除された
request-field-made-requiredリクエストフィールドが必須になった
field-type-changedフィールドの型が変更された
response-field-removedレスポンスフィールドが削除された
enum-value-removed列挙型の値が絞り込まれた
auth-requirement-changedセキュリティスキームが変更された
response-code-removedレスポンスステータスコードが削除された
破壊的変更ではない変更(情報のみ)
ルール説明
endpoint-added新しいエンドポイントが追加された
optional-param-added新しい任意パラメーターが追加された
response-field-added新しいレスポンスフィールドが追加された
enum-value-added列挙型の値が拡張された
description-changed説明または要約のテキストが変更された
deprecatedエンドポイントが非推奨としてマークされた

GitHub Actions

- name: Check API compatibility
  run: npx schemaguard ci --spec ./openapi.yaml --baseline ./baseline.yaml

プログラム API

import { parseSpec, diffSpecs, formatDiff } from 'schemaguard';

const oldSpec = parseSpec('./v1.yaml');
const newSpec = parseSpec('./v2.yaml');
const result = diffSpecs(oldSpec, newSpec);

if (result.hasBreakingChanges) {
  console.log(`${result.breaking.length} breaking changes found`);
}

ライセンス

MIT

コメント

MCP は初めてですか?

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

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