Startup valuation for AI agents: 14 tools, 80+ pre-revenue formulas.
A comprehensive startup valuation library implementing 80+ formulas from the Startup Valuation textbook — Python library, MCP server, and AI-agent skills.
A production-grade Python library for startup valuation, implementing every formula from the Startup Valuation textbook by Simon Mak (Valuation in Practice Series, Ascent Partners). Designed for developers, financial analysts, and AI agents who need auditable, structured valuation computations.
Three-layer architecture:
graph TB
subgraph Library["Python Library"]
MOD["14 Modules<br/>80+ Functions"] --> VR["ValuationResult"]
end
subgraph MCP["MCP Server"]
VR --> SVR["FastMCP Server<br/>14 Tools"]
end
subgraph Skills["AI-agent skills"]
SVR --> CORE["Core"]
SVR --> ADV["Advanced"]
SVR --> IND["Industry"]
SVR --> STAKE["Stakeholder"]
SVR --> EMER["Emerging"]
end
style Library fill:#0083AB,color:#fff
style MCP fill:#4CAF50,color:#fff
style Skills fill:#9C27B0,color:#fff
ValuationResult (value + assumptions + sensitivity)pip install startup-valuation # library only
pip install startup-valuation[mcp] # + MCP server
pip install startup-valuation[dev] # + pytest, ruff, mypy
Fastest path: one line — pip install "startup-valuation[mcp]" — then call any *_valuation
tool (Scorecard, VC method, Black-Scholes, scenario analysis).
from startup_valuation.core import scorecard_valuation, vc_method_post_money
from startup_valuation.advanced import black_scholes, scenario_analysis
from startup_valuation.types import Scenario
# Scorecard Method (pre-revenue startups)
result = scorecard_valuation(
average_valuation=1_500_000,
weights=[0.30, 0.25, 0.15, 0.10, 0.10, 0.05, 0.05],
scores=[1.25, 1.50, 1.20, 0.75, 1.00, 0.90, 1.00],
)
print(f"Scorecard: ${result.value:,.0f}") # $1,800,000
# Black-Scholes for real options (startup equity)
result = black_scholes(
underlying=20_000_000, strike=5_000_000,
risk_free_rate=0.05, volatility=0.40, time_to_maturity=1.0,
)
print(f"Option value: ${result.value:,.0f}") # $15,240,000
# Scenario Analysis
scenarios = [
Scenario("bull", 0.20, 10_000_000),
Scenario("base", 0.60, 5_000_000),
Scenario("bear", 0.20, 1_000_000),
]
result = scenario_analysis(scenarios)
print(f"Expected value: ${result.value:,.0f}") # $5,200,000
The server exposes 14 tools, each folding a family of formulas behind a method
argument — probability, time value, CAPM, core pre-revenue methods, options,
comparables, SaaS, marketplaces, fintech, biotech, hardware, international,
stakeholder equity, emerging methods, and a triangulated full analysis.
Local (stdio):
pip install "startup-valuation[mcp]"
startup-valuation-mcp # console script installed with the [mcp] extra
**Prompts and resources.** Besides the 14 tools, the server offers three guided
prompts (`value_pre_revenue_startup`, `value_saas_startup`, `model_funding_round`)
and a machine-readable method catalog at `startup-valuation://methods`, so agents
can see every method's required parameters before calling a tool.
# or: python -m startup_valuation.mcp
# or ephemeral, no clone: uvx --from startup-valuation startup-valuation-mcp
Hosted (Streamable HTTP) — no install, no API key:
https://startup-valuation.ascent-partners.com/api
OpenCode — add to opencode.json:
"startup-valuation": {
"type": "remote",
"url": "https://startup-valuation.ascent-partners.com/api",
"timeout": 60000
}
Claude Desktop / Cursor — add the HTTP URL https://startup-valuation.ascent-partners.com/api
as an MCP server, or run the stdio entrypoint above.
MCP Registry — published as com.ascent-partners/startup-valuation
(manifest: server.json) and listed on
Glama and the
Official MCP Registry. The
glama.json file holds the Glama maintainer entry.
Copy the skills/ directory to your agent's skills folder:
valuation-core — Scorecard, Berkus, VC Method, Risk Factor Summationvaluation-foundations — Probability, time value, CAPM, comparablesvaluation-advanced — Black-Scholes, Binomial, Monte Carlo, Scenario Analysisvaluation-industry — SaaS, Biotech, Fintech, Marketplace, Hardwarevaluation-stakeholder — Dilution, OPM, PWERM, Liquidation Preferencevaluation-emerging — SAFE, Crypto (MV=PQ), ESG, Metcalfe's Law| Category | Methods | Chapter |
|---|---|---|
| Probability | Expected value, joint probability, Poisson | 2 |
| Time Value | PV, NPV, annuity | 2 |
| CAPM | CAPM, portfolio beta, startup-adjusted | 2 |
| Core | Scorecard, Berkus, Risk Factor, VC Method | 3 |
| Advanced | Black-Scholes, Binomial, Monte Carlo, Scenario | 4 |
| Comparables | P/E, P/S, EV/EBITDA, regression-adjusted | 5 |
| SaaS | LTV, CAC, NRR, Magic Number, Rule of 40 | 11 |
| Biotech | rNPV, decision tree, peak sales, pipeline | 11 |
| Fintech | Payment revenue, lending, neobank, network effects | 11 |
| Marketplace | GMV, take rate, liquidity, network density | 11 |
| Hardware | TRL-adjusted, break-even, P-weighted DCF | 11 |
| International | PPP, CRP, currency-adjusted DCF, Damodaran | 12 |
| Stakeholders | Dilution, OPM, PWERM, liquidation, synergies | 13 |
| Emerging | SAFE, MV=PQ, ESG, Metcalfe's, data moat | 14 |
flowchart LR
IDEA["Idea / pre-revenue"] --> SC["Scorecard · Berkus · Risk Factor"]
SC --> VC["VC Method · OPM · PWERM"]
VC --> ADV["Black-Scholes · Binomial · Monte Carlo · Scenario"]
ADV --> COMP["Comparables: P/E · P/S · EV/EBITDA"]
COMP --> IND["Industry: SaaS · Biotech · Fintech · Marketplace · Hardware"]
IND --> R["ValuationResult (value · assumptions · sensitivity)"]
flowchart LR
PKG["startup-valuation<br/>14 modules · 80+ functions"] --> L["pip install startup-valuation"]
PKG --> MP["pip install startup-valuation[mcp]<br/>→ 14-tool MCP server"]
MP --> T1["stdio (local)"]
MP --> T2["hosted Streamable HTTP"]
ValuationResult with value, method, inputs, assumptions, and sensitivity analysis# Install dev dependencies
pip install -e ".[dev]"
# Run tests
pytest
# Run with coverage
pytest --cov=startup_valuation --cov-report=term-missing
# Lint
ruff check .
# Type check
mypy src/startup_valuation --ignore-missing-imports
Startup Valuation: A Comprehensive Guide to Valuing Fast-Growing Pre-Revenue Companies
Theory, Methods, Regulation, and Practice — Valuation in Practice Series by Ascent Partners
By Simon Mak · 338 pages · 15 chapters · 300+ exercises · 20+ real-world cases
@software{startup_valuation_engine,
author = {Mak, Simon},
title = {Startup Valuation Engine},
year = {2026},
url = {https://github.com/simonmak-ascent/startup-valuation},
license = {MIT},
}
Based on formulas from the Startup Valuation textbook.
Up-to-date Startup Valuation Engine documentation is indexed on Context7, so coding agents can pull it into context on demand. With the Context7 MCP server or ctx7 CLI installed, name the library in your prompt:
use library /simonmak-ascent/startup-valuation for API and docs
MIT — see LICENSE.
By Ascent Partners — part of the Valuation in Practice Series.
If this saves you time, a ⭐ on GitHub helps others find it.
Source-derived launch command. Check the maintainer’s required arguments and credentials before running:
uvx startup-valuationMerge this template into ~/Library/Application Support/Claude/claude_desktop_config.json. Keep existing servers. Add any arguments, credentials, and permissions required by the maintainer; this template has not been install-tested.
{
"mcpServers": {
"com-ascent-partners-startup-valuation": {
"command": "uvx",
"args": [
"startup-valuation"
]
}
}
}Restart Claude Desktop completely for changes to take effect. Confirm the server appears connected in the client’s tool list, then try a read-only example from its documentation.
Claude Desktop setup referencestartup-valuationpypiStartup Valuation MCP Server works with any MCP-compatible client. Copy the config snippet from the Configuration section above and add it to the file shown for your client, then restart the application.
~/Library/Application Support/Claude/claude_desktop_config.jsonRestart Claude Desktop completely for changes to take effect.~/.cursor/mcp.jsonRestart Cursor for changes to take effect..vscode/mcp.jsonReload VS Code window for changes to take effect.~/.codeium/windsurf/mcp_config.jsonRestart Windsurf for changes to take effect..mcp.jsonSave at the project root, then start Claude Code in that project and review the MCP server approval prompt. Keep real credentials out of shared files.