Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
作者による説明(英語の原文)
Inspect and score any MCP server 0-100 on publishability, schema and protocol before publish.
この3つを1つのスコアにまとめることはしません。意見、測定、人気はそれぞれ別のものだからです。
このサーバーのやさしい解説はまだ書いていません。以下はレジストリから読み取った事実です。
使っているAIアプリを選んで、設定をコピーしてください。
必要なもの
どのアプリを使っていますか?
上でアプリを選んでください。選んだアプリを覚えておくので、次からはボタンに「…にインストール」と表示されます。
Claude Desktop → Settings → Developer → Edit Config を開き、claude_desktop_config.json にこれを貼り付けます
{
"mcpServers": {
"probe": {
"command": "npx",
"args": [
"-y",
"@incultnitollc/mcp-probe",
"serve"
]
}
}
}ターミナルでこれを実行します
claude mcp add probe -- npx -y @incultnitollc/mcp-probe serveプロジェクトの .cursor/mcp.json、または ~/.cursor/mcp.json に貼り付けます
{
"mcpServers": {
"probe": {
"command": "npx",
"args": [
"-y",
"@incultnitollc/mcp-probe",
"serve"
]
}
}
}ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。
プロジェクトの .vscode/mcp.json に貼り付けます
{
"servers": {
"probe": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@incultnitollc/mcp-probe",
"serve"
]
}
}
}ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。
これはパソコンで動くサーバーですが、ChatGPTがつなげるのはインターネット上のサーバーだけです。ほかのアプリを選んでください。
選んだアプリは、この端末のCookieに保存されます。アカウントは不要です。
この設定は、作者のレジストリ登録情報から作成しています。READMEと違う場合は、READMEに従ってください。
パソコンで動くサーバーです。インストールすると、ツール一覧がAIアプリに表示されます。
誰でも見られる情報をチェックしており、コードは読んでいません。当てはまらない項目は数に入れていません。 · 2026年11月7日にチェック
レジストリ名は、リポジトリを所有するGitHubアカウント incultnitollc で確認済みです
このリポジトリはまだGitHubから読み取っていません
このリポジトリはまだGitHubから読み取っていません
これはパソコンで動くため、インターネット上のエンドポイントはありません
パソコンで動き、代わりにローカルの設定を使います
パソコンで動くサーバーです。ツール一覧を読み取れるのは、インターネット上のエンドポイントがある場合だけです
レジストリでこのカテゴリにある有効なすべてのサーバーと比較しています。スターは、公開者がリポジトリの所有者である場合だけ数えます。
当てはまる基本チェック1項目のうち1項目に合格しました。コードは読んでいません。キーやトークンを追加する前に、サーバーがどんなアクセスを求めているかを確認し、必要な権限だけを持つキーを使ってください。
レジストリには必須のキーは載っていません。ただし、最初に使うときにサインインを求めるサーバーもあります。
あなたのパソコンで動きます。必要なときにAIアプリが起動し、データは作者のサーバーを通りません(サーバー自体がオンラインサービスを呼び出す場合を除きます)。
GitHubリポジトリの最終更新は–、最新バージョン(1.2.0)がレジストリに届いたのは3 か月前です。
Claude Desktop、Claude Code、Cursor、VS CodeなどのMCP対応アプリで使えます。パソコンにNode.jsも必要です。
同じカテゴリには:Spec Driven Development, Remote Desktop Commander, Kanal Varna — drains, leaks & plumbing (Varna, BG)
同じカテゴリで、ほかの作者が作ったサーバー。スターの多い順。
カードの見方:★ GitHubスターi3つの柱:レビュー · チェック · 利用状況i更新=最新バージョンをレジストリに公開した日i
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.
Drain unblocking, leak detection & plumbing in Varna, Bulgaria: services, prices, areas, contact
作者のリポジトリから書かれたとおりにコピーしたものです。PopNx MCPは内容を確認・推奨していません。HTML、画像、スクリプトは取り除いています。リンクはこのサイトの外へ移動します。
One command to diagnose your MCP server.
Tests every tool, resource, and prompt your server exposes — then gives you a health report with a pass/fail scorecard.
Built on the Anthropic Model Context Protocol (MCP) spec.
Note: Published to npm as
@incultnitollc/mcp-probe. The CLI binary ismcp-probe. The unscoped namemcp-doctoron npm is owned by an unrelated tool, so this project ships under a scope. Versions<= 0.2.1shipped under the deprecated@incultnitostudiosllcscope — install@incultnitollc/mcp-probeinstead.
npx @incultnitollc/mcp-probe test "npx -y @modelcontextprotocol/server-everything"
| Check | Description |
|---|---|
| Tool calling | Calls every tool with auto-generated sample arguments based on the input schema |
| Resource reading | Reads every resource and verifies content is returned |
| Prompt rendering | Gets every prompt with sample arguments and verifies messages are returned |
| Schema validation | Checks tool schemas for missing descriptions, broken required fields, malformed types |
| Health scoring | Summarizes everything into a pass/fail scorecard |
npm install -g @incultnitollc/mcp-probe
Or run directly:
npx @incultnitollc/mcp-probe test "your-server-command"
npx @incultnitollc/mcp-probe test "npx -y @modelcontextprotocol/server-everything"
npx @incultnitollc/mcp-probe test https://your-server.example.com/mcp
npx @incultnitollc/mcp-probe test https://your-server.example.com/mcp --transport sse
npx @incultnitollc/mcp-probe test https://your-server.example.com/mcp \
--header "Authorization: Bearer $TOKEN"
| Flag | Description |
|---|---|
--json | Output results as JSON |
--timeout | Per-operation timeout (default 30000) |
--transport | Force stdio, sse, or http (auto-detected from target) |
--header | Add header to remote transport. Repeatable. |
0 — All checks passed1 — One or more checks failed (useful for CI gates)Use --json to get structured output for automation:
mcp-probe test --json "your-server" | jq '.score'
{
"toolsCallable": 12, "toolsTotal": 13, "resourcesReadable": 7, "resourcesTotal": 7, "promptsGettable": 3, "promptsTotal": 4, "schemaErrors": 0, "schemaWarnings": 1 }
mcp-probe auto-generates arguments for each tool based on its inputSchema:
default values and enum first choices when availableurl → https://example.com, email → test@example.com)string → "test", number → 1, boolean → false)This means tools with complex required inputs may fail — and that's useful information. It tells you your tool isn't self-contained enough for automated testing.
mcp-probe ships a second, complementary check: a publishability composite that scores your server 0–100 on whether its schemas, descriptions, and metadata are ready for other people to install. Run it as a shorthand:
npx @incultnitollc/mcp-probe score "npx -y @your-scope/your-server" --package ./package.json
Or fold it into a full test run with --publishability:
npx @incultnitollc/mcp-probe test "npx -y @your-scope/your-server" --publishability --package ./package.json
The composite combines three sub-scores — Protocol (does the wire format work), Edge cases (does it handle weird inputs), and Publishability (would a stranger understand your tools) — and a five-axis breakdown across the publishability dimension:
| Axis | What it checks |
|---|---|
description-five-axis | Per-tool description density across purpose, mutation, side-effects, invariants, examples. Tools below 3.0/5 axes fire a ≤60 composite cap. |
enum-shape | Catches prose-only enums (e.g. "one of: open, closed" in the description with no JSON Schema enum). |
mutation-legibility | Does each tool tell a planner it mutates, or only reads? Name prefix / description signal / annotation all count. |
anti-purpose-clause | High-blast tools (delete, send, transfer) should include a "do not use for X, prefer Y" pointer to a narrower tool. |
distribution-metadata | npm package readiness — description length, keyword count, repository / license / homepage fields. Skipped without --package. |
The five official Anthropic MCP servers all land at 60/100 under v1.1.0 — the description-five-axis cap fires on every one. That's not a bug in the rubric; that's the bar Anthropic ships at, and the bar most servers will start from. Full scorecards in docs/publishability-scorecards/.
- uses: incultnitollc/mcp-probe@v1
with: command: 'node dist/index.js' publishability: 'true' package: './package.json' fail-under: '70'
mcp-probe's publishability score is the pre-publish quality lane — for server authors before they ship. For the install-time security lane — server installers before they connect a third-party server — see @stephenywilson/mcp-doctor. Different audiences, complementary tools.
test/score tell you if your server is healthy *today*. Contract testing tells you what changed since last time — so a breaking schema edit or a poisoned tool description never ships silently.
Record a snapshot of your server's contract (its tools, resources, prompts, and their schemas — no traffic, no side effects), commit the .mcpvcr file, then diff or gate every PR against it.
# 1. Record a baseline (lists only — never calls a tool)
mcp-probe record "node dist/index.js" --out .mcp/contract.mcpvcr git add .mcp/contract.mcpvcr && git commit -m "record MCP contract baseline"
mcp-probe diff --baseline .mcp/contract.mcpvcr "node dist/index.js"
mcp-probe gate --baseline .mcp/contract.mcpvcr "node dist/index.js"
Every change is classified so the gate is meaningful, not noisy:
| Severity | Examples |
|---|---|
| ❌ breaking | tool removed · new required argument · property removed · type changed · enum narrowed |
| ⚠️ security | tool description mutated (rug-pull / tool-poisoning) · readOnlyHint dropped · tool became destructive |
| ✅ additive | new tool · new optional field · enum widened |
| ℹ️ info | server name · resource/prompt description text |
gate fails on breaking,security by default — tune with --fail-on breaking (or any comma-separated set). Snapshots are deterministic: re-recording an unchanged server produces a byte-identical file, so committed baselines and diffs stay clean. Compare two recorded files offline with --against instead of a live target, and write a ready-to-post PR comment with --markdown .
Why it matters: the 2026-07-28 MCP spec ships breaking changes (dropped initialize handshake, error-code and JSON-Schema shifts, HTTP+SSE → Streamable HTTP). A recorded .mcpvcr baseline turns "did we break our clients?" into a one-line CI check. See examples/contract-gate.yml for the full PR workflow with auto-commenting.
mcp-probe exits 0 on full pass and 1 on any failure, so it drops directly into any CI pipeline:
# .github/workflows/mcp-health.yml
Use --json for structured output and jq to gate on specific metrics (e.g. fail the build if schemaWarnings > 0).
Drop mcp-probe into your MCP server's GitHub Actions workflow in two lines:
- uses: incultnitollc/mcp-probe@v1
with: command: 'node dist/index.js'
Gate your PRs on a publishability composite:
- uses: incultnitollc/mcp-probe@v1
with: command: 'node dist/index.js' publishability: 'true' package: './package.json' fail-under: '70'
| Name | Required | Default | Description |
|---|---|---|---|
command | yes | — | Command that launches your MCP server (e.g. node dist/index.js or npx -y @your-scope/your-server). |
fail-under | no | 0 | Fail the job if the publishability composite drops below this value (0–100). Requires publishability: 'true'. |
publishability | no | false | Run the publishability suite — 5 checks + 0–100 composite. Requires mcp-probe >= 1.1.0 (ships 2026-05-23). |
package | no | '' | Path to package.json for the distribution-metadata check. Empty skips the distribution check. |
html-report | no | '' | Path to write the HTML scorecard. Upload via actions/upload-artifact in a follow-on step. |
mcp-probe-version | no | latest | npm version, dist-tag, or latest. Pin for reproducible builds. |
json-output | no | '' | Path to write the JSON report for downstream parsing. |
| Name | Description |
|---|---|
composite-score | Publishability composite (0–100). Only set when publishability: 'true'. |
band | Grade band: publishable / almost / rough / not-ready. Only set when publishability: 'true'. |
tools-pass-rate | tools_callable / tools_listed as a decimal (e.g. 0.83). |
schema-warnings | Total schema warning count across all tools. |
More examples: examples/basic.yml · examples/publishability-gate.yml · examples/matrix.yml.
Marketplace listing: github.com/marketplace/actions/mcp-probe-mcp-server-health-check.
The official MCP Inspector is a GUI for interactive exploration — point, click, see what a server returns. mcp-probe is a CLI for automated, repeatable diagnosis — every tool/resource/prompt called automatically, pass/fail scorecard out, exit code in. Use Inspector when you're exploring; use mcp-probe in CI, in pre-publish checks, or when you want a shareable scorecard of someone else's server.
mcp-probe. CLI: npm i -g @incultnitollc/mcpr. Built by Incultnito LLC.git clone https://github.com/incultnitollc/mcp-probe.git
cd mcp-probe npm install npm run dev -- test "npx -y @modelcontextprotocol/server-everything" npm test
MIT - Incultnito LLC