mcpField
B
bahi-mcp

bahi-mcp

Local
github.com/NayakwadiSFinance2Updated 2d ago

About bahi-mcp

bahi-mcp is an MCP server for people analyzing Indian mutual funds, NSE/BSE market data, and personal finance calculations. It combines public data access with fund analytics and financial calculators; its outputs are informational, not investment or tax advice.

Key features

  1. 01AMFI mutual fund data and NAV history
  2. 02SIP, rolling-return, and fund comparisons
  3. 03NSE/BSE stock and index quotes and history
  4. 04XIRR, CAGR, EMI, deposit, and investment calculators
  5. 05Retirement, withdrawal, and tax estimates

Use cases

  1. 01Compare funds by returns, volatility, and drawdown
  2. 02Estimate SIP value and XIRR from NAV history
  3. 03Check Indian stock or index data
  4. 04Model retirement needs, loan payments, or fund tax

MCP support

It exposes tools for mutual fund data and analytics, NSE/BSE market data, and financial calculations to MCP clients. Stock and index tools use Yahoo Finance; mutual fund data comes from AMFI via `mftool`.

Configuration

Local server config is the same for every client. Copy it into your client’s MCP config file.

mcp.json · Universal config
{
"mcpServers": {
"nayakwadis-bahi": {
"command": "uvx",
"args": [
"bahi-mcp"
]
}
}
}
Run commanduvx bahi-mcp

Local servers need a runtime on your machine (e.g. Node.js 18+). Config file locations differ by client; see your client’s docs.

Packages
pypibahi-mcp0.3.1

Tools

22

Saved tool list · updated 2d ago

ParameterTypeRequiredDescription
limitintegerNo
querystringYes

Details

From the project README

bahi-mcp

MCP server that gives AI assistants (Claude, Cursor, VS Code and others) access to Indian mutual fund data, NSE/BSE market data and financial calculators.

Bahi (बही) is the traditional Indian ledger. This server keeps the numbers straight so your assistant doesn't guess them.

Disclaimer: bahi-mcp provides information and calculations from public data sources (AMFI via the mftool library, and Yahoo Finance for stocks) and from assumptions you supply. It is not investment or tax advice and the author is not a SEBI-registered adviser. Data may be delayed or inaccurate, and tax rules change. Verify before making decisions.

What you can ask

  • "Compare these three flexi-cap funds on 3-year return, volatility and max drawdown."
  • "How often has this fund beaten 12% on rolling 3-year returns?"
  • "If I had invested ₹10,000 a month in scheme 119551 since January 2020, what would it be worth today, and what is my XIRR?"
  • "What's the Nifty at, and how has RELIANCE done over the last year?"
  • "How much tax would I pay if I sell this equity fund after 14 months with a ₹2 lakh gain?"
  • "How much corpus do I need to retire at 55 if I spend ₹60,000 a month today?"

Tools

Mutual fund data (AMFI)

ToolWhat it does
search_schemesSearch schemes by name, returns AMFI scheme codes
get_scheme_quoteLatest NAV and quote for a scheme code
get_scheme_detailsFund house, type, category, start date
get_nav_historyNAV history with optional date range (capped to keep responses small)
get_portfolio_valueCurrent value of a list of holdings (scheme code + units)
clear_cacheDrop cached AMFI data so the next call fetches fresh NAVs

Mutual fund analytics

ToolWhat it does
calculate_sip_returnsMonthly SIP simulation on a fund's real NAV history: invested, units, value, absolute return, XIRR
compare_fundsSide-by-side 1/3/5-year returns, volatility, max drawdown and Sharpe ratio for 1 to 5 funds
get_rolling_returnsDistribution of rolling returns: min, max, mean, median, how often positive or above a threshold

Stocks and market data (NSE/BSE, via Yahoo Finance; unofficial and best-effort)

ToolWhat it does
get_stock_quoteLatest price, day and 52-week range for an NSE/BSE stock
get_index_quoteNifty 50, Sensex, Bank Nifty, Nifty IT, India VIX
get_stock_historyOHLCV history for a stock or index

Calculators

ToolWhat it does
calculate_xirrXIRR for any dated cash flows
calculate_cagrCAGR between two values over a date range
calculate_emiLoan EMI, total payment, total interest
calculate_fd / calculate_rdFixed and recurring deposit maturity
calculate_lumpsum_valueFuture value of a one-time investment
project_sipSIP projection at an assumed return, with optional yearly step-up
calculate_swpDoes a corpus last under a monthly withdrawal?
plan_retirementCorpus needed and the monthly SIP to build it
estimate_mf_taxCapital gains tax estimate on a fund redemption; use purchase/sale dates for exact 12-month classification

Dates can be DD-MM-YYYY or YYYY-MM-DD.

Install

Requires Python 3.10+.

pip install bahi-mcp                # mutual funds + calculators
pip install "bahi-mcp[stocks]"      # adds NSE/BSE stock and index data

Or run without installing, using uv:

uvx bahi-mcp
uvx --with yfinance bahi-mcp        # with stock data

Configure your MCP client

Claude Desktop

Add to claude_desktop_config.json:

{
  "mcpServers": {
    "bahi-mcp": {
      "command": "uvx",
      "args": ["--with", "yfinance", "bahi-mcp"]
    }
  }
}

Drop "--with", "yfinance" if you don't need stock data. Restart Claude Desktop.

Cursor and other clients
{
  "mcpServers": {
    "bahi-mcp": {
      "command": "uvx",
      "args": ["--with", "yfinance", "bahi-mcp"]
    }
  }
}

For Cursor, save this in ~/.cursor/mcp.json. Remove "--with", "yfinance" if you don't need stock data.

Notes on data and accuracy

  • Mutual fund data comes from AMFI through mftool (3.4 or newer). NAVs are published after market close, usually by about 9 PM IST. mftool caches NAVs for 24 hours, so use clear_cache after the evening update to see the latest.
  • Stock data comes from Yahoo Finance through yfinance. It is unofficial, can be delayed, rate-limited or change without notice. Don't use it for trading decisions.
  • Tax estimates follow the configured FY 2026-27 assumptions for equity funds (STCG 20%, LTCG 12.5% above the remaining ₹1.25 lakh annual exemption); provide purchase and sale dates for exact calendar 12-month classification, or holding days for an approximate 365-day cutoff. The exemption is shared across eligible gains in a financial year. Debt funds are modelled at slab rate only for units bought on/after 1 April 2023. Surcharge, loss set-off and older indexation rules are not modelled; verify current law and consult a tax professional.
  • Projections (project_sip, calculate_swp, plan_retirement) assume constant returns. Real markets don't behave that way.

Development

git clone https://github.com/NayakwadiS/bahi-mcp
cd bahi-mcp
python -m venv .venv
source .venv/bin/activate        # Windows: .venv\Scripts\activate
pip install -e ".[dev,stocks]"
pytest
python -m bahi_mcp               # runs the server over stdio

Layout in src/bahi_mcp/:

  • analytics.py, fund_analytics.py, calculators.py: pure Python, no network, fully tested offline
  • data.py: AMFI access through mftool
  • market.py: stock and index access through yfinance
  • server.py: the MCP tool definitions

Roadmap

  • Portfolio overlap and fund-to-fund correlation
  • Document search over factsheets and SEBI/RBI circulars
  • Hosted version with caching

Contributing

Issues and pull requests are welcome.

License

MIT. See LICENSE.

Comments

Markdown supported

New to MCP?

From what the protocol is to installing your first server, these answers cover most first questions.

An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.