Server data from the Official MCP Registry
Open-source MCP server for Zerodha Kite Connect. Portfolio, market data, backtesting, alerts.
Open-source MCP server for Zerodha Kite Connect. Portfolio, market data, backtesting, alerts.
Remote endpoints: streamable-http: https://kite-mcp-server.fly.dev/mcp
Valid MCP server (1 strong, 1 medium validity signals). 2 code issues detected. No known CVEs in dependencies. Imported from the Official MCP Registry.
Endpoint verified · Requires authentication · 3 issues found
Security scores are indicators to help you make informed decisions, not guarantees. Always review permissions before connecting any MCP server.
This plugin requests these system permissions. Most are normal for its category.
Remote Plugin
No local installation needed. Your AI client connects to the remote endpoint directly.
Add this to your MCP configuration to connect:
{
"mcpServers": {
"io-github-sundeepg98-kite-mcp-server": {
"url": "https://kite-mcp-server.fly.dev/mcp"
}
}
}From the project's GitHub README.
Self-hosted MCP server that turns Claude / ChatGPT into a power-user trading copilot for your Zerodha Kite account.
A Go server that speaks the Model Context Protocol and bridges any MCP-compatible AI client to Zerodha's Kite Connect API. Users bring their own Kite developer app (per-user OAuth 2.1 with PKCE) — credentials never leak between accounts. Ships ~80 tools spanning portfolio analysis, market data, options Greeks, backtesting, alerts, paper trading, and order placement, plus MCP Apps widgets that render inline inside chat. Works inside Claude Desktop, Claude Code, claude.ai, ChatGPT Connectors, Cursor, VS Code Copilot, Windsurf — anything MCP-compliant. Forked from and complementary to Zerodha's official read-only MCP (22 tools, GTT only); this server adds order placement, Telegram alerts, riskguard safety rails, and analytics.
go test ./... -count=1OAUTH_JWT_SECRETgo build, go vet, go test -race (see .github/workflows/ci.yml)Point your MCP client at:
https://kite-mcp-server.fly.dev/mcp
Order-placement tools are gated off on the hosted instance pursuant to NSE/INVG/69255 Annexure I Para 2.8. Read-only tools (portfolio, market data, backtesting, analytics) work. You still bring your own Kite developer app (per-user OAuth).
git clone https://github.com/Sundeepg98/kite-mcp-server && cd kite-mcp-server
cp .env.example .env # edit: set OAUTH_JWT_SECRET (required)
docker compose up -d # builds Dockerfile.selfhost and starts it
curl http://localhost:8080/healthz # should return "ok"
Point your client at http://localhost:8080/mcp (use --allow-http if your client requires it). Running locally against your own Kite account is the personal-use safe-harbor path — you remain the Zerodha Client; the software just helps you place orders.
Go users can skip Docker: go build -o kite-mcp-server && ./kite-mcp-server.
Add this to your client config (~/.claude.json, claude_desktop_config.json, .vscode/mcp.json, etc.):
{
"mcpServers": {
"kite": {
"command": "npx",
"args": ["mcp-remote", "https://kite-mcp-server.fly.dev/mcp"]
}
}
}
Then say: "Log me in to Kite" — complete the OAuth flow in your browser — then ask anything: "Show my portfolio", "Backtest SMA crossover on INFY", "Enable paper trading mode".
New to this? Start with paper trading: "Enable paper trading mode" — virtual Rs 1 crore portfolio, no real money at risk.
/buy, /sell, /quick, /setalert with inline keyboard confirmation; morning briefing (9 AM IST) and daily P&L (3:35 PM IST)Full tool taxonomy with counts per category in ARCHITECTURE.md.
Clean / hexagonal architecture:
AI Client <-> MCP Protocol <-> Tool Handler <-> Use Case <-> CQRS Command/Query <-> Broker Port <-> Kite Adapter <-> Kite Connect API <-> NSE/BSE
Go 1.25 + mcp-go v0.46.0. SQLite for persistence (credentials, alerts, sessions, audit trail — all AES-256-GCM encrypted), with Litestream continuous replication to Cloudflare R2. OAuth 2.1 + PKCE, each user brings their own Kite developer app. Middleware chain: Timeout -> Audit -> Hooks -> RiskGuard -> Rate Limiter -> Billing -> Paper Trading -> Dashboard URL. Deployed on Fly.io (Mumbai region) with static egress IP for SEBI-mandated whitelisting. See ARCHITECTURE.md.
Not a SEBI-registered intermediary. This is infrastructure software, not an advisory or brokerage service.
- Per-user BYO Kite developer app — you remain the Zerodha Client of record. The server holds no pooled user funds and executes no trades on its own behalf.
- The hosted deployment at
kite-mcp-server.fly.devis read-only; order-placement tools are gated off pursuant to NSE/INVG/69255 Annexure I Para 2.8. Order placement requires running the server locally against your own account.- Running the server locally against your personal Kite account is the personal-use safe-harbor path — analogous to running your own algo script. See OpenAlgo's framing of the compliance landscape for Indian algo vendors.
- Static egress IP (
209.71.68.157, Mumbai) is published so users can whitelist it in their Kite developer console per the SEBI April 2026 mandate.- TERMS.md and PRIVACY.md are DRAFT and under independent legal review. Do not rely on them as final legal agreements.
- Trading involves risk. This software is not financial advice. Not affiliated with Zerodha.
OAUTH_JWT_SECRET is the only required variable for multi-user HTTP deployments. Everything else is optional and activates specific features when set. Full table:
| Variable | Required | Default | Purpose |
|---|---|---|---|
OAUTH_JWT_SECRET | Yes (HTTP) | — | Signs JWT tokens for OAuth sessions; also seeds AES-256-GCM encryption key |
KITE_API_KEY | No | — | Global Kite app API key (per-user OAuth used if unset) |
KITE_API_SECRET | No | — | Global Kite app API secret |
KITE_ACCESS_TOKEN | No | — | Pre-authenticated Kite token (bypasses browser login, local dev only) |
ENABLE_TRADING | No | false | Enables order-placement tools (gated off on hosted deployment) |
EXTERNAL_URL | No | http://localhost:8080 | Public URL for OAuth callbacks |
APP_MODE | No | http | http, sse, or stdio |
APP_PORT | No | 8080 | HTTP listen port |
ALERT_DB_PATH | No | alerts.db | SQLite database path |
TELEGRAM_BOT_TOKEN | No | — | Telegram bot for alerts and daily briefings |
ADMIN_EMAILS | No | — | Comma-separated admin email list |
GOOGLE_CLIENT_ID / _SECRET | No | — | Google SSO for dashboard |
STRIPE_* | No | — | Billing tier enforcement |
LITESTREAM_* | No | — | R2/S3 SQLite replication |
EXCLUDED_TOOLS | No | — | Comma-separated tool names to disable |
LOG_LEVEL | No | info | debug, info, warn, error |
Any MCP-compliant client works with the same mcp-remote bridge above. Client-specific file locations:
~/.claude.json (mcpServers key)%APPDATA%\Claude\claude_desktop_config.json (Windows) or ~/.config/Claude/claude_desktop_config.json (macOS/Linux).vscode/mcp.json or equivalentOnce logged in via MCP OAuth, the dashboard cookie is set automatically (no second login).
| Page | Path | Description |
|---|---|---|
| Portfolio | /dashboard | Holdings, positions, P&L chart, order attribution |
| Activity | /dashboard/activity | AI tool-call audit trail with filters and CSV/JSON export |
| Orders | /dashboard/orders | Order history with AI attribution |
| Alerts | /dashboard/alerts | Active price alerts with enriched market data |
| Safety | /dashboard/safety | RiskGuard status, freeze controls, limit configuration |
| Paper Trading | /dashboard/paper | Paper portfolio, simulated orders, positions |
| Admin Ops | /admin/ops | All users, sessions, logs, metrics (admin only) |
| Feature | This server | Official Kite MCP | Streak |
|---|---|---|---|
| Tools | ~80 | 22 | N/A |
| Order placement | Yes (local) | GTT only | Yes |
| Paper trading | Yes | No | No |
| Safety checks | 9 | 0 | 0 |
| Backtesting | 4 strategies | No | Yes |
| Options Greeks | Yes | No | No |
| Telegram alerts | Yes | No | No |
| Self-hostable | Yes | No | N/A |
| Cost | Kite Connect app (Rs 500/mo) | Free | Free + paid |
The official server is the right choice for read-only, zero-setup use. This server is for traders who want order placement, safety rails, and analytics.
npx (Node.js 18+) for mcp-remote — or Go 1.25+ to self-host from sourceListed on the official MCP Registry as io.github.sundeepg98/kite-mcp-server. Auto-indexed by Smithery and Glama. See server.json.
Issues / PRs — github.com/Sundeepg98/kite-mcp-server/issues. See CONTRIBUTING.md.
Built on — zerodha/kite-mcp-server (MIT). Huge thanks to Kailash Nadh and the Zerodha team for open-sourcing the foundation.
Development —
nix develop # or: install Go 1.25+
just build # compile
just test # run the full test suite
just lint # format + vet + golangci-lint
MIT. Copyright notice preserved for original Zerodha Tech contribution.
Trademark: kite-mcp-server is not affiliated with, endorsed by, or sponsored by Zerodha Broking Ltd. "Kite" and "Kite Connect" are trademarks of Zerodha Broking Ltd. This project is an independent open-source implementation of the Model Context Protocol server for the Kite Connect developer API.
Not investment advice: This software is a developer tool. Nothing in this repository, its documentation, or any output generated by the server constitutes investment, financial, legal, or tax advice. Trading decisions are the sole responsibility of the user operating their own Kite Connect developer application.
Personal-use scope: This server is designed for personal self-use by retail investors operating their own Kite Connect developer applications, consistent with SEBI's February 4, 2025 retail algorithmic trading framework §I(c) "family" carve-out (self, spouse, dependent children, dependent parents) and the <10 orders-per-second threshold. Multi-user hosting requires broker empanelment per SEBI §III(a) and NSE/INVG/67858 and is NOT supported by this repository.
Applicable regulatory regimes (India):
What this server enforces out of the box:
| Control | Default | Where enforced |
|---|---|---|
| Per-calendar-second order cap (9/sec) | Enforced | kc/riskguard/per_second.go (defensive; SEBI threshold = 10) |
| Per-minute order cap (10/min) | Enforced | kc/riskguard/guard.go |
| Daily order count cap | 20/day | kc/riskguard/guard.go |
| Per-order value cap | Rs 50,000 | kc/riskguard/guard.go |
| Daily cumulative value cap | Rs 2,00,000 | kc/riskguard/guard.go |
| Human confirmation on every order | Required (MCP elicitation) | mcp/elicit.go |
| Audit hash-chain | Tamper-evident | kc/audit/store.go |
| Per-user OAuth + encrypted credentials | AES-256-GCM via HKDF | kc/crypto/ |
| Static egress IP whitelist | 209.71.68.157 (Fly.io bom) | Operator's Kite developer console |
| ENABLE_TRADING flag | false on hosted | Path 2 compliance |
SEBI framework posture:
DPDP posture:
AUDIT_RETENTION_DAYS)<grievance officer email> or use dashboard toolIf you are self-hosting: you are the data fiduciary for your deployment. This section describes the code's capabilities; legal responsibilities belong to the operator.
Where this code cannot help:
Reference documents in this repo:
docs/PRIVACY.md — DPDP-aligned privacy notice (to be customized before hosting)docs/TERMS.md — SEBI-safe terms of servicedocs/incident-response.md — breach playbookdocs/algo2go-tm-search.md — trademark search procedure (if renaming)Be the first to review this server!
by Modelcontextprotocol · Developer Tools
Web content fetching and conversion for efficient LLM usage
by Modelcontextprotocol · Developer Tools
Read, search, and manipulate Git repositories programmatically
by Toleno · Developer Tools
Toleno Network MCP Server — Manage your Toleno mining account with Claude AI using natural language.
by mcp-marketplace · Developer Tools
Create, build, and publish Python MCP servers to PyPI — conversationally.