mcpField
S
setup-doctor

setup-doctor

Local
github.com/saxenakapilDeveloper Tools3Updated 4w ago

About setup-doctor

setup-doctor is a CLI for auditing project-level and user-level AI coding agent configuration. It scores setups and explains fixes, and can summarize local usage; it makes no network requests at runtime.

Key features

  1. 01Audits instructions, skills, and MCP settings
  2. 02Scores setups and suggests fixes
  3. 03Summarizes usage in a shareable card
  4. 04Creates badges and standalone HTML reports
  5. 05Previews and applies safe fixes

Use cases

  1. 01Check project or user-level agent configuration
  2. 02Compare scores from two audits
  3. 03Generate a README badge or HTML report
  4. 04Create a usage summary from local session logs

MCP support

Run `setup-doctor mcp` to start an MCP server that exposes Doctor and Wrapped as read-only tools to MCP clients.

Configuration

Local server config is the same for every client. Copy it into your client’s MCP config file.

mcp.json · Universal config
{
"mcpServers": {
"saxenakapil-setup-doctor": {
"command": "npx",
"args": [
"-y",
"setup-doctor"
]
}
}
}
Run commandnpx -y setup-doctor

Local servers need a runtime on your machine (e.g. Node.js 18+). Config file locations differ by client; see your client’s docs.

Packages
npmsetup-doctor0.3.3

Tools

2

Saved tool list · updated 2w ago

ParameterTypeRequiredDescription
pathstringNoProject directory to audit. Defaults to the current directory.
agentenumNoWhich agent setup to check. Defaults to auto-detect.claude | codex | cursor | copilot | all
scopeenumNoWhich locations to check. Defaults to all.project | global | all
minSeverityenumNoHide findings below this severity. The score itself is unaffected.low | medium | high | critical

Details

From the project README

setup-doctor

Audits how AI coding agents are configured in your project and at the user level, scores the result from 0 to 100, and tells you exactly what to fix. It also summarizes your local usage into a shareable card.

Setup Doctor score

The badge above is this repository's own score, produced by running setup-doctor against itself.

Terminal output of npx setup-doctor showing score, category breakdown and findings

Features

  • Doctor audits instruction files, skills, subagents, MCP servers, plugins, settings and hooks. It runs 30 rules across 6 categories and reports a score, a band (Excellent, Good, Needs work, or Poor), and a specific fix for every finding.
  • Wrapped summarizes your local session logs (sessions, active days, tokens, an estimated cost, streaks, and a persona label) and writes a shareable card as SVG, with optional PNG.
  • Badge writes a static or live score badge for your README.
  • HTML report produces a single self-contained file with no network requests.
  • MCP server exposes Doctor and Wrapped as read-only tools for any MCP client.

Quick start

No install is needed. Run it from the root of a project:

npx setup-doctor

The default command audits the project and prints a report:

Setup Doctor  score 85/100  (Good)   rules v1.2.0

Instruction files  29/30   Skills  n/a   MCP  n/a   Plugins  n/a   Settings  5/10   Freshness  n/a

Always-loaded context: about 0 tokens

HIGH  SET-02  Hook PreToolUse in .claude/settings.json points to scripts/missing.sh which is missing or not executable
      Fix: Correct the path, make the script executable, or remove the hook.
LOW   INS-01  No instruction file found for claude
      Fix: Create CLAUDE.md (or the agent's equivalent) with build and test commands, code style rules and a short project layout.

2 findings

Absolute paths in the finding messages are shortened here for readability.

Read the getting started guide for how to interpret the score and each finding.

Commands

CommandPurpose
setup-doctor [doctor] [path]Audit the setup and print the score. This is the default command.
setup-doctor wrappedSummarize local usage and write a shareable card.
setup-doctor badgeWrite a README badge file.
setup-doctor rulesList every rule with its category, severity and enabled state.
setup-doctor explain <RULE_ID>Explain what a rule checks and how to fix it.
setup-doctor diff <before.json> <after.json>Explain how the score changed between two saved reports.
setup-doctor mcpStart an MCP server over stdio.

Run setup-doctor --help for every flag, or see the command reference.

Supported agents

AgentDoctorWrapped
Claude CodeFull (all 30 rules)Yes
CodexInstructions and MCP rulesYes
GitHub Copilot CLIInstructions, skills, MCP, settings and hooksYes
CursorInstructions, MCP and project skillsYes, requires Node 22.5 or later
Other agents (.windsurfrules, .clinerules)Instruction rules onlyNo

Categories that do not apply to an agent (for example, plugins for Codex) are excluded from its score rather than counted as failures. Details are in agents.

Installation

MethodCommand or location
npm (no install)npx setup-doctor
Homebrewbrew install saxenakapil/setup-doctor/setup-doctor
Claude Code pluginAvailable in the Anthropic plugin directory. Exposes /setup-doctor:doctor and /setup-doctor:wrapped.
Cursor skillsCopy skills-cursor/ into your project's .cursor/skills/. See Cursor skills.
MCP clientListed in the official MCP Registry as io.github.saxenakapil/setup-doctor. See MCP server.
GitHub Actionsaxenakapil/setup-doctor-action@v1. See CI integration.
pre-commitAdd this repository as a hook source. See CI integration.

Common options

OptionCommandsDescription
--agent claude|codex|cursor|copilot|alldoctor, badge, wrappedWhich agent to read. Doctor and badge auto-detect by default. Wrapped defaults to claude.
--scope project|global|alldoctor, badgeWhich locations to check.
--format terminal|json|htmldoctorOutput format.
--ci --fail-under <n>doctorExit with code 1 if the score is below n.
--ci --comparedoctorCompare with the last recorded run and exit with code 1 on a drop.
--fix, --dry-rundoctorPreview or apply safe, mechanical fixes. See fix mode.
--period 7d|30d|ytd|all|YYYY-MM-DD:YYYY-MM-DDwrappedTime window. Defaults to 30d.
--anonymize, --show-projects, --no-costwrappedPrivacy and cost controls. See Wrapped.
--config <path>doctor, badge, rules, wrappedUse a configuration file other than <project>/.setupdoctorrc. See configuration.

Full flag reference: doctor, wrapped.

Badge

Add your score to the README:

npx setup-doctor badge

This writes setup-doctor-badge.svg and prints a Markdown snippet with your current score. To keep the badge current automatically, publish a shields.io endpoint file from CI. See CI integration.

Privacy and safety

  • No network access at runtime. There is no telemetry and no update check. An automated check in CI enforces this (scripts/check-no-network.mjs).
  • Audits never change your agent configuration. Only doctor --fix edits configuration files, and it shows a diff, requires confirmation, and writes a backup first. badge, wrapped and --out write new output files only.
  • Secrets are never printed. Findings report the rule and location. Values appear as [REDACTED].
  • Shareable outputs contain aggregate numbers only. The Wrapped card and the badge never include prompts, file paths, usernames or repository names. Local reports (HTML and JSON) can contain file paths, so review them before sharing.
  • Session logs are read for metadata only. Timestamps, model names, token counts and tool names are read. Message text is discarded line by line.
  • No account, API key or login is required.

Documentation

  • Getting started: your first run and how to read the output
  • Doctor: every audit option, output formats, exit codes
  • Wrapped: periods, privacy controls, the card, and output formats
  • Fix mode: previewing and applying fixes, backups, and what is fixable
  • Configuration: .setupdoctorrc, disabling rules, thresholds, and ignore patterns
  • Agents: what each agent reads and how shared files are scored
  • CI integration: GitHub Actions, score history, PR comments, badges, pre-commit
  • MCP server: using Doctor and Wrapped from an MCP client
  • Cursor skills: installing the Doctor and Wrapped skills in Cursor
  • Troubleshooting: common problems and fixes

Reference documents:

  • Rules: specification of the v1 rules
  • Themes: visual theme design tokens
  • Decision log: assumptions, deviations and decisions made during development

Contributing

Issues and pull requests are welcome. Before opening a pull request, run the full check:

npm install
npm run check        # typecheck, tests, privacy guard, version sync, em dash guard
npm run build        # bundles src/bin.ts to dist/bin.js

Each rule lives in its own file under src/rules/ and has a trigger fixture and a clean fixture under test/fixtures/. Rules are pure functions of the normalized model: file system access happens only in adapters under src/adapters/.

License

MIT. See LICENSE. Bundled font licenses (SIL Open Font License 1.1) are in src/data/fonts/LICENSES.md.

Comments

Markdown supported

New to MCP?

From what the protocol is to installing your first server, these answers cover most first questions.

An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.