Puter MCP
Puter MCP enables AI tools to interact with Puter: manage files, websites, workers, and more
Hold your code to what your Markdown says: the rules on a path, asked before an agent writes it.
使っているAIアプリを選んで、設定をコピーしてください。
チェック 3/3 合格 · あなたのパソコンで動きます
まず:どの AI を使っていますか?
使っているアプリを選ぶと、下に手順が表示されます。
Claude につなげますが、先に準備が必要です
先にパソコンへ Node.js を入れてください(1 回だけ) · パソコン版 Claude アプリ(Windows または Mac)のみ。Web やスマホでは使えません
SettingsDeveloperEdit Config
{
"mcpServers": {
"spec-guard": {
"command": "npx",
"args": [
"-y",
"@spec-family/spec-guard",
"mcp"
]
}
}
}spec-guard を使って、私に何ができるか教えて、1 つやってみせて✓ Claude が spec-guard を使っていると言うか、回答に spec-guard のツール名が出れば接続成功です
メニュー名は 2026年11月11日 に Anthropic のヘルプページで確認 · アプリのバージョンにより画面が少し違うことがあります
ChatGPT はまだ spec-guard につなげません
spec-guard はパソコンに入れて使うものですが、ChatGPT は Web 上で動くサーバーにしかつなげません
A · spec-guard につなげるアプリを使う
Claude Code につなげますが、先に準備が必要です
先にパソコンへ Node.js を入れてください(1 回だけ)
Mac:Command+スペースで Terminal と入力 · Windows:PowerShell を開く
claude mcp add --scope user spec-guard -- npx -y @spec-family/spec-guard mcpspec-guard が一覧にあり、接続済みと表示されれば OK です
spec-guard を使って、私に何ができるか教えて、1 つやってみせて✓ Claude Code が spec-guard を使っていると言うか、回答に spec-guard のツール名が出れば接続成功です
メニュー名は 2026年11月11日 に Anthropic のヘルプページで確認 · アプリのバージョンにより画面が少し違うことがあります
Cursor につなげますが、先に準備が必要です
先にパソコンへ Node.js を入れてください(1 回だけ)
spec-guard を使って、私に何ができるか教えて、1 つやってみせて✓ Cursor が spec-guard を使っていると言うか、回答に spec-guard のツール名が出れば接続成功です
メニュー名は 2026年11月11日 に Cursor のヘルプページで確認 · アプリのバージョンにより画面が少し違うことがあります
VS Code につなげますが、先に準備が必要です
先にパソコンへ Node.js を入れてください(1 回だけ)
spec-guard を使って、私に何ができるか教えて、1 つやってみせて✓ VS Code が spec-guard を使っていると言うか、回答に spec-guard のツール名が出れば接続成功です
メニュー名は 2026年11月11日 に VS Code のヘルプページで確認 · アプリのバージョンにより画面が少し違うことがあります
Claude Code
claude mcp add --scope user spec-guard -- npx -y @spec-family/spec-guard mcpClaude 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に従ってください。
このサーバーのつなぎ方と、各アプリの公式ドキュメントに基づきます。2026年11月10日に確認。
パソコン上で動かせるアプリ
ClaudeGooseLM StudioMsty StudioCherry StudioCursorVS Code + GitHub CopilotVisual StudioWindsurf (Devin Desktop)ZedKiroClineContinueJetBrains AI AssistantClaude CodeCodex CLIGemini CLIOpenCodenodecodeWarpLibreChatRaycast
パソコンで動くサーバーです。インストールすると、ツール一覧がAIアプリに表示されます。
誰でも見られる情報をチェックしており、コードは読んでいません。当てはまらない項目は数に入れていません。 · 2026年11月12日にチェック
レジストリ名は、リポジトリを所有するGitHubアカウント spec-family で確認済みです
コードの最終更新:今日
MITを使用
これはパソコンで動くため、インターネット上のエンドポイントはありません
パソコンで動き、代わりにローカルの設定を使います
パソコンで動くサーバーです。ツール一覧を読み取れるのは、インターネット上のエンドポイントがある場合だけです
質問、コツの共有、使えないことの報告ができます。「役に立った」の多い順です。
まだレビューはありません
レジストリでこのカテゴリにある有効なすべてのサーバーと比較しています。スターは、公開者がリポジトリの所有者である場合だけ数えます。
当てはまる基本チェック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 enables AI tools to interact with Puter: manage files, websites, workers, and more
XcodeBuildMCP provides tools for Xcode project management, simulator management, and app utilities.
XcodeBuildMCP provides tools for Xcode project management, simulator management, and app utilities.
作者のリポジトリから書かれたとおりにコピーしたものです。PopNx MCPは内容を確認・推奨していません。HTML、画像、スクリプトは取り除いています。リンクはこのサイトの外へ移動します。
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.
Architecture Decision Records, RFCs and technical briefs are full of hard claims about a repository:
LegacyPaymentGateway no longer exists anywhere in the service layer."*UserSessionManager."*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.
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).
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"
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:
| Directive | Claim |
|---|---|
@assert-absence | this text is gone, or occurs at most N times |
@assert-count | this text occurs exactly, at least or at most N times |
@assert-import-absence | no file in scope depends on this module |
@assert-import-count | exactly, at least or at most N files depend on it |
@assert-layers | dependencies point one way through these layers |
@assert-import-cycle | no file depends on itself |
@assert-structure | files are named by a pattern, directories hold their entries, files have their partners |
@assert-present | these 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).
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
io.github.spec-family/spec-guard.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.
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.
# .github/workflows/specs.yml
name: Specs on: push: branches: [main] pull_request:
jobs: spec-guard: runs-on: ubuntu-latest permissions: contents: read steps:
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.
The full reference is in docs/reference/, a topic to a page, which the package ships beside this README:
exclude, comments, allow-empty and baseline; regular expressions, the one dialect both engines read; what gets searched; and document status, drafts and superseded ADRs.query and the MCP server; prove; cites; claims; and impact.