Skip to main content
Glama
Arnavshah22

indstocks-mcp

by Arnavshah22

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
INDSTOCKS_MPINNoYour INDstocks MPIN, used with INDSTOCKS_API_KEY for token refresh.
INDSTOCKS_TOKENNoYour INDstocks API access token, generated from the access tokens page. Tokens expire after 24 hours.
INDSTOCKS_API_KEYNoYour client ID from the INDstocks access tokens page, used with INDSTOCKS_MPIN for TOTP-based token refresh.
INDSTOCKS_TOTP_SECRETNoOptional authenticator key (TOTP secret). When provided with INDSTOCKS_API_KEY and INDSTOCKS_MPIN, enables unattended token refresh.

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
get_profileA

Fetch the authenticated user's INDstocks profile. Cheapest way to confirm the API token is valid and not expired.

get_fundsA

Available cash balance and margin in the INDstocks account. Read-only.

search_instrumentsA

Resolve a human symbol or company name (e.g. 'RELIANCE', 'HDFC Bank') to the numeric security_id and scrip code the API requires. Call this before any quote lookup.

get_quotesA

Live market quotes for one or more scrip codes (format: NSE_2885). Use search_instruments first to get scrip codes. Set mode='ltp' for last traded price only.

get_historicalA

Historical OHLCV candles for up to 5 scrip codes. Interval values are spelled out ('1day', '15minute'), never abbreviated. Dates are plain YYYY-MM-DD; 'to' is exclusive.

get_holdingsA

Long-term delivery holdings. Read-only. Returns quantity and average price per scrip but NO current price, market value or P&L — pass the returned security_ids to get_quotes to value the book. Alongside the raw payload, 'normalised' renames the API's total_qty/avg_price into the quantity/averagePrice vocabulary analyze_allocation expects, and builds the NSE scrip code for the quote lookup.

get_positionsA

Open intraday and derivative positions. Read-only. Optionally filter by segment and product; omit both for the default view.

get_order_bookA

View today's orders and their fill status. This is a READ of the order book. This server cannot place, modify or cancel orders. Note that the order-book response shape is not published, so unlike the other endpoints it is passed through unvalidated — read the field names in the payload rather than assuming them.

search_mutual_fundsA

Search every Indian mutual fund scheme by name or AMC using AMFI's daily NAV feed. Free, no auth. The INDstocks trading API does not cover mutual funds, so this fills that gap.

get_scheme_navB

Latest published NAV for a specific AMFI scheme code.

compare_expense_ratioA

Compound the difference between two expense ratios over a holding period. Pure arithmetic on the numbers you supply — it shows what a fee difference costs, it does not recommend a fund.

analyze_allocationA

Compute allocation weights and concentration (HHI, effective holdings count) over a list of positions. Deterministic — computed in code, not estimated. Grouping by sector uses NSE's published macro-economic classification looked up by ISIN or symbol, not a sector you supply; instruments outside that index are reported as Unclassified and counted rather than guessed at. Optionally compare against a target allocation to show drift.

compute_xirrA

Annualised return across irregular cash flows (SIP instalments, lumpsums, redemptions). Outflows negative, inflows positive. Include current portfolio value as a final positive flow dated today.

parse_casA

Parse a consolidated account statement PDF. Handles both kinds: a CAMS/KFintech registrar statement (mutual funds, with full transaction history) and an NSDL/CDSL depository statement (every demat account across every broker — equities, bonds and funds — as a holdings snapshot with no transactions). The kind is detected from the file. This is the only way to see what the investor ACTUALLY holds in mutual funds: the INDstocks API covers equity, F&O and currency but not mutual funds, and AMFI publishes only NAVs, never anybody's units. The PDF is read from local disk and parsed in process — it is never uploaded anywhere. Statements are usually password protected.

analyze_cas_portfolioA

Take the holdings in a CAS, revalue them at today's published AMFI NAV (matched by ISIN), and compute allocation weights and concentration. Answers what the mutual fund side of a portfolio looks like right now rather than on the statement date. Descriptive only — it does not rank or recommend anything.

compute_cas_xirrA

Compute annualised return (XIRR) from the real, dated cash flows in a consolidated account statement. compute_xirr can already do the arithmetic, but nobody can hand-type years of SIP instalments — the statement has every one of them. Purchases and levies count as outflows, redemptions and dividend payouts as inflows, and the portfolio's current value closes the series.

classify_sectorsA

Resolve instruments to NSE's macro-economic sector by ISIN or trading symbol. This is NSE's published classification for Nifty Total Market constituents (around 750 names), not a judgement call: anything outside that index comes back unmatched rather than guessed. Call with no arguments to see the sector vocabulary and how many listed companies sit in each.

watch_pricesA

Subscribe to the live price feed, collect ticks for a set number of seconds, then return the series with a per-instrument summary (first, last, high, low, % change). This blocks for the requested duration, so keep it short. Instruments not already subscribed are unsubscribed again afterwards.

stream_subscribeA

Open a standing subscription so prices keep updating in the background. Nothing is returned tick by tick — call stream_quotes afterwards to read the latest values instantly, without spending a REST rate-limit token. Useful when the same names come up repeatedly in one conversation.

stream_unsubscribeA

Drop standing price subscriptions. Omit scripCodes to drop all of them and let the connection go idle.

stream_quotesA

Read the most recent tick for each streamed instrument. This is a cache lookup, not a network call: it returns immediately and costs no rate limit. Every row carries ageMs — check it before presenting a price as current, since a stale value means the feed went quiet, not that the price held steady.

refresh_tokenA

Generate a fresh INDstocks access token and start using it immediately — no restart, no config editing. Tokens expire 24 hours after issue, and that expiry is the usual reason every other tool starts failing at once. If INDSTOCKS_TOTP_SECRET is configured the server derives the code itself and this needs no arguments; otherwise supply the current six-digit code from your authenticator app. Prefer setting credentials in the environment: an MPIN passed here is written into the conversation transcript. INDstocks keeps one live TOTP-issued token per account, so refreshing revokes any token another script or session is holding.

diagnose_endpointsA

Probe every configured endpoint and report which resolve on your account. Every path is currently verified against the official docs, so a failure here usually means an expired token or a segment your account is not entitled to, rather than a wrong path.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Arnavshah22/indstocks-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server