Skip to main content
Glama
MAASAI-Labs

SAFE & Cap Table Calculator

by MAASAI-Labs

SAFE & Cap Table Calculator (MCP server)

Live MCP URL (Streamable HTTP, no auth): https://safe-cap-table-mcp.vercel.app/mcp
Health check: https://safe-cap-table-mcp.vercel.app/health

An MCP server that lets Grok Bot (or any MCP client) model startup financings: SAFEs, convertible notes, priced rounds, option pool shuffles, fees, and multi-step financing histories. It returns cap tables before and after, per-holder dilution and fully diluted ownership, as a markdown table plus structured JSON.

It works for any country and any currency, because amounts are unitless and shown with a $ sign. It needs no API keys, makes no network calls and stores nothing. The math is deterministic.

Tools

Tool

What it does

safe_ownership

Implied ownership of post-money SAFEs (amount / post-money cap), combined SAFE dilution, MFN resolution, optional share estimates

safe_conversion_price

One SAFE or note: compares the cap price, discount price and round price, and returns the best-of conversion price and the share count

model_priced_round

Full round: converts post-money and pre-money SAFEs (cap, discount, MFN) and notes (with interest), issues new-money shares at a pre-money valuation or a fixed price, tops up the option pool (pre-money or post-money), and applies placement fees (cash and equity) and advisor grants

model_round_sequence

Runs events in order: SAFEs (including extensions at different caps), notes, priced rounds and milestone tranches at a fixed price or valuation

compare_pool_timing

The same round with the pool top-up in the pre-money vs the post-money, showing who bears the dilution

explain_methodology

Returns the formulas and conventions used

All tools are read-only and idempotent. Invalid input returns a tool error that lists each bad field.

Related MCP server: Personal Finance MCP

Example prompts

  • "I raised $1M on a $10M post-money SAFE. What do I own after it, and after a $10M Series A at $40M pre?"

  • "Founders hold 8M shares and the pool is 2M. Model a $2M seed at $8M pre with the pool topped up to 10% post-money. Compare that with putting the pool in the post-money."

  • "We have a $500k SAFE at a $6M cap with a 20% discount, a $250k MFN SAFE, and a $300k note at 8% for 18 months with a $5M cap. Convert them all in a $3M round at $12M pre."

  • "Seed SAFE at a $10M cap, then an extension at $20M, then a Series A of $8M at $40M pre, then a second $2M tranche at $5/share. Show the cap table after each step."

  • "Add a 5% cash and 2% equity placement fee, plus an advisor with 0.5% from the pool."

Run locally

npm install
npm test            # unit tests (vitest)
npm run build
npm start           # Streamable HTTP at http://localhost:3000/mcp  (PORT to change)
npm run start:stdio # stdio transport for desktop MCP clients
npm run smoke       # lists tools and runs a sample round against the local HTTP server

Example stdio client config:

{ "mcpServers": { "safe-cap-table": { "command": "node", "args": ["/path/to/safe-cap-table-mcp/dist/main-stdio.js"] } } }

Deploy to Vercel

  1. Push this repo to GitHub and import it at vercel.com/new (Framework preset: Other). No environment variables are needed.

  2. Vercel serves api/mcp.ts as a Node function. vercel.json rewrites /mcp to /api/mcp and /health to /api/health.

  3. Your MCP URL is https://<project>.vercel.app/mcp. Check it with node scripts/smoke.mjs https://<project>.vercel.app/mcp.

The server is stateless (no sessions, JSON responses), so it scales on serverless without sticky sessions. A GET request returns 405 by design.

Methodology

  • Fully diluted (FD) = issued shares + granted options + unallocated pool.

  • Post-money SAFE (YC): cap price = cap / Company Capitalization, where Company Capitalization = pre-round FD + all conversion shares + any pre-money pool increase, but only to the extent promisedOptions exceeds the existing pool (per YC SAFE). New-money shares excluded. Ownership at conversion ~= amount / cap.

  • Pre-money SAFE and notes (default): cap price = cap / pre-round FD (excludes all converting securities and pool increase).

  • Notes convert principal + simple interest (rate x days/365).

  • Discount price = round price x (1 - discount). Holder gets the LOWEST of round, cap and discount prices.

  • MFN SAFE: adopts lowest cap and highest discount among SAFEs listed after it.

  • Pre-money pool: pool top-up counted in pre-money price (dilutes existing holders, pre-money instruments, and post-money SAFEs, but not new investors).

  • Post-money pool: top-up issued after pricing; dilutes everyone, including new investors.

  • Target pool % = unallocated pool / post-round FD (before advisor grants).

  • Equity placement fee: shares at round price worth (fee% x new money), priced like new-money shares.

  • Advisor grants: issued after close; fromPool=true reduces unallocated pool, otherwise new shares (percent sized so advisor holds that % of final FD).

  • Circular round math solved by deterministic fixed-point iteration; shares rounded down per holder; price unrounded internally.

  • This is a modelling tool, not legal, tax or investment advice. Confirm with counsel and your actual instruments.

YC references: Post-Money Safe User Guide (ycombinator.com/documents). A $1M SAFE on a $10M post-money cap owns 10% of the company capitalization at conversion, before new money.

Testing instructions for marketplace reviewers

No credentials, accounts or API keys are needed.

  1. Connect the MCP URL (or run npm install && npm run build && npm start, then use http://localhost:3000/mcp).

  2. List tools. You should see 6 tools.

  3. Call model_priced_round with:

    {"capTable":[{"name":"Founders","shares":9000000},{"name":"Option pool","shares":1000000,"class":"pool"}],
     "safes":[{"name":"Seed SAFE","amount":1000000,"valuationCap":10000000}],
     "round":{"preMoneyValuation":40000000,"newInvestors":[{"name":"Lead","amount":10000000}]}}

    Expected: SAFE converts at $0.90 into 1,111,111 shares, the Series A price is $3.60, Lead holds 20.00%, the SAFE holds 8.00% and Founders hold 64.80%.

  4. Call compare_pool_timing with founders at 10,000,000 shares, $8M pre, $2M raise and targetPoolPercent: 0.1. Expected: Founders get 70.00% with a pre-money pool vs 72.00% with a post-money pool. The price is $0.70 vs $0.80.

  5. Send bad input (for example round: {}). Expected: a clear validation error, not a crash.

Disclaimer

This is a modelling aid, not legal, tax or investment advice. Real instruments vary (for example pro-rata side letters, pay-to-play, or a non-standard definition of "Company Capitalization"). Check final numbers against your documents and counsel.

License

MIT

Available Tools

6 tools
compare_pool_timingOption pool shuffle comparisonA
Read-onlyIdempotent

Run the same round with the option pool top-up in the pre-money vs the post-money, showing price per share and who bears the dilution. Requires round.targetPoolPercent.

ParametersJSON Schema
NameRequiredDescriptionDefault
notesNo
roundYes
safesNo
advisorsNo
capTableYesPre-round fully diluted holders. Use class 'pool' for the unallocated option pool.

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover safety (readOnly, idempotent, closed-world). The description adds genuinely new behavior: it runs the round twice along a single axis and reports dilution allocation across holders. That goes beyond the annotations, though it doesn't disclose output shape or how the two scenarios are returned.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two tight sentences: the comparison and its outputs come first, the required input second. No filler, well front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a nested, complex modeling tool with no output schema and low schema coverage, the description is adequate but thin. It names the required input but doesn't describe how the two scenarios' results are returned or what a caller should supply in capTable/round beyond the schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is only 20%, so the description must compensate, and it does flag that round.targetPoolPercent is required (notably the schema does not mark this nested field required). However, the other four params and the nested capTable/round structures are left to the schema, so compensation is partial.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a concrete verb ('Run the same round') plus the exact scenario axis being compared (pool top-up pre-money vs post-money) and even names the outputs (price per share, who bears dilution). This is clearly distinct from siblings like safe_conversion_price or model_priced_round.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It implies the use case (comparing pool-timing scenarios) and names the precondition round.targetPoolPercent, but never says when to prefer this over model_priced_round or model_round_sequence. No explicit alternatives or when-not guidance is provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

explain_methodologyExplain the mathB
Read-onlyIdempotent

Return the documented conventions and formulas this calculator uses.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, and openWorldHint=false, so the safety profile is covered. The description adds that the payload is documented conventions/formulas, but says nothing about scope or size of the returned documentation, so it adds only modest context beyond the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single efficient sentence with no filler. It is front-loaded correctly, though the referent of 'this calculator' is slightly ambiguous and a few words clarifying the scope of the returned conventions would have earned their place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-param tool with no output schema, the description should sketch what comes back; it says 'conventions and formulas' but not at what granularity or scoped to what. Adequate to call the tool, but thin on what the agent will actually receive.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There are zero parameters and 100% schema coverage, so per the baseline rule this scores 4. There is nothing parameter-related the description could or should compensate for.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description gives a specific verb+resource: return documented conventions and formulas. It's clear what the tool surfaces, and none of the sibling tools (safe_conversion_price, model_priced_round, etc.) are explanation-oriented, so it is practically distinguishable — but the description never explicitly differentiates itself from those calculation siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No when-to-use or when-not-to-use guidance is provided. The phrase 'this calculator' implies the context in which it applies, but there is no explicit statement of when an agent should call this versus simply running one of the sibling calculation tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

model_priced_roundModel a priced roundA
Read-onlyIdempotent

Full priced-round model: converts all SAFEs (post- and pre-money, cap/discount/MFN) and convertible notes, issues new investor shares at pre-money valuation or fixed price, tops up the option pool (pre- or post-money), applies placement fees (cash and equity) and advisor grants. Returns before/after cap table, per-holder dilution, FD ownership and markdown.

ParametersJSON Schema
NameRequiredDescriptionDefault
notesNo
roundYes
safesNo
advisorsNo
capTableYesPre-round fully diluted holders. Use class 'pool' for the unallocated option pool.

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare readOnlyHint=true, idempotentHint=true, so the agent already knows this is a pure computation with no side effects. The description adds valuable context beyond this: the specific conversion rules applied (MFN handling, YC post-money SAFE pool treatment implied), the scope of outputs, and that it performs full dilution math rather than a single point estimate. This additional detail about what the model computes is genuinely useful, though it doesn't discuss precision guarantees, error conditions, or performance characteristics.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, dense sentence that front-loads the core purpose and enumerates capabilities. Every clause earns its place by specifying a distinct feature. However, it is quite long and could benefit from a sentence break to separate inputs from outputs, which slightly affects readability. Still, no filler or redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a complex financial modeling tool with 5 parameters, nested objects, and only 20% schema description coverage, the description should do more to compensate for the sparse parameter documentation. It covers the high-level purpose and outputs well, but leaves significant gaps around parameter formats, default behaviors, and edge cases (e.g., how pricePrecision interacts with computed prices, what happens if both pricePerShare and preMoneyValuation are provided). The lack of an output schema means the description appropriately describes return values, which it does, but overall completeness is only adequate given the complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 20%, meaning most parameters lack inline documentation. The description references many parameter concepts (SAFEs, notes, pool timing, fees, advisors) but doesn't explain their expected formats or constraints. For example, it mentions 'placement fees (cash and equity)' and 'advisor grants' without clarifying how these map to the nested schema fields like placementCashPercent vs placementEquityPercent, or the fromPool flag. The description adds conceptual coverage but leaves substantial gaps for a 5-parameter tool with nested objects.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a precise verb+resource ('Full priced-round model') and enumerates the exact mechanics covered: SAFE conversion (post/pre-money, cap/discount/MFN), note conversion, new investor share issuance, option pool top-up, placement fees, advisor grants. It also names the return artifacts (before/after cap table, per-holder dilution, FD ownership, markdown). This clearly distinguishes it from siblings like safe_conversion_price (single SAFE) and compare_pool_timing (narrow comparison).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies when to use it (modeling a complete priced round with multiple instruments), but it does not explicitly state when NOT to use it or name the alternative siblings. An agent can infer that narrow SAFE pricing questions should go to safe_conversion_price or safe_ownership, but this routing is left implicit. Adequate but not explicit guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

model_round_sequenceModel multi-tranche / extension roundsA
Read-onlyIdempotent

Apply a sequence of events in order: SAFE issuances (e.g. extensions at different caps), notes, priced rounds (which convert outstanding instruments), and tranche closes at fixed price or valuation (milestone tranches). Returns each step and the final cap table vs start.

ParametersJSON Schema
NameRequiredDescriptionDefault
eventsYesEach event: {type:'safe', safe:{...}} | {type:'note', note:{...}} | {type:'priced_round', round:{...}, advisors?:[...]} | {type:'tranche', name, investors:[{name,amount}], pricePerShare | preMoneyValuation}
capTableYesPre-round fully diluted holders. Use class 'pool' for the unallocated option pool.

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the safety profile (readOnlyHint, idempotentHint, openWorldHint=false), and the description adds genuine behavioral context: priced rounds convert outstanding instruments, tranche closes are handled at fixed price or valuation, and the output is each step plus the final cap table vs. start. That is real process and result disclosure beyond the structured fields, consistent with the read-only annotation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two dense sentences with no filler, front-loaded on the core action, followed by the return contract. The long parenthetical clause lists are slightly cramped but every clause carries semantic weight.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With only two required params, both fully schema-documented, and no output schema, the description closes the important gaps: it explains the return shape ('each step and the final cap table vs start') and how events interact. Only the when-to-use routing to siblings is left implicit.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3, but the description adds interpretation the schema does not: what each event type means (e.g. SAFE extensions at different caps, priced rounds converting outstanding instruments, milestone tranches) and the capTable's 'vs start' comparison. This meaningfully enriches the otherwise terse event-type hints.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb+resource ('Apply a sequence of events in order') and enumerates the event families handled (SAFEs, notes, priced rounds, tranches). This clearly separates it from the single-operation siblings like model_priced_round and safe_ownership, though it never names an alternative explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'Apply a sequence of events in order' implies you use this when you have multiple sequential events rather than a single conversion, which is an implied usage rather than an explicit one. It never says when to prefer this over model_priced_round or the safe_* tools, so the routing signal is only inferable.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

safe_conversion_priceSAFE / note conversion priceA
Read-onlyIdempotent

For one SAFE or note: compare cap price, discount price and round price, return the conversion price (best-of for the holder) and shares.

ParametersJSON Schema
NameRequiredDescriptionDefault
amountYes
discountNo
valuationCapNo
roundPricePerShareYes
capitalizationSharesNo

TDQS

A3.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint and openWorldHint=false, so safety is covered. The description adds genuine behavioral value by disclosing the computation logic ('best-of for the holder') and what is returned, which the annotations alone do not convey.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single dense sentence with the scope ('for one SAFE or note') front-loaded and no filler. Every clause carries information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description usefully names the return values (conversion price, shares), but for a 5-parameter tool at 0% schema coverage it leaves the 'amount' input and all parameter semantics unexplained.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must carry the burden. It conceptually names cap price, discount price, round price and shares, covering most inputs, but says nothing about 'amount' or expected units/formats for any parameter.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb set (compare, return) and resource (SAFE/note conversion price) plus the output (conversion price and shares), which is far clearer than a name restatement. It does not explicitly differentiate itself from siblings like safe_ownership or model_priced_round, so it earns a 4 rather than a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase 'For one SAFE or note' scopes the tool to a single instrument, which implicitly suggests it is not the multi-instrument / round-modeling tools nearby. However there is no explicit when-to-use vs. when-not guidance and no named alternative.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

safe_ownershipSAFE ownership snapshotB
Read-onlyIdempotent

Implied ownership of post-money SAFEs (amount / post-money cap), combined SAFE dilution, MFN resolution, and optional share estimates. Use before a priced round.

ParametersJSON Schema
NameRequiredDescriptionDefault
safesYes
preSafeSharesNo

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint and a closed-world scope, so the safety profile is covered. The description adds that MFN clauses get resolved and dilution is combined, but it omits the key behavioral caveat that the schema accepts pre-money SAFEs while the text only describes post-money math, and it says nothing about assumptions or output shape.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two dense sentences with the output scope front-loaded and the usage cue trailing. No filler, and the parenthetical '(amount / post-money cap)' efficiently conveys the ownership formula without a paragraph.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

A read-only, idempotent analysis tool with no output schema, so the description's enumeration of computed results is useful, but an agent still lacks the return structure, the treatment of pre-money SAFEs, and how preSafeShares affects the result. Adequate but with clear gaps for a financial modeling tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% (only the discount fraction is annotated), so the description carries the burden. It partially compensates by naming domain concepts that map to parameters — amount, post-money cap (valuationCap), MFN (mfn flag) — but never explains preSafeShares or the pre-money/post-money type enum.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States specific computed outputs (implied ownership, combined SAFE dilution, MFN resolution, share estimates) rather than a generic verb, so an agent knows what the tool produces. It is distinguishable from model_priced_round via the 'before a priced round' cue, though no sibling is named outright.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'Use before a priced round' gives a timing trigger, which implies this is a pre-round analysis step rather than the round modeler itself. However, it never names the alternatives (model_priced_round, model_round_sequence) or states when this tool should not be used, leaving routing to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 6 tool updatesv1.0.1
    • First observedcompare_pool_timing
    • First observedexplain_methodology
    • First observedmodel_priced_round
    • First observedmodel_round_sequence
    • First observedsafe_conversion_price
    • First observedsafe_ownership

TDQS

A3.7/5.0

Scored across 6 tools

Disambiguation4/5

Tools are distinguished by scope: single-instrument conversion (safe_conversion_price), aggregate SAFE ownership (safe_ownership), and full modeling (model_priced_round, model_round_sequence). model_priced_round and model_round_sequence overlap somewhat since both do full cap-table modeling, but the single-round vs multi-event sequence distinction is stated clearly.

Naming Consistency4/5

All names use consistent snake_case and read predictably. A couple (safe_conversion_price, safe_ownership) are noun phrases rather than verb_noun, while others (model_*, explain_*, compare_*) use verbs, but the convention is coherent and unsurprising.

Tool Count5/5

Six tools is well-scoped for a specialized SAFE/cap-table calculator. Each tool covers a distinct modeling need (conversion, ownership, priced round, methodology, sequence, pool timing) with no filler.

Completeness4/5

The surface covers SAFE conversion, ownership, priced rounds, round sequencing, and pool-timing comparison, which spans the core lifecycle of the domain. Minor gaps like explicit cap-table input/export or convertible-note-only tooling, but these are largely absorbed into the modeling tools.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

  • Deterministic company valuation and corporate finance tools for AI agents — IRR, NPV, MOIC, DCF, WACC, enterprise value, EV multiples, CAPM, beta and sensitivity analysis via Model Context Protocol. Useful for financial analysis, equity analysis, quantitative analysis, financial projections, financial formulas and financial modeling.

  • Deterministic time-value-of-money and fund-performance tools for AI agents — future value, present value, CAGR, annuities, perpetuities, loan payments, payback, discounted payback, DPI, RVPI and TVPI via Model Context Protocol. Useful for corporate finance, financial projections, financial analysis, quantitative analysis, financial formulas and financial modeling.

  • SmartMoney77 MCP v0.6.0 — 14 public tools that turn financial questions into exact numbers and citable links. New: historical_investment_return and compare_investments, which compute "what if I had invested" results from real yearly price data. Also compound interest, FIRE number, credit-card payoff, emergency fund, inflation, latte factor, investment fees, cost of waiting, plus discovery/deep-link/share-pack tools for a catalog of calculators in 6 languages (he/en/ar/es/pt/in). Public, no login. Endpoint: https://smartmoney77.com/mcp

  • Deterministic finance tools for AI agents — IRR, NPV, MOIC, DCF, WACC and sensitivity.

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    Provides startup verification tools including domain/package/org availability checks, unit economics, runway, market size, and cap table calculations with transparent formulas and warnings to prevent common agent errors.
    -
  • A
    license
    B
    quality
    C
    maintenance
    Provides 77 deterministic financial calculators, live market data, and a meta-advisor that chains tools into prioritized plans from plain-language descriptions.
    77
    20 PyPI
    6
    MIT
  • A
    license
    B
    quality
    C
    maintenance
    Enables local deterministic scoring for startup audits with twenty pure-function tools, allowing GO/KILL verdicts, composite scores, market, money, and signal calculations without accounts, network, or model calls.
    20
    25 npm
    Apache 2.0