Cantrip
# mcp-server-cantrip
Cantrip helps technical founders find their first customers with structured GTM workflows.
- **Nail your ICP** — define ideal customer profiles, buyer pains, and value props
- **Research competitors** — map the landscape and find where you can win
- **Get next actions** — gap analysis tells you exactly what to work on, then does it for you
Works with **Claude Code** / **Claude Desktop** / **Cursor** — any MCP-compatible agent.
### Quick start
1. Get your API key at [cantrip.ai](https://cantrip.ai) ([settings](https://dashboard.cantrip.ai/settings/api-keys))
2. Add the server:
```bash
claude mcp add cantrip -e CANTRIP_API_KEY=your-api-key -- npx -y mcp-server-cantrip
```
3. Try this prompt:
> "Initialize a Cantrip project for my product: [describe yours in one sentence]"
## Configuration
The Quick start command above covers Claude Code. Verify it worked with `claude mcp list` or the `/mcp` command inside a session.
### Claude Desktop / Cursor / manual JSON
All MCP clients use the same JSON block. Add it to the appropriate config file:
| Client | Config file |
|--------|-------------|
| Claude Code (manual) | `~/.claude.json` |
| Claude Code (project-scoped) | `.mcp.json` in project root |
| Claude Desktop (macOS) | `~/Library/Application Support/Claude/claude_desktop_config.json` |
| Claude Desktop (Windows) | `%APPDATA%\Claude\claude_desktop_config.json` |
| Cursor | `.cursor/mcp.json` (project) or `~/.cursor/mcp.json` (global) |
```json
{
"mcpServers": {
"cantrip": {
"command": "npx",
"args": ["-y", "mcp-server-cantrip"],
"env": {
"CANTRIP_API_KEY": "your-api-key"
}
}
}
}
```
> **Note:** The `-y` flag is required — without it, `npx` prompts for confirmation which hangs over stdio.
> **Windows (not WSL):** Use `"command": "cmd"` with `"args": ["/c", "npx", "-y", "mcp-server-cantrip"]`.
> **Project-scoped with teams:** Use `"${CANTRIP_API_KEY}"` in the env value so each developer sets the key in their shell profile.
### Project Context (`.cantrip.json`)
Each project directory contains a `.cantrip.json` file that tells Cantrip which project to target:
```json
{
"project": "my-saas"
}
```
This 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.
**Multiple projects on the same machine?** Each project directory gets its own `.cantrip.json`. The agent switches context by working in the right directory.
## Examples of How to use Cantrip
After connecting Cantrip, try these prompts in order:
1. "Initialize a Cantrip project for my product: **[one sentence about what you're building]**"
2. "Find my likely ICP and top 3 buyer pains."
3. "Research 5 competitors and tell me where I can win."
4. "Give me a one-week GTM plan."
## Troubleshooting
**Server not found / no tools appear:**
- Run `claude mcp list` (Claude Code) or `/mcp` inside a session to check connection status.
- Make sure the config is in the right file — Claude Code uses `~/.claude.json` or `.mcp.json`, **not** `~/.claude/mcp.json`.
**Server hangs on startup:**
- Ensure you have `-y` in the npx args. Without it, npx waits for interactive confirmation that can never arrive over stdio.
**"Cannot reach Cantrip API" errors:**
- Verify `CANTRIP_API_KEY` is set in the `env` block of your MCP config.
- Check that `https://api.cantrip.ai` is reachable from your network.
**Windows "Connection closed" errors:**
- Use `"command": "cmd"` with `"args": ["/c", "npx", "-y", "mcp-server-cantrip"]`.
## Architecture
```
Agent (Claude, etc.) ── MCP protocol (stdio) ──> mcp-server-cantrip ── HTTPS POST ──> https://api.cantrip.ai
```
The 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.
## Tools (17)
### Setup
| Tool | Description |
|------|-------------|
| `cantrip_connect` | Connect workspace to a project (reads/writes `.cantrip.json`) |
| `cantrip_status` | Check if the daemon is running |
| `cantrip_init` | Create a new project and auto-connect |
### Core Commands
| Tool | Description |
|------|-------------|
| `cantrip_snapshot` | Project overview, drill into entity types |
| `cantrip_next` | List gap-analysis opportunities |
| `cantrip_next_prompt` | Generate a context-rich LLM prompt for an opportunity |
| `cantrip_next_run` | Spawn a background agent for an opportunity |
| `cantrip_history` | Query the audit trail |
### Review
| Tool | Description |
|------|-------------|
| `cantrip_review` | List items pending review |
| `cantrip_review_accept` | Accept an inferred entity |
| `cantrip_review_reject` | Reject an inferred entity |
| `cantrip_review_resolve` | Resolve an escalation |
| `cantrip_review_dismiss` | Dismiss an escalation |
### Entity CRUD (generic)
| Tool | Description |
|------|-------------|
| `cantrip_entity_list` | List entities of a type |
| `cantrip_entity_show` | Show entity detail |
| `cantrip_entity_add` | Create a new entity |
| `cantrip_entity_edit` | Edit an existing entity |
Supported entity types: `icp`, `pain_point`, `value_prop`, `experiment`, `channel`, `competitor`, `contact`
## License
MIT
TDQS
Scored across 19 tools
Most tools have distinct purposes, but some overlap exists. For example, cantrip_next_prompt and cantrip_next_run are both related to opportunities but serve different functions, which could cause confusion. However, the descriptions clarify their roles, and other tools like cantrip_entity_add vs. cantrip_entity_edit are clearly differentiated.
All tool names follow a consistent snake_case pattern with a 'cantrip_' prefix, and verbs like 'add', 'edit', 'list', 'run' are used predictably. For instance, cantrip_entity_add, cantrip_entity_edit, and cantrip_review_accept all adhere to the same naming convention, making the set easy to navigate.
With 19 tools, the count is slightly high but reasonable for a comprehensive project management and analysis server. It covers connection, entity management, review processes, and analytics, which justifies the number, though it might feel a bit heavy for some users.
The tool set provides complete coverage for managing Cantrip projects, including project initialization, entity CRUD operations, review workflows, gap analysis, and system status checks. There are no obvious gaps; all core lifecycle stages from setup to maintenance are supported.