loading…
Search for a command to run...
loading…
AI-driven startup risk analysis server using Gemini, providing comprehensive assessments across market, product, team, financial, and other risk categories via
AI-driven startup risk analysis server using Gemini, providing comprehensive assessments across market, product, team, financial, and other risk categories via MCP tools.
Add to Cursor Add to VS Code Add to Claude Add to ChatGPT Add to Codex Add to Gemini
Python Version Python docs License: MIT PyPI Version Build Status
A comprehensive Model Context Protocol (MCP) package for analyzing startup investment risks using AI-powered assessment across multiple risk categories. Built with FastMCP and Google Gemini AI.
PitchLense is a comprehensive AI-powered startup analysis platform that provides detailed risk assessment and growth potential evaluation for early-stage ventures. The platform analyzes multiple dimensions of startup risk and provides actionable insights for investors, founders, and stakeholders.
Watch our comprehensive tutorial video to learn how to use PitchLense effectively:
Click the image above to watch the tutorial on YouTube
| Category | Key risks |
|---|---|
| Market | Small/overstated TAM; weak growth; crowded space; limited differentiation; niche dependence |
| Product | Early stage; unclear PMF; technical uncertainty; weak IP; poor scalability |
| Team/Founder | Single-founder risk; churn; skill gaps; credibility; misaligned incentives |
| Financial | Inconsistent metrics; high burn/short runway; optimistic projections; unfavorable CAC/LTV; low margins |
| Customer & Traction | Low traction; high churn; low retention; no marquee customers; concentration risk |
| Operational | Fragile supply chain; unclear GTM; operational inefficiency; poor execution |
| Competitive | Strong incumbents; low entry barriers; weak defensibility; saturation |
| Legal & Regulatory | Grey/untested areas; compliance gaps; disputes; IP risks |
| Exit | Unclear pathways; low sector exit activity; weak late‑stage appeal |
pip install pitchlense-mcp
git clone https://github.com/pitchlense/pitchlense-mcp.git
cd pitchlense-mcp
pip install -e .
git clone https://github.com/pitchlense/pitchlense-mcp.git
cd pitchlense-mcp
pip install -e ".[dev]"
cp .env.template .env
# edit .env and fill in keys
Supported variables:
GEMINI_API_KEY=
SERPAPI_API_KEY=
PERPLEXITY_API_KEY=
# Create sample data
pitchlense-mcp sample --output my_startup.json
# Run comprehensive analysis
pitchlense-mcp analyze --input my_startup.json --output results.json
pitchlense-mcp quick --input my_startup.json --output quick_results.json
pitchlense-mcp server
from pitchlense_mcp import ComprehensiveRiskScanner
# Initialize scanner (reads GEMINI_API_KEY from env if not provided)
scanner = ComprehensiveRiskScanner()
# Provide all startup info as one organized text string
startup_info = """
Name: TechFlow Solutions
Industry: SaaS/Productivity Software
Stage: Series A
Business Model:
AI-powered workflow automation for SMBs; subscription pricing.
Financials:
MRR: $45k; Burn: $35k; Runway: 8 months; LTV/CAC: 13.3
Traction:
250 customers; 1,200 MAU; Churn: 5% monthly; NRR: 110%
Team:
CEO: Sarah Chen; CTO: Michael Rodriguez; Team size: 12
Market & Competition:
TAM: $12B; Competitors: Zapier, Power Automate; Growth: 15% YoY
"""
# Run comprehensive analysis
results = scanner.comprehensive_startup_risk_analysis(startup_info)
print(f"Overall Risk Level: {results['overall_risk_level']}")
print(f"Overall Risk Score: {results['overall_score']}/10")
print(f"Investment Recommendation: {results['investment_recommendation']}")
from pitchlense_mcp import MarketRiskAnalyzer, GeminiLLM
# Initialize components
llm_client = GeminiLLM(api_key="your_api_key")
market_analyzer = MarketRiskAnalyzer(llm_client)
# Analyze market risks
market_results = market_analyzer.analyze(startup_info)
print(f"Market Risk Level: {market_results['overall_risk_level']}")
The package provides a complete MCP server that can be integrated with MCP-compatible clients:
from pitchlense_mcp import ComprehensiveRiskScanner
# Start MCP server
scanner = ComprehensiveRiskScanner()
scanner.run()
The primary input is a single organized text string containing all startup information (details, metrics, traction, news, competitive landscape, etc.). This is the format used by all analyzers and MCP tools.
Example text input:
Name: AcmeAI
Industry: Fintech (Lending)
Stage: Seed
Summary:
Building AI-driven credit risk models for SMB lending; initial pilots with 5 lenders.
Financials:
MRR: $12k; Burn: $60k; Runway: 10 months; Gross Margin: 78%
Traction:
200 paying SMBs; 30% MoM growth; Churn: 3% monthly; CAC: $220; LTV: $2,100
Team:
Founders: Jane Doe (ex-Square), John Lee (ex-Stripe); Team size: 9
Market & Competition:
TAM: $25B; Competitors: Blend, Upstart; Advantage: faster underwriting via proprietary data partnerships
Tip: See examples/text_input_example.py for a complete end-to-end script and JSON export of results.
All tools return structured JSON responses with:
{
"startup_name": "Startup Name",
"overall_risk_level": "low|medium|high|critical",
"overall_score": 1-10,
"risk_categories": [
{
"category_name": "Risk Category",
"overall_risk_level": "low|medium|high|critical",
"category_score": 1-10,
"indicators": [
{
"indicator": "Specific risk factor",
"risk_level": "low|medium|high|critical",
"score": 1-10,
"description": "Detailed risk description",
"recommendation": "Mitigation action"
}
],
"summary": "Category summary"
}
],
"key_concerns": ["Top 5 concerns"],
"investment_recommendation": "Investment advice",
"confidence_score": 0.0-1.0,
"analysis_metadata": {
"total_categories_analyzed": 9,
"successful_analyses": 9,
"analysis_timestamp": "2024-01-01T00:00:00Z"
}
}
pitchlense-mcp/
├── pitchlense_mcp/
│ ├── __init__.py
│ ├── cli.py # Command-line interface
│ ├── core/ # Core functionality
│ │ ├── __init__.py
│ │ ├── base.py # Base classes
│ │ ├── gemini_client.py # Gemini AI integration
│ │ └── comprehensive_scanner.py
│ ├── models/ # Data models
│ │ ├── __init__.py
│ │ └── risk_models.py
│ ├── analyzers/ # Individual risk analyzers
│ │ ├── __init__.py
│ │ ├── market_risk.py
│ │ ├── product_risk.py
│ │ ├── team_risk.py
│ │ ├── financial_risk.py
│ │ ├── customer_risk.py
│ │ ├── operational_risk.py
│ │ ├── competitive_risk.py
│ │ ├── legal_risk.py
│ │ └── exit_risk.py
│ └── utils/ # Utility functions
├── tests/ # Test suite
├── docs/ # Documentation
├── examples/ # Example usage
├── setup.py
├── pyproject.toml
├── requirements.txt
└── README.md
Base Classes (core/base.py)
BaseLLM - Abstract base for LLM integrationsBaseRiskAnalyzer - Base class for all risk analyzersBaseMCPTool - Base class for MCP toolsGemini Integration (core/gemini_client.py)
GeminiLLM - Main LLM clientGeminiTextGenerator - Text generationGeminiImageAnalyzer - Image analysisGeminiVideoAnalyzer - Video analysisGeminiAudioAnalyzer - Audio analysisGeminiDocumentAnalyzer - Document analysisRisk Analyzers (analyzers/)
Models (models/risk_models.py)
git clone https://github.com/pitchlense/pitchlense-mcp.git
cd pitchlense-mcp
pip install -e ".[dev]"
pre-commit install
# Create and activate a virtual environment (recommended)
python3 -m venv .venv
source .venv/bin/activate
# Install dev extras (pytest, pytest-cov, linters)
pip install -e ".[dev]"
# Run tests with coverage and avoid global plugin conflicts
PYTEST_DISABLE_PLUGIN_AUTOLOAD=1 pytest -q -p pytest_cov
Notes:
htmlcov/index.html and coverage.xml.--cov options, ensure you passed -p pytest_cov when PYTEST_DISABLE_PLUGIN_AUTOLOAD=1 is set.python examples/basic_usage.py
python examples/text_input_example.py
black pitchlense_mcp/
flake8 pitchlense_mcp/
mypy pitchlense_mcp/
python -m build
We welcome contributions! Please see our Contributing Guide for details.
This project is licensed under the MIT License - see the LICENSE file for details.
PitchLense MCP - Making startup risk analysis accessible, comprehensive, and AI-powered.
Run in your terminal:
claude mcp add pitchlense-mcp -- npx Security
Low riskAutomated heuristic from public metadata — not a security guarantee.