Mcp migration auditor
Skill Abhillashjadhav/PM-agent-OS/.claude/skills/mcp-migration-auditor
Evidence-aware product-management skills and reviewer agents for discovery, strategy, build, launch, and iteration.
npx -y skills add Abhillashjadhav/PM-agent-OS --skill mcp-migration-auditorAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
2 things to look at
- no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
- 1 stars1 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Iterate-stage skill: scans an MCP configuration against the 2026 spec revision and returns per-server BREAKS/DEGRADED/SAFE verdicts — every finding citing both the config line and the spec clause. Use when spec readiness is the question — 'audit our MCP config for the 2026 spec', 'will our connectors break when the spec lands', 'spec-readiness scan on this .mcp.json' — or when /pm routes such a request here. Do NOT use for MCP context-cost audits, for debugging broken connections, for server installation, or for what-changed-in-the-spec questions with no config to audit.
SKILL.md
5.2 KB, ~1.0k tokens by cl100k_base, as published. Nobody here has run it
MCP Migration Auditor
Config on one side, spec on the other, and every finding holds a line from each. A migration verdict that can't quote both is a guess wearing a checklist.
Verification gates (defined first; output is blocked until all pass)
- G1 — Double citation: every finding cites the config line(s) it applies to AND the spec clause it violates or satisfies — quoted, from the provided baseline or spec text actually fetched this session. One-sided findings fail.
- G2 — Spec honesty: no clause is asserted that can't be quoted. Recollected-but-unquotable spec changes are tagged
unverified: confirm against current specand excluded from verdicts. Invented deprecation dates, clauses, or timelines fail. - G3 — One verdict per server, fixes concrete: each server gets exactly one of BREAKS / DEGRADED / SAFE; every non-SAFE finding carries the concrete fix (what the line becomes) and an effort class — "update it" is not a fix.
Steps
- Number the config and inventory the servers: transport, auth, capabilities per server — these are the audit's subjects, cited by line.
- Fix the spec baseline. Use the user-provided baseline verbatim, or fetch the current spec/changelog text and quote from it. The baseline's clauses are the only law this audit applies; its version/date is stated in the header.
- Audit each server against each relevant clause: transport (removed/replaced transports), auth (required patterns, deprecated token styles), capabilities/lifecycle changes. Per check, write the citation pair — config line + clause — and the consequence at spec-enforcement time.
- Assign verdicts: BREAKS (a clause the server violates fatally at enforcement) · DEGRADED (works but on deprecated/discouraged patterns with a stated horizon) · SAFE (compliant, cited). The worst applicable finding sets the server's verdict.
- Write the fixes: the concrete config change (L2's
"transport": "sse"→ the streamable-HTTP form), migration order (breaks first), and effort class per fix (config-only / server-upgrade / auth-infrastructure). Unknowns about the server binary's capabilities are questions to its owner, not assumptions. - Gate pass. Every finding double-cited (G1), every clause quotable with unverified items quarantined (G2), one verdict per server with concrete fixes (G3). Fix and re-run; maximum 2 repair loops, then report the failure.
Output format
MCP MIGRATION AUDIT (spec baseline: <version/date, as provided/fetched>)
| server | verdict | config line | spec clause | fix | effort |
| tickets | BREAKS | L2 "transport": "sse" | "SSE transport removed; streamable HTTP replaces it" | L2 → {"transport": "streamable-http", "url": …} | config-only, if server binary supports it — confirm with owner |
| docs | SAFE | L3 stdio | "stdio unchanged" | — | — |
| crm | DEGRADED | L5 static bearer token | "OAuth resource-server pattern required; static bearer deprecated" | move to OAuth RS flow; rotate the hardcoded token NOW regardless | auth-infrastructure |
MIGRATION ORDER: tickets (breaks) → crm auth (deprecated + a live credential in config) → none for docs.
UNVERIFIED (not in verdicts): <any recollected clause without quotable text — confirm against current spec>
GATE CHECK: G1 pass (n/n double-cited) · G2 pass (0 unquotable clauses in verdicts) · G3 pass
Hard rules
- Both citations, always. The config line without the clause is a lint; the clause without the line is trivia; the audit is the pair.
- Never assert spec content from memory. Quote the provided baseline or fetched text, or tag it unverified and keep it out of verdicts.
- One verdict per server — the worst finding wins; a server is never "mostly safe".
- Security observations found in passing (a hardcoded credential) are flagged with the finding even when the spec clause is about something else — but labeled as out-of-scope-of-spec, in-scope-of-sanity.
Limitations
- The audit is config-level: it verifies what the config declares, not what the server binary actually implements — binary capabilities are confirm-with-owner questions.
- Spec interpretation follows the quoted clauses; ambiguous clauses are flagged with both readings rather than silently resolved.
- A baseline the user provides is trusted as given; if it's stale, the audit is faithfully stale — the header's version/date line exists so the reader can check.
- Enforcement timing is quoted when the spec/changelog states it and otherwise absent — no invented deadlines.
What ships with it
Read from the repository
Just SKILL.md. No reference files, no scripts.
Gives 0 of the 12 instructions most project setup skills give in ~1.0k tokens
Counted across 999 of the 1,637 authors here whose files we hold, read 2026-08-07
- Ask one question at a timein 29 of 999, across 28 files
- Detect the package manager from lockfilesin 28 of 999, across 9 files
- Present findings to the userin 26 of 999, across 5 files
- Explore current repo statein 24 of 999, across 3 files
- Update the agent skills block in place if it existsin 24 of 999, across 3 files
- Install husky lint-staged and prettierin 23 of 999, across 4 files
- Create the lintstagedrc filein 22 of 999, across 3 files
- Commit all changed filesin 22 of 999, across 3 files
- Run lint-staged to verify it worksin 22 of 999, across 3 files
- Create the husky pre-commit filein 21 of 999, across 2 files
- Create a prettierrc file if missingin 21 of 999, across 2 files
- Initialize huskyin 21 of 999, across 2 files
Said here and by no other author read
- cite the config line and spec clause for every finding
- quote the provided baseline or fetched text for every clause
- tag recollected but unquotable clauses as unverified
- assign exactly one verdict per server
- let the worst applicable finding set the server verdict
- provide the concrete config change for every non-SAFE finding
Grouped from the skills themselves: near-identical wordings counted once, and counted by distinct author, so one author publishing three of these counts once. Length counted with cl100k_base; the agent that loads this file may tokenize it differently.