hoangsonww/mcp-audit
> Audit the configured MCP servers (user + project scope) via the Agent variable names, headers, and the source file each definition came from. Reads /api/cc-config/mcp. Use when reviewing MCP integrations for hygiene, duplication, or unexpected transports.
npx skills add https://github.com/hoangsonww/Claude-Code-Agent-Monitor --skill mcp-audit
Inventory and audit every Model Context Protocol server the user has
configured — both user-scope and project-scope — read through the Agent Monitor
dashboard at http://localhost:4820.
The user provides: $ARGUMENTS
This may be:
| Endpoint | Returns |
|----------|---------|
| GET /api/cc-config/mcp | { user:[…], projectScoped:[…] }. Each server: { name, source, kind } where kind is stdio (with command, args, envNames), http (with url, headers), or unknown. source names the file the definition came from (e.g. ~/.claude.json (top-level), ~/.claude.json (projects[<root>]), ~/.claude/settings.json) |
List every server from user and projectScoped. For each show name,
source, kind, and the transport detail:
command, its args, and the envNames (names only — valuesare not exposed by the API).
url and the headers key names (values not exposed).Separate user-scope from project-scope servers. Flag any name that appears in
both scopes (project may shadow user) and any duplicate definitions across
source files.
kind: "unknown" (malformed orunsupported definition).
envNames; note they depend onenvironment variables being present at launch.
url host so the user canconfirm they trust the remote.
Scope | Name | Kind | Transport detail | Source).(the API does not expose them).
hosts.
concurrently by the running CLI); edit their definitions in the source file
named by source.
http://localhost:4820, say so and tellthe user to start it with npm start from the repo root.
Take hoangsonww/mcp-audit from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.