loading…
Search for a command to run...
loading…
A MCP server exposing Upstox market, technical, and account data as MCP tools for AI agents.
A MCP server exposing Upstox market, technical, and account data as MCP tools for AI agents.
GitHub Star License: MIT Python Support MCP Version
The Official-style Upstox MCP Server provides a high-performance Model Context Protocol (MCP) integration for the Upstox Trading API. It enables AI agents like Claude Desktop, Cursor IDE, and custom LLM applications to securely access real-time Indian stock market data (NSE, BSE, MCX), perform advanced technical analysis (RSI, MACD, Bollinger Bands), and manage portfolio information in a strictly read-only mode.
Optimized for algorithmic trading, market analysis, and automated research on Nifty 50, Bank Nifty, and thousands of Indian equities.
📖 Featured on Modern AI Day: The USB Port for AI: Connecting Claude to Real-Time Market Data
🌐 Live Demo Instance: https://mcp-server-upstox.onrender.com/mcp
Connect Claude Desktop to your remote instance in seconds using Bring Your Own Key (BYOK) support:
{
"mcpServers": {
"Upstox-Remote": {
"command": "npx",
"args": [
"-y",
"mcp-remote",
"https://mcp-server-upstox.onrender.com/mcp",
"--header", "X-Upstox-API-Key:YOUR_API_KEY",
"--header", "X-Upstox-API-Secret:YOUR_API_SECRET",
"--header", "X-Upstox-Access-Token:YOUR_ACCESS_TOKEN"
]
}
}
}
market_get_live_quotemarket_search_instrumentsmarket_get_historical_data (Custom ranges)market_get_intraday_candlesanalysis_calculate_fibonacci_levelsanalysis_analyze_candlestick_patternsanalysis_get_technical_analysis (Super Tool)account_get_user_marginaccount_get_order_bookaccount_get_trade_historyThis MCP server is STRICTLY READ-ONLY
❌ No order placement
❌ No order modification
❌ No fund transfers
❌ No trading actionsTrading endpoints are intentionally excluded for your safety and security.
git clone https://github.com/ravikant1918/mcp-server-upstox.git
cd mcp-server-upstox
python -m venv venv
# On macOS/Linux
source venv/bin/activate
# On Windows
venv\Scripts\activate
pip install -e .
upstox-mcp --version
Login to Upstox Developer Console
Create an App
http://localhost:8000/callbackGet API Keys
API Key and API SecretGenerate Access Token
Create a .env file in the project root:
# Required
UPSTOX_ACCESS_TOKEN=your_access_token_here
# Optional (for token auto-refresh)
UPSTOX_API_KEY=your_api_key
UPSTOX_API_SECRET=your_api_secret
Security Best Practices:
.env file to version control.env to .gitignoreDefault mode for local AI agent usage:
upstox-mcp
# or
upstox-mcp --transport stdio
Recommended for web-based AI agents:
upstox-mcp --transport http
# Server will start on http://localhost:8000
Custom port:
upstox-mcp --transport http --port 8080
# Build and run
docker-compose up -d
# View logs
docker-compose logs -f
# Stop
docker-compose down
# Build image
docker build -t upstox-mcp .
# Run container
docker run -d \
-p 8000:8000 \
--env-file .env \
--name upstox-mcp \
upstox-mcp
# View logs
docker logs -f upstox-mcp
# Stop container
docker stop upstox-mcp
Server will be available at: http://localhost:8000/mcp
Config Location:
~/Library/Application Support/Claude/claude_desktop_config.json%APPDATA%\Claude\claude_desktop_config.json~/.config/Claude/claude_desktop_config.jsonConfiguration:
{
"mcpServers": {
"Upstox": {
"command": "/absolute/path/to/venv/bin/upstox-mcp",
"args": ["--transport", "stdio"],
"env": {
"UPSTOX_ACCESS_TOKEN": "YOUR_ACCESS_TOKEN"
}
}
}
}
Finding the absolute path:
# On macOS/Linux
which upstox-mcp
# On Windows (PowerShell)
(Get-Command upstox-mcp).Path
http://localhost:8000/mcpFor running the server remotely or in a multi-user environment (e.g., Render), you can pass your credentials via headers. This is known as Bring Your Own Key (BYOK).
{
"mcpServers": {
"Upstox-Remote": {
"command": "npx",
"args": [
"-y",
"mcp-remote",
"https://mcp-server-upstox.onrender.com/mcp",
"--header", "X-Upstox-API-Key:YOUR_API_KEY",
"--header", "X-Upstox-API-Secret:YOUR_API_SECRET",
"--header", "X-Upstox-Access-Token:YOUR_ACCESS_TOKEN"
]
}
}
}
[!TIP] This allows multiple users to use the same server instance securely without sharing credentials on the server side.
"What's the current price of RELIANCE?"
"Show me OHLC data for INFY"
"Get live quote for TATAMOTORS on NSE"
"What's the volume on SBIN today?"
"Run technical analysis on BHARTIARTL"
"Show RSI and MACD for HDFCBANK"
"Is TCS in a bullish or bearish trend?"
"Find support and resistance levels for WIPRO"
"Analyze ICICIBANK with EMA-20 and EMA-50"
"Show me 5-minute candles for RELIANCE"
"Get 1-minute chart data for INFY"
"Display 15-minute intraday data for SBIN"
"Show my Upstox account summary"
"What's my available margin?"
"List all my holdings"
"Show my current positions and P&L"
"What's my total portfolio value?"
"How much profit/loss do I have in TRIDENT?"
"Analyze all my holdings technically and rank them by strength"
"Compare HDFC Bank vs ICICI Bank - which is better?"
"Find oversold stocks in my watchlist (RSI < 30)"
"Which of my holdings are above their 50-day EMA?"
"Show me stocks breaking resistance levels today"
| Category | Tool Name | Description |
|---|---|---|
| Market | market_get_live_quote |
Last Traded Price, OHLC, Volume |
| Market | market_search_instruments |
Search for trading symbols |
| Market | market_get_instrument_details |
Detailed instrument metadata |
| Market | market_get_historical_data |
Custom historical candle data |
| Market | market_get_intraday_candles |
Real-time intraday charts |
| Analysis | analysis_calculate_rsi |
Momentum analysis (RSI) |
| Analysis | analysis_calculate_macd |
Trend & momentum (MACD) |
| Analysis | analysis_calculate_adx |
Trend strength (ADX) |
| Analysis | analysis_calculate_moving_averages |
Trend analysis (SMA/EMA) |
| Analysis | analysis_calculate_bollinger_bands |
Volatility study |
| Analysis | analysis_calculate_support_resistance |
Pivot-based levels |
| Analysis | analysis_calculate_volatility_metrics |
Risk assessment (ATR) |
| Analysis | analysis_calculate_stochastic |
Momentum oscillator |
| Analysis | analysis_calculate_williams_r |
%R Momentum |
| Analysis | analysis_calculate_fibonacci_levels |
Retracement levels |
| Analysis | analysis_analyze_candlestick_patterns |
Pattern detection |
| Analysis | analysis_get_technical_analysis |
Holistic multi-indicator report |
| Account | account_get_summary |
Portfolio snapshot |
| Account | account_get_user_margin |
Available funds |
| Account | account_get_holdings_list |
Equity holdings |
| Account | account_get_positions_list |
Active positions |
| Account | account_get_order_book |
Daily orders |
| Account | account_get_trade_history |
Daily executions |
[!NOTE] All tools return a standardized JSON response:
{ "success": true, "data": ..., "error": null, "metadata": ... }.
get_live_quote{
"symbol": "RELIANCE", # Stock symbol
"exchange": "NSE_EQ" # NSE_EQ or BSE_EQ (default: NSE_EQ)
}
get_intraday_candles{
"symbol": "INFY",
"interval": "5minute", # 1minute, 3minute, 5minute, 10minute, 15minute, 30minute
"exchange": "NSE_EQ"
}
get_technical_analysis{
"symbol": "SBIN",
"interval": "1day", # 1minute, 5minute, 15minute, 30minute, 1day, 1week
"indicators": [ # Array of indicators
"RSI", # Relative Strength Index
"MACD", # Moving Average Convergence Divergence
"EMA_20", # Exponential Moving Average (20 period)
"EMA_50",
"SMA_200", # Simple Moving Average (200 period)
"BBANDS", # Bollinger Bands
"VWAP", # Volume Weighted Average Price
"ATR" # Average True Range
],
"exchange": "NSE_EQ"
}
Supported Indicators:
Returns:
┌─────────────────┐
│ AI Agent │ (Claude Desktop, Cursor, etc.)
│ (Claude/GPT) │
└────────┬────────┘
│
│ MCP Protocol
│
┌────────▼────────┐
│ FastMCP │ (MCP Server Framework)
│ Server │
└────────┬────────┘
│
│ Python Functions
│
┌────────▼────────┐
│ Upstox API │ (Read-Only Access)
│ Client │
└────────┬────────┘
│
│ HTTPS
│
┌────────▼────────┐
│ Upstox │ (Live Market Data)
│ Backend │
└─────────────────┘
Problem: Access token expired (tokens are valid for 24 hours)
Solution:
# Generate new token from Upstox
# Update .env file with new token
# Restart the MCP server
Problem: Package not installed or not in PATH
Solution:
# Activate virtual environment
source venv/bin/activate # macOS/Linux
venv\Scripts\activate # Windows
# Reinstall package
pip install -e .
Problem: Configuration file path or format issue
Solution:
Problem: Market closed or no recent trading activity
Solution:
Problem: Too many API calls in short time
Solution:
market_, analysis_, account_)Contributions are welcome! Please follow these steps:
git checkout -b feature/AmazingFeature)git commit -m 'Add some AmazingFeature')git push origin feature/AmazingFeature)# Clone your fork
git clone https://github.com/ravikant1918/mcp-server-upstox.git
# Install dev dependencies
pip install -e ".[dev]"
# Run tests
pytest
# Format code
black .
flake8 .
This project is licensed under the MIT License - see the LICENSE file for details.
IMPORTANT: This project is not affiliated with, endorsed by, or sponsored by Upstox.
Trading Disclaimer:
API Usage:
# 1. Clone and install
git clone https://github.com/ravikant1918/mcp-server-upstox.git
cd mcp-server-upstox
pip install -e .
# 2. Configure
echo "UPSTOX_ACCESS_TOKEN=your_token" > .env
# 3. Run
upstox-mcp
# 4. Use with Claude
# Add to Claude Desktop config, restart, and start chatting!
Made with ❤️ for Indian Traders
Happy Trading! 📈🚀
Добавь это в claude_desktop_config.json и перезапусти Claude Desktop.
{
"mcpServers": {
"upstox-mcp-server": {
"command": "npx",
"args": []
}
}
}