Mcp Server Upstox について
Mcp Server Upstoxは、インド株式の調査や分析向けに、Upstoxの市場・口座データをAIエージェントへ提供します。テクニカル指標や口座情報を扱い、すべて読み取り専用です。
主な機能
- 01リアルタイム価格と銘柄検索
- 02履歴および日中の市場データ
- 03テクニカル指標とローソク足パターン
- 04読み取り専用の口座・ポートフォリオ情報
活用シーン
- 01現在の価格や取引量の確認
- 02指標やサポート水準の分析
- 03保有銘柄、ポジション、利用可能証拠金の確認
MCP 対応
このMCPサーバーは、Upstoxの市場データ、テクニカル分析機能、読み取り専用の口座情報をツールとしてMCPクライアントに公開します。stdioとHTTPに対応し、リモート利用ではBYOKを使用できます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Upstox MCP サーバー:インド株式市場向けグローバル Model Context Protocol 📈
公式スタイルの Upstox MCP サーバーは、Upstox Trading API向けに高性能な**Model Context Protocol(MCP)統合を提供します。Claude Desktop、Cursor IDEなどの AI エージェントや、独自の LLM アプリケーションから、リアルタイムのインド株式市場データ(NSE、BSE、MCX)への安全なアクセス、高度なテクニカル分析(RSI、MACD、ボリンジャーバンド)**の実行、ポートフォリオ情報の管理を、厳格な読み取り専用モードで行えます。
Nifty 50、Bank Nifty、数千銘柄のインド株を対象とした、アルゴリズム取引、市場分析、自動リサーチに最適化されています。
📖 Modern AI Day で紹介されました: AI の USB ポート:Claude をリアルタイムの市場データに接続
🌐 ライブデモインスタンス: https://mcp-server-upstox.onrender.com/mcp
🛠️ 技術スタック
- フレームワーク: FastMCP(MCP Python SDK)
- API エンジン: FastAPI と Uvicorn
- データサイエンス: Pandas、NumPy
- テクニカル分析: Pandas-TA
- クライアント統合: Httpx、Upstox Python SDK
- デプロイ: Docker、Render
⚡ クイックスタート(リモート BYOK)
**Bring Your Own Key(BYOK)**に対応しているため、Claude Desktop をリモートインスタンスに数秒で接続できます。
{
"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_quote - 銘柄検索 -
market_search_instruments - 過去データ -
market_get_historical_data(カスタム期間) - 日中足 -
market_get_intraday_candles
📈 テクニカル分析
- 詳細な指標 - RSI、MACD、ADX、ボリンジャーバンドなどの個別ツール
- フィボナッチ水準 -
analysis_calculate_fibonacci_levels - ローソク足パターン -
analysis_analyze_candlestick_patterns - スマートコンテキスト -
analysis_get_technical_analysis(スーパー ツール)
👤 アカウント管理(読み取り専用)
- 証拠金の詳細 -
account_get_user_margin - 注文一覧 -
account_get_order_book - 取引履歴 -
account_get_trade_history - ポートフォリオ - 保有銘柄とポジションの一覧
🤖 MCP ネイティブ
- AI を最優先した設計 - AI エージェント専用に構築
- ツールベースのアーキテクチャ - 自然言語を API 呼び出しに変換
- マルチユーザー対応 - 安全な「Bring Your Own Key(BYOK)」アーキテクチャ
- 会話型インターフェース - 複雑な API の知識は不要
⚠️ 安全に関する注意
この MCP サーバーは厳格な読み取り専用です
❌ 注文の発注なし
❌ 注文の変更なし
❌ 資金の振替なし
❌ 取引操作なしお客様の安全とセキュリティを守るため、取引エンドポイントは意図的に除外されています。
📦 インストール
前提条件
- Python 3.10 以降
- Upstox 取引アカウント
- Upstox API 認証情報
1️⃣ リポジトリをクローン
git clone https://github.com/ravikant1918/mcp-server-upstox.git
cd mcp-server-upstox
2️⃣ 仮想環境を作成(推奨)
python -m venv venv
# On macOS/Linux
source venv/bin/activate
# On Windows
venv\Scripts\activate
3️⃣ 依存関係のインストール
pip install -e .
4️⃣ インストールの確認
upstox-mcp --version
🔐 設定
Upstox API 認証情報の取得
-
Upstox Developer Console にログイン
- https://api.upstox.com/ にアクセス
- Upstox アカウントでログイン
-
アプリを作成
- 「My Apps」に移動
- 「Create App」をクリック
- 詳細を入力:
- アプリ名:「MCP Server」
- リダイレクト URL:
http://localhost:8000/callback - 読み取り専用の権限を選択
-
API キーを取得
API KeyとAPI Secretを控えます
-
アクセストークンを生成
- Upstox OAuth フローに従います
- または、Upstox のトークン生成ツールを使用します
- トークンの有効期間は24時間です(毎日更新が必要です)
環境設定
プロジェクトのルートに .env ファイルを作成します:
# 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
セキュリティのベストプラクティス:
.envファイルをバージョン管理にコミットしないでください.envを.gitignoreに追加します- トークンを定期的にローテーションします
- 読み取り専用の API スコープのみを使用します
▶️ サーバーの起動
オプション A — 標準入出力(Claude Desktop 用)
ローカルの AI エージェントで使用する場合のデフォルトモードです:
upstox-mcp
# or
upstox-mcp --transport stdio
オプション B — HTTP モード(Cursor またはリモートアクセス用)
ウェブベースの AI エージェントにおすすめです:
upstox-mcp --transport http
# Server will start on http://localhost:8000
カスタムポート:
upstox-mcp --transport http --port 8080
オプション C — Docker でのデプロイ
Docker Compose を使用(推奨)
# Build and run
docker-compose up -d
# View logs
docker-compose logs -f
# Stop
docker-compose down
Docker CLI を使用
# 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
サーバーは http://localhost:8000/mcp で利用できます。
🔌 MCP クライアントの設定
Claude Desktop
設定ファイルの場所:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json - Linux:
~/.config/Claude/claude_desktop_config.json
設定:
{
"mcpServers": {
"Upstox": {
"command": "/absolute/path/to/venv/bin/upstox-mcp",
"args": ["--transport", "stdio"],
"env": {
"UPSTOX_ACCESS_TOKEN": "YOUR_ACCESS_TOKEN"
}
}
}
}
絶対パスの確認方法:
# On macOS/Linux
which upstox-mcp
# On Windows (PowerShell)
(Get-Command upstox-mcp).Path
Cursor IDE
- Cursor の設定を開きます
- Features → MCP に移動します
- 新しいサーバーを追加します:
- Name:Upstox
- Type:HTTP
- URL:
http://localhost:8000/mcp
リモート MCP(mcp-remote 経由)— BYOK 対応
サーバーをリモートで実行する場合や、マルチユーザー環境(例:Render)で実行する場合は、ヘッダー経由で認証情報を渡すことができます。これは 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"
]
}
}
}
ヒント
これにより、サーバー側で認証情報を共有することなく、複数のユーザーが同じサーバーインスタンスを安全に使用できます。
🧠 プロンプトの例(AI エージェント向け)
市場データに関する問い合わせ
"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"
🧰 利用可能な MCP ツール
| カテゴリ | ツール名 | 説明 |
|---|---|---|
| 市場 | market_get_live_quote | 最終取引価格、OHLC、出来高 |
| 市場 | market_search_instruments | 取引銘柄を検索 |
| 市場 | market_get_instrument_details | 銘柄の詳細メタデータ |
| 市場 | market_get_historical_data | カスタム期間の過去ローソク足データ |
| 市場 | market_get_intraday_candles | リアルタイムの日中チャート |
| 分析 | analysis_calculate_rsi | モメンタム分析(RSI) |
| 分析 | analysis_calculate_macd | トレンドとモメンタム(MACD) |
| 分析 | analysis_calculate_adx | トレンドの強さ(ADX) |
| 分析 | analysis_calculate_moving_averages | トレンド分析(SMA/EMA) |
| 分析 | analysis_calculate_bollinger_bands | ボラティリティ分析 |
| 分析 | analysis_calculate_support_resistance | ピボットベースの水準 |
| 分析 | analysis_calculate_volatility_metrics | リスク評価(ATR) |
| 分析 | analysis_calculate_stochastic | モメンタムオシレーター |
| 分析 | analysis_calculate_williams_r | %R モメンタム |
| 分析 | analysis_calculate_fibonacci_levels | リトレースメント水準 |
| 分析 | analysis_analyze_candlestick_patterns | パターン検出 |
| 分析 | analysis_get_technical_analysis | 複数の指標を用いた総合レポート |
| アカウント | account_get_summary | ポートフォリオのスナップショット |
| アカウント | account_get_user_margin | 利用可能な資金 |
| アカウント | account_get_holdings_list | 株式保有一覧 |
| アカウント | account_get_positions_list | 保有中のポジション |
| アカウント | account_get_order_book | 当日の注文 |
| アカウント | account_get_trade_history | 当日の約定 |
メモ
すべてのツールは、標準化された JSON レスポンスを返します:
{ "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"
}
対応インジケーター:
- RSI - モメンタムオシレーター(デフォルトは14期間)
- MACD - トレンドフォロー型インジケーター
- EMA_x - 指数移動平均(例:EMA_20、EMA_50、EMA_200)
- SMA_x - 単純移動平均(例:SMA_50、SMA_200)
- BBANDS - ボリンジャーバンド(ボラティリティ)
- VWAP - 出来高加重平均価格
- ATR - 平均真の値幅(ボラティリティ)
返される内容:
- 価格データ
- 計算されたインジケーター
- 検出されたローソク足パターン
- トレンドの状況(強気/弱気/横ばい)
- サポートとレジスタンスの水準
🏗️ アーキテクチャ
┌─────────────────┐
│ 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 │
└─────────────────┘
📊 技術スタック
- フレームワーク: FastMCP(Model Context Protocol)
- API クライアント: Upstox Python SDK
- テクニカル分析: pandas-ta
- ウェブサーバー: Uvicorn(HTTP モード用)
- コンテナ化: Docker、Docker Compose
🔧 トラブルシューティング
よくある問題
1. 「Invalid token」エラー
問題: アクセストークンの有効期限が切れています(トークンの有効期間は24時間です)
解決方法:
# Generate new token from Upstox
# Update .env file with new token
# Restart the MCP server
2. 「Command not found: upstox-mcp」
問題: パッケージがインストールされていないか、PATH にありません
解決方法:
# Activate virtual environment
source venv/bin/activate # macOS/Linux
venv\Scripts\activate # Windows
# Reinstall package
pip install -e .
3. Claude Desktop がサーバーを検出しない
問題: 設定ファイルのパスまたは形式に問題があります
解決方法:
- 設定ファイルの場所を確認します
- JSON の構文を確認します(JSON バリデーターを使用してください)
- 実行ファイルへの絶対パスを指定します
- Claude Desktop を再起動します
4. 日中ローソク足で「No data returned」と表示される
問題: 市場が閉まっているか、最近の取引がありません
解決方法:
- 市場が開いているか確認します(IST の午前9時15分~午後3時30分、月~金)
- 別の間隔を試します
- 銘柄が正しいことを確認します
5. レート制限
問題: 短時間に API 呼び出しを行いすぎています
解決方法:
- リクエスト間に遅延を追加します
- キャッシュを実装します(今後の拡張)
- 可能な場合はバッチクエリを使用します
🚧 制限事項
- トークンの有効期限:アクセストークンは24時間ごとに期限切れとなり、手動での更新が必要です
- 読み取り専用:安全性を考慮した設計のため、取引は実行できません
- API レート制限:Upstox API のレート制限が適用されます
- 取引時間:ライブデータを利用できるのは取引時間中のみです
- 過去データ:Upstox API のデータ保持ポリシーにより制限されます
🗺️ ロードマップ
バージョン 1.1(完了)
- パフォーマンス向上のためのキャッシュレイヤー
- 基本的なローソク足パターン検出
バージョン 2.0(完了)🚀
- 詳細なテクニカル指標:新しい専門的な TA ツールを10種類以上追加
- 名前空間付きツール:論理的なグループ化(
market_、analysis_、account_) - 過去データ:任意の時間枠のデータを取得
- 銘柄検索:名前で銘柄を検索
- JSON セーフなレスポンススキーマ:すべてのエージェント向けの堅牢なシリアライズ
- 注文・取引の追跡:日々の取引状況にリアルタイムでアクセス
バージョン 2.1(完了)🚀
- BYOK サポート:HTTP ヘッダー経由で認証情報を渡す
- マルチユーザー対応:共有デプロイ向けのセキュアなアーキテクチャ
- 動的な手順:セットアップガイド付きのインタラクティブなランディングページ
バージョン 3.0(計画中)
- トークンの自動更新機能
- 長期的な過去データ追跡のためのデータベース統合
- ポートフォリオのパフォーマンス分析
- アラートシステム
- 機械学習による予測
バージョン 3.0(構想)
- 機械学習による予測
- 戦略ビルダー
- ソーシャルトレーディング機能
- モバイルアプリとの連携
🤝 コントリビューション
コントリビューションを歓迎します。以下の手順に従ってください。
- リポジトリをフォークします
- フィーチャーブランチを作成します(
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 .
🗺️ ロードマップ
2026年第1四半期:基盤とコア分析(現在)
- Upstox 向けの初期 MCP 実装
- 包括的なテクニカル指標ツール
- リモートデプロイ向けの Bring Your Own Key(BYOK)サポート
- 動的な JSON 設定ジェネレーター
2026年第2四半期:高度な分析情報
- セクター別の市場分析ツール
- オプションチェーン分析(グリークス計算)
- コーポレートアクションの追跡(配当、株式分割)
- 複数銘柄間の相関分析
2026年第3四半期:エコシステムの拡大
- 統合バックテストエンジンのラッパー
- リアルタイムアラート向け Webhook サポート
- より多くの MCP クライアントへのネイティブサポート(例:Goose、Windsurf)
📄 ライセンス
このプロジェクトは MIT License の下でライセンスされています。詳細は LICENSE ファイルをご覧ください。
🙌 クレジットと謝辞
- FastMCP - MCP サーバーのフレームワーク
- Upstox - 取引 API と市場データ
- pandas-ta - テクニカル分析指標
- Anthropic - Claude AI と MCP プロトコル
📬 免責事項
重要:このプロジェクトは Upstox とは提携しておらず、Upstox による承認や後援も受けていません。
取引に関する免責事項:
- 株式取引には多額の損失が生じるリスクがあります
- このツールは情報提供および教育目的にのみ使用できます
- 金融に関する助言ではありません。資格を持つファイナンシャルアドバイザーにご相談ください
- 過去の実績は将来の成果を保証するものではありません
- 開発者は取引による損失について責任を負いません
- 投資判断を行う前に、必ずご自身で調査してください
API の使用:
- Upstox API の利用規約を遵守してください
- API のレート制限を守ってください
- 責任を持ち、倫理的に使用してください
📞 サポート
ドキュメント
ヘルプを受ける
- 課題:GitHub の課題
- ディスカッション:GitHub のディスカッション
- メール:[email protected]
コミュニティ
- 役に立ったら、このリポジトリにスター ⭐ を付けてください
- トレーダー仲間に共有してください
- バグを報告し、機能を提案してください
- コードやドキュメントに貢献してください
🎯 クイックスタートの概要
# 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!
インドのトレーダーのために ❤️ を込めて作成
楽しいトレーディングを! 📈🚀
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。