DalalOS

DalalOS: финансовые данные по акциям NSE и BSE прямо в Claude

От сообщества: Добавлен пользователем или импортирован; проверьте владельца перед подключениемСбоиБез входаГлобальныйБесплатноТолько чтение

Что умеет

  • Искать акции по названию, тикеру или ISIN
  • Получать котировки и историю цен
  • Смотреть финансовые показатели и структуру акционеров
  • Сравнивать компании с конкурентами по отрасли
  • Отбирать акции по готовым и собственным критериям скрининга

Какие данные видит

Сервер отдаёт публичные рыночные и отчётные данные по акциям NSE и BSE без авторизации пользователя.

Нужен ли аккаунт

Не нужен: сервер работает без входа

DalalOS — это MCP-сервер с 25 инструментами для получения финансовых данных индийских бирж NSE и BSE. Ассистент может смотреть рост прибыли и выручки по кварталам, историю цен, структуру акционеров, дивиденды и корпоративные события. Это даёт Claude более надёжный источник данных вместо поиска в интернете или устаревшего обучающего массива.

Как подключить

Как подключить DalalOS к Claude

Адрес сервера, который нужно вставить в настройках Claude:

https://dalalos--aatharva16.run.tools

  1. Откройте Claude (сайт claude.ai или приложение для компьютера).
  2. Перейдите в Настройки → Коннекторы (в английском интерфейсе: Settings → Connectors).
  3. Нажмите Добавить пользовательский коннектор (Add custom connector).
  4. Вставьте адрес сервера, скопированный ниже, в поле URL удалённого MCP-сервера и нажмите Добавить.
  5. В чате нажмите + → Коннекторы и включите новый коннектор.

Пользовательские коннекторы доступны на тарифах Free, Pro, Max, Team и Enterprise. На Free можно добавить только один. В Team и Enterprise коннектор сначала добавляет владелец организации в Настройки организации → Коннекторы.

Авторизация

После нажатия Добавить откроется окно входа в сервис. Войдите под своим аккаунтом и подтвердите доступ. Пароль Claude не видит.

Как подключить DalalOS к ChatGPT

Адрес сервера, который нужно вставить в настройках ChatGPT:

https://dalalos--aatharva16.run.tools

  1. Откройте ChatGPT в браузере (chatgpt.com). Нужен тариф Plus, Pro, Business, Enterprise или Edu.
  2. Один раз включите режим разработчика: Настройки → Приложения → Дополнительные настройки → Режим разработчика (Settings → Apps → Advanced settings → Developer mode).
  3. Откройте Настройки → Коннекторы и нажмите Создать (Create).
  4. Заполните форму: Название (любое), Описание (одна фраза, что делает сервис), URL MCP-сервера (скопируйте ниже).
  5. В поле Аутентификация выберите OAuth, если сервис требует вход, иначе Нет. Нажмите Создать.
  6. В новом чате откройте + → Приложения/Коннекторы и включите коннектор.

Название раздела у OpenAI менялось (Connectors → Apps/Plugins). Если пункт называется иначе, ищите «режим разработчика» в настройках. В рабочих пространствах Business/Enterprise администратор должен разрешить пользовательские коннекторы.

Авторизация

При первом использовании ChatGPT откроет окно входа в сервис. Войдите и подтвердите доступ.

Как подключить DalalOS к Cursor

Адрес сервера, который нужно вставить в настройках Cursor:

https://dalalos--aatharva16.run.tools

Быстрый способ: нажмите кнопку Открыть в Cursor ниже, Cursor сам предложит добавить сервер.

Вручную:

  1. В Cursor откройте Settings → Cursor Settings → MCP и нажмите Add new global MCP server.
  2. Вставьте JSON, скопированный ниже, в открывшийся файл ~/.cursor/mcp.json (для одного проекта: .cursor/mcp.json в корне проекта).
  3. Сохраните файл. Сервер появится в списке MCP; при необходимости пройдите авторизацию по кнопке рядом с ним.

Авторизация

Если сервис требует вход, рядом с сервером в списке MCP появится кнопка авторизации.

Список инструментов сервера (31)

Технические названия из tools/list. Нужны только разработчикам.

pingDalalOS health check. Returns a success envelope to confirm the server is reachable.
search_stocksFind Indian stocks by company name, NSE symbol, BSE code, or ISIN. Returns matching securities with their ISIN, internal company_id, name, and both exchange codes. Use this first when a ticker is unknown or ambiguous, then pass a returned `nse_symbol` / `isin` / BSE code as the `query` argument to any other per-stock tool. Tolerant matching: a company-name/symbol typo still surfaces a suggestion, a truncated/ partial ISIN or BSE code matches via prefix, and a former/retired name or symbol (e.g. a pre-rename company name) resolves to the security's current identity, with `resolved_via` on the result naming which kind of resolution fired.
get_stock_quoteGet the latest end-of-day quote (price, OHLC, volume) for an Indian stock. Accepts an NSE symbol, ISIN, or BSE code. Prices are EOD from the NSE bhavcopy. Carries `currency` ("INR") and a mechanically-computed `vwap` (turnover / volume for the latest bar, None when either is missing/zero). P/E and P/B may be null with a `valuation_notes` explanation (e.g. negative shareholders' equity, or a proven loss) rather than a misleading ratio. A `ratios_caveat` field and/or a `week52_adjustments` list appear when a split, bonus, or other corporate action in the trailing 52 weeks affects the comparability of the 52-week range or valuation ratios. `recent_dividends` / `upcoming_dividends` / `dividend_yield` carry realized cash-dividend history and trailing yield. Always check these fields before restating a figure as clean.
get_batch_quotesGet EOD quotes for up to 20 Indian stocks in one call (peer benchmarking). Each item carries the same fields as get_stock_quote (currency, vwap, any valuation_notes/ratios_caveat/dividend fields) plus `status` and `error` keys, so an unresolved or uncached symbol is reported per-item rather than failing the whole batch.
get_financialsGet consolidated financials (P&L + balance sheet), TTM, and computed margins. Accepts an NSE symbol, ISIN, or BSE code. `period_type` is "quarterly" (default) or "annual". Banks/NBFCs/insurers return an interest-income template (NII / interest income) instead of Revenue / EBITDA. Returns raw line items and mechanically-computed ratios only — no valuation verdicts. Also includes a `growth` section (annual YoY plus 3y/5y CAGR for revenue / net income / EBITDA / EPS): sign-aware (a loss base/endpoint is Not Meaningful rather than a garbage %), EPS share-adjusted across splits/bonuses, with a `base_effect` flag when a tiny prior-year base inflates the YoY.
get_company_profileGet a company profile: identity, sector/industry, market snapshot, and TTM summary. Assembled from cached security master + quotes + financials. Accepts NSE symbol, ISIN, or BSE code. `fundamentals` is None when no financials are cached yet; `market` is None when no quote is cached. When present, `market` carries `currency` ("INR") and, only when a split/bonus fell inside the trailing 52 weeks, `week52_adjustments` — the same treatment get_stock_quote gives its own snapshot. Both `market` and `fundamentals` may carry caveat fields (e.g. `market.valuation_notes`, `fundamentals.ttm.basis_note`, `fundamentals.latest_period_income.non_recurring_items_note`) when a figure is suppressed or driven by a one-off/non-recurring item — always surface these alongside the figure they annotate rather than the bare number.
get_peer_comparisonCompare a stock against its sector/industry peers on valuation metrics. Auto-identifies the peer group and returns a side-by-side table (Mkt Cap, PE, PB, Revenue TTM, net / EBITDA margin, ROE, ROA, ROCE, interest coverage, D/E, the EV bundle — EV, EV/EBITDA, EV/EBIT and the EV-based earnings yield — plus the cash-flow ratios P/CF, P/FCF and FCF yield), sourced entirely from cache. EBITDA-margin and the EV bundle are general-only (None for banks/NBFCs/insurers); cash-flow ratios populate for any peer disclosing an annual cash flow. Each row also carries `piotroski_f_score` (0-9, general-only; None for banks/NBFCs/ insurers) and `altman_z_score` (currently always None, with an explanatory note — this pipeline's stored balance sheet lacks two of the classic formula's five inputs for every company type, not a per-company gap). A row with an implausible figure (e.g. a corrupted P/B or a unit-slipped market cap) is marked `valuation_suspect` and excluded from the table-level `peer_medians`; a row within 52 weeks of a rights issue/demerger/merger is marked `ratios_incomplete` (see the table-level `ratios_caveat`), and a row whose margins are dominated by a one-off exceptional/discontinued item is marked `non_recurring_items` (also excluded from `peer_medians`). `grain_widened`/`size_banded` indicate whether the peer set fell back to the broader SEBI industry grain or was restricted by the market-cap size band.
get_shareholdingGet the promoter / FII / DII / public shareholding-pattern time series for a stock. Accepts an NSE symbol, ISIN, or BSE code. `limit` caps the most-recent quarterly periods (max 12). Returns raw reported ownership percentages — no verdicts. Sourced from cache; returns an empty series with a note when no shareholding data is cached yet. `breakdown` (when the underlying filing's raw payload was cached) carries the full BSE-SHP institutional sub-category split as `breakdown.institutions`, a list of `{"category": ..., "pct": ...}` — e.g. Mutual Funds, Insurance Companies, Alternate Investment Funds, Provident/Pension Funds, Sovereign Wealth Funds, Foreign Portfolio Investors Category I / II — separately from the headline `fii_pct`/`dii_pct` aggregates. Category label strings are BSE's own text as filed (may contain formatting artifacts like a trailing "/" or doubled spaces), not normalized. Omitted entirely for a period whose raw payload wasn't cached.
get_price_historyGet the OHLC + volume price-history series for an Indian stock. Accepts NSE symbol, ISIN, or BSE code. `days` (1..1825) bounds the lookback window. Set `adjusted=True` for split/bonus-adjusted closes; default is raw close. `interval` is 'daily' (default), 'weekly', or 'monthly' (weekly/monthly resample the adjusted daily series). EOD from the NSE bhavcopy. `currency` is always "INR". Each bar carries a mechanically-computed `vwap` (turnover / volume, None when either is missing/zero); vwap is not rescaled by the split/bonus adjustment factor (turnover/volume are raw flow figures, identical in raw and adjusted mode).
get_returnsGet mechanical return statistics over standard windows for an Indian stock. Accepts NSE symbol, ISIN, or BSE code. Returns period returns (1W/1M/3M/6M/1Y/YTD/max), CAGR, annualized volatility, max drawdown, and 52-week high/low — all computed from the split/bonus-adjusted close series. A null return is always explained by exactly one of two fields: `incomplete_windows` (not enough price history for that window yet) or `corporate_action_flagged_windows` (a rights issue/demerger/spin-off/merger/bare consolidation fell inside the window, so the window mixes a mechanical value transfer with ordinary price movement and is nulled rather than reported — see `corporate_action_caveat` when present). If the query only resolved via a rename/merger/demerger-successor alias, the envelope carries `resolved_via` naming which kind fired. Descriptive statistics only; no verdicts.
get_delivery_trendsGet the delivery-volume / delivery-percentage trend for an Indian stock. Accepts NSE symbol, ISIN, or BSE code. `days` (1..1825) bounds the lookback window. Returns the raw delivery quantity and delivery % time series from the NSE bhavcopy.
get_dividendsGet the cash-dividend history for an Indian stock. Accepts NSE symbol, ISIN, or BSE code. `years` (1..15, default 5) bounds the window. Returns disclosed dividend amounts per share with ex-dates. Raw disclosures only.
get_corporate_actionsGet the disclosed corporate-action timeline (splits, bonuses, dividends, etc.). Accepts NSE symbol, ISIN, or BSE code. `years` (1..20, default 5) bounds the window. `types` optionally filters to a subset of action types. Newest first; raw disclosures.
get_stock_eventsGet recent BSE corporate announcements (SEBI Reg-30 disclosures) for an Indian stock. Accepts NSE symbol, ISIN, or BSE code. `days` (1..365, default 30) bounds the trailing window over filing date; `category` optionally narrows to one BSE category (e.g. "Board Meeting"). Returns disclosure metadata — subject, headline, category, filing time, and a link to the source PDF on BSE. Metadata only; the filings themselves are not parsed or summarised. Quarterly results aren't here — use get_financials for those. Capped at 200 rows; `truncated: true` means more filings matched the window than were returned (narrow `days`/`category` to see the rest) — `total_scanned` reports the true match count, uncapped. Each event includes a `news_id` (the BSE filing GUID). To read the extracted facts and a factual summary of a specific filing, pass that `news_id` to get_filing_extract.
get_filing_extractGet the cached PDF-extraction for one BSE corporate filing. Accepts NSE symbol, ISIN, or BSE code + a BSE news_id. Obtain the `news_id` from get_stock_events, which lists a security's recent filings each carrying its `news_id`. Returns cached grounded facts + a factual summary extracted from the filing PDF. Cache-only: `pending` means no cached extraction exists yet; calling this tool does not itself trigger extraction — only exchange-critical/index-constituent filings are proactively pre-extracted, everything else depends on the DalalOS app's on-demand pipeline. Raw disclosed facts with verbatim source quotes only — no verdicts, targets, or recommendations.
list_announcement_bucketsList the market-wide BSE announcement discovery buckets (id + label). Each bucket groups a real-world disclosure type (e.g. "order-receipts", "fundraise", "credit-rating", "acquisitions", "management-changes") across the WHOLE market — the inverse of get_stock_events, which is scoped to one company. Pass a bucket id to get_announcement_bucket to fetch its recent filings.
get_announcement_bucketGet every company that filed a matching BSE announcement in a trailing window, market-wide. `bucket` is one of the ids from list_announcement_buckets (e.g. "order-receipts", "fundraise"). `days` (1..90, default 7) bounds the trailing window over filing date. Returns newest first across the WHOLE universe (not one security). Metadata only — the raw disclosed subject/headline plus a link to the source BSE filing; no PDF parsing, no verdicts. Capped at 200 rows; `truncated: true` means more announcements matched the window than were returned (narrow `days` to see the rest) — `total_scanned` reports the true match count, uncapped. Each event carries its `news_id` — pass it to get_filing_extract for that filing's extracted facts.
screen_stocksScreen the Indian security universe by user-supplied mechanical criteria. All `filters` keys are optional and AND-combined. `sort_by`/`order` order the result set; `limit` (1..100) caps it. Returns matching securities with the screened metrics — data only, no recommendations. An unknown filter key returns a `bad_request` error that lists every accepted key verbatim, so a rejected call is always self-correcting. RANGE filters (take a `_min` and/or `_max` suffix, e.g. `pe_min: 10, pe_max: 20`): market_cap, price, pe, pb, deliv_pct, week52_high, week52_low, turnover, num_trades (quote-level) — deliv_pct is a PERCENTAGE (50 = 50%); week52_high/week52_low are rupee price levels comparable to `price`; turnover is a rupee traded-value, num_trades a count. promoter_pct, pledged_pct — PERCENTAGES (pass 50 for "50%"), from shareholding data. roe, roa, roce, net_margin, dividend_yield, earnings_yield, fcf_yield, ebitda_margin, operating_margin, quarterly_net_margin_delta_yoy — FRACTIONS (pass 0.15 for "15%"). interest_coverage, ev, ev_to_ebitda, ev_to_ebit, price_to_cash_flow, price_to_fcf, debt_to_equity, price_to_sales, piotroski_f_score (0-9) — plain multiples/scores, no unit conversion needed. revenue_growth, net_income_growth, quarterly_revenue_growth_yoy, quarterly_net_income_growth_yoy, return_1d/1w/1m/3m/6m/1y — FRACTIONS (0.20 = 20% growth or return); unlike the margin/yield group above, these may legitimately exceed 1.0 (>100%) for high-growth or multi-bagger names. pct_off_52w_low — derived, FRACTION: (price - week52_low) / week52_low, e.g. `pct_off_52w_low_max=0.05` for "within 5% of its 52-week low". EXACT-MATCH filters (single value, no `_min`/`_max`): sector, industry, igroup, isubgroup, company_type (e.g. "bank", "nbfc", "insurer", "general"), index (e.g. "NIFTY 50" — membership in that index's constituent list). Some derived metrics are general-only (null for bank/nbfc/insurer): roce, interest_coverage, ev*, earnings_yield, ebitda_margin, operating_margin, piotroski_f_score.
get_sector_overviewGet an aggregate market overview by sector (or a finer SEBI grain). Omit `sector` to list all groups; pass one to drill in. `grain` is "sector" (default), "igroup" (SEBI Industry), or "isubgroup" (SEBI Basic Industry, the finest grain). Returns count, total market cap, and median/mean PE and median PB per group — computed from cached quotes. Aggregates only.
list_index_constituentsList the constituent stocks of an Indian market index (e.g. NIFTY 50, NIFTY 500). `index` is matched exactly to a known index name — get the valid names from list_indices. `limit` (1..500) caps the returned constituents. Returns the member securities with identifiers (each `nse_symbol`/`isin` can be passed as the `query` to any per-stock tool).
list_indicesList the market indices for which constituent membership is cached.
get_market_heatmapGet valuation + multi-horizon returns for the constituents of an Indian market index. `index` is matched exactly to a known index name (e.g. NIFTY 50, NIFTY 500) — get the valid names from list_indices. `limit` (1..500) caps the returned constituents, sorted by market cap desc. Each row carries market_cap/pe/pb plus precomputed 1d/1w/1m/3m/6m/1y returns, and any Tier-C structural-event flags on those returns (`return_flags`) or a lack of price history (`incomplete_windows`) — the two are mutually exclusive and together explain every null return. Mechanical facts only — no rankings.
list_preset_screensList the fixed, nightly-precomputed preset screens (name/description/cache freshness). Presets are FIXED mechanical filter combinations (never live-queried, never ranked or labelled as a recommendation) — a discovery starting point a caller can further filter via screen_stocks itself. Use run_preset_screen(name) to fetch one preset's actual results.
run_preset_screenReturn the last nightly-precomputed result for one registered preset screen. `name` must be one of the names returned by list_preset_screens. A preset that has never been computed yet returns an empty result with reason_code "no_data". Cache-only — this is the stored output of an equivalent screen_stocks(filters=...) call, not a live query.
get_upcoming_resultsList companies with an upcoming board-meeting / results date. `days` (1..90, default 14) is the forward window; `sector` optionally filters; `limit` (1..200) caps the results. Each entry carries the meeting date and security identifiers. A disclosed meeting is never dropped just because its bse_code doesn't join cleanly to the securities master; such rows keep the raw bse_code and add a `note` explaining why isin/nse_symbol/name/sector are null.
get_fii_dii_flowMarket-wide DAILY FII/DII net cash-flow (Rs crore), NSE cash (Capital Market) segment. NOT the shareholding data: get_shareholding gives per-company QUARTERLY FII/DII holding PERCENTAGES; this gives market-wide DAILY net buy/sell/net value in Rs crore -- e.g. "FIIs net sold Rs 2,340 Cr, DIIs net bought Rs 1,890 Cr" for a given trading day. `from_date`/ `to_date` are optional ISO dates (default: trailing ~30 days); `segment` is "cash" (default) or "fno" — any other value is a bad_request. Raw exchange-published figures; `net = buy - sell` is the only computation (SEBI-RA line — no direction calls or "smart money" framing). The envelope's `source` reflects actual per-call provenance, not a fixed NSE label: recent dates are NSE-live (`source="nse"`), older dates are Moneycontrol-backfilled (`source="moneycontrol"`, since NSE publishes no bulk cash-history archive), and a query window spanning both returns `source="mixed"` (each row still carries its own accurate `source`).
get_market_calendarGet a unified, market-wide calendar of disclosed events across all NSE/BSE securities. `date_from`/`date_to` are ISO dates (YYYY-MM-DD); `date_to` must be on or after `date_from` and the window is capped at 180 days. `types` optionally filters to a subset of `results, dividend, split, bonus, demerger, ipo` (plus the remaining corporate-action disclosure types: consolidation, rights, buyback, spinoff, merger, distribution, other) — an unknown type is a bad_request. Each event is `{date, type, isin, nse_symbol, name, detail}`, merged from results_calendar (results) and corporate_action_events (everything else) and sorted chronologically; `limit` (1..2000, default 500) caps the merged result. `ipo` is a stub — no IPO data source exists yet, so it always returns zero rows with an explanatory note. Raw disclosed facts only — no verdicts, no importance ranking beyond your own type filter.
get_iposList IPO/public-issue records: upcoming, open, or recently listed. `status` optionally filters to `upcoming`, `open`, or `listed` (omitted returns all three); an unknown value is a bad_request. Unlike most fields, `status` is derived at READ TIME from `open_date`/`close_date`/`listing_date` vs today (IST) — never a stale stored value. `limit` (1..500, default 100) caps the result. Each entry carries price band, face value, lot size, issue size, open/close/listing dates, issue price, listing price (once listed), category-wise subscription x-times (QIB/NII/Retail/Employee) where disclosed, a DRHP/prospectus link, and a mechanically-computed `listing_gain_pct` = (listing_price - issue_price) / issue_price (null pre-listing). Sourced from BSE (api.bseindia.com) and SEBI public-issue filings — official sources only. No Grey Market Premium (GMP) field anywhere: GMP has no official exchange source, so it is deliberately excluded (SEBI-RA line — raw facts and mechanical arithmetic only, never a verdict).
get_financial_trendsGet multi-period growth and margin trends for an Indian stock. Accepts NSE symbol, ISIN, or BSE code. `period_type` is "quarterly" (default) or "annual"; `limit` (1..12) caps the periods, newest first. Returns level fields plus QoQ/YoY growth and margins — mechanically computed, no verdicts.
get_pledge_trendGet the promoter share-pledge percentage trend for an Indian stock. Accepts NSE symbol, ISIN, or BSE code. `limit` (1..16) caps the most-recent periods. Returns the reported pledged-percentage time series. Raw disclosures only. Each period carries `pledge_disclosed`: false means this quarter's pledge field wasn't present in the underlying filing (a null `pledged_pct` reads as "not disclosed", not "zero pledge") — a real 0.0 is only reported when `pledge_disclosed` is true.
get_data_freshnessReport cache freshness: last successful refresh per data domain and overall health. Every scraper-backed domain (including fii_dii and the ipos family) carries a staleness threshold matched to its real refresh cadence, so a domain whose scraper job silently stops running gets flagged stale rather than reporting `max_age_hours: null` forever.