プロトタイプ · プレビュー版:公式レジストリのすべてのサーバーを掲載し、30分ごとに同期しています。Google でログインするとレビューを書けます。
PopNx MCPAIを使う人のためのMCPサーバー · やさしい言葉で解説

spec-guard

作者:spec-familyバージョン 0.34.0i★ 0iパソコンで動く
レジストリ名io.github.spec-family/spec-guard

インストール方法

What it does

Hold your code to what your Markdown says: the rules on a path, asked before an agent writes it.

  • Connects パソコンで動く
  • Account or key No key needed
  • Category 文書・表計算・事務作業

インストール

使っているAIアプリを選んで、設定をコピーしてください。

チェック 3/3 合格 · あなたのパソコンで動きます

まず:どの AI を使っていますか?

使っているアプリを選ぶと、下に手順が表示されます。

Claude につなげますが、先に準備が必要です

先にパソコンへ Node.js を入れてください(1 回だけ) · パソコン版 Claude アプリ(Windows または Mac)のみ。Web やスマホでは使えません

  1. Node.js を入れる

    1 回だけ。Node.js が必要なすべてのサーバーで使えます

    Node.js のダウンロードページを開く ↗

  2. パソコン版 Claude アプリの設定ファイルを開く

    SettingsDeveloperEdit Config

  3. この設定を貼り付けて保存

    {
      "mcpServers": {
        "spec-guard": {
          "command": "npx",
          "args": [
            "-y",
            "@spec-family/spec-guard",
            "mcp"
          ]
        }
      }
    }
  4. Claude を終了してもう一度開く

  5. 試してみる

    spec-guard を使って、私に何ができるか教えて、1 つやってみせて

    ✓ Claude が spec-guard を使っていると言うか、回答に spec-guard のツール名が出れば接続成功です

メニュー名は 2026年11月11日 に Anthropic のヘルプページで確認 · アプリのバージョンにより画面が少し違うことがあります

ChatGPT はまだ spec-guard につなげません

spec-guard はパソコンに入れて使うものですが、ChatGPT は Web 上で動くサーバーにしかつなげません

代わりにできること

A · spec-guard につなげるアプリを使う

  • 先にパソコンへ Node.js を入れてください(1 回だけ) · パソコン版 Claude アプリ(Windows または Mac)のみ。Web やスマホでは使えません
  • 先にパソコンへ Node.js を入れてください(1 回だけ)
  • 先にパソコンへ Node.js を入れてください(1 回だけ)
  • 先にパソコンへ Node.js を入れてください(1 回だけ)

B · 文書・表計算・事務作業 の中で ChatGPT につなげる別のサーバー

同じカテゴリでよく使われているものから、キーなしでアドレスだけでつなげるものを選びました

Claude Code につなげますが、先に準備が必要です

先にパソコンへ Node.js を入れてください(1 回だけ)

  1. Node.js を入れる

    1 回だけ。Node.js が必要なすべてのサーバーで使えます

    Node.js のダウンロードページを開く ↗

  2. ターミナルを開く

    Mac:Command+スペースで Terminal と入力 · Windows:PowerShell を開く

  3. このコマンドを貼り付けて Enter

    claude mcp add --scope user spec-guard -- npx -y @spec-family/spec-guard mcp
  4. Claude Code で /mcp と入力

    spec-guard が一覧にあり、接続済みと表示されれば OK です

  5. 試してみる

    spec-guard を使って、私に何ができるか教えて、1 つやってみせて

    ✓ Claude Code が spec-guard を使っていると言うか、回答に spec-guard のツール名が出れば接続成功です

メニュー名は 2026年11月11日 に Anthropic のヘルプページで確認 · アプリのバージョンにより画面が少し違うことがあります

Cursor につなげますが、先に準備が必要です

先にパソコンへ Node.js を入れてください(1 回だけ)

  1. Node.js を入れる

    1 回だけ。Node.js が必要なすべてのサーバーで使えます

    Node.js のダウンロードページを開く ↗

  2. このボタンで Cursor を開く

    Cursor で開く

    Cursor がインストールの確認をするので Install を押します

  3. Cursor の AI チャットを Agent モードで開く

  4. 試してみる

    spec-guard を使って、私に何ができるか教えて、1 つやってみせて

    ✓ Cursor が spec-guard を使っていると言うか、回答に spec-guard のツール名が出れば接続成功です

メニュー名は 2026年11月11日 に Cursor のヘルプページで確認 · アプリのバージョンにより画面が少し違うことがあります

VS Code につなげますが、先に準備が必要です

先にパソコンへ Node.js を入れてください(1 回だけ)

  1. Node.js を入れる

    1 回だけ。Node.js が必要なすべてのサーバーで使えます

    Node.js のダウンロードページを開く ↗

  2. このボタンで VS Code を開く

    VS Code で開く

    VS Code がインストールの確認をするので Install を押します

  3. VS Code の AI チャットを Agent モードで開く

  4. 試してみる

    spec-guard を使って、私に何ができるか教えて、1 つやってみせて

    ✓ VS Code が spec-guard を使っていると言うか、回答に spec-guard のツール名が出れば接続成功です

メニュー名は 2026年11月11日 に VS Code のヘルプページで確認 · アプリのバージョンにより画面が少し違うことがあります

Windsurf、Zed、Gemini CLI など MCP を使える他のアプリは追加方法がそれぞれ違います。アプリ一覧で確認してください

MCP を使えるアプリをすべて見る →

JSON 設定は下の「開発者向け」にあります

つまずいたら?spec-guard を使っている人に聞いてみましょう💬 ディスカッション →
開発者向け:ターミナルのコマンドと JSON 設定

パソコンにインストール

Claude Code

claude mcp add --scope user spec-guard -- npx -y @spec-family/spec-guard mcp

Claude Desktop (claude_desktop_config.json)

{
  "mcpServers": {
    "spec-guard": {
      "command": "npx",
      "args": [
        "-y",
        "@spec-family/spec-guard",
        "mcp"
      ]
    }
  }
}

Cursor (~/.cursor/mcp.json)

{
  "mcpServers": {
    "spec-guard": {
      "command": "npx",
      "args": [
        "-y",
        "@spec-family/spec-guard",
        "mcp"
      ]
    }
  }
}

VS Code (mcp.json)

{
  "servers": {
    "spec-guard": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "@spec-family/spec-guard",
        "mcp"
      ]
    }
  }
}

この設定は、作者のレジストリ登録情報から作成しています。READMEと違う場合は、READMEに従ってください。

ひと目でわかる

週あたりのダウンロードi
1,627/週
接続方法
パソコンで動く
最新バージョンi
0.34.0
レジストリ公開日i
2026年11月12日
コードの最終更新i
2026年11月12日
作者
spec-family
パッケージ
npm: @spec-family/spec-guard
レジストリでの状態
有効

使えるアプリ

このサーバーのつなぎ方と、各アプリの公式ドキュメントに基づきます。2026年11月10日に確認。

パソコン上で動かせるアプリ

ClaudeGooseLM StudioMsty StudioCherry StudioCursorVS Code + GitHub CopilotVisual StudioWindsurf (Devin Desktop)ZedKiroClineContinueJetBrains AI AssistantClaude CodeCodex CLIGemini CLIOpenCodenodecodeWarpLibreChatRaycast

すべてのアプリと長所・短所 →

できること

パソコンで動くサーバーです。インストールすると、ツール一覧がAIアプリに表示されます。

基本チェックi

誰でも見られる情報をチェックしており、コードは読んでいません。当てはまらない項目は数に入れていません。 · 2026年11月12日にチェック

  • ✓ 合格

    作者とリポジトリが一致

    レジストリ名は、リポジトリを所有するGitHubアカウント spec-family で確認済みです

  • ✓ 合格

    今もメンテナンスされている

    コードの最終更新:今日

  • ✓ 合格

    ライセンスがある

    MITを使用

  • – 対象外

    エンドポイントが応答する

    これはパソコンで動くため、インターネット上のエンドポイントはありません

  • – 対象外

    OAuthでサインイン

    パソコンで動き、代わりにローカルの設定を使います

  • … 未チェック

    ツールの説明に隠れた指示がない

    パソコンで動くサーバーです。ツール一覧を読み取れるのは、インターネット上のエンドポイントがある場合だけです

話し合い

質問、コツの共有、使えないことの報告ができます。「役に立った」の多い順です。

まだ投稿はありません。最初の質問や共有をどうぞ。

ここの投稿は利用者によるもので、PopNx チームのものではありません。

Google でログインして投稿

ユーザーレビュー

まだレビューはありません

Google でログインしてレビューを書く

文書・表計算・事務作業のほかのサーバーとの比較i

  • このカテゴリのほかの3785件のうち0%よりスターが多い
  • このカテゴリのほかの3785件のうち99%より最近レジストリに公開
  • 基本チェックの結果が、このカテゴリのほかの3785件のうち100%と同じかそれ以上

レジストリでこのカテゴリにある有効なすべてのサーバーと比較しています。スターは、公開者がリポジトリの所有者である場合だけ数えます。

よくある質問

spec-guardは安全ですか?

当てはまる基本チェック3項目のうち3項目に合格しました。コードは読んでいません。キーやトークンを追加する前に、サーバーがどんなアクセスを求めているかを確認し、必要な権限だけを持つキーを使ってください。

どんなキーやコードが必要ですか?

レジストリには必須のキーは載っていません。ただし、最初に使うときにサインインを求めるサーバーもあります。

パソコンで動きますか、それともクラウドですか?

あなたのパソコンで動きます。必要なときにAIアプリが起動し、データは作者のサーバーを通りません(サーバー自体がオンラインサービスを呼び出す場合を除きます)。

今もメンテナンスされていますか?

GitHubリポジトリの最終更新は今日、最新バージョン(0.34.0)がレジストリに届いたのは今日です。

どのアプリで使えますか?

Claude Desktop、Claude Code、Cursor、VS CodeなどのMCP対応アプリで使えます。パソコンにNode.jsも必要です。

代わりに使えるものは?

同じカテゴリには:Puter MCP, XcodeBuildMCP, XcodeBuildMCP

同じカテゴリのほかの候補

同じカテゴリで、ほかの作者が作ったサーバー。スターの多い順。

カードの見方:↓ 週あたりのダウンロードi★ GitHubスターi3つの柱:レビュー · チェック · 利用状況i更新=最新バージョンをレジストリに公開した日i

Puter MCP

Puter MCP enables AI tools to interact with Puter: manage files, websites, workers, and more

作者:HeyPuter広く使われている★ 4.4万5 か月前更新

クラウドで動く✓ 提供元 · puter.com

XcodeBuildMCP

XcodeBuildMCP provides tools for Xcode project management, simulator management, and app utilities.

作者:getsentry広く使われている↓ 13万/週 共有パッケージの数★ 65634 か月前更新

パソコンで動く✓ 提供元 · xcodebuildmcp.com

XcodeBuildMCP

XcodeBuildMCP provides tools for Xcode project management, simulator management, and app utilities.

作者:cameroncooke広く使われている↓ 13万/週 共有パッケージの数★ 656314 か月前更新

パソコンで動く

作者のREADME

READMEを開く

作者のリポジトリから書かれたとおりにコピーしたものです。PopNx MCPは内容を確認・推奨していません。HTML、画像、スクリプトは取り除いています。リンクはこのサイトの外へ移動します。

spec-guard

Hold your code to what your Markdown says about it.

Specs, ADRs, READMEs, agent instructions: the claims they make about your codebase become assertions that run in CI, in milliseconds, with no runtime dependencies.

The retired payment gateway is gone from the service layer.

If someone reintroduces LegacyPaymentGateway, CI fails and points at the line of the ADR that promised it was gone.

The words the spec-* tools share are defined in concepts, and the tutorial runs spec-guard beside its siblings through one round of work on a small repository.


Why this exists

Architecture Decision Records, RFCs and technical briefs are full of hard claims about a repository:

  • *"LegacyPaymentGateway no longer exists anywhere in the service layer."*
  • *"There is exactly one UserSessionManager."*
  • *"No secret is ever read from process.env outside src/config."*

Every one of those claims is true on the day it is written and unverified from the day after. Prose does not fail a build. Six months later the document is still confidently asserting something the code stopped doing in March.

That has always been an annoyance. It became a defect multiplier the moment coding agents started reading these documents as ground truth. An agent that reads *"module X does not exist yet"* will happily build a second X. A reviewer who trusts *"this symbol occurs zero times"* skips the grep. Stale documentation is now executable in the worst sense: it executes inside someone's head, or inside a model's context window, and produces work that has to be thrown away.

spec-guard makes the claims executable in the good sense. It reads directives written as ordinary HTML comments - invisible in every Markdown renderer - and checks them against the real tree with ripgrep. A stale claim becomes a failing build with a line number, not a landmine.

Quickstart

npm install --save-dev @spec-family/spec-guard

npx --no-install @spec-family/spec-guard "docs/**/*.md"

npx is given the package's full name, here and in every command below: Names says why the command's name alone is not written.

Add a directive to any Markdown file, here docs/adr/0007-sessions.md, directly under the sentence it makes executable:

## Decision

Session state has exactly one owner.

Run it:

npx --no-install @spec-family/spec-guard "docs/**/*.md" --verbose
spec-guard 1 spec · 1 assertion · javascript

✔ docs/adr/0007-sessions.md:5 @assert-count "UserSessionManager" (1 match) in src

1 passed · 11ms ✔ every spec assertion holds

And when it drifts:

spec-guard 1 spec · 1 assertion · javascript

✖ docs/adr/0007-sessions.md:5 @assert-count "UserSessionManager" must appear exactly 1 time in src expected exactly 1 match, found 3 src/auth/UserSessionManager.ts:12:14 export class UserSessionManager { src/legacy/sessions.ts:3:10 import { UserSessionManager } from '../auth'; src/workers/refresh.ts:8:30 const manager = new auth.UserSessionManager(store);

0 passed · 1 failed · 12ms

Exit code 1. The ADR is now a test. A Windows console other than Windows Terminal or VS Code's writes +, x, ! and o for the marks (ASCII and the marks).

Names

The package is @spec-family/spec-guard, and the command it installs is spec-guard. The name without the scope is not this project: on npm, spec-guard belonged to nobody on 2026-10-07, and whoever registers it decides what it runs.

npx fetches and runs the package of whatever name it is given when the project has none installed - a fresh clone, a worktree before npm ci, a CI job without the install step - and without a terminal it does not ask first. So give npx the full name:

  • npx --no-install @spec-family/spec-guard in a project that installed it: it runs that install, the version the lockfile pins, and where there is none it stops with an error that names this package.
  • npx @spec-family/spec-guard, without --no-install, where nothing is installed: it fetches this package and runs it.

Never npx spec-guard, and not npx --no-install spec-guard either: --no-install stops a download, and npm still runs a copy of the bare name's package that an earlier fetch left in its cache. The family's adopting guide has what was measured, under npm 10, 11 and 12.

The command alone, spec-guard, is what a package.json script holds - npm fetches nothing for a script - and what a global install puts on the path:

npm install -g @spec-family/spec-guard   # then: spec-guard "docs/**/*.md"

Directives

Every directive is an HTML comment, written directly under the sentence it makes executable. It is read only where a renderer shows Markdown: in code and in front matter it is text, so documentation that shows the syntax, like this README, never executes it. There are eight kinds, and each makes one claim about the tree:

DirectiveClaim
@assert-absencethis text is gone, or occurs at most N times
@assert-countthis text occurs exactly, at least or at most N times
@assert-import-absenceno file in scope depends on this module
@assert-import-countexactly, at least or at most N files depend on it
@assert-layersdependencies point one way through these layers
@assert-import-cycleno file depends on itself
@assert-structurefiles are named by a pattern, directories hold their entries, files have their partners
@assert-presentthese paths exist

The import rules read the dependency rather than the text, in JavaScript and TypeScript, Python, Go, Rust and C#, and say what they could not resolve rather than counting it clean. A match inside a comment does not count unless a rule asks for it, a rule that inspects no file fails, and a baseline adopts a rule the code already breaks without hiding what is added (attributes). A draft, a proposal or a superseded ADR is read and reported, and its directives are not executed (document status).

Commands

spec-guard [patterns...] [options]     # execute the directives

spec-guard --watch [patterns...] # execute them again whenever the tree changes spec-guard query [options] # the rules in force for files or directories spec-guard mcp [options] # serve the rules over MCP on stdio spec-guard prove [patterns...] # show each rule a violation of itself, in memory spec-guard cites [paths...] # check each spec a code comment cites exists and is in force spec-guard claims [options] # hold each claim a specification labels to the evidence its label asks for spec-guard impact # the files that depend on each path, and the rules in play there

  • `query` and `mcp` answer which rules govern a path before anyone writes to it, from the specs alone, and serve that answer to an agent over the Model Context Protocol. The server is listed in the official MCP Registry as io.github.spec-family/spec-guard.
  • `prove` shows each rule a violation of itself, in memory, and fails a rule that still passes.
  • `cites` holds each decision a code comment cites to a document that exists and is in force.
  • `claims` holds each claim a specification labels to the evidence its label asks for.
  • `impact` lists the files that depend on a path, however far away, and the rules in play there.
  • `--watch` re-executes only the rules a change can affect.

Exit code 0 is every assertion held, 1 is an assertion that failed, and 2 is a run that could not be trusted: bad usage, a malformed configuration, no spec matched. CLI has every option and every exit code.

Configuration

The options that are a project's policy can live in package.json, under "specGuard", so CI, a pre-commit hook and the MCP server an agent starts all hold the same rules the same way:

{

"specGuard": { "specs": ["docs/**/*.md", "README.md"], "strict": true } }

A root with no package.json keeps the same options, at the top level, in .spec-guard.json. The command line wins over either, and every report says what it took from the file. Configuration has every key.

CI integration

# .github/workflows/specs.yml

name: Specs on: push: branches: [main] pull_request:

jobs: spec-guard: runs-on: ubuntu-latest permissions: contents: read steps:

  • uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 with: persist-credentials: false
  • uses: actions/setup-node@949feb2413d6458794dcd2491c4babbbce0c15c1 # v7.1.0 with: node-version: '22'
  • run: npm ci
  • run: npx --no-install @spec-family/spec-guard "docs/**/*.md" "README.md" --verbose

That job needs nothing else installed: without ripgrep the built-in scanner runs, and gives the same answer. CI integration has why the actions and spec-guard are pinned, installing ripgrep, a pre-commit hook, and --format sarif, github and gitlab, which place each finding on its line of a pull request or a merge request.

Reference

The full reference is in docs/reference/, a topic to a page, which the package ships beside this README:

冒頭だけを表示しています。続きはリポジトリで読めます