{
  "markdown": "# mcp-server-cantrip\n\nCantrip helps technical founders find their first customers with structured GTM workflows.\n\n- **Nail your ICP** — define ideal customer profiles, buyer pains, and value props\n- **Research competitors** — map the landscape and find where you can win\n- **Get next actions** — gap analysis tells you exactly what to work on, then does it for you\n\nWorks with **Claude Code** / **Claude Desktop** / **Cursor** — any MCP-compatible agent.\n\n### Quick start\n\n1. Get your API key at [cantrip.ai](https://cantrip.ai) ([settings](https://dashboard.cantrip.ai/settings/api-keys))\n2. Add the server:\n\n```bash\nclaude mcp add cantrip -e CANTRIP_API_KEY=your-api-key -- npx -y mcp-server-cantrip\n```\n\n3. Try this prompt:\n\n> \"Initialize a Cantrip project for my product: [describe yours in one sentence]\"\n\n## Configuration\n\nThe Quick start command above covers Claude Code. Verify it worked with `claude mcp list` or the `/mcp` command inside a session.\n\n### Claude Desktop / Cursor / manual JSON\n\nAll MCP clients use the same JSON block. Add it to the appropriate config file:\n\n| Client | Config file |\n|--------|-------------|\n| Claude Code (manual) | `~/.claude.json` |\n| Claude Code (project-scoped) | `.mcp.json` in project root |\n| Claude Desktop (macOS) | `~/Library/Application Support/Claude/claude_desktop_config.json` |\n| Claude Desktop (Windows) | `%APPDATA%\\Claude\\claude_desktop_config.json` |\n| Cursor | `.cursor/mcp.json` (project) or `~/.cursor/mcp.json` (global) |\n\n```json\n{\n  \"mcpServers\": {\n    \"cantrip\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"mcp-server-cantrip\"],\n      \"env\": {\n        \"CANTRIP_API_KEY\": \"your-api-key\"\n      }\n    }\n  }\n}\n```\n\n> **Note:** The `-y` flag is required — without it, `npx` prompts for confirmation which hangs over stdio.\n\n> **Windows (not WSL):** Use `\"command\": \"cmd\"` with `\"args\": [\"/c\", \"npx\", \"-y\", \"mcp-server-cantrip\"]`.\n\n> **Project-scoped with teams:** Use `\"${CANTRIP_API_KEY}\"` in the env value so each developer sets the key in their shell profile.\n\n### Project Context (`.cantrip.json`)\n\nEach project directory contains a `.cantrip.json` file that tells Cantrip which project to target:\n\n```json\n{\n  \"project\": \"my-saas\"\n}\n```\n\nThis file is created automatically by `cantrip_init` (new project) or `cantrip_connect` (existing project). The agent manages it — you don't need to create it manually.\n\n**Multiple projects on the same machine?** Each project directory gets its own `.cantrip.json`. The agent switches context by working in the right directory.\n\n## Examples of How to use Cantrip\n\nAfter connecting Cantrip, try these prompts in order:\n\n1. \"Initialize a Cantrip project for my product: **[one sentence about what you're building]**\"\n2. \"Find my likely ICP and top 3 buyer pains.\"\n3. \"Research 5 competitors and tell me where I can win.\"\n4. \"Give me a one-week GTM plan.\"\n\n## Troubleshooting\n\n**Server not found / no tools appear:**\n- Run `claude mcp list` (Claude Code) or `/mcp` inside a session to check connection status.\n- Make sure the config is in the right file — Claude Code uses `~/.claude.json` or `.mcp.json`, **not** `~/.claude/mcp.json`.\n\n**Server hangs on startup:**\n- Ensure you have `-y` in the npx args. Without it, npx waits for interactive confirmation that can never arrive over stdio.\n\n**\"Cannot reach Cantrip API\" errors:**\n- Verify `CANTRIP_API_KEY` is set in the `env` block of your MCP config.\n- Check that `https://api.cantrip.ai` is reachable from your network.\n\n**Windows \"Connection closed\" errors:**\n- Use `\"command\": \"cmd\"` with `\"args\": [\"/c\", \"npx\", \"-y\", \"mcp-server-cantrip\"]`.\n\n## Architecture\n\n```\nAgent (Claude, etc.) ── MCP protocol (stdio) ──> mcp-server-cantrip ── HTTPS POST ──> https://api.cantrip.ai\n```\n\nThe MCP server is a thin translation layer. It converts MCP tool calls into `{command, args, flags}` JSON envelopes and POSTs them to the Cantrip API. Zero business logic — identical contract to the CLI and React UI.\n\n## Tools (17)\n\n### Setup\n\n| Tool | Description |\n|------|-------------|\n| `cantrip_connect` | Connect workspace to a project (reads/writes `.cantrip.json`) |\n| `cantrip_status` | Check if the daemon is running |\n| `cantrip_init` | Create a new project and auto-connect |\n\n### Core Commands\n\n| Tool | Description |\n|------|-------------|\n| `cantrip_snapshot` | Project overview, drill into entity types |\n| `cantrip_next` | List gap-analysis opportunities |\n| `cantrip_next_prompt` | Generate a context-rich LLM prompt for an opportunity |\n| `cantrip_next_run` | Spawn a background agent for an opportunity |\n| `cantrip_history` | Query the audit trail |\n\n### Review\n\n| Tool | Description |\n|------|-------------|\n| `cantrip_review` | List items pending review |\n| `cantrip_review_accept` | Accept an inferred entity |\n| `cantrip_review_reject` | Reject an inferred entity |\n| `cantrip_review_resolve` | Resolve an escalation |\n| `cantrip_review_dismiss` | Dismiss an escalation |\n\n### Entity CRUD (generic)\n\n| Tool | Description |\n|------|-------------|\n| `cantrip_entity_list` | List entities of a type |\n| `cantrip_entity_show` | Show entity detail |\n| `cantrip_entity_add` | Create a new entity |\n| `cantrip_entity_edit` | Edit an existing entity |\n\nSupported entity types: `icp`, `pain_point`, `value_prop`, `experiment`, `channel`, `competitor`, `contact`\n\n## License\n\nMIT\n",
  "bytes": 5338,
  "sha": "2550e0a9557e07446557a1cc5f242617a91eb3947446fe372b9918487489203f",
  "repo_slug": "ozten/mcp-server-cantrip",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_io_github_ozten_cantrip_852ac5ec/readme"
}