MCP Servers

A collection of Model Context Protocol servers, templates, tools and more.

A comprehensive Model Context Protocol (MCP) package for analyzing startup investment risks using AI-powered assessment across multiple risk categories. Built with FastMCP and LLM.

Created 9/4/2025
Updated 3 days ago
Repository documentation and setup instructions

PitchLense MCP - Professional Startup Risk Analysis Package

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.

🚀 Features

Individual Risk Analysis Tools

  • Market Risk Analyzer - TAM, growth rate, competition, differentiation
  • Product Risk Analyzer - Development stage, market fit, technical feasibility, IP protection
  • Team Risk Analyzer - Leadership depth, founder stability, skill gaps, credibility
  • Financial Risk Analyzer - Metrics consistency, burn rate, projections, CAC/LTV
  • Customer Risk Analyzer - Traction levels, churn rate, retention, customer concentration
  • Operational Risk Analyzer - Supply chain, GTM strategy, efficiency, execution
  • Competitive Risk Analyzer - Incumbent strength, entry barriers, defensibility
  • Legal Risk Analyzer - Regulatory environment, compliance, legal disputes
  • Exit Risk Analyzer - Exit pathways, sector activity, late-stage appeal

Comprehensive Analysis Tools & Data Sources

  • Comprehensive Risk Scanner - Full analysis across all risk categories
  • Quick Risk Assessment - Fast assessment of critical risk areas
  • Peer Benchmarking - Compare metrics against sector/stage peers
  • SerpAPI Google News Tool - Fetches first-page Google News with URLs and thumbnails
  • Perplexity Search Tool - Answers with cited sources and URLs

📊 Risk Categories Covered

| 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 |

🛠️ Installation

From PyPI (Recommended)

pip install pitchlense-mcp

From Source

git clone https://github.com/pitchlense/pitchlense-mcp.git
cd pitchlense-mcp
pip install -e .

Development Installation

git clone https://github.com/pitchlense/pitchlense-mcp.git
cd pitchlense-mcp
pip install -e ".[dev]"

🔑 Setup

1. Get Gemini API Key

  1. Visit Google AI Studio
  2. Create a new API key
  3. Copy the API key

2. Create .env

cp .env.template .env
# edit .env and fill in keys

Supported variables:

GEMINI_API_KEY=
SERPAPI_API_KEY=
PERPLEXITY_API_KEY=

🚀 Usage

Command Line Interface

Run Comprehensive Analysis

# Create sample data
pitchlense-mcp sample --output my_startup.json

# Run comprehensive analysis
pitchlense-mcp analyze --input my_startup.json --output results.json

Run Quick Assessment

pitchlense-mcp quick --input my_startup.json --output quick_results.json

Start MCP Server

pitchlense-mcp server

Python API

Basic Usage (single text input)

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']}")

Individual Risk Analysis (text input)

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']}")

MCP Server Integration

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()

📋 Input Data Format

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.

📊 Output Format

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"
    }
}

🎯 Use Cases

  • Investor Due Diligence - Comprehensive risk assessment for investment decisions
  • Startup Self-Assessment - Identify and mitigate key risk areas
  • Portfolio Risk Management - Assess risk across startup portfolio
  • Accelerator/Incubator Screening - Evaluate startup applications
  • M&A Risk Analysis - Assess acquisition targets
  • Research & Analysis - Academic and industry research on startup risks

🏗️ Architecture

Package Structure

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

Key Components

  1. Base Classes (core/base.py)

    • BaseLLM - Abstract base for LLM integrations
    • BaseRiskAnalyzer - Base class for all risk analyzers
    • BaseMCPTool - Base class for MCP tools
  2. Gemini Integration (core/gemini_client.py)

    • GeminiLLM - Main LLM client
    • GeminiTextGenerator - Text generation
    • GeminiImageAnalyzer - Image analysis
    • GeminiVideoAnalyzer - Video analysis
    • GeminiAudioAnalyzer - Audio analysis
    • GeminiDocumentAnalyzer - Document analysis
  3. Risk Analyzers (analyzers/)

    • Individual analyzers for each risk category
    • Consistent interface and output format
    • Extensible architecture
  4. Models (models/risk_models.py)

    • Pydantic models for type safety
    • Structured data validation
    • Clear data contracts

🔧 Development

Setup Development Environment

git clone https://github.com/pitchlense/pitchlense-mcp.git
cd pitchlense-mcp
pip install -e ".[dev]"
pre-commit install

Run Tests

# 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:

  • Coverage reports are written to htmlcov/index.html and coverage.xml.
  • If you see errors about unknown --cov options, ensure you passed -p pytest_cov when PYTEST_DISABLE_PLUGIN_AUTOLOAD=1 is set.

Example Scripts

python examples/basic_usage.py
python examples/text_input_example.py

Code Formatting

black pitchlense_mcp/
flake8 pitchlense_mcp/
mypy pitchlense_mcp/

Build Package

python -m build

📝 Notes

  • All risk scores are on a 1-10 scale (1 = lowest risk, 10 = highest risk)
  • Risk levels: low (1-3), medium (4-6), high (7-8), critical (9-10)
  • Individual tools can be used independently or combined for comprehensive analysis
  • The system handles API failures gracefully with fallback responses
  • All tables and structured data are returned in JSON format
  • Professional package architecture with proper separation of concerns

🤝 Contributing

We welcome contributions! Please see our Contributing Guide for details.

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Add tests
  5. Submit a pull request

📄 License

This project is licensed under the MIT License - see the LICENSE file for details.

🆘 Support

🙏 Acknowledgments

  • Google Gemini AI for providing the underlying AI capabilities
  • FastMCP for the Model Context Protocol implementation
  • The open-source community for inspiration and tools

PitchLense MCP - Making startup risk analysis accessible, comprehensive, and AI-powered.

Quick Setup
Installation guide for this server

Install Package (if required)

uvx pitchlense-mcp

Cursor configuration (mcp.json)

{ "mcpServers": { "connectaman-pitchlense-mcp": { "command": "uvx", "args": [ "pitchlense-mcp" ] } } }