<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Govind Sisara</title>
    <description>The latest articles on DEV Community by Govind Sisara (@govind_sisara).</description>
    <link>https://dev.to/govind_sisara</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3993452%2Fd4c17d12-35ba-446d-96df-9f5581115ef3.jpeg</url>
      <title>DEV Community: Govind Sisara</title>
      <link>https://dev.to/govind_sisara</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/govind_sisara"/>
    <language>en</language>
    <item>
      <title>Indian Stock Market MCP: The Best MCP Servers for NSE &amp; BSE Data (2026)</title>
      <dc:creator>Govind Sisara</dc:creator>
      <pubDate>Sun, 12 Jul 2026 04:38:12 +0000</pubDate>
      <link>https://dev.to/govind_sisara/indian-stock-market-mcp-the-best-mcp-servers-for-nse-bse-data-2026-p28</link>
      <guid>https://dev.to/govind_sisara/indian-stock-market-mcp-the-best-mcp-servers-for-nse-bse-data-2026-p28</guid>
      <description>&lt;p&gt;If you want an AI assistant that actually understands Indian markets, you need an &lt;strong&gt;Indian stock market MCP&lt;/strong&gt; server. This guide compares the best &lt;strong&gt;MCP servers for NSE and BSE data&lt;/strong&gt; — the ones that let Claude, ChatGPT, Cursor, and other AI clients pull real quotes, financials, screeners, and FII/DII flows on demand instead of guessing from stale training data.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;TL;DR — the best Indian stock market data MCP servers:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Tapetide MCP&lt;/strong&gt; — best overall NSE + BSE MCP for research: all ~8,200 stocks, a 326-ratio screener, fundamentals, and institutional flows. No brokerage account needed.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Zerodha Kite MCP&lt;/strong&gt; — best for analyzing your own Zerodha portfolio.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Groww MCP&lt;/strong&gt; — best for Groww portfolio + F&amp;amp;O chat with order placement.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Dhan MCP&lt;/strong&gt; — best for live trading from chat.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  What is an Indian stock market MCP server?
&lt;/h2&gt;

&lt;p&gt;The &lt;a href="https://modelcontextprotocol.io/" rel="noopener noreferrer"&gt;Model Context Protocol (MCP)&lt;/a&gt; is an open standard that lets AI assistants discover tools, call live data services, and act on the results. An &lt;strong&gt;Indian stock market MCP server&lt;/strong&gt; applies that standard to NSE and BSE data: instead of a model working from memory (and hallucinating prices or last quarter's numbers), it queries a structured &lt;strong&gt;NSE BSE data MCP&lt;/strong&gt; in real time.&lt;/p&gt;

&lt;p&gt;Add a &lt;strong&gt;stock market MCP server&lt;/strong&gt; to Claude, ChatGPT, or Cursor and the assistant can answer things like "what are today's FII/DII flows?", "screen for small-caps with ROE above 15% and RSI under 40", or "pull TCS's last four quarters and compare margins to Infosys" — with live data, not guesses.&lt;/p&gt;

&lt;p&gt;For Indian markets, &lt;strong&gt;MCP servers for stock data&lt;/strong&gt; fall into two groups:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Data &amp;amp; research MCPs&lt;/strong&gt; — connect the AI to market-wide data: every listed stock, fundamentals, screeners, technicals, and institutional flows. No brokerage account required. Built for research.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Broker-account MCPs&lt;/strong&gt; — connect the AI to &lt;em&gt;your&lt;/em&gt; account at a specific broker: holdings, positions, funds, and sometimes order placement. Great for portfolio Q&amp;amp;A and trading, but scoped to your holdings and what your broker exposes.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Both are useful and often complementary. But if your goal is to research the &lt;em&gt;whole&lt;/em&gt; Indian market — not just your own holdings — a data-first &lt;strong&gt;NSE MCP&lt;/strong&gt; is what you want. This ranking starts with the one purpose-built for it.&lt;/p&gt;




&lt;h2&gt;
  
  
  1. Tapetide MCP — best Indian stock market MCP for research
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://tapetide.com/mcp" rel="noopener noreferrer"&gt;Tapetide MCP&lt;/a&gt; is the most complete &lt;strong&gt;Indian stock market data MCP&lt;/strong&gt; server. It connects any AI assistant to real-time and historical data for &lt;strong&gt;all ~8,200 stocks listed on NSE and BSE&lt;/strong&gt; — from Nifty 50 large-caps down to SME listings — with &lt;strong&gt;no brokerage account&lt;/strong&gt; and no paid data terminal required.&lt;/p&gt;

&lt;p&gt;Where broker MCPs answer "how is &lt;em&gt;my&lt;/em&gt; portfolio doing?", this &lt;strong&gt;NSE BSE MCP&lt;/strong&gt; answers "what is happening across the &lt;em&gt;entire&lt;/em&gt; market, and which stocks should I be looking at?" That is a fundamentally different — and for research, far more powerful — question. Its &lt;strong&gt;34 tools&lt;/strong&gt; span search, screening, company analysis, quotes, financials, institutional flows, market insights, and portfolio/watchlist tracking, so an agent can go from a vague idea to a ranked list of candidates to a full company teardown in a single conversation.&lt;/p&gt;

&lt;p&gt;The depth is what makes it the top &lt;strong&gt;MCP server for Indian stocks&lt;/strong&gt;. One MCP gives an agent access to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;A fundamental screener with 326 ratios&lt;/strong&gt; — PE, ROCE, sales growth, debt/equity, Piotroski score, and more — plus a &lt;strong&gt;real-time technical screener&lt;/strong&gt; (RSI, MACD, SMA/EMA crossovers, Bollinger Bands, ADX) that understands &lt;code&gt;crosses_above&lt;/code&gt; / &lt;code&gt;crosses_below&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Quarterly and annual financials&lt;/strong&gt; — P&amp;amp;L, balance sheet, cash flow, 50+ ratios — alongside shareholding patterns, analyst forecasts (EPS/revenue/EBITDA with actuals-vs-estimates), and dividend history.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Institutional flows&lt;/strong&gt; — FII/DII daily cash-market flows, F&amp;amp;O participant positioning, FPI sector-wise allocation, and buy/sell streaks.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Market insights&lt;/strong&gt; — bulk/block deals, F&amp;amp;O ban list, IPOs, top delivery stocks, MTF, SLBM, index heatmaps, and technical signals.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Portfolio &amp;amp; watchlist tools&lt;/strong&gt; — live P&amp;amp;L tracking with broker-CSV import (Zerodha, Groww, Angel One, Dhan, Upstox, and more), so you can bring holdings from &lt;em&gt;any&lt;/em&gt; broker into one place.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Because the heavy lifting happens server-side, responses are pre-shaped for AI context windows rather than dumping raw JSON — which keeps analysis fast and avoids the "conversation too long" wall that plagues chattier integrations.&lt;/p&gt;

&lt;h3&gt;
  
  
  How to connect the Tapetide NSE + BSE MCP
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Remote (no install — Claude.ai, ChatGPT, Grok, Gemini):&lt;/strong&gt; add this URL as a custom connector; auth happens automatically via Google sign-in.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;https://mcp.tapetide.com/mcp
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Remote with token (VS Code, Kiro, Zed, Claude Code):&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"mcpServers"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"tapetide"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"type"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"url"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"url"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"https://mcp.tapetide.com/mcp"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"headers"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"Authorization"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Bearer YOUR_TOKEN_HERE"&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Local (stdio via npx — Cursor, Windsurf, Claude Desktop, Codex):&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"mcpServers"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"tapetide"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"command"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"npx"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"args"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;"-y"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"tapetide-mcp"&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"env"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"TAPETIDE_TOKEN"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"your_token_here"&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Grab a free token at &lt;a href="https://tapetide.com/settings/tokens" rel="noopener noreferrer"&gt;tapetide.com/settings/tokens&lt;/a&gt;. Then try:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Find mid-cap stocks where FII holding increased last quarter, ROE &amp;gt; 15%, and RSI below 40 — then pull financials and analyst targets for the top 3.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  Best for
&lt;/h3&gt;

&lt;p&gt;Retail investors, analysts, and developers who want an AI assistant that can research the &lt;strong&gt;whole Indian stock market&lt;/strong&gt; — screening, fundamentals, technicals, and institutional flows across every NSE and BSE stock — without a brokerage account or an expensive terminal.&lt;/p&gt;

&lt;h3&gt;
  
  
  Trade-offs
&lt;/h3&gt;

&lt;p&gt;Tapetide is a research and data MCP: it does not place live orders on an exchange. If your main need is trade execution from chat, pair it with a broker MCP (below) — use Tapetide to &lt;em&gt;decide&lt;/em&gt;, and your broker to &lt;em&gt;act&lt;/em&gt;.&lt;/p&gt;




&lt;h2&gt;
  
  
  2. Zerodha Kite MCP — best for Zerodha portfolio analysis
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://zerodha.com/z-connect/featured/connect-your-zerodha-account-to-ai-assistants-with-kite-mcp" rel="noopener noreferrer"&gt;Kite MCP&lt;/a&gt; connects your Zerodha account to AI assistants, free of charge. Once linked, the assistant can see your holdings, positions, margins, and mutual fund holdings, pull live quotes and historical data, and answer portfolio questions in natural language — "which of my holdings has the highest gain today?" or "what's my sector exposure?"&lt;/p&gt;

&lt;p&gt;This &lt;strong&gt;Indian broker MCP&lt;/strong&gt; exposes roughly 22 tools covering profile, margins, holdings, positions, MF holdings, quotes/LTP/OHLC, historical data, instrument search, orders, and GTT management. Authentication happens through Zerodha's own login with 2FA, so your credentials never pass through the AI client, and most operations are read-only (order placement is limited, with GTT orders the main exception).&lt;/p&gt;

&lt;h3&gt;
  
  
  How to connect
&lt;/h3&gt;

&lt;p&gt;Remote endpoint, connected via &lt;code&gt;mcp-remote&lt;/code&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"mcpServers"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"kite"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"command"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"npx"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"args"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;"mcp-remote"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"https://mcp.kite.trade/mcp"&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Type &lt;code&gt;login to kite&lt;/code&gt; in chat to trigger authentication. Example prompt:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Analyze my holdings: top 5 by market value, best and worst performers, sector distribution, and unrealised P&amp;amp;L summary.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  Best for
&lt;/h3&gt;

&lt;p&gt;Zerodha customers who want conversational analysis of their own portfolio and positions, plus live quotes and historical data.&lt;/p&gt;

&lt;h3&gt;
  
  
  Trade-offs
&lt;/h3&gt;

&lt;p&gt;It's scoped to your Zerodha account and the stocks you hold — not a market-wide &lt;strong&gt;NSE BSE data MCP&lt;/strong&gt;. Users widely report frequent re-login prompts / session expiry, and large portfolios can exceed the AI's context limit (especially on Claude's free tier). There's no fundamental screener, analyst forecast, or institutional-flow data — it reflects your account, not the broader market.&lt;/p&gt;




&lt;h2&gt;
  
  
  3. Groww MCP — best for Groww portfolio + F&amp;amp;O chat
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://groww.in/updates/groww-mcp" rel="noopener noreferrer"&gt;Groww MCP&lt;/a&gt; links your Groww account to AI assistants like Claude and Cursor, aimed at portfolio intelligence and F&amp;amp;O analysis. You can ask for your top performers, check large-cap exposure, review positions expiring this week with live P&amp;amp;L, or reason through intraday chart action — and, notably, place orders ("buy ₹10,000 of HDFC Bank 5% above market", "stop-loss 5% below my Infosys cost").&lt;/p&gt;

&lt;p&gt;Connection is a one-click OAuth flow via a custom connector, and Groww emphasizes consent-based access with no background syncing or data storage on AI servers.&lt;/p&gt;

&lt;h3&gt;
  
  
  How to connect
&lt;/h3&gt;

&lt;p&gt;Remote connector URL (Claude):&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;https://mcp.groww.in/mcp
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Or via &lt;code&gt;mcp-remote&lt;/code&gt; for Cursor / VS Code:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"mcpServers"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"growwmcp"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"command"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"npx"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"args"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;"mcp-remote@0.1.18"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"https://mcp.groww.in/mcp"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"52155"&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Example prompt:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Show me my top 5 performing stocks this quarter and flag any trading near their 52-week highs.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  Best for
&lt;/h3&gt;

&lt;p&gt;Groww customers who want portfolio + F&amp;amp;O analysis with the option to place trades directly from an AI assistant.&lt;/p&gt;

&lt;h3&gt;
  
  
  Trade-offs
&lt;/h3&gt;

&lt;p&gt;The current version covers &lt;strong&gt;stocks and F&amp;amp;O only&lt;/strong&gt; — no fundamentals, mutual funds, IPOs, or bonds yet. It requires a Claude Pro subscription (or Cursor/Windsurf) and DDPI authorization for sell orders, and it's explicitly flagged as early-stage. Like other broker MCPs, it sees only your account — not the wider market.&lt;/p&gt;




&lt;h2&gt;
  
  
  4. Dhan MCP — best for live trading from chat
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://docs.dhanhq.co/mcp/" rel="noopener noreferrer"&gt;Dhan MCP&lt;/a&gt; is the most execution-oriented Indian broker MCP. It connects your authenticated Dhan account to any MCP client and leans into live trading: place, modify, and cancel orders (including Super Orders), check funds/holdings/positions/trades, pull live quotes with market depth and option chains, fetch historical candles, run pre-order margin checks (single or basket), and set price/indicator alerts with linked orders.&lt;/p&gt;

&lt;p&gt;It's built on the open MCP standard and works with Claude Desktop, Cursor, OpenCode, Kiro, VS Code, and more, via a hosted endpoint with account-level authentication.&lt;/p&gt;

&lt;h3&gt;
  
  
  How to connect
&lt;/h3&gt;

&lt;p&gt;Remote connector URL:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;https://mcp.dhan.co/mcp
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Add it as a custom connector, complete the Dhan auth flow, then verify:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Check my holdings with Dhan MCP.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  Best for
&lt;/h3&gt;

&lt;p&gt;Dhan traders who want to manage orders, positions, margins, and alerts — and execute trades — through an AI assistant, especially for F&amp;amp;O and options workflows.&lt;/p&gt;

&lt;h3&gt;
  
  
  Trade-offs
&lt;/h3&gt;

&lt;p&gt;Its strength is execution, not research breadth. There's no fundamental screener, analyst data, or market-wide institutional-flow analysis. And because it can place and modify live orders, it carries real execution risk — an AI assistant acting on your trading account should be supervised carefully.&lt;/p&gt;




&lt;h2&gt;
  
  
  A note on global data MCP servers
&lt;/h2&gt;

&lt;p&gt;For US and global markets, general-purpose data MCPs exist — &lt;strong&gt;Alpha Vantage&lt;/strong&gt; (broad coverage, easy setup), &lt;strong&gt;Nasdaq Data Link&lt;/strong&gt; (research-grade datasets), &lt;strong&gt;Tiingo&lt;/strong&gt; (news-aware analysis), &lt;strong&gt;Intrinio&lt;/strong&gt; (fundamentals), and &lt;strong&gt;FactSet&lt;/strong&gt; (enterprise). They're solid internationally, but their &lt;strong&gt;NSE and BSE coverage is thin&lt;/strong&gt; compared to a purpose-built Indian provider. If Indian equities are your focus, an India-native &lt;strong&gt;stock market MCP server&lt;/strong&gt; will give you far more depth on local stocks, filings, and flows.&lt;/p&gt;




&lt;h2&gt;
  
  
  Indian stock market MCP comparison
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;MCP server&lt;/th&gt;
&lt;th&gt;Account needed&lt;/th&gt;
&lt;th&gt;Coverage&lt;/th&gt;
&lt;th&gt;Screening &amp;amp; fundamentals&lt;/th&gt;
&lt;th&gt;Institutional flows&lt;/th&gt;
&lt;th&gt;Order execution&lt;/th&gt;
&lt;th&gt;Best at&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Tapetide MCP&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;No (free token)&lt;/td&gt;
&lt;td&gt;All ~8,200 NSE/BSE&lt;/td&gt;
&lt;td&gt;Yes (326 ratios + technicals)&lt;/td&gt;
&lt;td&gt;Yes (FII/DII, FPI, F&amp;amp;O OI)&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;Market-wide research&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Zerodha Kite MCP&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Zerodha&lt;/td&gt;
&lt;td&gt;Your holdings + quotes&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;Limited (GTT)&lt;/td&gt;
&lt;td&gt;Zerodha portfolio Q&amp;amp;A&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Groww MCP&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Groww&lt;/td&gt;
&lt;td&gt;Your holdings + F&amp;amp;O&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;Yes (with DDPI)&lt;/td&gt;
&lt;td&gt;Groww portfolio + F&amp;amp;O&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Dhan MCP&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Dhan&lt;/td&gt;
&lt;td&gt;Your account + market data&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;Yes (full)&lt;/td&gt;
&lt;td&gt;Live trading from chat&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h2&gt;
  
  
  Which Indian stock market MCP should you use?
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Want to &lt;strong&gt;research the whole market&lt;/strong&gt; — screen thousands of NSE/BSE stocks, dig into fundamentals, track FII/DII flows — with no brokerage account? Use &lt;strong&gt;Tapetide MCP&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Want to &lt;strong&gt;analyze or trade your own account&lt;/strong&gt; at a specific broker? Use that broker's MCP — &lt;strong&gt;Zerodha Kite&lt;/strong&gt;, &lt;strong&gt;Groww&lt;/strong&gt;, or &lt;strong&gt;Dhan&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Doing both? Pair them: research and decide with the &lt;strong&gt;NSE + BSE data MCP&lt;/strong&gt; (Tapetide), then execute with your broker's MCP.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The strongest setup is often two MCPs side by side — one that understands the entire Indian market, and one that understands your account.&lt;/p&gt;




&lt;h2&gt;
  
  
  FAQ
&lt;/h2&gt;

&lt;h3&gt;
  
  
  What is the best MCP server for Indian stock market data?
&lt;/h3&gt;

&lt;p&gt;For market-wide research across all NSE and BSE stocks — screening, fundamentals, technicals, and FII/DII flows — &lt;strong&gt;Tapetide MCP&lt;/strong&gt; is the most complete Indian stock market data MCP, and it works without a brokerage account. For analyzing or trading your own holdings, use your broker's MCP (Zerodha Kite, Groww, or Dhan).&lt;/p&gt;

&lt;h3&gt;
  
  
  Is there an NSE / BSE MCP that works with ChatGPT and Claude?
&lt;/h3&gt;

&lt;p&gt;Yes. Tapetide MCP is a remote NSE + BSE MCP you can add to Claude.ai, ChatGPT, Grok, and Gemini with a single URL (&lt;code&gt;https://mcp.tapetide.com/mcp&lt;/code&gt;), or run locally via &lt;code&gt;npx tapetide-mcp&lt;/code&gt; in Cursor, Windsurf, VS Code, Kiro, and other stdio clients.&lt;/p&gt;

&lt;h3&gt;
  
  
  Do I need a Zerodha, Groww, or Dhan account to use an Indian stock market MCP?
&lt;/h3&gt;

&lt;p&gt;Only for broker MCPs. Kite, Groww, and Dhan MCP connect to &lt;em&gt;your&lt;/em&gt; account and require one. A data-focused MCP like Tapetide needs no brokerage account — a free token is enough to query the whole market.&lt;/p&gt;

&lt;h3&gt;
  
  
  Can an Indian stock market MCP place trades?
&lt;/h3&gt;

&lt;p&gt;Broker MCPs can: Dhan supports full order placement, Groww supports orders (with DDPI), and Zerodha Kite is mostly read-only except GTT orders. Research-focused MCPs like Tapetide are read-only by design — they help you analyze and decide, not execute.&lt;/p&gt;

&lt;h3&gt;
  
  
  Are these MCP servers free?
&lt;/h3&gt;

&lt;p&gt;Zerodha Kite MCP is free. Tapetide MCP offers a free tier (token-based). Groww MCP requires a Claude Pro subscription (or Cursor/Windsurf) and DDPI for sell orders. Dhan MCP is tied to your Dhan account.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Tapetide is India's AI-first stock research platform, serving real-time prices, financials, institutional flows, analyst ratings, and technicals for ~8,200 NSE and BSE stocks. Learn more at &lt;a href="https://tapetide.com/mcp" rel="noopener noreferrer"&gt;tapetide.com/mcp&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>mcp</category>
      <category>ai</category>
      <category>stocks</category>
      <category>india</category>
    </item>
    <item>
      <title>I built an open-source MCP server that gives any AI assistant live NSE + BSE stock data</title>
      <dc:creator>Govind Sisara</dc:creator>
      <pubDate>Sat, 20 Jun 2026 02:54:53 +0000</pubDate>
      <link>https://dev.to/govind_sisara/i-built-an-open-source-mcp-server-that-gives-any-ai-assistant-live-nse-bse-stock-data-5f8h</link>
      <guid>https://dev.to/govind_sisara/i-built-an-open-source-mcp-server-that-gives-any-ai-assistant-live-nse-bse-stock-data-5f8h</guid>
      <description>&lt;h2&gt;
  
  
  The itch
&lt;/h2&gt;

&lt;p&gt;Ask ChatGPT or Claude "what was Reliance's operating margin last quarter?" and you get one of two answers: a polite "I don't have live data," or a confident, wrong number. The reasoning is great. The data access is nonexistent — these models are blind to anything past their training cut-off, and they have zero native window into NSE/BSE.&lt;/p&gt;

&lt;p&gt;So I built an MCP server to fix it, and open-sourced it. This is the build story + a quick-start if you want to plug it into your own setup.&lt;/p&gt;

&lt;h2&gt;
  
  
  30-second MCP refresher
&lt;/h2&gt;

&lt;p&gt;The &lt;strong&gt;Model Context Protocol&lt;/strong&gt; is an open standard that lets AI assistants call external tools through a consistent interface. Instead of guessing, the model issues a structured request — &lt;code&gt;get_stock_quote&lt;/code&gt; for &lt;code&gt;RELIANCE&lt;/code&gt; — gets real data back, and reasons over it. One protocol, and Claude, ChatGPT, Cursor, Gemini, and Grok can all hit the same data source.&lt;/p&gt;

&lt;p&gt;It's basically USB-C for AI tools.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I exposed: 34 tools
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;search_stocks            screen_stocks (326 fundamental filters)
screen_stocks_technical  get_company_profile   get_financials
get_stock_quote          get_price_history     get_shareholding
get_fii_dii_detail       market_ipo            market_fno_ban
get_user_portfolio       add_to_watchlist      ...and 21 more
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Coverage: all ~8,200 NSE + BSE stocks, fundamentals, technicals, institutional flows, market data, and portfolio tracking. (It's a research tool, not a broker — it doesn't place trades.)&lt;/p&gt;

&lt;h2&gt;
  
  
  Architecture decisions
&lt;/h2&gt;

&lt;p&gt;The big one: &lt;strong&gt;remote-first, on the edge.&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;┌─────────────────┐   JSON-RPC / HTTPS   ┌──────────────────────┐
│  AI Assistant   │ ───────────────────► │  Cloudflare Worker   │
│ (Claude, etc.)  │ ◄─────────────────── │  (stateless MCP)     │
└─────────────────┘                       └──────────────────────┘
                                              │
                                   D1 (users, tokens, usage)
                                   KV (rate limits, auth codes)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Most MCP servers ship as local stdio processes you have to install and run. That's a friction wall for non-developers. I wanted someone to paste one URL into claude.ai and be done — so the server runs as a Cloudflare Worker. Globally distributed, no servers to babysit.&lt;/p&gt;

&lt;h3&gt;
  
  
  Stateless transport
&lt;/h3&gt;

&lt;p&gt;The MCP SDK's &lt;code&gt;WebStandardStreamableHTTPServerTransport&lt;/code&gt; in stateless mode maps perfectly onto Workers — any request hits any edge location and is served identically:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight typescript"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;server&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;createServer&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;env&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;ph&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;userId&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;transport&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;WebStandardStreamableHTTPServerTransport&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
  &lt;span class="na"&gt;sessionIdGenerator&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;undefined&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;  &lt;span class="c1"&gt;// stateless&lt;/span&gt;
  &lt;span class="na"&gt;enableJsonResponse&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="p"&gt;});&lt;/span&gt;
&lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;server&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;connect&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;transport&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Auth was the hard part
&lt;/h3&gt;

&lt;p&gt;MCP clients vary wildly. Chat apps (Claude.ai, ChatGPT) expect a full OAuth flow with &lt;strong&gt;Dynamic Client Registration (RFC 7591)&lt;/strong&gt; plus discovery endpoints (RFC 8414, RFC 9728). Code editors often just want a bearer token.&lt;/p&gt;

&lt;p&gt;The trick that makes the OAuth handshake "just work": return a &lt;code&gt;401&lt;/code&gt; with a &lt;code&gt;WWW-Authenticate&lt;/code&gt; header on the first &lt;code&gt;initialize&lt;/code&gt;. That's the signal that kicks off the client's built-in OAuth flow.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight typescript"&gt;&lt;code&gt;&lt;span class="k"&gt;if &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;!&lt;/span&gt;&lt;span class="nx"&gt;authHeader&lt;/span&gt;&lt;span class="p"&gt;?.&lt;/span&gt;&lt;span class="nf"&gt;startsWith&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Bearer &lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class="o"&gt;!&lt;/span&gt;&lt;span class="nx"&gt;isPublicMethod&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nx"&gt;Response&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;json&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;error&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;authentication_required&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; &lt;span class="p"&gt;},&lt;/span&gt;
    &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;status&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;401&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;headers&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;WWW-Authenticate&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
          &lt;span class="s2"&gt;`Bearer resource_metadata="&lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;metadataUrl&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;", scope="openid email"`&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="p"&gt;}},&lt;/span&gt;
  &lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;So the server accepts &lt;strong&gt;both&lt;/strong&gt; short-lived HMAC access tokens and long-lived personal tokens, distinguished by prefix (&lt;code&gt;tpt_rt_…&lt;/code&gt;). One auth surface, two credential types. &lt;code&gt;tools/list&lt;/code&gt; and &lt;code&gt;ping&lt;/code&gt; stay public so registries can discover the catalog without auth.&lt;/p&gt;

&lt;h3&gt;
  
  
  Rate limiting that doesn't punish honest users
&lt;/h3&gt;

&lt;p&gt;Two independent layers:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Per-minute burst smoother&lt;/strong&gt; (KV, &lt;em&gt;fails open&lt;/em&gt;) — stops one token from dumping its whole daily allowance in seconds. If KV hiccups, allow the request; the daily cap is the real ceiling.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Daily/monthly quota&lt;/strong&gt; (D1, &lt;em&gt;fails closed&lt;/em&gt;) — an atomic &lt;code&gt;UPSERT&lt;/code&gt; reserves a unit &lt;em&gt;before&lt;/em&gt; the tool runs. Limiter unreachable → deny, never hand out unmetered access.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The part I'm happiest with: &lt;strong&gt;failed calls get refunded.&lt;/strong&gt; The MCP SDK throws &lt;code&gt;InvalidParams&lt;/code&gt; whenever a tool argument fails schema validation — and LLMs hallucinate bad arguments constantly. Charging a user's quota because their model fumbled an argument would be infuriating.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight typescript"&gt;&lt;code&gt;&lt;span class="k"&gt;if &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;quotaConsumed&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class="nx"&gt;userId&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nx"&gt;quotaConsumed&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;            &lt;span class="c1"&gt;// guard against double-refund&lt;/span&gt;
  &lt;span class="k"&gt;if &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;hasError&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nx"&gt;ctx&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;waitUntil&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nf"&gt;refundRateLimitV2&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;env&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;DB&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;userId&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;date&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;month&lt;/span&gt;&lt;span class="p"&gt;));&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;else&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nx"&gt;ctx&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;waitUntil&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nf"&gt;trackToolCall&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;env&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;DB&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;userId&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;src&lt;/span&gt;&lt;span class="p"&gt;));&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  The npm package is just a bridge
&lt;/h3&gt;

&lt;p&gt;For stdio-only clients there's a tiny npm package — ~300 lines, zero runtime deps. No business logic: it reads JSON-RPC from stdin, forwards to the Worker over HTTPS, writes responses to stdout. It auto-detects message framing (Content-Length vs newline-delimited JSON, which differ across clients) and refreshes the access token before expiry. All tool logic lives on the server, so new tools ship instantly without anyone running &lt;code&gt;npm update&lt;/code&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Quick start
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;No install&lt;/strong&gt; (claude.ai, ChatGPT, Gemini, Grok) — paste the URL, sign in with Google:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;https://mcp.tapetide.com/mcp
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Local via npm&lt;/strong&gt; (Cursor, Windsurf, Claude Desktop):&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"mcpServers"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"tapetide"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"command"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"npx"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"args"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;"-y"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"tapetide-mcp"&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"env"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"TAPETIDE_TOKEN"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"your_token_here"&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then just ask:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;"Find mid-caps where FII holding rose last quarter, ROE above 15%, and RSI under 40."&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Lessons if you're building your own MCP server
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Go remote if your audience isn't all devs.&lt;/strong&gt; A pasteable URL beats a &lt;code&gt;npx&lt;/code&gt; command for reach.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Stateless + edge is a natural fit&lt;/strong&gt; for MCP's request/response shape.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Budget real time for OAuth + DCR.&lt;/strong&gt; It's the least glamorous, most fragile part — implement the &lt;code&gt;.well-known&lt;/code&gt; discovery endpoints precisely.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Support more than one credential type.&lt;/strong&gt; Chat apps and editors want different things.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Refund quota on errors.&lt;/strong&gt; LLMs make bad tool calls all the time; don't bill users for it.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Free and open source under MIT. Source, all 34 tools, and setup guides:&lt;/p&gt;

&lt;p&gt;🔗 &lt;strong&gt;&lt;a href="https://github.com/Tapetide-hq/nse-bse-indian-stock-market-data-mcp" rel="noopener noreferrer"&gt;https://github.com/Tapetide-hq/nse-bse-indian-stock-market-data-mcp&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;If you build something on top of it or have ideas for tools you'd want, I'd love to hear it in the comments.&lt;/p&gt;

</description>
      <category>mcp</category>
      <category>ai</category>
      <category>typescript</category>
      <category>opensource</category>
    </item>
  </channel>
</rss>
