A customer discovery co-pilot that plugs into Claude. Guiding founders from raw idea through to product-market fit signals using objective, emotionless and logical discovery call techniques. Channel your inner Spock to PMF!
Install · Tools · Development · Deployment
Building the wrong thing is a direct route to startup failure. Validate helps you avoid that by structuring the messy process of customer discovery into a repeatable workflow:
- Define testable hypotheses: break your idea into specific assumptions
- Find the right people: build ideal customer profiles, source contacts
- Run discovery calls: AI-generated call guides following Mom Test principles
- Capture insights: structured debrief, transcript analysis, bias detection
- Synthesize and decide: cross-call pattern analysis, pivot signals, validation scorecards
It runs as an MCP server, so it works inside Claude Desktop, Claude Code, or any MCP-compatible client.
| Layer | Tech |
|---|---|
| Protocol | Model Context Protocol (stdio + SSE transport) |
| Runtime | Node.js / TypeScript |
| Database | SQLite via Drizzle ORM (WAL mode, auto-creates tables) |
| AI | Claude API for coaching, transcript analysis, and synthesis |
| Packaging | .mcpb bundle for one-click install |
| Deployment | Local (stdio) or remote (Fly.io via SSE) |
Download the latest validator.mcpb from Releases, then double-click or drag it into Claude Desktop.
git clone https://github.com/harrykeen/validator.git && cd validator
npm install && npm run buildAdd to your Claude Desktop config (~/Library/Application Support/Claude/claude_desktop_config.json):
{
"mcpServers": {
"validator": {
"command": "node",
"args": ["/path/to/validator/dist/server.js"],
"env": {
"ANTHROPIC_API_KEY": "sk-...",
"DB_MODE": "sqlite",
"DB_PATH": "~/.validator/data.db"
}
}
}
}| Tool | Description |
|---|---|
validate_idea |
Start validating a new idea — welcome message and coaching questions |
create_project |
Create a project record after the initial discussion |
list_projects |
List all validation projects |
get_project_status |
Full project overview with hypotheses, progress, and metrics |
create_hypothesis |
Add a testable hypothesis with acceptance criteria |
update_hypothesis |
Update status or confidence score |
list_hypotheses |
List hypotheses with confidence scores |
prioritize_hypotheses |
AI-ranked by importance and testability |
| Tool | Description |
|---|---|
create_icp |
Define an ideal customer profile |
suggest_channels |
AI suggests where to find your target customers |
add_contact |
Add a potential interviewee |
list_contacts |
List contacts with outreach status |
update_contact_status |
Track progress through the pipeline |
search_linkedin |
LinkedIn search queries for your ICP |
get_linkedin_profile |
Fetch LinkedIn profile details |
| Tool | Description |
|---|---|
generate_outreach |
AI-generated personalised outreach (no pitch, short, specific) |
list_outreach |
View all messages with status |
update_outreach_status |
Track sends and responses |
get_outreach_stats |
Response rates by channel |
suggest_outreach_variant |
AI A/B variant generation |
| Tool | Description |
|---|---|
generate_call_guide |
AI discussion guide following Mom Test principles |
get_call_principles |
Mom Test principles reference |
start_debrief |
Structured post-call debrief |
record_insight |
Capture insights tagged to hypotheses |
analyze_transcript |
AI transcript analysis with bias detection |
| Tool | Description |
|---|---|
synthesize_insights |
Cross-call pattern analysis |
get_validation_scorecard |
Hypothesis evidence summary |
suggest_next_steps |
AI-recommended next actions |
detect_pivot_signals |
Pivot indicator analysis |
get_progress_report |
Metrics dashboard |
| Prompt | Description |
|---|---|
start-validation |
Kick off idea validation |
prep-for-call |
Pre-call coaching |
debrief-call |
Post-call insight extraction |
weekly-review |
Weekly synthesis and planning |
pivot-or-persevere |
Direction decision analysis |
npm install # install dependencies
npm run build # compile TypeScript
npm run dev # watch mode
npm run lint # check linting
npm run format # auto-fix formatting
npm run test # run test suite
npm run bundle # build .mcpb package| Variable | Description | Default |
|---|---|---|
ANTHROPIC_API_KEY |
Claude API key (required for AI features) | — |
DB_MODE |
sqlite or postgres |
sqlite |
DB_PATH |
SQLite database path | ./validator.db |
DATABASE_URL |
PostgreSQL connection string | — |
TRANSPORT |
stdio or sse |
stdio |
PORT |
Port for SSE transport | 3000 |
Validate can run remotely on Fly.io using SSE transport:
fly launch
fly secrets set ANTHROPIC_API_KEY=sk-...
fly volumes create validator_data --size 1
fly deploySee Dockerfile and fly.toml for the production configuration.