Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

DalalOS: Indian Stock Market Research (NSE/BSE)

REMOTE · MCP.DALALOS.IN

Filing-grounded Indian stock research (NSE/BSE): financials, ratios, screens. Sourced and dated.

Available components

+5 this week 79 Trust /100

Last scanned (6 hours ago)

Scores higher than 79% of remote servers

Reachable. Last reached 5 Nov 2026.

Category Finance and Payments

Trust breakdown (7 categories)

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score → Why this is hard to score →

Endpoint Security95
Transport & Reachability100
Schema Quality & AI Usability59
  • AI-judged instruction clarity (excellent).Pass
  • Context-footprint check failed: tool/resource definitions use about 23601 tokens (~342/item across 69 items; 69 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management33
  • Stability observed for 10 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage78
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 22% of tool parameters carry a description.Partial
  • Structured output schemas are declared (1% of tools); any adoption earns full credit.Pass
Tool Safety100
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • All 1 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation.Pass
  • An AI judge read all 70 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
  • Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 5 Nov 26 0
    • Tool coverage: 28% → 22% ▼ functional
    • This server's schema is too large to store in full, so we cannot compare its tools day to day functional
  • 4 Nov 26 +2
    • DNSSEC: fail → pass ▲ security
    • Tool coverage: 0% → 28% ▲ functional
    • Schema quality: good → excellent functional
    • This server's schema is too large to store in full, so we cannot compare its tools day to day functional
  • 3 Nov 26 +1
    • This server's schema is too large to store in full, so we cannot compare its tools day to day functional
  • 2 Nov 26 0
    • This server's schema is too large to store in full, so we cannot compare its tools day to day functional
  • 1 Nov 26 +1
    • This server's schema is too large to store in full, so we cannot compare its tools day to day functional
  • 31 Oct 26 0
    • This server's schema is too large to store in full, so we cannot compare its tools day to day functional
  • 30 Oct 26 +1
    • This server's schema is too large to store in full, so we cannot compare its tools day to day functional
  • 29 Oct 26 0
    • Tool coverage: 11% → 2% ▼ functional
    • This server's schema is too large to store in full, so we cannot compare its tools day to day functional
Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 5 Nov 2026 · Probed https://mcp.dalalos.in/mcp

TLS valid

Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .

Subject Issuer Valid from Valid until Key Signature Serial
CN=mcp.dalalos.in CN=ZeroSSL ECC DV SSL CA 2,O=ZeroSSL GmbH,C=AT 27 Oct 2026 25 Jan 2027 ECDSA 256 ECDSA-SHA256 52084f4b5c79cf3f6e4cb599688e4a85
SANs: mcp.dalalos.in
CN=ZeroSSL ECC DV SSL CA 2,O=ZeroSSL GmbH,C=AT (CA) CN=Sectigo Public Server Authentication Root E46,O=Sectigo Limited,C=GB 24 Sept 2025 23 Sept 2035 ECDSA 256 ECDSA-SHA384 c4e1c5bb00f0278f347be4f85d63fcca
CN=Sectigo Public Server Authentication Root E46,O=Sectigo Limited,C=GB (CA) CN=USERTrust ECC Certification Authority,O=The USERTRUST Network,L=Jersey City,ST=New Jersey,C=US 22 Mar 2021 18 Jan 2038 ECDSA 384 ECDSA-SHA384 1a9eafec6de8e19b5c193141b68d90dd

Background: What to check on a remote MCP endpoint →

DNSSEC secure

Validation of mcp.dalalos.in. — Secure

Zone DS Keys Algorithms Outcome
. trust_anchor 20326, 38696 8, 8 Verified
in. present 10094 13 Verified
dalalos.in. present 2371 13 Verified
mcp.dalalos.in. Verified address RRset verified with the apex keys
Authentication Enforced and verified

The endpoint asked for a token and published valid RFC 9728 metadata describing how to get one.

Result Enforced and verified
Enforced On tool calls
HTTP status 200

WWW-Authenticate challenge Bearer resource_metadata="https://mcp.dalalos.in/.well-known/oauth-protected-resource"

Bearer resource_metadata="https://mcp.dalalos.in/.well-known/oauth-protected-resource"

Protected resource metadata

Document https://mcp.dalalos.in/.well-known/oauth-protected-resource
Retrieved Yes
Resource https://mcp.dalalos.in/mcp
Authorisation server https://appealing-lyric-32.authkit.app

Background: How OAuth 2.1 works in the 2026 MCP spec →

Transports 2 probes
Transport URL Outcome Status Location
streamable-http https://mcp.dalalos.in/mcp Verified 200
http (plaintext) http://mcp.dalalos.in/mcp HTTPS enforced 308 https://mcp.dalalos.in/mcp
MCP tools · 69 exposed · ~22,007 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

Tool Tokens
get_stock_vs_index ~229

Use this when the user asks how an Indian stock's return compared with an index such as Nifty 50 over a period. One stock's return beside an NSE index's over the same window. `symbol` is an NSE equity symbol, `index` an NSE index name (default "Nifty 50"). Window: `days` (default 365, max 1825) or `from_date`/`to_date`. Returns each side's return %, annualised volatility, max drawdown, best and worst day, and `difference_pct` (stock minus index, percentage points). The stock's return compounds NSE's own close/prev_close, so splits and bonuses do not break it. Price returns, no dividends. Arithmetic only.

NameTypeReqDescription
days–––
from_date–––
indexstring–NSE index name, e.g. "Nifty 50", "Nifty Bank" or "Nifty IT" (not a slug).
symbolstringyes–
to_date–––

No output schema declared.

No examples provided.

get_technical_indicators ~659

Use this when the user asks for moving averages, RSI, MACD, Bollinger Bands, beta or circuit-limit data for an Indian stock. Get moving averages, RSI, MACD, Bollinger Bands, beta, and circuit-filter band/hit-days for an Indian stock. Accepts NSE symbol, ISIN, or BSE code. Moving averages (sma_50/sma_100/sma_200), `rsi_14` (Wilder's 14-period RSI), `macd` (12/26/9 EMA line/signal/histogram), `bollinger_bands` (20-day, 2-stdev middle/upper/lower + percent_b), and `beta` (regressed against NSE's own Nifty 50 daily close series over the trailing ~1Y of paired trading days; `beta_benchmark` names it) are all mechanically computed from the split/bonus-adjusted daily close series. `circuit_band_pct`/`circuit_band_as_of`/`circuit_hit_days` use the RAW (unadjusted) close series and are NSE's own per-security circuit-filter data, not derived from bhavcopy. NSE publishes only a CURRENT snapshot with no historical archive, so this pipeline's own daily captures are the only source of band history and only exist from whenever this deployment started capturing them: * `circuit_band_pct` is null for TWO DIFFERENT reasons — check `circuit_band_as_of` to tell them apart. `circuit_band_as_of` present + `circuit_band_pct` null means this security genuinely has NSE's "No Band" designation (no static daily price band applies — typically a large/liquid, F&O-eligible name; this is a complete, real answer, NOT missing data). `circuit_band_as_of` null means no band has been captured for this security AT ALL yet (also named in `insufficient_history`) — do not conflate the two. * `circuit_hit_days` is a list of `{trade_date, close, prev_close, pct_change, band_pct}` for RAW-close days that plausibly touched that day's captured band (a small tolerance absorbs NSE's tick-size rounding of the actual limit price off the raw percentage) — a descriptive flag that trading was likely constrained tha…

NameTypeReqDescription
querystringyesOne company: NSE symbol, ISIN or BSE code, e.g. TCS, INE467B01029 or 532540. Always send it as `query` (not `symbol`).

No output schema declared.

No examples provided.

get_top_movers ~322

Use this when the user asks which Indian stocks gained or lost the most, or traded the most, in the last completed session. Raw ranked gainers/losers/most-active for an index over one completed EOD session. `index` defaults to 'NIFTY 500' — get valid names from list_indices. `metric` picks the raw sort field: 'pct_change' (day % change, default), 'change' (absolute price change, Rs), 'turnover' (traded value, Rs), or 'volume' (traded quantity). `direction` is 'desc' (default — top gainers / most active) or 'asc' (top losers). `limit` (1..100, default 20) caps the rows. This is the same mechanical fact NSE's own top-gainers/losers page publishes — a caller-chosen sort key over already-public EOD numbers, nothing more. Distinct from get_market_heatmap, which is deliberately NOT sortable by return and instead always sorts by market cap — use get_market_heatmap for a valuation+returns snapshot, use this tool when the question is specifically "what moved most today".

NameTypeReqDescription
directionstring––
indexstring–NSE index name, e.g. "Nifty 50", "Nifty Bank" or "Nifty IT" (not a slug).
limitinteger––
metricstring––

No output schema declared.

No examples provided.

get_upcoming_results ~296

Use this when the user asks which Indian companies report results soon, optionally by sector. For a past window or other event types use get_market_calendar. List companies with an upcoming board-meeting / results date — WHOLE-MARKET, FORWARD-ONLY. This is a forward-only, sector-filterable CONVENIENCE view over the same results_calendar data get_market_calendar also reads — equivalent to get_market_calendar(date_from=today, date_to=today+days, types=["results"]) plus the sector narrowing get_market_calendar doesn't offer, not a competing source. Prefer get_market_calendar instead when you need a past window or multiple event types together. For ONE company's historical corporate-action timeline (splits/bonuses/dividends), use get_corporate_actions instead. `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.

NameTypeReqDescription
daysinteger––
limitinteger––
sector–––

No output schema declared.

No examples provided.

get_valuation_history ~181

Use this when the user asks how an Indian stock's PE or price-to-sales ratio has changed over time. Get point-in-time P/E and price-to-sales history for an Indian stock. Each point uses only the TTM filing that was public on that trade date. `days` accepts 1..1825; `interval` is daily, weekly, or monthly. P/S is null where the filing lacks a usable top line or disclosed share count. Cache-only, mechanically computed, no verdicts.

NameTypeReqDescription
daysinteger––
intervalstring––
querystringyesOne company: NSE symbol, ISIN or BSE code, e.g. TCS, INE467B01029 or 532540. Always send it as `query` (not `symbol`).

No output schema declared.

No examples provided.

get_watchlist ~232

Use this when the user asks what is on their DalalOS watchlist, a saved list of stock symbols (not brokerage holdings). Get the caller's DalalOS watchlist: bare stock symbols, no quantity/cost-basis. Use this whenever the user asks what's on their (DalalOS) watchlist, or before adding/ removing symbols to check current state. This is DalalOS's own watchlist, tied to the caller's DalalOS account. Requires an authenticated caller (API key or OAuth session tied to a DalalOS account) -- unauthenticated or auth-disabled deployments get an `unauthorized`/`not_configured` error envelope instead of data. Each entry is decorated with `name`/`sector`/`market_cap` (best effort, via the same lookup `get_company_profile` uses) alongside the bare `symbol` and `added_at`; a symbol that no longer resolves (delisted, renamed) still returns as a bare row rather than failing the whole call.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

list_announcement_buckets ~131

Use this when the user wants to browse market-wide disclosure types, such as order receipts or fundraises, before calling get_announcement_bucket. List 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.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

list_index_constituents ~173

Use this when the user asks which stocks are in an Indian index such as NIFTY 50 or NIFTY Bank. List 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).

NameTypeReqDescription
indexstringyesNSE index name, e.g. "Nifty 50", "Nifty Bank" or "Nifty IT" (not a slug).
limitinteger––

No output schema declared.

No examples provided.

list_index_valuations ~99

Use this when the user needs the names of Indian indices that have PE, PB and dividend-yield history. List every NSE index name tracked (headline, broad-market, sector/thematic, India VIX). Each entry carries `{index_name, latest_trade_date, latest_close}`. Powers get_index_valuation's `available_indices_hint` and lets you discover NSE's exact index-name spelling before calling it.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

list_indices ~36

Use this when the user needs the list of Indian market indices DalalOS covers. List the market indices for which constituent membership is cached.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

list_preset_screens ~107

Use this when the user asks what ready-made screens are available, before calling run_preset_screen. List 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.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

ping ~37

Use this only to confirm the DalalOS connection is working. DalalOS health check. Returns a success envelope to confirm the server is reachable.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

remove_from_watchlist ~280

Use this when the user asks to remove stocks from their DalalOS watchlist. Changes only the user's own saved list. Remove one or more stock symbols from the caller's DalalOS watchlist in a single call. Use this when the user says "stop watching X", "remove X from my watchlist", or "clear my watchlist" (call get_watchlist first, then pass every returned symbol here in one call). This is DalalOS's own watchlist, tied to the caller's DalalOS account. `symbols` accepts either a list of strings (mirrors `add_to_watchlist`, capped at 200 symbols per call) or a single bare string (kept for one release for backward compatibility with older single-symbol callers). A partial match -- some symbols on the watchlist, some not -- never fails the call: the response reports `{"removed": [...], "not_found": [...]}` so the caller can see exactly which symbols were actually removed. Requires an authenticated caller; see `get_watchlist` for the auth error shape.

NameTypeReqDescription
symbols–yesList of NSE symbols, ISINs or BSE codes, e.g. ["TCS", "INFY"]. Always send it as `symbols`.

No output schema declared.

No examples provided.

run_preset_screen ~118

Use this when the user wants the latest result of a named ready-made screen from list_preset_screens. Return 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.

NameTypeReqDescription
namestringyes–

No output schema declared.

No examples provided.

screen_by_query ~641

Use this when the user's screen needs OR logic, arithmetic between two metrics or a screen expression that screen_stocks filters cannot express. Screen the Indian security universe with one free-form DalalOS screen expression. Reach for this instead of screen_stocks when the ask needs OR, arithmetic between two metrics, or a comparison screen_stocks' fixed `<metric>_min`/`_max` keys cannot express — e.g. `Return on capital employed > 22% AND (Debt to equity < 0.5 OR Interest Coverage Ratio > 8)`. screen_stocks stays the right tool for a plain AND-combined set of range filters. `dialect` picks the vocabulary and is never guessed: "screener" (default) reads common screener ratio names in the units a screener page DISPLAYS — `> 22%` against a ratio stored as a fraction, market cap in crore — while "dalalos" reads canonical DalalOS metric ids in the units the cache stores. The metric catalogue for both is GET /v1/ratios; an unrecognised name comes back as an explicit error naming the phrase, never a silent substitution. Query syntax and metric names: https://dalalos.in/docs/screener and https://dalalos.in/docs/screener/ratios. Operators: AND, OR, = != > < >= <=, + - * /, and COALESCE, IF, LEAST, POWER, ABS, SQRT, LOG. Missing values follow SQL three-valued logic: a bare comparison against an unknown value does NOT match, `COALESCE(<metric>, 0) > x` does, and `A > x OR B > y` can still match on the right side alone. Division by zero is a missing value, not an error. Paging is pinned to one published metrics generation. Each response reports it as `pagination.snapshot_id`; pass that value back as `snapshot_id` on the next page. If a metrics refresh published a new generation in between, the call fails with `snapshot_expired` and the current generation rather than mixing rows from two of them — restart from `offset` 0. `sort_by` is a sortable metric id; ordering puts unknown values la…

NameTypeReqDescription
columns–––
definitions–––
dialectstring––
include_condition_countsboolean––
limitinteger––
offsetinteger––
only_latest_resultsboolean––
orderstring––
querystringyesOne boolean expression over metric names, e.g. "market_cap > 5000 and roce > 20".
scope–––
snapshot_id–––
sort_bystring––

Structured output declared, but exposes no named fields.

No examples provided.

screen_stocks ~1,338

Use this when the user asks for Indian stocks matching numeric criteria such as PE, PB, market cap, ROE, margins or debt, optionally within an index such as NIFTY 50. For OR logic or arithmetic between metrics use screen_by_query. Screen 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". num_shareholders (a…

NameTypeReqDescription
filtersobjectyesObject of criteria, AND-combined, e.g. {"market_cap_min": 50000, "pe_max": 20}. Range filters take a `_min` or `_max` suffix.
limitinteger––
orderstring––
sort_bystring––

No output schema declared.

No examples provided.

search_company_disclosures ~239

Use this when the user needs historical detail from an Indian company's earlier filings, for example a prior order value or commissioning date. Search this company's already cached official filings, page by page. Use after get_stock_events/get_filing_extract when you need historical context, such as a prior commissioning date, original order announcement, customer, project, or tender. This is cache-only: it never downloads a filing or triggers extraction. Results retain a source page and original BSE attachment URL; `coverage` tells you how much page-preserving history is indexed and explicitly reports parsed legacy filings that cannot be searched reliably yet.

NameTypeReqDescription
document_types–––
from_date–––
limitinteger––
querystringyesOne company: NSE symbol, ISIN or BSE code, e.g. TCS, INE467B01029 or 532540. Always send it as `query` (not `symbol`).
search_textstringyesWords to find in the company's indexed filings, e.g. "fraud".
to_date–––

No output schema declared.

No examples provided.

search_stocks ~246

Use this when the user names an Indian company, NSE symbol, BSE code or ISIN and you need to identify the listed security before calling another tool. Not for US or other non-Indian stocks. Find 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.

NameTypeReqDescription
limitinteger––
querystringyesCompany name or part of it, or an NSE symbol, ISIN or BSE code.

No output schema declared.

No examples provided.

submit_dalalos_feedback ~555

Use this when the user asks to report a problem with DalalOS data or tools, or to request a feature, or agrees after you offer to report a likely DalalOS issue. Not for questions about a company; it sends a report to the DalalOS team and does not change any data. Submit a user-approved report about DalalOS data, tools, documentation, or a feature request. Use this when the user asks to report feedback or agrees after you offer. Include only details needed to understand the issue; do not send full conversations, credentials, account information, contact details, portfolio holdings, or unrelated private data. Clearly distinguish a suspected issue from a verified fact: a reported discrepancy is stored as a claim, since units, periods or source timing may explain it. Never report a failure of this feedback tool itself, and do not offer to report the same issue twice in one conversation. Fields: `category` (data_inaccurate, data_outdated, data_missing, tool_error, unexpected_result, feature_request, documentation, other), `summary` (max 160 chars), `details` (what happened or what is needed, max 2000 chars) and `request_id` (a fresh UUID you generate per report; reuse it only to retry the same report) are required. Optional context: `related_tool` (the DalalOS tool involved), `security_identifier` with `security_identifier_type` (nse_symbol, bse_code or isin; give both or neither), `metric`, `observed_value` and `expected_value` (with units, max 200 chars each), `as_of_date` (date or reporting period), `source_reference` (a short citation or URL; it is stored, never fetched). No source, exact value or identifier is required. Requires an authenticated caller. Feedback is free and does not use monthly credits. On success returns `report_id` and `status` "received" (the report was saved; it has not been verified, prioritised or fixed). Tell the user the report supports future improvements, that the team will not reply to individual reports for now, and give them the rep…

NameTypeReqDescription
as_of_date–––
categorystringyes–
detailsstringyes–
expected_value–––
metric–––
observed_value–––
related_tool–––
request_idstringyes–
security_identifier–––
security_identifier_type–––
source_reference–––
summarystringyes–

No output schema declared.

No examples provided.

Install

How do I install the DalalOS: Indian Stock Market Research (NSE/BSE) MCP server?

DalalOS: Indian Stock Market Research (NSE/BSE) is a hosted endpoint at https://mcp.dalalos.in/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

remote · mcp.dalalos.in

# add to Claude Code
claude mcp add --transport http in-dalalos-mcp 'https://mcp.dalalos.in/mcp'
Common questions

What is the DalalOS: Indian Stock Market Research (NSE/BSE) MCP server?

DalalOS: Indian Stock Market Research (NSE/BSE) is an MCP server listed in the public MCP registry as in.dalalos/mcp. Filing-grounded Indian stock research (NSE/BSE): financials, ratios, screens. Sourced and dated. This page covers its hosted endpoint (https://mcp.dalalos.in/mcp).

Is the DalalOS: Indian Stock Market Research (NSE/BSE) MCP server safe to use?

DalalOS: Indian Stock Market Research (NSE/BSE) scores 79 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

What tools does the DalalOS: Indian Stock Market Research (NSE/BSE) MCP server expose?

DalalOS: Indian Stock Market Research (NSE/BSE) exposes 69 tools: ping, get_filing_extract, get_filing_extracts, get_market_fii_dii_flow, get_stock_fii_flow, and 64 more. Their descriptions and schemas cost roughly 22,007 tokens of context every time the server is loaded.

Does the DalalOS: Indian Stock Market Research (NSE/BSE) MCP server require authentication?

Yes. DalalOS: Indian Stock Market Research (NSE/BSE) asked us for credentials when we connected, so you will need to authorise it in your MCP client before it can do anything.

Is the DalalOS: Indian Stock Market Research (NSE/BSE) MCP server still maintained?

DalalOS: Indian Stock Market Research (NSE/BSE) is still listed as active in the MCP registry. We last reached this channel on 5 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.