Fi-Plan

io.github.ompurwarPublished by GitHub account ompurwarv1.0.0Updated Oct 24, 2026

Financial simulator for Indian salaries: loans, taxes, SIPs and 50-year FIRE plans.

VerifiedStreamable HTTPWeb executableFinanceData & Analytics

Overview

AI-generated overview

Hosted MCP server that simulates Indian personal finances: loan amortization, refinancing, asset growth and multi-year FIRE plans.

What you can do
  • Run month-by-month loan amortization with optional prepayments
  • Compare refinancing options: old vs new EMI, interest saved, break-even
  • Project a single asset's value, invested amount, growth, income and TDS
  • Simulate a full plan by applying scenario patches to a non-persisted copy and returning a snapshot
When to use it
Useful when someone wants an assistant to crunch Indian salary, EMI, SIP and long-horizon net-worth scenarios, or to compare loan prepayment and refinance options without building spreadsheets.
Requirements
Remote Streamable HTTP endpoint; no install or account needed for the anonymous calculator tools. Account tools (plans, cashflows, loans, assets, net worth) need an API token created on the provider's profile page, sent as an Authorization Bearer header, which only clients supporting custom headers can do.
Before you install
Anonymous tools are IP rate limited. Authenticated tools expose personal financial data (plans, loans, assets, net worth) and require a bearer token, which is a secret to keep out of shared configs. Plan and asset figures are sent to a third-party hosted service; results are projections, not financial advice.

Installation

In SourceWeft

  1. Open Fi-Plan in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.

Use with an agent

Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.

Read https://sourceweft.com/mcp/io.github.ompurwar%2Ffi-plan/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.

Read the install guide the agent follows

Other MCP clients

Add this to your client's mcpServers config.

{
  "mcpServers": {
    "fi-plan": {
      "type": "http",
      "url": "https://www.fi-plan.in/mcp"
    }
  }
}

README

Fi-Plan MCP Server

Fi-Plan is a month-by-month financial simulator for Indian salaries — income, taxes, EMIs, SIPs, and up to 50 years of net worth.

This repository is the public descriptor for the hosted Fi-Plan MCP server. The server itself is not open source; the endpoint below is publicly reachable and speaks MCP over Streamable HTTP (JSON-RPC 2.0).

Endpoint

https://www.fi-plan.in/mcp

Tools

Anonymous tools (no account required, IP rate limited):

ToolWhat it does
loan_amortizationReal monthly amortization schedule, with optional prepayments
loan_refinanceRefinance analysis: old loan vs new loan, break-even
asset_projectionProjects asset / portfolio growth over a horizon
simulate_planRuns a full year-by-year projection from a plan_json payload

Authenticated tools (your plans, cashflows, loans, assets, net worth) are available with an API token or OAuth. Create a token at https://www.fi-plan.in/profile.

Client configuration

The exact format differs per client. Use the one for yours.

Claude Code (CLI — recommended):

bash
claude mcp add --transport http fi-plan https://www.fi-plan.in/mcp

Claude Desktop / Claude apps — add as a custom connector:

Settings → Connectors → Add custom connector → URL https://www.fi-plan.in/mcp

Cursor (.cursor/mcp.json):

json
{  "mcpServers": {    "fi-plan": {      "url": "https://www.fi-plan.in/mcp"    }  }}

VS Code (.vscode/mcp.json) — note the servers key and the required type:

json
{  "servers": {    "fi-plan": {      "type": "http",      "url": "https://www.fi-plan.in/mcp"    }  }}

Any client using the .mcp.json / mcpServers shape (e.g. Claude Code project scope) — a url entry must include "type": "http", or the client treats it as a stdio server and skips it:

json
{  "mcpServers": {    "fi-plan": {      "type": "http",      "url": "https://www.fi-plan.in/mcp"    }  }}

Authenticated (optional)

For account tools, pass a token in a header. Works only in clients that support custom headers (Cursor, VS Code, Claude Code); the Claude Desktop/apps connector UI does not take custom headers.

Claude Code:

bash
claude mcp add --transport http fi-plan https://www.fi-plan.in/mcp \  --header "Authorization: Bearer fp_your_token_here"

Cursor / VS Code / .mcp.json:

json
{  "mcpServers": {    "fi-plan": {      "type": "http",      "url": "https://www.fi-plan.in/mcp",      "headers": { "Authorization": "Bearer fp_your_token_here" }    }  }}

Discovery

License

The contents of this repository (documentation) are MIT licensed. The Fi-Plan application and MCP server are proprietary — see https://www.fi-plan.in for terms.

Source: README.md at commit 774dd90

Tools

4

simulate_plan

Run a what-if scenario on a plan

Applies an ordered list of scenario patches to a DEEP COPY of the plan (never persisted) and returns the resulting snapshot plus applied_patches. Pass plan_id to load the plan server-side (preferred — never paste plan_json); plan_json is accepted for portability. Pass summary=true for the compact view; add milestones=true for long durations to get yearly points + totals instead of every month. Patches support add_income, add_expense, add_cashflow_change, add_loan, update_loan (loan_id plus any of title, principal_amount, interest_rate, start_month, end_month, deposit_to_bank, type, ref_id, prepayments), add_fdp (fdp: { start_month, end_month, s, e, i } with s + e + i = 100 — or the legacy { amount, interest_rate, tenure } fixed-deposit shape) and set_account_balance — nested ({"op":"add_cashflow_change","change":{...}}) and flat ({cashflow_id,value,start_month,...}) forms are both accepted; the op is inferred from the fields.

Parameterspatchesplan_idsummarydurationplan_jsonmilestones

loan_amortization

Compute a loan amortization schedule

Pure calculation of EMI and a month-by-month amortization schedule for a loan of amount at annual interest_rate over tenure months. Returns opening/closing balance, interest, principal and running totals per month. Pass optional prepayments to model extra principal payments beyond the EMI (each {start_month, amount, frequency: 'm'|'q'|'y'|null, step_pct?} — null frequency = one-time lump, step_pct = % the amount grows by each recurrence): the EMI stays constant, the loan shortens, and the result becomes { schedule, payoff_month, total_interest_paid, total_prepaid, interest_saved } instead of a plain array. NOTE: here start_month is loan-relative (1 = the loan's first EMI month); on a persisted loan the same fields are plan-absolute months.

Parametersamountrequiredtenurerequiredprepaymentsinterest_raterequired

loan_refinance

Analyze refinancing a loan at a new rate

Pure what-if: closes the loan at refinance_month (outstanding balance settled) and restarts it at new_rate over new_tenure months. Returns outstanding balance, old vs new EMI, remaining interest vs new total interest, interest_saved, net_savings (after optional foreclosure_charge) and breakeven_months (null when the new EMI is not lower). Read-only — to persist, update the old loan's end_month and add the new loan.

Parametersamountrequiredtenurerequirednew_raterequirednew_tenurerequiredinterest_raterequiredrefinance_monthrequiredforeclosure_charge

asset_projection

Project a single asset month-by-month

Pure calculator for one asset (no plan needed): monthly value, invested, growth, income and TDS over duration months. Pass asset parameters (principal, growth_rate, yield_rate, income_frequency, income_mode, maturity_month, sale_month, sip) — class presets are NOT applied automatically, so pass explicit rates. TDS on FD interest follows the stored rules for the assessment_year. Returns rows plus closing value and totals.

Parameterssiprenttitlecategorydurationprincipalrequiredsale_monthyield_rateasset_classcompoundinggrowth_raterequiredincome_mode+4 more

Version history

1
  1. v1.0.0LatestSep 16, 2026

Score

100% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 daysRequired25 pts
  • Auth declaredRequired10 pts
  • Tools listedRequired15 pts
  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts