finpy-mcp
Finpy MCP Server — Manage cap tables, deals, holdings, and financials through AI conversation.
Connect your favorite AI tool (Claude Desktop, Cursor, VS Code, Claude Code) to the Finpy platform and work with your financial data through natural language.
Features
- 76 asset management tools plus 14 Factor Markets tools (90 total)
- Cap table management — stakeholders, funding rounds, securities, transactions
- Deal flow — create deals, express interest, execute fundraising rounds
- Portfolio tracking — holdings, valuations, performance metrics (IRR, MOIC, TVPI)
- Financial reporting — income statements, balance sheets, cash flow statements
- Secure — OAuth device flow login, credentials stored locally, no passwords sent to AI
Quick Start
1. Install
pip install finpy-mcp
Or with uv:
# Install uv (if not already installed)
brew install uv
# Add uv tools to PATH (one-time setup)
echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.zshrc
source ~/.zshrc
# Install finpy-mcp
uv tool install finpy-mcp
Already installed? Update:
pip install --upgrade finpy-mcp
# or
uv tool upgrade finpy-mcp
2. Login
finpy-cli login
Opens your browser automatically. Sign in on the Finpy web app, then return to your terminal.
3. Configure your AI client
Claude Desktop — Edit ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):
{
"mcpServers": {
"finpy": {
"command": "finpy-mcp"
}
}
}
Cursor — Edit .cursor/mcp.json:
{
"mcpServers": {
"finpy": {
"command": "finpy-mcp"
}
}
}
Claude Code:
claude mcp add finpy -- finpy-mcp
Restart your AI client after configuring.
4. Start talking
Open a new conversation and say:
- "List my entities"
- "Show me the cap table for Nexotype"
- "Create a stakeholder John Doe as limited partner with 8% preferred return"
- "Create an income statement for 2026 with $1M revenue"
Available Tools (89)
Asset Manager tools are stateless: discover IDs with list_organizations() / list_entities(),
then pass entity_id (and organization_id for create_entity) explicitly to each tool. There
is no set_context — scope is an argument on every call. Every write tool also accepts an
optional organization_id, the organization you are acting as: pass it when you belong to more
than one, since a shared entity can grant you a different role per organization. For the full
per model capability map (which operations are exposed, and why some are web only), see
documentation/capability-matrix.md.
| Category | Tools |
|---|---|
| Context | list_organizations, list_entities, get_entity_details |
| Entity | create_entity, update_entity |
| Cap Table | list_stakeholders, create_stakeholder, update_stakeholder, list_funding_rounds, create_funding_round, list_securities, create_security, list_transactions, create_transaction, reverse_transaction, get_cap_table, list_commitments, list_positions, list_distributions |
| Deals | list_deals, create_deal, update_deal, update_deal_status, list_deal_commitments, express_interest, execute_deal |
| Holdings | list_holdings, create_holding, update_holding, list_valuations, create_valuation, update_valuation, delete_valuation, list_holding_cash_flows, create_holding_cash_flow, reverse_holding_cash_flow, list_deal_pipeline, create_pipeline_entry, update_pipeline_entry, delete_pipeline_entry, get_entity_performance, get_holdings_performance, get_stakeholder_returns |
| Financials | create_income_statement, update_income_statement, delete_income_statement, create_balance_sheet, update_balance_sheet, delete_balance_sheet, create_cash_flow_statement, update_cash_flow_statement, delete_cash_flow_statement, create_financial_metrics, update_financial_metrics, delete_financial_metrics, list_kpis, create_kpi, update_kpi, list_kpi_values, create_kpi_value, update_kpi_value, delete_kpi_value |
| Fees | list_fees, create_fee, update_fee, delete_fee |
| Audit | list_audit_trail, list_entity_audit_trail |
| Factor Markets | list_factormarkets_valuations, get_factormarkets_valuation, list_factormarkets_income_statements, list_factormarkets_balance_sheets, list_factormarkets_cash_flow_statements, list_backtest_results, list_backtest_vintages, and 7 more backtest tools |
CLI Commands
finpy-cli login # Login via browser (OAuth device flow)
finpy-cli login --basic # Login with email/password (headless fallback)
finpy-cli logout # Delete stored credentials
finpy-cli status # Show auth status
Security
- Passwords never reach the AI — login happens in your browser
- Credentials stored locally in
~/.finpy/credentials.json(chmod 600) - Automatic token refresh on expiry
- Delete is a soft delete only: the row is kept and can be restored from the web Trash page. MCP exposes delete on 8 leaf records without side effects (destructiveHint set); ledgers are reversed, never deleted. See documentation/capability-matrix.md.
- All API validations, permissions, and audit logging apply
Requirements
- Python 3.12+
- A Finpy account
Links
Metadata
Release files for finpy-mcp 0.8.4
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| finpy_mcp-0.8.4.tar.gz | 48.2 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| finpy_mcp-0.8.4-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 110.1 kB
Release files / finpy_mcp-0.8.4.tar.gz
| Download URL | finpy_mcp-0.8.4.tar.gz |
|---|---|
| Size | 48.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
cca4ab61497bf53daa6d93d6c6e2612c633de7811945f998cd73855119cf497f
|
|
BLAKE2b-256 checksum How to use checksums |
5b59061b55a85872f72a634254c0280cdac7d636177f6e05061aa5a714fc31c9
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.18 {"installer":{"name":"uv","version":"0.12.18","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Release files / finpy_mcp-0.8.4-py3-none-any.whl
| Download URL | finpy_mcp-0.8.4-py3-none-any.whl |
|---|---|
| Size | 61.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
518c380686a3e51e16356ff8027446cdda47480ff5a4159f64c7676870f136ad
|
|
BLAKE2b-256 checksum How to use checksums |
0899b6f889af6057ea32af550765d7ad61e2f0e2745df920608ff9688292c6da
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.18 {"installer":{"name":"uv","version":"0.12.18","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|