Introducing FiDUS MCP
Indian filings, read by your agent.
Fifty-six read-only tools over NSE and BSE filings, annual reports, earnings calls, investor decks, IPO prospectuses and adjusted daily prices. Every number comes back with the filing it came from, every indicator with its formula.
56read-only tools · MCP + REST
2,510companies with statements
106.9M+lines of notes, searchable
22 yrsof ownership history
Every other feed asks to be trusted. FiDUS attaches the filing.
How it answers
One question. Many tools.
Five calls, one answer
Is the profit clean?
The agent reads the line, opens the note it points to, checks the call, runs 13 forensic checks and ranks the peers. Every figure carries its page.
What management promised
Guidance, with the speaker's name
search_calls ranks pages by terms matched. get_call_pages prints who said it. A word that appears nowhere is reported, never faked.
Who owns it, who moved
Ownership, deals, dealings
Promoter holding by quarter with each snapshot labelled, pledge null when not disclosed, every block deal with both counterparties named.
Read the way the filing is written
Leverage, on all three Ind-AS lines
Under Schedule III an NBFC splits funding across Borrowings, DebtSecurities and SubordinatedLiabilities. Reading one line gives PFC 2.0×. The filing says 5.84×.
LUPIN · FY26 · five calls · ₹ million as printed
LUPIN · Q1 FY27 call · filed 12 Aug 2026 · search_calls("LUPIN", "gross margin guidance")
Vinita Gupta · page 5
“We would like to reiterate our earlier guidance of high single-digit revenue growth for the organization with EBITDA margins of around 25% during the year.”
Ramesh Swaminathan · page 7
“Coming to the profitability of Gross Margins, the upward trajectory continues. This quarter was at 74.6% up from 71.3% in Q1FY26 last year.”
Shyam Srinivasan · page 10
“…we did the gross margins of 75% for the current quarter, right? So, what's a more normalized gross margin, please?”
Ramesh Swaminathan · page 10
“We are being a little more cautious … the EBITDA margins would be in the range of 24% to 25%.”
source_url nsearchives.nseindia.com/corporate/Lupin2_12082026174715_SE_Letter_signed.pdf · filed_at 2026-08-12 17:47 · 18 pages
LUPIN · get_shareholding · get_deals · get_insider_dealings
46.85%promoters · 30 Jun 2026
46.96 → 46.85 over eight quarter-ends, each labelled
block · 14-Oct-2025 · both legs named
bulk · 29-May-2015
insider · holding before and after
PFC · FY26 · consolidated · debt to equity
2.0×Borrowings ÷ equity
5.84×debt_to_equity, as filed
Total debt, by Ind-AS line
| Borrowings | about 1/3 | residual |
| DebtSecurities + SubordinatedLiabilities | about 2/3 | missed |
| Components vs canonical total | reconcile | < 2% |
The Borrowings line is roughly a third of PFC's actual debt. A read that stops there understates leverage by about two thirds.
Statements · Lupin · FY26 · consolidated · ₹ million
Line by line, as filed.
Not a fixed template with two dozen filed line items merged into seven. Every line the company tagged, in filing order, under its original label, with the note behind it.
Two dozen filed lines, served as 7
Four sums, two computed, one renamed. Nothing ties back to a page.
FiDUS · get_financials("LUPIN", "FY26") · 44 lines returned · the first 24, in filing order
OCI, EPS and share capital follow · value_inr, period, source_url, filed_at on every line
Notes to accounts · the line the statement pointed to
A results filing stops at “refer note 37”. FiDUS reads it.
2026 · page 241 · line 142 · "Exceptional Items"
2026 · page 242 · line 44 · "Less: Exceptional items"
the statement pages. the note itself sits on page 372.
354 LUPIN LIMITED | Integrated Report 2025-2026
NOTES · Forming part of the Consolidated Financial Statements · (₹ in million)
a) The Group is exposed to multiple civil lawsuits alleging anticompetitive behavior related to certain products and possible violation of federal and state antitrust laws. These lawsuits were combined into the collection of similar cases referred to as In Re Generic Pharmaceuticals Antitrust Litigation. Such litigation are often resolved through settlement agreements. During the year ended 31.03.2026, the Group based on best estimate, created a provision of ₹ 5,816.9 million (USD 65.8 million) related to antitrust litigation matters. In April 2026, Lupin Pharmaceuticals Inc. (“LPI”), a wholly owned subsidiary of the Group, settled one of the ongoing antitrust matters for an amount of ₹ 2,654.1 million (USD 30.0 million) without admission of liability or wrongdoing. The remaining provision continues to be carried by the Group towards future settlements related to similar cases. [Refer note 40(e) and note 56]
b) Lupin Limited through its wholly owned subsidiary LPI (Lupin Pharmaceuticals Inc.) has launched Mirabegron (FTF) ER Tablets 25 mg (in April 2024) and 50 mg (in September 2024) a generic version of Myrbetriq® Extended-Release Tablets, of Astellas Pharma Global Development, Inc (“Astellas”) in US markets.
On 09.02.2026, Lupin Limited and its subsidiary entered into a settlement agreement with Astellas … LPI paid ₹ 8,475.5 million (USD 90.0 million), which includes ₹ 7,110.8 million (USD 75.0 million) as Prepaid Option and ₹ 1,364.7 million (USD 15.0 million) as one-time payment towards the settlement. Accordingly, the Group has expensed out ₹ 1,364.7 million (USD 15.0 million) and has capitalised the balance amount towards Prepaid Option.
PDF page 372 · printed page 354
In short
Infosys · revenue from operations · ₹ crore · eight years on record
get_financials("INFY", "FY19") … ("INFY", "FY26") · the year, never Q4 · covers states the exact dates
screen_companies · get_panel
Or ask all 2,510.
Most tools answer about one company. Three answer across the universe, and say who they left out.
screen_companies("debt_to_equity < 1") · latest year per company
2,508universe considered
1,938matched
300excluded, not zeroed
“300 companies lacked one of the inputs and were excluded rather than counted as zero”
get_panel · five companies × four years · one call
150,769tokens, one call per cell
345tokens, get_panel
Same numbers, 437× fewer tokens. compare_companies and screen_companies work the same way: one call, the whole universe, the exclusions counted.
What it holds
Built to be checked, not trusted.
Statements
get_financials2,510
Every line the company tagged, unscaled, so a number can be checked against the page.
Notes to accounts
search_notes · get_note_pages · get_note_table106.9M+
The text behind the number: exceptional items, contingent liabilities, related parties, with page and section.
Ownership
get_shareholding22 yrs
Promoter holding by quarter since 2004, every named holder, pledge null when not disclosed.
Calls and decks
search_calls · get_call_pages · search_decks · get_deck_pages18,441earnings-call transcripts · 1,386 companies
What management said, with the speaker's name beside the words.
20,715investor decks · 1,448 companies
Point in time
get_financials(as_of=…) · get_revisionsas_of
Ask as of a date and only filings filed by then count. Unknown dates are withheld, and counted.
Disclosures
Every dataset a desk asks for.
Technicals · new
The tape, measured.
Eight tools over adjusted daily bars for 3,104 NSE symbols, from July 2021. Every indicator carries its formula version. Values, never calls.
get_ohlcv
Adjusted, volume and all
Splits and bonuses restated from NSE's own register. Volume takes the reciprocal factor, so a 1:10 split is not a tenfold spike.
get_chart_marks
The filings, on the chart
Ex-dates, insider dealings, SAST crossings and shareholding moves, pinned to the day they were filed, the filer named.
get_technicals
134 columns on every bar
Trend, momentum, volatility, volume, delivery, levels and returns. A direction is the state of a calculation, never a call.
as_of
As of any bar. No look-ahead.
Ask as of 4 Aug 2026 and the 50-day sits ₹1.72 under the 200-day. The cross printed on 5 Aug; the answer for the day before cannot see it.
screen_technicals · get_market_breadth
Or scan all 3,104.
A condition against a number, against another indicator, or a cross that printed on the bar itself, not one that has held for months. Breadth counts how many moved, never how much one did.
screen_technicals(["rsi_14 < 30", "sma_50 > sma_200"])
104matched · of 3,104 symbols · 30 Sep 2026
| symbol | rsi_14 | sma_50 | sma_200 |
|---|
The first eight, as the tool returns them. Rows meeting the stated conditions, not a rating; ETFs trade on NSE and sit in the universe.
get_market_breadth() · a year of sessions
43.8%above their 200-day average · 30 Sep 2026
Per session: the share above the 20-, 50- and 200-day averages, advances and declines, new 52-week highs and lows, the median return. No regime call; the ingredients, not a view.
Methodology · formula_version ta-1.0
Your terminal will disagree. Here is where.
| Measure | FiDUS | Often elsewhere |
|---|---|---|
| RSI | Wilder smoothing, SMA-seeded | a plain SMA, or a true EMA |
| EMA seed | SMA of the first N | the first value |
| Bollinger σ | population (÷N) | sample, on some libraries |
| Stochastic | slow 14/3/3 | fast, on some |
| Warm-up | withheld until settled | shown from the first bar |
| Adjustment | NSE's register, volume too | price only, or none |
| Pivots | from the prior bar | sometimes the current one |
| VWAP | rolling 20 daily bars | session-anchored intraday |
Neither side is wrong; the variants differ at the last decimal. Every result names the variant it used.
get_risk_metrics("PAYTM", benchmark="Nifty 50")
| 1 year | 3 years |
|---|
Risk-free rate 6.5%, a documented placeholder, echoed in every answer. Fewer than 20 paired sessions returns no statistic rather than a noisy one.
No rating, target, stop or signal. Pivots are arithmetic on past bars.
35 candlestick shapes, each defined to the threshold. Head-and-shoulders has no agreed definition, so it is not detected.
The catalogue
56 tools. One company, or the whole universe.
Most tools answer about one company. screen_companies, compare_companies and get_panel answer across all of them, and a five-company four-year grid from get_panel costs about 345 tokens instead of 150,769. Four answer about you rather than a company — a watchlist, a thesis written in your own words, a saved screen — kept in your own desk, apart from the filings and never mixed into them. Eight read the tape rather than the filings, and are listed apart below.
Price and technicals · eight tools
Measured, not asserted
Against the named alternatives.
We connected to each of these products and asked them the same questions we ask FiDUS. This table reports what came back — what only FiDUS answers, where the alternatives beat us, and the cells we did not test.
| FiDUS | financial filings |
Trendlyne | Upstox | note | |
|---|---|---|---|---|---|
| Statements as filed | ✓ | — | — | — | theirs: 18 lines from a template; ours: 44 as tagged |
| Segments, quarterly | ✓ | · | — | — | quarter and year-to-date, both revenue cuts |
| Annual-report note search | ✓ | ~ | — | — | 106.9M lines, page and section |
| Mutual-fund holdings | ✓ | — | — | — | top-10 AMCs, monthly |
| Forensic quality scoring | ✓ | — | — | — | |
| Auditor opinions | ✓ | · | — | — | |
| Screening across the universe | ✓ | — | ~ | — | |
| Ownership + pledge history | ✓ | — | ~ | ~ | theirs returned 7 filings, newest 2015, no content |
| Corporate actions | 2005→ | 2019→ | · | 1 row | Titan’s 2011 bonus: only FiDUS returned it |
| Calls, speaker named | ✓ | ~ | ✓ | — | |
| Investor decks | ✓ | ~ | ✓ | — | |
| Indian companies | 2,510 | 7,935 | · | · | they cover 3× our universe |
| Daily price history | Jul 2021→ | · | · | Jan 2017→ | Upstox is deeper than us here |
| Live prices and ticks | — | — | · | ✓ | not our job, by design |
| Free tier | — | ✓ | — | ~ | theirs is free; ours is keyed |
| Companies that left (survivorship) | ✓ | ✓ | — | — | both keep them; most do not |
| A citation on every number | ✓ | ~ | ~ | — | |
| Point-in-time as-of | ✓ | ~ | — | — | theirs honours the date; the figures under it did not |
Where a competitor’s quota ran out mid-test, the row is marked not tested rather than failed. Question-by-question detail, and what each product does better than FiDUS, is available on request.
Where it sits
Not a terminal. Not a feed.
The other ways an agent gets Indian equity data: a terminal built for a human at a screen, or a generic API built on a US reporting schema. Here is where each one stops.
What FiDUS does not carry, by design: broker estimates and consensus, intraday ticks. If it was never filed with the exchange or printed by it, it is not in FiDUS, and the technicals are end of day only. Quarterly statements run FY2021 onward — older quarters are on the exchange and land as they are ingested.
Install
One line to add.
Hosted at backfin-mcp.tailf4950.ts.net/mcp. Ask for a key, add one line, and every tool is in your agent. Or run the stdio server from a checkout.
Read-only by construction
What it will and will not do.
The DuckDB catalog opens read-only, so the server cannot collide with the pipeline's single writer.
get_financials serves rupees as filed, unscaled, so a number can be checked against the document. Everything derived serves crore, and says so.
Keys are client=key pairs, with optional expiry. Each request is logged as it happens, denied calls included.
No OAuth yet (keys are issued by hand, with per-key expiry and daily quotas), and the 914 generated call analyses are not exposed: the call tools serve the transcript itself, not a model's reading of it.
Next on the bench
Built in the open.
Not served yet, listed anyway — so the shelf above stays exactly what the server answers today. Last week's list (announcements since 2005, FY22 quarterlies, parsed related-party rows, offer documents staged draft/RHP/final, REST, corporate actions to 2005, auditor opinions, MF portfolios, quarterly segments FY18 onward, the delisted register, push webhooks, read-any-filing) is now above the line.
Management targets extracted from 20,715 presentations and scored against what was later filed — met, missed, or quietly dropped.
OAuth, so FiDUS can be added inside Claude and ChatGPT without a key exchange.
1-, 5- and 15-minute intervals are reserved in the technicals, not served. Today the tape is daily, weekly and monthly.
Design-partner access
Every number, with its filing.
For funds, PMS and family offices. Coverage requests for names outside the Nifty 500 are honoured within a week.
Get accessContact
Shreyas Mashelkar
FiDUS · design-partner access
Contact
Siddhi Nagvekar
FiDUS · design-partner access