Cantrip
Cantrip is a GTM (Go-to-Market) workflow MCP server that helps technical founders find their first customers through structured workflows, gap analysis, and AI-powered enrichment.
Project Management
Initialize projects with an optional product brief (auto-extracts ICPs, pain points, and value props)
Connect workspaces to existing projects via
.cantrip.jsonList, update, delete, and check the status of projects
Entity CRUD Create, view, edit, and delete entities across 7 types:
icp— Ideal Customer Profilespain_point— Buyer pains with severity and frequencyvalue_prop— Value propositionsexperiment— GTM experiments with hypothesis and statuschannel— Marketing/sales channels with lifecycle and metricscompetitor— Competitive landscape entriescontact— Prospect/customer contacts
Gap Analysis & AI Enrichment
Identify opportunities that move the project closer to an ideal GTM state
Generate context-rich LLM prompts for any opportunity (zero credit cost)
Execute AI enrichment to automatically create or update entities
Review Queue
List pending inferred entities and escalations
Accept, reject, resolve, or dismiss items
Browsing & Auditing
Snapshot your project at overview, entity-type, or individual entity level
Query an append-only audit trail filtered by event type, entity type, or date
Credit & Billing
Check available, reserved, and total credit balance
View transaction history and browse available credit packs
Cantrip works with Claude Code, Claude Desktop, Cursor, and any MCP-compatible agent, acting as a thin translation layer between MCP tool calls and its API.
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
Get your API key at cantrip.ai (settings)
Add the server:
claude mcp add cantrip -e CANTRIP_API_KEY=your-api-key -- npx -y mcp-server-cantripTry 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 Code (project-scoped) |
|
Claude Desktop (macOS) |
|
Claude Desktop (Windows) |
|
Cursor |
|
{
"mcpServers": {
"cantrip": {
"command": "npx",
"args": ["-y", "mcp-server-cantrip"],
"env": {
"CANTRIP_API_KEY": "your-api-key"
}
}
}
}Note: The
-yflag is required — without it,npxprompts 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:
{
"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.
Related MCP server: @intempt/mcp-server
Examples of How to use Cantrip
After connecting Cantrip, try these prompts in order:
"Initialize a Cantrip project for my product: [one sentence about what you're building]"
"Find my likely ICP and top 3 buyer pains."
"Research 5 competitors and tell me where I can win."
"Give me a one-week GTM plan."
Troubleshooting
Server not found / no tools appear:
Run
claude mcp list(Claude Code) or/mcpinside a session to check connection status.Make sure the config is in the right file — Claude Code uses
~/.claude.jsonor.mcp.json, not~/.claude/mcp.json.
Server hangs on startup:
Ensure you have
-yin the npx args. Without it, npx waits for interactive confirmation that can never arrive over stdio.
"Cannot reach Cantrip API" errors:
Verify
CANTRIP_API_KEYis set in theenvblock of your MCP config.Check that
https://api.cantrip.aiis 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.aiThe 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 |
| Connect workspace to a project (reads/writes |
| Check if the daemon is running |
| Create a new project and auto-connect |
Core Commands
Tool | Description |
| Project overview, drill into entity types |
| List gap-analysis opportunities |
| Generate a context-rich LLM prompt for an opportunity |
| Spawn a background agent for an opportunity |
| Query the audit trail |
Review
Tool | Description |
| List items pending review |
| Accept an inferred entity |
| Reject an inferred entity |
| Resolve an escalation |
| Dismiss an escalation |
Entity CRUD (generic)
Tool | Description |
| List entities of a type |
| Show entity detail |
| Create a new entity |
| Edit an existing entity |
Supported entity types: icp, pain_point, value_prop, experiment, channel, competitor, contact
License
MIT
Available Tools
19 toolscantrip_connectA
Start here. Connect this workspace to a Cantrip project by writing a .cantrip.json file. All subsequent commands will target this project automatically. Call without arguments to check the current connection.
Inputs: project.
cantrip_entity_addA
Create a new entity. Automatically marked as 'accepted'. Fields vary by type:
icp: name, description, demographics, jobs_to_be_done, willingness_to_pay, current_alternatives, priority, is_beachhead
pain_point: description, severity (low|medium|high|critical), frequency (rare|occasional|frequent|constant), evidence
value_prop: framing (required — use instead of 'name'; 'description' is stored in extensions), tagline, evidence
channel: name, channel_type, lifecycle_stage (exploring|testing|scaling|maintaining|killed), cac, estimated_reach, conversion_rate (note: 'description' maps to 'notes' column)
experiment: title (required — use instead of 'name'), hypothesis, description, status (proposed|designed|active|completed|analyzed|abandoned), success_metrics, outcome_notes, value_prop_id, channel_id
competitor: name, description, url, positioning, strengths, weaknesses, pricing_model
contact: name, email, phone, company, role, source, url, notes Extra fields (any field not in the schema above) are stored in extensions. After adding entities, pause and confirm with the user before adding more. Pass
projectto override.cantrip.json— useful in cloud-hosted or multi-project contexts.
Inputs: entity_type (required), name, description, fields, +1 more.
cantrip_entity_editA
Edit an existing entity. Fields vary by type (same as cantrip_entity_add). Pass well-known fields directly, and any additional fields in the 'fields' object. Extra fields are stored in extensions. Pass project to override .cantrip.json — useful in cloud-hosted or multi-project contexts.
Inputs: entity_type (required), id (required), name, description, +2 more.
cantrip_historyA
Query the append-only audit trail of all actions taken on the project. Pass project to override .cantrip.json — useful in cloud-hosted or multi-project contexts.
Inputs: type, entity, since, limit, +1 more.
cantrip_initA
Create a new project and connect this workspace to it. Pass 'brief_text' (product brief as text) to auto-extract ICPs, pain points, and value props as inferred entities (costs 5 credits). Or pass 'brief_path' (absolute file path) and the file will be read locally. Without a brief, the project is created empty (free) and you add entities manually. Writes .cantrip.json automatically after creation. After creating a project, add a few entities and confirm them with the user before going deeper.
Inputs: name (required), description (required), brief_text, brief_path.
cantrip_meter_balanceA
Check remaining credits. Returns available credits, reserved credits (held by in-progress operations), and total balance. Pass project to override .cantrip.json — useful in cloud-hosted or multi-project contexts.
Inputs: project.
cantrip_meter_historyA
View recent credit transactions. Shows usage debits, purchases, and running balance. Pass project to override .cantrip.json — useful in cloud-hosted or multi-project contexts.
Inputs: limit, project.
cantrip_meter_tiersB
View available credit packs. Shows tier name, credits included, and price.
Inputs: no named parameters.
cantrip_nextA
List gap-analysis opportunities — things that would move the project closer to ideal state. Each opportunity has a stable UUID that you can pass to cantrip_next_prompt or cantrip_next_run. Opportunities persist across calls; re-running gap analysis updates existing opportunities rather than replacing them. Review the project snapshot with the user before running opportunities. Pass project to override .cantrip.json — useful in cloud-hosted or multi-project contexts.
Inputs: project.
cantrip_next_promptA
Generate a context-rich LLM prompt for an opportunity. Returns a ready-to-use prompt with all relevant ontology context baked in. Zero credit cost. Pass project to override .cantrip.json — useful in cloud-hosted or multi-project contexts.
Inputs: id (required), project.
cantrip_next_runA
Execute an enrichment opportunity with AI. Runs the LLM-powered enrichment inline — either updating existing entities' missing fields (targeted) or generating new entities (bulk). Returns when complete with a summary of what was created or updated. Parallelism: you may run different loop types concurrently (e.g. enrich ICPs + enrich competitors), but the daemon blocks concurrent runs of the same loop type for safety. Pass project to override .cantrip.json — useful in cloud-hosted or multi-project contexts.
Inputs: id (required), project.
cantrip_projectA
Manage projects. Actions:
list (default): List all projects in the current team.
update: Update a project's name or description. Uses the connected project unless 'slug' is provided.
delete: Delete a project and all its data. Uses the connected project unless 'slug' is provided.
Inputs: action, slug, name, description.
cantrip_reviewA
List all items pending review (inferred entities and open escalations). Pass project to override .cantrip.json — useful in cloud-hosted or multi-project contexts.
Inputs: project.
cantrip_review_acceptA
Accept an inferred entity, marking it as verified ground truth. Pass project to override .cantrip.json — useful in cloud-hosted or multi-project contexts.
Inputs: id (required), project.
cantrip_review_dismissA
Dismiss an inferred entity or open escalation. For entities: removes from review queue without accepting or rejecting (kept for history). For escalations: closes without resolving. Pass project to override .cantrip.json — useful in cloud-hosted or multi-project contexts.
Inputs: id (required), project.
cantrip_review_rejectA
Reject an inferred entity (soft-delete, kept for history). Pass project to override .cantrip.json — useful in cloud-hosted or multi-project contexts.
Inputs: id (required), project.
cantrip_review_resolveA
Resolve an open escalation with a resolution message. Pass project to override .cantrip.json — useful in cloud-hosted or multi-project contexts.
Inputs: id (required), resolution (required), project.
cantrip_snapshotA
Browse project data at three zoom levels. No args: project overview with entity counts by type and review state, gaps, and review queue size. entity_type only: list all entities of that type (e.g. 'icps', 'pain-points', 'channels'). entity_type + entity_id: show full detail for one entity. This is the primary tool for listing and inspecting entities. Pass project to override .cantrip.json — useful in cloud-hosted or multi-project contexts.
Inputs: entity_type, entity_id, project.
cantrip_statusA
Check daemon health, authentication, and current project. Returns daemon reachability, authenticated identity (user, team), and the active project from .cantrip.json. When CANTRIP_API_KEY is missing, returns setup instructions with config examples for common MCP clients.
Inputs: no named parameters.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
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.
Related MCP Connectors
Marketplace and infrastructure for MCP servers and skills: deploy, host, monetize, analytics.
MCP server for Product Management
Related MCP Servers
- AlicenseBqualityDmaintenanceMCP server for Maasy AI Marketing Copilot2179 npmMIT

@intempt/mcp-serverofficial
FlicenseNot gradedqualityCmaintenanceMCP server for Intempt GrowthOS — AI content generation, brand management, knowledge base, and user/account lookup through natural language.-- AlicenseNot gradedqualityDmaintenanceMCP server for qualifying and responding to inbound leads in seconds using a multi-agent AI pipeline.1MIT
- AlicenseNot gradedqualityDmaintenanceThis MCP server assists founders in customer discovery by structuring hypotheses, finding interviewees, generating call guides, and synthesizing insights to achieve product-market fit.35,318,186 npmMIT