xinkuang-china-stock-mcp について
china-stock-mcp は、中国 A 株、B 株および香港株の市場データを提供する MCP サーバーです。株価、財務諸表、ニュースなどのツールを備えています。AI アシスタントから中国株式データを参照したい開発者や研究者を対象としています。stdio と HTTP の両モードで動作し、メモリとディスクのキャッシュを備えています。
主な機能
- 0130 種類の株式・市場データツール
- 02stdio ローカルモードと HTTP モード
- 0330 種類以上のテクニカル指標の計算
- 04メモリとディスクのキャッシュ
- 05複数データソース間の自動フォールバック
- 06Docker によるデプロイ
活用シーン
- 01AI アシスタントから A 株の過去・リアルタイム株価を照会
- 02貸借対照表、損益計算書、キャッシュフロー計算書の分析
- 03資金フロー、株主変動、調査レポートの取得
MCP 対応
本プロジェクトは FastMCP 上に構築された MCP サーバーで、Claude Desktop や Cursor などの MCP クライアントに株式データツールを公開します。
設定
リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。
https://server.smithery.ai/@xinkuang/china-stock-mcp/mcpclaude mcp add --transport http ai-smithery-xinkuang-china-stock https://server.smithery.ai/@xinkuang/china-stock-mcp/mcp{"mcpServers":{"ai-smithery-xinkuang-china-stock":{"type":"http","url":"https://server.smithery.ai/@xinkuang/china-stock-mcp/mcp"}}}Cursor で開く{"servers":{"ai-smithery-xinkuang-china-stock":{"type":"http","url":"https://server.smithery.ai/@xinkuang/china-stock-mcp/mcp"}}}VS Code で開く{"mcpServers":{"ai-smithery-xinkuang-china-stock":{"type":"http","url":"https://server.smithery.ai/@xinkuang/china-stock-mcp/mcp"}}}{"mcpServers":{"ai-smithery-xinkuang-china-stock":{"serverUrl":"https://server.smithery.ai/@xinkuang/china-stock-mcp/mcp"}}}コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。
https://server.smithery.ai/@xinkuang/china-stock-mcp/mcp認証が必要ツール
詳細
china-stock-mcp
中国株式市場のデータにアクセスするためのインターフェースを提供する、株式 MCP (Model Context Protocol) サーバーです。過去の株価データ、リアルタイムデータ、ニュースデータ、財務諸表など、財務情報を取得するためのさまざまなツールを提供します。
🚀 主な機能
- デュアルモードでの実行: stdio ローカルモードと HTTP ネットワークモードに対応
- 豊富な財務データ: A 株、B 株、H 株のデータを幅広く取得
- リアルタイムデータ: リアルタイム株価、取引情報などに対応
- 財務諸表: 貸借対照表、損益計算書、キャッシュフロー計算書など
- テクニカル指標: 30 種類以上のテクニカル指標を自動計算して追加
- ニュースデータ: 株式関連のニュースや公告情報
- 使いやすさ: 簡単な設定で AI アシスタント (Claude、Cursor など) に統合可能
- データキャッシュ: メモリとディスクのキャッシュ機構を内蔵し、データ取得の効率と応答速度を向上
- コンテナ化: Docker によるデプロイに対応
🛠️ アーキテクチャ概要
主なコンポーネント
server.py: MCP サーバーの中核。すべてのツールとデータインターフェースを定義__main__.py: コマンドラインのエントリーポイント。複数の実行モードに対応- FastMCP フレームワーク: MCP プロトコル通信を処理
- akshare-one ライブラリ: 中国株式市場のデータを取得する基盤機能を提供
cache_utils.py: キャッシュツール。メモリとディスクのキャッシュ機能を提供
対応データソース
-
**データソースのフェイルオーバー**: 組み込みの `_fetch_data_with_fallback` 機構により、優先順位に従ってデータソースを自動で切り替えられます。優先データソースが失敗するか、空のデータを返した場合、システムは予備のデータソースを自動で試行し、データ取得の安定性と信頼性を高めます。
-
東方財富 (eastmoney, eastmoney_direct)
-
新浪財経 (sina)
-
雪球 (xueqiu)
📋 利用可能なツール
1. 获取股票的历史行情数据,支持多种数据源和技术指标 (get_hist_data)
株式の過去の相場データを取得します。
パラメーター:
symbol(string): 株式コード (例: '000001')interval(Literal): 時間間隔: minute, hour, day, week, month, year。デフォルト:dayinterval_multiplier(int): 時間間隔の乗数start_date(string): 開始日。形式は YYYY-MM-DDend_date(string): 終了日。形式は YYYY-MM-DDadjust(Literal): 調整タイプ: none, qfq(前方調整), hfq(後方調整)。デフォルト:none- `indicators_list` (string|list): 追加するテクニカル指標。カンマ区切りの文字列(例: 'SMA,EMA')または文字列のリスト(例: ['SMA', 'EMA'])を指定できます。対応する指標: SMA, EMA, RSI, MACD, BOLL, STOCH, ATR, CCI, ADX, WILLR, AD, ADOSC, OBV, MOM, SAR, TSF, APO, AROON, AROONOSC, BOP, CMO, DX, MFI, MINUS_DI, MINUS_DM, PLUS_DI, PLUS_DM, PPO, ROC, ROCP, ROCR, ROCR100, TRIX, ULTOSC。よく使われる指標: SMA, EMA, RSI, MACD, BOLL, STOCH, OBV, MFI。10 個以下を推奨します。
output_format(Literal): 出力データ形式: json, csv, xml, excel, markdown, html。デフォルト:markdown
2. 获取股票的实时行情数据,支持多种数据源 (get_realtime_data)
リアルタイムの株式相場データを取得します。対応するデータソース: eastmoney, eastmoney_direct, xueqiu。
パラメーター:
symbol(string): 株式コード (例: '000001')output_format(Literal): 出力データ形式: json, csv, xml, excel, markdown, html。デフォルト:markdown
3. 获取股票相关的新闻数据 (get_news_data)
株式関連のニュースデータを取得します。
パラメーター:
symbol(string): 株式コード (例: '000001')output_format(Literal): 出力データ形式: json, csv, xml, excel, markdown, html。デフォルト:markdown
4. 获取公司的资产负债表数据 (get_balance_sheet)
会社の貸借対照表データを取得します。
パラメーター:
symbol(string): 株式コード (例: '000001')output_format(Literal): 出力データ形式: json, csv, xml, excel, markdown, html。デフォルト:markdown
5. 获取指定股票代码的公司的利润表数据 (get_income_statement)
会社の損益計算書データを取得します。
パラメーター:
symbol(string): 株式コード (例: '000001')output_format(Literal): 出力データ形式: json, csv, xml, excel, markdown, html。デフォルト:markdown
6. 获取指定股票代码的公司的现金流量表数据 (get_cash_flow)
会社のキャッシュフロー計算書データを取得します。
パラメーター:
symbol(string): 株式コード (例: '000001')output_format(Literal): 出力データ形式: json, csv, xml, excel, markdown, html。デフォルト:markdown
7. 获取股票的近 100 个交易日的资金流向数据 (get_fund_flow)
株式の直近 100 取引日の資金フローデータを取得します。
パラメーター:
symbol(string): 株式コード (例: '000001')output_format(Literal): 出力データ形式: json, csv, xml, excel, markdown, html。デフォルト:markdown
8. 获取公司的内部股东交易数据 (get_inner_trade_data)
会社の内部株主取引データを取得します。
パラメーター:
symbol(string): 株式コード (例: '000001')output_format(Literal): 出力データ形式: json, csv, xml, excel, markdown, html。デフォルト:markdown
9. 获取三大财务报表的关键财务指标 (get_financial_metrics)
主要な 3 つの財務諸表の重要な財務指標を取得します。
パラメーター:
symbol(string): 株式コード (例: '000001')output_format(Literal): 出力データ形式: json, csv, xml, excel, markdown, html。デフォルト:markdown
10. 获取当前时间(ISO格式、时间戳)和最近一个交易日 (get_time_info)
現在の時刻(ISO 形式、タイムスタンプ)と直近の取引日を取得します。
パラメーター: なし
11. 获取指定股票的基本概要信息 (get_stock_basic_info)
株式の基本概要情報を取得します。A 株と香港株に対応しています。
パラメーター:
symbol(string): 株式コード (例: '000001')output_format(Literal): 出力データ形式: json, csv, xml, excel, markdown, html。デフォルト:markdown
12. 获取单个宏观经济指标数据 (get_macro_data)
単一のマクロ経済指標データを取得します。
パラメーター:
indicator(Literal): 取得するマクロ経済指標。対応する指標: money_supply, gdp, cpi, pmi, stock_summary。デフォルト: 'gdp'output_format(Literal): 出力データ形式: json, csv, xml, excel, markdown, html。デフォルト:markdown
13. 分析散户和机构投资者的投资情绪 (get_investor_sentiment)
個人投資家と機関投資家の投資センチメントを分析します。
パラメーター:
symbol(string): 銘柄コード(例: '000001')output_format(Literal): 出力データ形式: json, csv, xml, excel, markdown, html。デフォルト:markdown
14. 获取指定股票的股东情况 (get_shareholder_info)
株主の状況を取得します。
パラメーター:
symbol(string): 銘柄コード(例: '000001')output_format(Literal): 出力データ形式: json, csv, xml, excel, markdown, html。デフォルト:markdown
15. 获取指定股票公司的主要产品或业务构成 (get_product_info)
製品の状況を取得します。
パラメーター:
symbol(string): 銘柄コード(例: '000001')output_format(Literal): 出力データ形式: json, csv, xml, excel, markdown, html。デフォルト:markdown
16. 获取股票的业绩预测数据,包括预测年报净利润和每股收益 (get_profit_forecast)
株式の業績予測データを取得します。
パラメーター:
symbol(string): 銘柄コード(例: '600519')output_format(Literal): 出力データ形式: json, csv, xml, excel, markdown, html。デフォルト:markdown
17. 获取分红送股详情 (get_stock_fhps_detail)
指定した株式の配当・株式配当の詳細データを取得します。
パラメーター:
symbol(string): 銘柄コード(例: '000001')output_format(Literal): 出力データ形式: json, csv, xml, excel, markdown, html。デフォルト:markdown
18. 获取筹码分布数据 (get_stock_cyq)
指定した株式の売買単位の分布データを取得します。
パラメーター:
symbol(string): 銘柄コード(例: '000001')date(string): 照会日。形式は YYYY-MM-DDoutput_format(Literal): 出力データ形式: json, csv, xml, excel, markdown, html。デフォルト:markdown
19. 获取股票研究报告 (get_stock_research_report)
指定した株式の調査レポートデータを取得します。
パラメーター:
symbol(string): 銘柄コード(例: '000001')output_format(Literal): 出力データ形式: json, csv, xml, excel, markdown, html。デフォルト:markdown
20. 获取流通股东数据 (get_stock_circulate_stock_holder)
指定した株式の流通株主データを取得します。
パラメーター:
symbol(string): 銘柄コード(例: '000001')output_format(Literal): 出力データ形式: json, csv, xml, excel, markdown, html。デフォルト:markdown
21. 获取高管变动数据 (get_stock_management_change)
指定した株式の経営幹部の異動データを取得します。
パラメーター:
symbol(string): 銘柄コード(例: '000001')output_format(Literal): 出力データ形式: json, csv, xml, excel, markdown, html。デフォルト:markdown
22. 获取限售解禁数据 (get_stock_restricted_release_queue)
指定した株式の売却制限解除データを取得します。
パラメーター:
symbol(string): 銘柄コード(例: '000001')output_format(Literal): 出力データ形式: json, csv, xml, excel, markdown, html。デフォルト:markdown
23. 获取 A 股代码和名称 (get_stock_a_code_name)
すべての A 株の銘柄コードと名称を取得します。
パラメーター:
output_format(Literal): 出力データ形式: json, csv, xml, excel, markdown, html。デフォルト:markdown
24. 获取股票估值数据 (get_stock_value)
指定した株式の評価データを取得します。
パラメーター:
symbol(string): 銘柄コード(例: '000001')output_format(Literal): 出力データ形式: json, csv, xml, excel, markdown, html。デフォルト:markdown
25. 计算指定个股的波动率指标 (get_stock_volatility)
分足の過去の相場データを使用して、指定した個別株のボラティリティ指標を計算します。 パラメーター:
symbol(string): 銘柄コード(例: '000001')start_date(string): 開始日end_date(string): 終了日period(int): 時間周期、分単位(例: '1', '5', '15', '30', '60')")adjust(string): 株価調整の種類: none, qfq(前方調整), hfq(後方調整)。デフォルト:noneoutput_format(Literal): 出力データ形式: json, csv, xml, excel, markdown, html。デフォルト:markdown
26. 获取所有指数的代码和基本信息 (get_all_cni_indices)
すべての指数のコードと基本情報を取得します。リアルタイム変動データを除外し、キャッシュに対応しています。
パラメーター:
output_format(Literal): 出力データ形式: json, csv, xml, excel, markdown, html。デフォルト:markdown
27. 获取指定指数的日频率历史行情数据 (get_cni_index_hist)
指定した指数の日次の過去の相場データを取得します。
パラメーター:
symbol(string): 指数コード(例: '399005')start_date(string): 開始日。形式は YYYYMMDD(例: '20230114')end_date(string): 終了日。形式は YYYYMMDD(例: '20240114')output_format(Literal): 出力データ形式: json, csv, xml, excel, markdown, html。デフォルト:markdown
28. 获取指定指数的成分股样本详情 (get_cni_index_detail)
指定した指数の構成銘柄サンプルの詳細を取得します。
パラメーター:
symbol(string): 指数コード(例: '399001')date(string): 日付。形式は YYYYMM(例: '202404')output_format(Literal): 出力データ形式: json, csv, xml, excel, markdown, html。デフォルト:markdown
29. テクニカル指標データを取得します。新高値、新安値、連騰、連敗、出来高の継続的な増加、出来高の継続的な減少、上抜け、下抜け、株価と出来高の同時上昇、株価と出来高の同時下落、保険資金による大量保有を含みます。(get_stock_technical_rank)
パラメーター:
indicator_name(string): 取得するテクニカル指標名(例: 新高値-月間新高値、 新高値-半年新高値、 新高値-年間新高値、 新高値-過去最高値、新安値-月間新安値、新安値-半年新安値、新安値-年間新安値、新安値-過去最安値、連騰、連敗、出来高増加継続、出来高減少継続、上抜け-5日移動平均線、上抜け-10日移動平均線、上抜け-20日移動平均線、上抜け-30日移動平均線、上抜け-60日移動平均線、上抜け-90日移動平均線、上抜け-250日移動平均線、上抜け-500日移動平均線、下抜け-5日移動平均線、下抜け-10日移動平均線、下抜け-20日移動平均線、下抜け-30日移動平均線、下抜け-60日移動平均線、下抜け-90日移動平均線、下抜け-250日移動平均線、下抜け-500日移動平均線、株価と出来高の同時上昇、株価と出来高の同時下落、保険資金による大量保有)output_format(Literal): 出力データ形式: json, csv, xml, excel, markdown, html。デフォルト:markdown
30. すべての業種・セクターのリアルタイム相場データを取得します (get_stock_board_industry_summary)
パラメーター:
output_format(Literal): 出力データ形式: json, csv, xml, excel, markdown, html。デフォルト:markdown
🚀 インストールと実行
方法一: Smithery を使用
Smithery を使って Claude Desktop に自動インストールします:
npx -y @smithery/cli install @xinkuang/china-stock-mcp
方法二: Docker を使用
1. イメージをプル
docker pull ghcr.io/xinkuang/china-stock-mcp:latest
2. コンテナーを実行
docker run -p 8081:8081 ghcr.io/xinkuang/china-stock-mcp:latest
方法三: ソースコードからローカルにインストール
1. 環境要件
- Python 3.12+
- Git
- uv(推奨の Python パッケージマネージャー)
2. リポジトリをクローン
git clone https://github.com/xinkuang/china-stock-mcp
cd china-stock-mcp
3. 依存関係をインストール
# 推荐使用 uv 包管理器
uv sync
# 或者使用 pip
pip install -r requirements.txt
4. サーバーを実行
stdio モード(デフォルト。ローカル MCP クライアント向け):
uv run -m china_stock_mcp
HTTP モード(リモートアクセス向け):
uv run -m china_stock_mcp --streamable-http --host 0.0.0.0 --port 8081
サーバーは http://localhost:8081/mcp でサービスを提供します。
⚙️ MCP 設定例
Claude Desktop の設定
claude_desktop_config.json を編集します:
方法一: ソースコードからローカルにインストール
{
"mcpServers": {
"china-stock-mcp": {
"command": "uv",
"args": [
"--directory",
"/path/to/china_stock_mcp",
"run",
"china-stock-mcp"
]
}
}
}
方法二: uvx を使用
{
"mcpServers": {
"china-stock-mcp": {
"command": "uvx",
"args": [
"china-stock-mcp"
]
}
}
}
方法三: HTTP モード
{
"mcpServers": {
"china-stock-mcp": {
"command": "uvx",
"args": ["china-stock-mcp", "--streamable-http", "--host", "0.0.0.0", "--port", "8081"],
"env": {
"MCP_BASE_URL": "http://localhost:8081/mcp"
}
}
}
}
その他の AI クライアントの設定
Cursor:
{
"mcpServers": {
"china-stock-mcp": {
"command": "uvx",
"args": [ "china-stock-mcp"]
}
}
}
MCP を使用する Clion:
{
"mcpServers": {
"china-stock-mcp": {
"command": "uvx",
"args": [ "china-stock-mcp"]
}
}
}
🏃♂️ コマンドライン引数
--streamable-http: HTTP ストリーミング可能モードを有効にします(デフォルト: stdio モード)--host: HTTP モードでバインドするホスト(デフォルト: 0.0.0.0)--port: HTTP モードのリッスンポート(デフォルト: 8081)
📊 データの対応範囲
株式市場
- A株(上海証券取引所、深セン証券取引所)
- B株
- H株(香港株)
- 中小企業板、創業板、新三板
データの種類
- 過去の相場データ(分単位、時間単位、日単位、週単位、月単位、年単位)
- リアルタイム相場データ
- テクニカル指標の計算
- ニュース
- 財務諸表(貸借対照表、損益計算書、キャッシュフロー計算書)
- 財務指標
- 内部取引データ
🔧 開発とコントリビューション
開発環境のセットアップ
- リポジトリをクローン
git clone https://github.com/xinkuang/china-stock-mcp
cd china-stock-mcp
- 開発用依存関係をインストール
uv sync --dev
- 開発モードに切り替え
uv run -m china_stock_mcp
コード構成
src/china_stock_mcp/
├── __init__.py
├── __main__.py # 命令行入口,处理启动参数
├── server.py # MCP 服务器核心,定义所有工具
├── mcp.json # MCP 配置规范 (可选)
└── py.typed # 类型标注文件
新しいツールの追加
server.py で @mcp.tool デコレーターを使用して、新しいツールを追加します:
@mcp.tool(name="工具中文名称", description="工具的中文描述")
def your_tool_name(param1: Annotated[str, Field(description="参数描述")]) -> str:
"""工具详情描述"""
# 实现逻辑
pass
📝 ライセンス
MIT License - 詳細は LICENSE ファイルをご覧ください。
🤝 コントリビューション
Issue と Pull Request の投稿を歓迎します!
🙋♂️ よくある質問
Q: データを取得できないのはなぜですか? A: ネットワーク接続とデータソースの利用状況を確認してください。一部のデータソースにはアクセス制限がある場合があります。
Q: HTTP モードで接続できない場合は? A: ポート 8081 が他のサービスで使用されていないこと、およびファイアウォールで該当ポートへのアクセスが許可されていることを確認してください。
Q: 最新バージョンに更新するには? A: Smithery でインストールした場合は自動更新されます。手動でインストールした場合は、リポジトリのコードを再度プルしてください。
🐞 デバッグ
@modelcontextprotocol/inspector を使ってこのサーバーをデバッグする方法の詳細は、DEBUG.md をご覧ください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。