Foresight MCP Server

v0.23.2 · MCP Protocol

This is a Model Context Protocol server that connects AI assistants like Claude Desktop to Foresight's private markets data and analytics platform. Once connected, you can ask natural-language questions about your funds, portfolio companies, deal flow, and sourcing pipeline — and the assistant will retrieve live data directly from Foresight to answer them.

Typical use cases include:

Available Tools (46)

The tools available to you may vary depending on your licensing agreement.

ToolDescription
averageCalculate the average (mean) of an array of numbers
countCount the number of items in an array of strings. Returns both total count and distinct count. IMPORTANT: Before using this tool, check if the count is already available in a previous tool response. Maximum 100 items.
create_fund_scenarioCreate a new fund scenario with optional assumptions. Each assumption combines a rule (hold_at_current, exit_at_pct_fmv, exit_at_multiple, exit_at_valuation, write_off) with a scope (specific companyIds, all_without_assumption, or all_without_base_scenario_or_assumption). Exit `value`s are decimal multipliers, NOT percentages (1.0 = 100%, 3.0 = 3×).
differenceCalculate absolute and percentage differences for pairs of numbers. Returns both absolute difference and percentage change for each pair.
find_company_fund_metrics_for_fundGet specific company fund metrics for all companies in a fund. Returns only requested metrics (max 6) for better performance. Use list_company_metrics to discover available metrics, and fund-company custom-field paths (fundCompany.customData.*, discoverable via list_company_info or list_company_metrics) are also accepted and returned per-fund. NOTE: This tool does not support KPI data. If you need KPIs for companies in a fund, first use this tool to get the list of company IDs, then use find_kpis_for_all_companies with those company IDs.
find_info_for_all_companiesGet specific company info fields across portfolio companies. Returns only requested fields for better performance. Use list_company_info to discover available fields, including non-numeric custom-field paths (customData.*, fundCompany.customData.*).
find_info_for_all_fundsGet specific fund info fields across all funds. Returns only requested fields (max 6) for better performance. Use list_fund_info to discover available fields. For calculated performance metrics use find_metrics_for_all_funds.
find_kpis_for_all_companiesGet specific KPIs across portfolio companies. Returns only requested KPIs for better performance. Use list_company_kpis to discover available KPI IDs.
find_metrics_for_all_companiesGet specific calculated investment metrics across portfolio companies. Returns only requested metrics for better performance. Use list_company_metrics to discover available metrics, including numeric custom-field paths (company.customData.*, fundCompany.customData.*).
find_metrics_for_all_fundsGet specific fund metrics across all funds. Returns only requested metrics for better performance. Use list_fund_metrics to discover available metrics.
find_roundsQuery investment rounds by attributes across companies and funds. Use list_round_fields to discover filterable fields.
find_sourcing_companyFind a company by domain/website or by name alone. Name-only searches may return multiple matches. IMPORTANT: When multiple results are returned, always present ALL results to the user with Name | Domain | Location | Industry for disambiguation. Never auto-select.
get_company_cap_tableGet cap table and ownership data for a company. By default returns only the primary cap table with totals, per-stakeholder ownership, and per-instrument-type summaries (including liquidation preference stack). Use stakeholders to drill into specific shareholders, includeShareClasses for per-share-class detail (waterfall math), or includeAllSources to see every cap table source.
get_company_commentaryGet performance commentary for a company. By default returns only the most recent entry.
get_company_fund_metricsGet per-fund breakdown of calculated investment and financial metrics for a company. Same as get_company_metrics but grouped by fund or fund type. For single company only. Each fund’s fund-company custom data values are also included (per-fund, not rolled up); note this is not available when groupByFundType is true, since fund-type aggregates do not carry per-fund custom data.
get_company_historical_financialsGet historical financial data for specific KPIs. Use list_company_kpis to find KPI IDs
get_company_infoGet info about a company, like identifiers, description, sector, location, people, investment basics, co-investors, and operational details. Customer-specific custom data is also returned here under customData — non-numeric custom fields (text, single/multi-select, dates), including fund-company custom data rolled up across the company’s funds. Numeric custom fields are returned by get_company_metrics instead. Some customers override standard info fields with custom fields, so if a standard field appears missing or empty, look for a similarly named field in customData (and check get_company_metrics for numeric custom fields). Use find_info_for_all_companies for multiple companies, and use list_company_info to discover the available standard and custom fields.
get_company_investment_thesisGet the investment thesis for a company. By default returns only the most recent entry.
get_company_investmentsRound-tracker data for a company: one row per financing round the funds participated in, with round valuation (pre/post-money, price per share), ownership %, shares held, and round-level performance. This is round-history data, NOT the transaction ledger. For individual transactions, use get_investment_transactions (investor/deal-team view) or get_ledger_transactions (finance/fund-accounting view).
get_company_kpisGet financial and operational KPIs reported by the company. Use find_kpis_for_all_companies for multiple companies.
get_company_metricsGet calculated investment and financial metrics for a company, like MOIC, IRR, ownership, valuations. Customer-specific numeric custom fields are also included here — company-level and fund-company-level (rolled up across the company’s funds). Non-numeric custom fields are returned by get_company_info instead. Use find_metrics_for_all_companies for multiple companies.
get_company_notesGet published notes linked to a company, most recent first. Returns title, body, and tags for each note.
get_company_roundsGet all investment rounds for a specific company with valuation, ownership, and performance data
get_company_securitiesGet a company's holdings broken down by fund and security type, with total cost, fair market value (FMV), and realized value for each. This is the Ledger grouped by Security: one row per security (e.g. "Series B-1 Preferred Shares", "Convertible Note", "Warrants") within each fund. Use this to answer "by fund, by security type, how much cost and FMV" questions. For per-share-class waterfall detail (seniority, liquidation preferences) use get_company_cap_table instead.
get_deal_lead_companiesGet companies grouped by their deal lead (investment partner). Returns list of deal leads with their associated companies. By default groups by the built-in dealLeadId. Pass customDealLeadField to group by a custom data field instead — useful when a customer tracks deal leads in a custom field rather than the standard one.
get_deal_lead_metricsGet aggregated performance metrics for deal leads (partners). Returns IRR, MOIC, DPI, TVPI, RVPI, investment amounts, and company counts grouped by partner. By default groups by the built-in dealLeadId. Pass customDealLeadField to group by a custom data field instead — useful when a customer tracks deal leads in a custom field rather than the standard one.
get_fund_company_scenariosGet all financial modeling scenarios for portfolio companies in a fund. Returns scenarios across all users and visibilities (Public, Private, Team). Optional cases filter (Base/Downside/Upside) accepts an array; multiple values are OR-combined (any match). Omit cases to return all.
get_fund_infoGet descriptive info and terms for a single fund, like legal name, type, vintage, strategy, key dates, currency, general partners, commitments, and waterfall economics. These are the fund's own attributes, not calculated performance — for IRR, DPI, TVPI, and cash flows use get_fund_metrics. Use find_info_for_all_funds for multiple funds and list_fund_info to discover available fields.
get_fund_metricsGet fund performance metrics for a single fund. Returns IRR, DPI, TVPI, RVPI, cash flows, and active company counts. Use find_metrics_for_all_funds for multiple funds.
get_fund_roundsGet all investment rounds where a specific fund participated
get_investment_transactionsInvestor / deal-team view of a company's transactions (the Transactions tab). Rows speak app-transaction language — Buy, Sell, Note Issuance, SAFE, Secondary Purchase — where one row is roughly one investment decision, with deal attributes (coupon, maturity, valuation cap/discount, exit terms, acquirer). Computed live. Use get_ledger_transactions for the finance/fund-accounting (Investran ledger) view instead.
get_ledger_transactionsFinance / fund-accounting view of a company's transactions (the Ledger tab). Rows speak Investran ledger language — Investment - Cost, Cash In, Escrow, Realized Gain, Mark-to-Market — where one economic event may decompose into several entries, with the columns finance teams reconcile (FMV, Realized Value, PPS). Served from metric snapshots, so it may lag recent edits until a metrics recalc. Use get_investment_transactions for the investor/deal-team (app-transaction) view instead.
get_sourcing_companyGet detailed enriched company profile.
health_checkCheck MCP server and Foresight API health status.
list_company_infoList all available company info fields that can be requested, like identifiers, description, sector, location, people, investment basics, co-investors, and operational details. Non-numeric custom data fields configured by the customer are also listed here under customData.* (company-level) and fundCompany.customData.* (fund-company-level) paths. Numeric custom fields are listed by list_company_metrics instead. Some customers override standard info fields with custom fields, so when a standard field is unavailable or empty, look for a similarly named custom field (and check list_company_metrics for numeric custom fields).
list_company_kpisList all available KPIs that can be requested: financial and operational KPIs reported by the companies
list_company_metricsList all available calculated investment and financial metrics that can be requested like MOIC, IRR, ownership, valuations. Numeric customer custom fields (company-level under company.customData.* and fund-company-level under fundCompany.customData.*) are also listed here.
list_fund_infoList all available fund info fields that can be requested — the fund's own descriptive attributes and terms (identity, vintage, strategy, dates, currency, general partners, commitments, waterfall economics). For calculated performance metrics (IRR, DPI, TVPI, cash flows) use list_fund_metrics instead.
list_fund_metricsList all available fund metrics that can be requested
list_fundsList all funds with id, name, and aliases.
list_portfolio_companiesList all portfolio companies with just id and name.
list_round_fieldsList all available fields on investment round objects for discovery and filtering. Use this to understand what data is available before querying rounds.
run_fund_scenarioExecute the fund scenario runner (historical actuals + projected future events from company-level scenarios and assumptions) and return the canonical fund-reporting metrics in a `reporting` block (when produced by the runner): gross MOIC and IRR, plus LP net-of-fees-and-carry IRR, TVPI, DPI, and RVPI computed over LP paid-in capital (NVPI is null pending product definition). These LP-net metrics are the figures to report for net performance — they differ from the recycling-adjusted netMoic/netTotalValue concept. Also returns scenario identifiers, any data-quality warnings, and the net-haircut approximation flag. Persists the full run result as lastRunResult, overwriting any prior run.
search_sourcing_companiesSearch for companies using natural language queries. Use for exploratory searches.
sumCalculate the sum of an array of numbers. IMPORTANT: Before using this tool, check if the sum is already available in a previous tool response. Maximum 100 items.
update_fund_scenarioUpdate fund scenario fields and/or replace its assumptions. Only the creator can update. Any field omitted is left unchanged; passing assumptions replaces the existing list entirely. Exit `value`s on assumption rules are decimal multipliers, NOT percentages (1.0 = 100%, 3.0 = 3×).

Claude Desktop Setup

Custom Connector (Recommended)

  1. Open Claude Desktop and go to Settings
  2. Select Connectors
  3. Click Add custom connector
  4. Enter the server URL: https://mcp.dev.foresightdata.com/mcp
  5. Click Add — Claude Desktop will automatically discover OAuth and prompt you to sign in via Frontegg

Config File (Fallback)

If the custom connector option is unavailable, add the server as a remote MCP server in your claude_desktop_config.json:

{
  "mcpServers": {
    "foresight": {
      "url": "https://mcp.dev.foresightdata.com/mcp"
    }
  }
}

Authentication is handled automatically via OAuth discovery (/.well-known/oauth-protected-resource). No manual token configuration is needed.

MCP Endpoint

For direct integration, send JSON-RPC requests via POST /mcp:

curl -X POST https://mcp.dev.foresightdata.com/mcp \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer <your-access-token>" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'

Resources

Foresight · MCP Documentation