indstocks-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| INDSTOCKS_MPIN | No | Your INDstocks MPIN, used with INDSTOCKS_API_KEY for token refresh. | |
| INDSTOCKS_TOKEN | No | Your INDstocks API access token, generated from the access tokens page. Tokens expire after 24 hours. | |
| INDSTOCKS_API_KEY | No | Your client ID from the INDstocks access tokens page, used with INDSTOCKS_MPIN for TOTP-based token refresh. | |
| INDSTOCKS_TOTP_SECRET | No | Optional 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
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| 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
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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