{
  "markdown": "# curatedmcp\n\n[![npm version](https://img.shields.io/npm/v/curatedmcp?color=brightgreen)](https://www.npmjs.com/package/curatedmcp)\n[![npm downloads](https://img.shields.io/npm/dm/curatedmcp)](https://www.npmjs.com/package/curatedmcp)\n[![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](LICENSE)\n[![Node.js ≥18](https://img.shields.io/node/v/curatedmcp)](https://nodejs.org)\n\n> **The CuratedMCP Agent.** One CLI to **discover, run, audit, and govern** every MCP server your AI tools (Claude, Cursor, Windsurf, Copilot, Gemini) use.\n\n```bash\n# 10-second risk scan of your machine — no signup\nnpx curatedmcp audit\n```\n\n**Plug it in once. Add servers anytime. Audit and govern them from one place.**\n\n---\n\n## What you get\n\n| Command | What it does |\n| --- | --- |\n| `curatedmcp audit` | Scan your MCP configs for risky servers (high/medium/low). Zero auth, instant value. |\n| `curatedmcp` *(no args)* | Run as an MCP hub server over stdio for Claude, Cursor, Windsurf, etc. |\n| `curatedmcp add <slug>` | Add a server from the CuratedMCP catalog to your stack. |\n| `curatedmcp remove <slug>` | Remove a server from your stack. |\n| `curatedmcp list` | Show your current stack. |\n| `curatedmcp init` | Print the config snippet to drop into your AI client. |\n| `curatedmcp guard -- <cmd>` | Run a server behind the local action firewall. |\n| `curatedmcp login` | Authenticate the agent to your CuratedMCP account. |\n| `curatedmcp sync` | Pull your team's registry config and push audit results. |\n\n---\n\n## 1. Audit (the wedge — start here)\n\n```bash\nnpx curatedmcp audit\n```\n\nScans every MCP config file on your machine (Claude Desktop, Cursor, Windsurf, Claude Code, …),\nclassifies each server against the CuratedMCP catalog, and flags:\n\n- 🔴 **HIGH** — unverified or known-risky servers with credentials\n- 🟡 **MEDIUM** — verified servers running outside catalog defaults\n- 🟢 **VERIFIED** — known-good catalog servers\n\nNo signup, no cloud, no data leaves your machine. Logged in? Add `--sync` to push the result to your dashboard.\n\n---\n\n## 2. Run as the MCP Hub\n\nIf you use MCP servers across multiple AI clients, you've felt this pain: configure GitHub MCP in\nClaude Desktop, then re-do it in Cursor, then in Windsurf. New agent ships? Re-paste every config.\n\nThe agent fixes that. It's one MCP entry that fans out to every server you've added, in every AI client.\n\n```\n   Claude   Cursor   Windsurf   Copilot   Gemini\n       \\      \\      |      /      /\n        ┌──────────────────────────┐\n        │       curatedmcp         │   ← one config in each agent\n        │     (the MCP hub)        │\n        └────┬──────┬──────┬───────┘\n             │      │      │\n          GitHub  Postgres  Stripe   ← `add`'d once, available everywhere\n```\n\n### Add it to your AI client\n\n```json\n{\n  \"mcpServers\": {\n    \"curatedmcp\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"curatedmcp\"]\n    }\n  }\n}\n```\n\n| Client          | Path                                                                  |\n| --------------- | --------------------------------------------------------------------- |\n| Claude Desktop  | `~/Library/Application Support/Claude/claude_desktop_config.json` (mac) / `%APPDATA%\\Claude\\claude_desktop_config.json` (win) |\n| Cursor          | `~/.cursor/mcp.json`                                                  |\n| Windsurf        | `~/.codeium/windsurf/mcp_config.json`                                 |\n| Claude Code     | `~/.claude/mcp.json` (or `.claude/mcp.json` per-project)              |\n\n### Add servers to your stack\n\n```bash\nnpx curatedmcp add github          # prompts for GITHUB_TOKEN\nnpx curatedmcp add postgres --env DATABASE_URL=postgres://...\nnpx curatedmcp list\n```\n\n### Restart your AI client\n\nTools appear with a `<slug>__` prefix:\n\n- `github__create_issue`\n- `postgres__query`\n- `filesystem__read_file`\n\n---\n\n## 3. Guard (local action firewall)\n\n```bash\nnpx curatedmcp guard -- npx -y @modelcontextprotocol/server-github\n```\n\nWraps an MCP server with a local policy engine that gates every `tools/call` against\n`~/.curatedmcp/guard-policy.json`. Default policy allows read, prompts on write, blocks destructive.\n\n```bash\nnpx curatedmcp guard --dashboard --port 7878 -- npx -y @some/server\n# Then open http://localhost:7878 for the live action log\n```\n\n---\n\n## 4. Login + sync (for teams)\n\nOnce you have a CuratedMCP account, link the CLI to it:\n\n```bash\nnpx curatedmcp login                  # paste a registry key from your dashboard\nnpx curatedmcp sync                   # pull team registry config + push audit results\nnpx curatedmcp sync --team acme-eng   # pick a specific team if you're in more than one\n```\n\nSync pulls the locked-down server list approved by your team and merges it into your local stack —\nso every developer's machine runs the same vetted set of servers.\n\n---\n\n## Config files\n\n`~/.curatedmcp/stack.json` — your stack, plain JSON, hand-editable, version-controllable:\n\n```json\n{\n  \"version\": 1,\n  \"entries\": [\n    {\n      \"slug\": \"github\",\n      \"name\": \"GitHub\",\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@modelcontextprotocol/server-github\"],\n      \"env\": { \"GITHUB_TOKEN\": \"ghp_xxxxxxxxxxxx\" },\n      \"addedAt\": \"2026-05-01T10:14:00.000Z\"\n    }\n  ]\n}\n```\n\nSet `\"disabled\": true` on an entry to skip it without removing it.\n\nOther files (created on first use):\n\n- `~/.curatedmcp/auth.json` — login token (mode 0600)\n- `~/.curatedmcp/guard-policy.json` — firewall policy\n- `~/.curatedmcp/launcher.json` — anonymous client UUID\n\n---\n\n## In-agent discovery\n\nThe agent itself exposes discovery tools to your AI client, so you can ask:\n\n> \"Find me an MCP server for Postgres.\"\n> \"What's the best Stripe MCP?\"\n> \"Add the Postgres MCP server to my stack.\"\n\nThe agent uses `search_servers`, `get_server_details`, and `add_to_stack` to do all of that without you leaving the chat.\n\n---\n\n## Privacy\n\n- **All config is local** at `~/.curatedmcp/`. No cloud sync unless you `login`.\n- **Anonymous telemetry only** (event names like \"search\", \"add\"). Disable with `--no-telemetry` or `CURATOR_TELEMETRY=false`.\n- Audit results stay on your machine unless you `login` and run `--sync`.\n\n---\n\n## Compatibility\n\n- Works with Claude Desktop, Claude Code, Cursor, Windsurf, Copilot, Gemini, OpenAI Agents — anything that supports MCP over stdio.\n- Node.js ≥ 18.\n\n---\n\n## Migrating from the old packages\n\nThe agent replaces three earlier packages, which are now deprecated:\n\n| Old | New |\n| --- | --- |\n| `@curatedmcp/launcher` | `curatedmcp` *(no args)* / `curatedmcp add` / `curatedmcp list` |\n| `@curatedmcp/auditor` *(aka `mcp-audit`)* | `curatedmcp audit` |\n| `@curatedmcp/sentinel` *(aka `sentinel`)* | `curatedmcp guard` |\n\nA `launcher` bin alias is kept for back-compat.\n\n---\n\n## Links\n\n- 🌐 [curatedmcp.com/launcher](https://curatedmcp.com/launcher)\n- 📚 [Marketplace](https://curatedmcp.com/marketplace)\n- 🐙 [GitHub](https://github.com/oneprofile-dev/mcp-launcher)\n- 💬 [Issues](https://github.com/oneprofile-dev/mcp-launcher/issues)\n\nMIT licensed.\n",
  "bytes": 7013,
  "sha": "90e3f9397ba00945482b835088b524fb9ddb937fefd4e3568937ff96db837d0d",
  "repo_slug": "oneprofile-dev/mcp-launcher",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_io_github_oneprofile_dev_mcp_launcher_b86f269d/readme"
}