plugins/claude-ecosystem/skills/audit-mcp/SKILL.md
Audit MCP server configurations for quality, compliance, and security. Use to validate .mcp.json files and server setups.
npx skillsauth add melodic-software/claude-code-plugins audit-mcpInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Audit MCP server configurations for quality, compliance, and security.
Get the current UTC date, capture the project root path, ensure the temp directory exists, and clean up any stale audit files if the user confirms. Invoke the claude-ecosystem:mcp-integration skill to load authoritative MCP configuration guidance.
This command audits MCP server configurations from multiple sources:
.mcp.json in project root (version-controlled, team-shared)~/.claude.json with root-level mcpServers key.claude/settings.local.json with mcpServers key if present.mcp.json files within plugin directoriesmanaged-mcp.json in system directoriesFor each configuration, validate JSON structure, server fields, transport types, authentication, environment variable usage, and security (no exposed credentials).
.mcp.json in project root~/.claude.json)ALWAYS start by running claude mcp list to get the authoritative list of configured MCP servers. This provides ground truth from the running system and prevents missing configurations stored in unexpected locations.
# Get authoritative list with scope information
claude mcp list
# Get details on specific server if needed
claude mcp get <server-name>
Why CLI First:
~/.claude.json (NOT ~/.claude/.mcp.json - this path does not exist)mcpServers key may be deep in the file (line 200+) and easy to miss with partial readsAfter CLI discovery, verify the configuration files exist and can be read. For large files like ~/.claude.json, use grep to find the mcpServers key position before reading.
Configuration locations (per official docs):
| Scope | Location |
| --- | --- |
| Project | .mcp.json (project root) |
| User (Global) | ~/.claude.json (root-level mcpServers key) |
| Local | .claude/settings.local.json (mcpServers key) |
| Plugin | plugins/*/.mcp.json |
| Enterprise | managed-mcp.json (system paths) |
Build a list of discovered configurations with scope, path, and server count.
Parse the scope selector and --force flag. Filter discovered configurations to match the requested scope.
Display audit mode (SMART or FORCE), configurations discovered, and list each file with scope and server count.
For each configuration, invoke the mcp-auditor subagent with scope, path, config type, and last audit date. Run audits in parallel when multiple configurations exist.
Unless --skip-validation flag is present:
audit-finding-validator agent with:
project_root: The captured project root pathaudit_type: "mcp"audit_files: List of .claude/temp/audit-*-mcp-*.json file paths.claude/temp/audit-filtered-findings.jsonIf --skip-validation flag is present:
Report total configurations audited, server count, results by scope, and a details table. List security alerts and configuration issues with remediation steps.
Include validation statistics (if validation was performed):
MCP configurations must NEVER contain hardcoded API keys, tokens, or passwords in version-controlled files. Use environment variable expansion (${API_KEY}) for sensitive values.
Credential severity by location:
| Location | Hardcoded Credentials | Severity |
| --- | --- | --- |
| .mcp.json (project, version-controlled) | CRITICAL FAILURE | Keys exposed in git |
| ~/.claude.json (user, NOT version-controlled) | WARNING | Acceptable for personal use |
Valid types: stdio (local processes), http (recommended for remote), sse (deprecated).
| Platform | User Config Location |
| --- | --- |
| Unix | ~/.claude.json |
| Windows | %USERPROFILE%\.claude.json |
All audit results are written to .claude/audit/mcp.md.
Use /audit-log mcp to view current audit status.
User: /audit-mcp
Claude: Running CLI discovery first...
$ claude mcp list
perplexity: cmd /c npx -y perplexity-mcp - Connected (User scope)
firecrawl: cmd /c npx -y firecrawl-mcp - Connected (User scope)
...
## Audit Plan
**Mode**: SMART
**MCP servers discovered via CLI**: 5
**Configuration file**: ~/.claude.json
### Servers to Audit:
1. [user] perplexity - stdio
2. [user] firecrawl - stdio
3. [user] context7 - stdio
4. [user] microsoft-learn - http
5. [user] ref - http
[Spawns mcp-auditor subagent]
## MCP Audit Complete
**Total servers**: 5
**Scope**: User (Global)
| Server | Transport | Security | Result |
| --- | --- | --- | --- |
| perplexity | stdio | WARNING: Hardcoded API key | 85/100 |
| firecrawl | stdio | WARNING: Hardcoded API key | 85/100 |
| context7 | stdio | PASS | 95/100 |
| microsoft-learn | http | PASS | 95/100 |
| ref | http | WARNING: API key in URL | 85/100 |
User: /audit-mcp project
Claude: Checking for project .mcp.json...
[Audits .mcp.json in project root if exists]
User: /audit-mcp --force
Claude: Running full MCP audit (force mode)...
[Audits all configs regardless of modification status]
development
Search Milan Jovanovic's .NET blog for Clean Architecture, DDD, CQRS, EF Core, and ASP.NET Core patterns. Use for finding applicable patterns, code examples, and architecture guidance. Invoke when working with .NET projects that could benefit from proven architectural patterns.
tools
Install and configure Data API Builder (DAB) for production SQL Server MCP access with RBAC
tools
Manage MssqlMcp servers - status, rebuild, and upstream updates
tools
Developer environment setup guides for Windows, macOS, Linux, and WSL. Use when setting up development machines, installing tools, configuring environments, or following platform-specific setup guides. Covers package management, shell/terminal, code editors, AI tooling, containerization, databases, and more.