mcpField
X
xinkuang-china-stock-mcp

xinkuang-china-stock-mcp

リモート
github.com/xinkuang金融データ4633 週間前に更新
リポジトリ

xinkuang-china-stock-mcp について

china-stock-mcp は、中国 A 株、B 株および香港株の市場データを提供する MCP サーバーです。株価、財務諸表、ニュースなどのツールを備えています。AI アシスタントから中国株式データを参照したい開発者や研究者を対象としています。stdio と HTTP の両モードで動作し、メモリとディスクのキャッシュを備えています。

主な機能

  1. 0130 種類の株式・市場データツール
  2. 02stdio ローカルモードと HTTP モード
  3. 0330 種類以上のテクニカル指標の計算
  4. 04メモリとディスクのキャッシュ
  5. 05複数データソース間の自動フォールバック
  6. 06Docker によるデプロイ

活用シーン

  1. 01AI アシスタントから A 株の過去・リアルタイム株価を照会
  2. 02貸借対照表、損益計算書、キャッシュフロー計算書の分析
  3. 03資金フロー、株主変動、調査レポートの取得

MCP 対応

本プロジェクトは FastMCP 上に構築された MCP サーバーで、Claude Desktop や Cursor などの MCP クライアントに株式データツールを公開します。

設定

リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。

エンドポイントhttps://server.smithery.ai/@xinkuang/china-stock-mcp/mcp
インストールコマンドをコピー
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。

すべてのエンドポイント
Streamable HTTPhttps://server.smithery.ai/@xinkuang/china-stock-mcp/mcp認証が必要

ツール

詳細

china-stock-mcp

smithery badge 中国株式市場のデータにアクセスするためのインターフェースを提供する、株式 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。デフォルト:day
  • interval_multiplier (int): 時間間隔の乗数
  • start_date (string): 開始日。形式は YYYY-MM-DD
  • end_date (string): 終了日。形式は YYYY-MM-DD
  • adjust (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-DD
  • output_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(後方調整)。デフォルト:none
  • output_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株(香港株)
  • 中小企業板、創業板、新三板
データの種類
  • 過去の相場データ(分単位、時間単位、日単位、週単位、月単位、年単位)
  • リアルタイム相場データ
  • テクニカル指標の計算
  • ニュース
  • 財務諸表(貸借対照表、損益計算書、キャッシュフロー計算書)
  • 財務指標
  • 内部取引データ

🔧 開発とコントリビューション

開発環境のセットアップ
  1. リポジトリをクローン
git clone https://github.com/xinkuang/china-stock-mcp
cd china-stock-mcp
  1. 開発用依存関係をインストール
uv sync --dev
  1. 開発モードに切り替え
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 をご覧ください。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。