MCP Server

Connect your favorite AI tool to Finpy and manage your fund data through conversation.

What is Finpy MCP?
AI-powered access to your fund management data.

Finpy MCP is a Model Context Protocol server that connects AI tools like Claude Desktop, Cursor, and VS Code to your Finpy data. Instead of navigating the UI, you can manage cap tables, deals, holdings, valuations, and financials through natural language conversation. The server exposes 50 tools across 11 categories.

Compatible Clients
Works with any MCP-compatible AI tool.

Claude Desktop

Anthropic's desktop app for macOS & Windows.

VS Code / Cursor

IDE extensions with MCP support.

Claude Code / CLI

Terminal-based AI coding assistants.

Installation
Get up and running in 3 steps.
1

Install the MCP server

pip install finpy-mcp — or with uv: uv tool install finpy-mcp

2

Login

Run finpy-cli login in your terminal. It opens your browser for authentication, then saves credentials locally.

3

Configure your AI client

Add the Finpy MCP server to your client's configuration (see Configuration below).

CLI Commands: Other useful commands: finpy-cli status (check auth), finpy-cli set-org 4 (switch org), finpy-cli logout (delete credentials).
Configuration
Add the Finpy server to your AI client.

Claude Desktop

macOS: ~/Library/Application Support/Claude/claude_desktop_config.json · Windows: %APPDATA%\Claude\claude_desktop_config.json

{
  "mcpServers": {
    "finpy": {
      "command": "finpy-mcp"
    }
  }
}

Restart Claude Desktop after saving.

Cursor

macOS: .cursor/mcp.json · Windows: .cursor\mcp.json

{
  "mcpServers": {
    "finpy": {
      "command": "finpy-mcp"
    }
  }
}

Restart Cursor after saving.

Claude Code

claude mcp add finpy -- finpy-mcp
Available Tools (50)
Organized by category.

Context (4)

ToolDescription
list_organizationsList orgs the user has access to
set_contextSet active organization + entity for all operations
list_entitiesList entities in current organization
get_entity_detailsGet details of a specific entity

Entity (2)

ToolDescription
create_entityCreate new entity (fund/company/individual/syndicate)
update_entityUpdate name, currency, entity_type, is_discoverable

Cap Table (13)

ToolDescription
list_stakeholdersList stakeholders on current entity's cap table
create_stakeholderAdd stakeholder with type, governance rights, carry, pref return
update_stakeholderUpdate type, carry %, pref return, voting, pro rata, board seats, tier
list_funding_roundsList funding rounds for current entity
create_funding_roundCreate round (seed, series_a, etc.) with target/raised amounts
list_securitiesList all securities across funding rounds
create_securityCreate security class (common, preferred, convertible, etc.)
list_transactionsList all security transactions on current entity
create_transactionCreate transaction (issuance, distribution, etc.) with debit/credit
get_cap_tableView computed cap table with ownership breakdown
list_commitmentsList capital commitments (pro-rata subscription lifecycle)
list_positionsList stakeholder positions (investor view across cap tables)
list_distributionsList distributions received as investor

Deals (7)

ToolDescription
list_dealsList deals for current entity
create_dealCreate deal (fundraising, acquisition, etc.)
update_dealUpdate name, target_amount, share_price, is_discoverable
update_deal_statusChange deal lifecycle: draft → active → closed → cancelled
list_deal_commitmentsList commitments on a deal
express_interestExpress soft/firm interest in a deal
execute_dealExecute deal → creates funding round + security + transactions

Deal Pipeline (3)

ToolDescription
list_deal_pipelineList prospective deals being evaluated
create_pipeline_entryAdd deal to pipeline (from pitch deck, info memo, etc.)
update_pipeline_entryAdvance status, update thesis, add DD notes

Holdings (7)

ToolDescription
list_holdingsList portfolio holdings
create_holdingCreate holding (equity, debt, etc.)
update_holdingUpdate status, fair_value, ownership %, investment amount
list_holding_cash_flowsList cash flows on holdings (investments, distributions, fees)
create_holding_cash_flowRecord cash flow (debit = cash IN, credit = cash OUT from entity)
get_entity_performanceView computed entity performance (IRR, TVPI, DPI, RVPI)
get_holdings_performanceView per-holding performance breakdown

Performance (1)

ToolDescription
get_stakeholder_returnsView per-stakeholder return metrics

Valuations (3)

ToolDescription
list_valuationsList NAV/valuation snapshots over time
create_valuationCreate valuation snapshot with optional performance metrics
update_valuationUpdate valuation value, NAV, IRR, TVPI, etc.

Fees (2)

ToolDescription
list_feesList fees (management, performance, setup, etc.)
create_feeCreate fee with amount/percentage, frequency, type

KPIs (4)

ToolDescription
list_kpisList KPI definitions for current entity
create_kpiDefine a KPI (Revenue, MRR, Burn Rate, etc.)
list_kpi_valuesList data points for a specific KPI
create_kpi_valueAdd a KPI data point (year, quarter, value)

Financials (4)

ToolDescription
create_income_statementCreate with revenue, COGS, expenses
create_balance_sheetCreate with assets, liabilities, equity
create_cash_flow_statementCreate with operating, investing, financing flows
create_financial_metricsCreate financial metrics record
Example Prompts
Start a conversation and try these.

List my entities

calls list_entities() → shows your entities

Set context to Acme Capital

calls set_context(org=1, entity=1) → confirms

Show me the cap table

calls get_cap_table() → shows stakeholders + ownership

Create a stakeholder John Doe as limited partner with 8% preferred return

calls create_stakeholder(...) → confirms creation

Activate deal Series A

calls update_deal_status(deal_id=1, status="active") → confirms

Set fair value of Acme Corp holding to $10M

calls update_holding(holding_id=1, current_fair_value=10000000) → confirms

Add a 2% annual management fee for 2026

calls create_fee(year=2026, fee_type="management", percentage=2, frequency="annual")

Create KPI Revenue as decimal, then add $1M for 2026

calls create_kpi(name="Revenue") → then create_kpi_value(kpi_id=1, year=2026, value=1000000)

Security
How your data stays safe.

Password never reaches the LLM — login happens in terminal only

entity_id comes from context — the LLM cannot access entities it shouldn't

No delete tools — prevents accidental data loss through LLM

No update on securities/transactions — immutable financial records

Credentials stored locally — ~/.finpy/credentials.json with chmod 600

Auto token refresh — transparent 401 → refresh flow

Update
Keep the MCP server up to date.

pip

pip install --upgrade finpy-mcp

uv

uv tool upgrade finpy-mcp
Requirements
What you need to run the MCP server.

• Python 3.12+

• Active Finpy account

• Active login via finpy-cli login