Odel
Tapetide — Indian Stock Market (NSE & BSE)

Tapetide — Indian Stock Market (NSE & BSE)

@tapetide-hq64TypeScriptMITUpdated 4 days ago

52 tools for Indian stock markets — NSE & BSE quotes, screener, financials, FII/DII, options

View on GitHub
Server endpointStreamable HTTPOAuthProbed

This is the third-party server itself — Odel doesn't run it. Hitting this URL directly talks straight to the upstream server with no auth or proxying. Connect through Odel to front it with managed auth.

Tapetide — Indian Stock Market MCP Server

NSE & BSE Indian Stock Market Data MCP Server

The Model Context Protocol server for Indian stock markets — 52 tools to search, screen & analyze all 8,200+ NSE and BSE stocks from Claude, ChatGPT, Cursor & any AI assistant

npm version npm downloads MIT License MCP compatible nse-bse-indian-stock-market-data-mcp MCP server

DocumentationQuick Start52 ToolsExample Promptsnpm


What is this?

Tapetide MCP Server is a Model Context Protocol server that connects AI assistants to real-time Indian stock market data. It covers all ~8,200 stocks listed on NSE and BSE — from large-cap Nifty 50 to SME stocks.

Ask your AI to look up any stock, run a screener with 326 fundamental filters or real-time technical indicators, pull quarterly financials, check analyst consensus ratings, track your portfolio P&L, monitor FII/DII institutional flows, or get today's bulk deals — all through natural language.

Compatible with: Claude Desktop, Claude Code, ChatGPT, Cursor, Windsurf, Kiro, VS Code, Codex, Zed, Gemini, Grok, OpenCode, Antigravity, and any MCP-compatible client.

Quick Start

Option 1: Remote MCP (No install — claude.ai, chatgpt.com, Grok, Gemini)

Add this URL directly in your AI chat app:

https://mcp.tapetide.com/mcp

Authentication happens automatically via Google OAuth. No token needed.

Option 2: Remote MCP with Token (Claude Code, VS Code, Kiro, Zed)

For code editors that support URL-based MCP servers with custom headers:

  1. Get a free token at tapetide.com/settings/tokens
  2. Add to your MCP config:
{
  "mcpServers": {
    "tapetide": {
      "type": "url",
      "url": "https://mcp.tapetide.com/mcp",
      "headers": {
        "Authorization": "Bearer YOUR_TOKEN_HERE"
      }
    }
  }
}

Option 3: Local MCP via npm (Claude Code, Codex, Cursor, Windsurf, VS Code, Gemini CLI, Kiro, OpenCode)

For stdio-based MCP clients. No cloning or building required — runs via npx:

  1. Get a free token at tapetide.com/settings/tokens
  2. Add to your MCP config:
{
  "mcpServers": {
    "tapetide": {
      "command": "npx",
      "args": ["-y", "tapetide-mcp"],
      "env": {
        "TAPETIDE_TOKEN": "your_token_here"
      }
    }
  }
}

Node.js 18+ required for the local option. Run node --version to check.

How It Works

┌─────────────────┐     stdio (JSON-RPC)     ┌──────────────────┐     HTTPS      ┌─────────────────────┐
│  AI Assistant   │ ◄──────────────────────► │  tapetide-mcp    │ ◄────────────► │  mcp.tapetide.com   │
│  (Claude, etc.) │                           │  (npm package)   │                │  (Cloudflare Worker) │
└─────────────────┘                           └──────────────────┘                └─────────────────────┘

The npm package is a lightweight stdio bridge with zero runtime dependencies. It:

  • Reads JSON-RPC from stdin, forwards to the remote Tapetide MCP server, writes responses to stdout
  • Auto-detects framing: Content-Length (VS Code, Claude Desktop) or newline-delimited JSON (Kiro, Claude Code)
  • Exchanges your refresh token for a 1-hour HMAC access token, auto-refreshes before expiry
  • Handles SSE responses from the remote server
  • Identifies your MCP client to the remote via User-Agent, and echoes the negotiated protocol version
  • Warns on stderr when the server rate-limits a call, naming the retry delay

All 52 tools and their logic run on the remote server — the npm package is just the transport layer. Because it forwards JSON-RPC verbatim, tools shipped on the remote are available immediately without upgrading this package.

Authentication

MethodHow it worksBest for
Google OAuthBrowser sign-in, automatic token refreshAI chat apps (Claude.ai, ChatGPT, Grok, Gemini)
Personal Token (remote)Authorization: Bearer tpt_rt_... headerCode editors with URL-based MCP (VS Code, Kiro, Zed)
Personal Token (local)TAPETIDE_TOKEN env var via npxstdio MCP clients (Cursor, Windsurf, Claude Desktop, Codex)

Generate a free personal token at tapetide.com/settings/tokens. Works for both remote and local MCP.

Tools

Tip: ask your assistant to call read_me first. It returns the full in-session guide — every tool by category, usage patterns, and the rules the server expects clients to follow.

🔍 Discovery & Screening (5 tools)

ToolDescription
search_stocksResolve a company to its symbol by name, symbol, BSE code, or ISIN — including brand names and post-rename aliases (ZomatoETERNAL). Filter by sector/industry.
screen_stocksFundamental screener over 326 ratios — PE, ROCE, sales growth, debt/equity, Piotroski score. Plain-English query syntax with AND/OR logic and cross-field comparisons.
screen_stocks_technicalReal-time technical screener — RSI, MACD, SMA/EMA crossovers, Bollinger Bands, ADX, volume, momentum. Supports crosses_above/crosses_below.
get_screener_ratiosSearch or browse the full 326-ratio catalog to get exact ratio names for a query.
get_trending_stocksToday's top gainers, losers, and most-active stocks from the Nifty 500.

📊 Company Analysis (9 tools)

ToolDescription
get_company_profileFull overview — sector, business summary, pros/cons, fundamentals, growth metrics, current quote. Optionally add technicals (20+ indicators), analyst ratings, and peers in the same call.
get_stock_quoteLive price — LTP, change %, volume, market cap, PE, PB, 52-week high/low.
get_batch_quotesUp to 20 stock quotes in a single call.
get_price_historyDaily or weekly OHLCV with delivery %. Up to 2,000 sessions per call, pageable further back.
get_financialsQuarterly + annual P&L, balance sheet, cash flow, and ratios. Each period is stamped with when it was actually published, so backtests can avoid look-ahead bias.
get_shareholdingPromoter, FII, DII, and public holdings quarter by quarter.
get_forecastsAnalyst EPS, revenue, EBITDA, net income, ROA, and ROE estimates against actuals — for spotting earnings surprises.
get_stock_eventsSentiment-tagged news, corporate actions (dividends, splits, bonuses, AGMs), and filings (results, presentations, concall transcripts, annual reports).
get_stock_ownershipDividend history with yields + which mutual fund schemes hold the stock and at what share of AUM.

🏛️ Market-Wide Data (11 tools)

ToolDescription
get_market_pulseThe at-a-glance daily snapshot — FII/DII net flows, Nifty 50 valuations, and India VIX in one call.
get_fii_dii_detail30 days of daily cash-market flows, F&O participant long/short OI, weekly/monthly/yearly aggregates, buy/sell streaks, cumulative net flows.
get_fii_dii_flowsAlias of get_fii_dii_detail.
get_fpi_sectorsFPI investment by sector — AUM share, fortnightly change, 1-year cumulative flow.
get_market_newsMarket-wide news across categories with sentiment and related symbols.
get_market_dataOne dispatcher for seven daily feeds via dataset: deals, fno_ban, deliveries, ipo, mtf, slbm, signals.
market_heatmapEvery constituent of an index with market cap, PE, PB, returns from 1d to 5y, volume, sector — 16 indices.
market_valuationsIndex PE, PB, and dividend yield over time. Up to 20 years.
get_india_vixThe India VIX fear gauge — latest level, daily change, recent history.
get_index_performanceRank ~140 NSE indices by return over completed weeks or months. Filter to sectoral, broad, thematic, or strategy families — the right answer to "which sector led last month".
get_index_historyOHLC level series plus PE/PB/dividend yield for a single index. The index counterpart of get_price_history.

🎲 Derivatives & Risk (5 tools)

ToolDescription
get_option_chainPer-strike index option chain with IV, full Greeks, bid/ask, open interest, max pain, PCR. NIFTY, BANKNIFTY, FINNIFTY, MIDCPNIFTY — a stamped end-of-day snapshot.
get_option_iv_historySession-by-session ATM IV, IV rank, IV percentile, realised vol, PCR, max pain, 25-delta skew for ~556 underlyings, individual stocks included.
get_options_analyticsLatest per-expiry aggregates — ATM IV, IV rank/percentile, realised vol, PCR by OI and volume, max pain, skew, call/put OI.
get_promoter_pledgePromoter share-pledge percentage by quarter plus pledge/release events — a standard governance red-flag check.
get_credit_ratingsCredit-rating actions by agency with rating, action, and outlook over time.

🔬 Research & Scoring (4 tools)

ToolDescription
get_stock_dealsBulk, block, insider, and substantial-acquisition (SAST) disclosures per stock, with counterparty, side, quantity, value.
get_tapetide_scoreThe deterministic 0-100 Tapetide Score for one stock with its six pillar sub-scores, band, percentile, data confidence, and any governance caps or red flags.
screen_tapetide_scoresRank and filter the scored universe by band, size bucket, sector, score window, and confidence, with cursor pagination.
get_earnings_call_summaryStructured digest of recent earnings-call transcripts and investor presentations — highlights, risks, guidance, headline metrics.

⏳ Point-in-Time & Backtest Safety (5 tools)

ToolDescription
get_adjustment_factorsSplit and bonus adjustment timeline for reconstructing raw prices — plus the rights and demerger events that carry no reliable factor at all.
get_observation_statusPer-calendar-day reason a price is present or missing: traded, weekend, holiday, pre-listing, delisted, or no print. A missing day is not a zero return.
get_index_membership_asofWas a stock in an index on a given date? Answers present, uncertain, absent, or out_of_coverage — survivorship-bias-aware universe construction.
resolve_identifier_asofMap a historical symbol or ISIN to the company that held it on a date, for old holdings files and recycled tickers.
get_identifiers_asofThe reverse lookup — which symbol and ISIN a company traded under at a point in time.

💼 Portfolio (4 tools)

Requires a connected Tapetide account.

ToolDescription
get_user_portfolioHoldings with live prices, absolute and % P&L, invested value, weight, sector, market-cap class.
add_portfolio_stocksAdd holdings singly or in bulk, including rows parsed from a broker CSV or screenshot (Zerodha, Groww, Angel One, Dhan, Upstox, 5Paisa, ICICI Direct, Kotak, HDFC Sky, Motilal Oswal). Duplicates merge on a weighted-average price.
update_portfolio_stockUpdate quantity and average price after a top-up or partial sell.
remove_portfolio_stocksRemove holdings from the portfolio.

👁️ Watchlist (3 tools)

Requires a connected Tapetide account.

ToolDescription
get_watchlistEvery followed stock with sector and industry.
add_to_watchlistFollow one or many stocks. Idempotent.
remove_from_watchlistUnfollow one or many stocks.

📖 Guide & Aliases (6 tools)

ToolDescription
read_meThe full in-session guide — every tool by category, the SEBI disclaimer rule, portfolio-first behaviour, parallel-call patterns. Assistants should call it first.
scan_moversAlias of get_trending_stocks.
get_live_quoteAlias of get_stock_quote.
get_stock_newsAlias of get_stock_events with type: "news".
get_corporate_actionsAlias of get_stock_events with type: "corporate_actions".
run_preset_screenRedirect that points a preset-screen request at the screener tool that can actually answer it.

Retired tool names

These names were removed. Calling one returns a message naming its replacement, so a client can recover in the same turn — but new integrations should use the replacement directly.

RetiredReplacement
market_dealsget_market_data with dataset: "deals"
market_fno_banget_market_data with dataset: "fno_ban"
market_deliveriesget_market_data with dataset: "deliveries"
market_ipoget_market_data with dataset: "ipo"
market_mtfget_market_data with dataset: "mtf"
market_slbmget_market_data with dataset: "slbm"
market_signalsget_market_data with dataset: "signals"
get_quant_signalget_tapetide_score (a different measurement, not a rename)
screen_by_quant_signalscreen_tapetide_scores (a different measurement, not a rename)

Example Prompts

Stock Research

"Give me a complete analysis of Reliance Industries — financials, debt trend,
 analyst target price, and what mutual funds are holding it"

"Compare HDFC Bank and ICICI Bank — quarterly profit growth, ROE, shareholding
 changes, and analyst consensus"

"Pull the last 4 quarters of TCS financials — revenue growth, margin trend,
 and cash flow. How does it compare to Infosys?"

Stock Screening

"Find mid-cap stocks where FII holding increased last quarter, ROE > 15%,
 and RSI below 40 — accumulation candidates"

"Screen for stocks with MACD bullish crossover, volume 2x average, and
 within 10% of 52-week high"

"Which small-caps have debt-to-equity below 0.5, operating margin above 20%,
 and PE below 15?"

Institutional Flows

"FIIs have been selling for 5 days — show me daily numbers and which sectors
 they're pulling out of"

"Compare FII vs DII flows for the last month with Nifty 50 PE — are we near
 a historical bottom?"

"Show F&O participant-wise open interest — are FIIs net long or short in
 index futures?"

Portfolio & Watchlist

"Add these to my portfolio: 10 RELIANCE at ₹1350, 50 TCS at ₹3800,
 25 HDFCBANK at ₹1650"

"I bought 10 more RELIANCE at ₹1400 — update my portfolio and show
 my new average cost"

"Which of my holdings are technically weak? Show RSI and MACD for each"

"Watch TATAMOTORS, MARUTI, M&M — compare their PE ratios and quarterly
 sales growth"

Derivatives & Volatility

"Is RELIANCE implied volatility high right now? Show IV rank and percentile
 versus realised vol over the last year"

"Show the NIFTY option chain around ATM — open interest by strike, max pain,
 and the put-call ratio"

"Which sectors led the last 3 completed weeks? Rank the sectoral indices"

Scoring & Risk Screens

"What's the Tapetide Score for TATASTEEL and why — break down the pillars"

"Show me Strong-band pharma stocks among large and mid caps"

"Any governance red flags on this stock? Check promoter pledge trend and
 recent credit rating actions"

Backtest Safety

"Was IDEA in the Nifty 500 on 2019-03-31? I need point-in-time membership,
 not today's list"

"This stock shows a 60% single-day move in 2022 — was that a split or a real
 return? Check the adjustment factors"

Daily Market Briefing

"Full market briefing — FII/DII flows, F&O ban stocks, bulk deals above
 50 crores, top delivery stocks, and breakout signals"

"Is the market overvalued? Show Nifty 50 PE vs 5-year and 10-year averages"

"Show the Nifty 50 heatmap — which sectors dragged the index today?"

Data Coverage

CategoryWhat's included
StocksAll NSE + BSE listed companies (~8,200 including SME)
Price dataDaily OHLCV up to 2,000 days + weekly aggregation + delivery %
FinancialsQuarterly + annual P&L, balance sheet, cash flow, 50+ ratios
Screener326 fundamental ratios + real-time technical indicators + cross-field comparisons
TechnicalsRSI, SMA, EMA, MACD, Bollinger Bands, ADX, ATR, Supertrend, Stochastic, CCI, pivot points, 8 candlestick patterns
InstitutionalFII/DII daily cash flows, F&O participant OI, FPI sector-wise allocation, buy/sell streaks
Market dataBulk/block deals, F&O ban, IPOs, delivery %, MTF, SLBM, heatmaps, signals
Indices~140 NSE indices — level history with PE/PB/DY, plus weekly/monthly return rankings by sector, broad, thematic, and strategy family
DerivativesIndex option chains with IV and full Greeks, OI, max pain, PCR; IV rank/percentile and realised-vol history for ~556 underlyings including single stocks; India VIX
AnalystBuy/hold/sell consensus + EPS/revenue/EBITDA/ROE forecasts with actuals vs estimates
OwnershipShareholding patterns (quarterly), dividend history, mutual fund scheme-level holdings
Large tradesBulk, block, insider (designated-person), and SAST disclosures with counterparty and value
Governance & riskPromoter share-pledge history and events, credit-rating actions by agency with outlook
ScoringTapetide Score — deterministic 0-100 rating with six pillar sub-scores, band, percentile, data confidence, governance caps
Point-in-timeSplit/bonus adjustment factors, per-day observation status, as-of index membership, historical symbol/ISIN resolution — for survivorship-bias-aware backtests
News & EventsSentiment-tagged news, corporate actions, filings (annual reports, concall transcripts), AI digests of earnings calls and investor presentations
PortfolioLive P&L tracking, sector breakdown, broker CSV import (10+ Indian brokers)

Environment Variables

VariableRequiredDefaultDescription
TAPETIDE_TOKENYes (local)Personal API token from tapetide.com/settings/tokens
TAPETIDE_MCP_URLNohttps://mcp.tapetide.comOverride remote server URL
TAPETIDE_DEBUGNo0Set to 1 for debug logging to stderr

Rate Limits

Limits are per Tapetide account and identical across all three access methods (OAuth, remote token, and this npm bridge) — they follow your plan, not your transport.

ScopeFree planPaid plans
Per day50 tool callsPer your plan
Per calendar month1,000 tool callsPer your plan (unlimited on enterprise)
Burst60 tool calls per minute60 tool calls per minute

Only successful tool calls consume quota. Protocol traffic (initialize, tools/list) and burst-denied calls are free. Daily and monthly windows reset on IST boundaries.

When a limit is hit, the server replies with a normal JSON-RPC result carrying isError: true and a message naming the binding cap and its reset time, so your assistant relays it instead of retrying. Responses carry X-RateLimit-Reset, and denials add Retry-After. The numeric quota itself is not exposed as a header — check current usage at tapetide.com/settings/tokens.

Troubleshooting

ProblemSolution
TAPETIDE_TOKEN environment variable is requiredAdd your token to the env section of your MCP config
Token refresh failed (401)Token expired. Generate a new one at tapetide.com/settings/tokens
Rate limit exceededWait for reset (shown in error) or check usage at tapetide.com/settings/tokens
Server not respondingEnsure Node.js 18+ is installed (node --version)
Slow first requestNormal — pre-authenticates on startup. Subsequent requests are fast
Network errorsCheck internet. The bridge needs to reach mcp.tapetide.com

Set TAPETIDE_DEBUG=1 for detailed logging to stderr.

Links

nse-bse-indian-stock-market-data-mcp MCP server

Contributing

Issues and pull requests are welcome. For bugs, include the error message and your MCP client name/version.

License

MIT — free to use, modify, and distribute.


Built by Tapetide — India's AI-first stock research platform