Skip to main content
Glama
Zessi-C

jiuyan-mcp

by Zessi-C

jiuyan-mcp

韭研公社(jiuyangongshe.com)データ取得MCPサーバー。

優先的にログイン不要で公開特色データ(タイムライン、ホットランキング、検索、記事全文、コミュニティ欄目)を取得。「異動」と「フォローフィード」はサイト内ログインデータのため、WebページのSESSION cookieを設定すれば利用可能。

個人の学習・研究のみを目的としています。サイトの利用規約を尊重し、高頻度のスクレイピングや商用利用は行わないでください。本リポジトリは韭研公社公式とは一切関係ありません。

ツール一覧

ツール

説明

ログイン

jiuyan_get_timeline

タイムライン:日付別にグループ化されたイベントフロー(タイトル/レーティング/テーマ/関連記事)

不要

jiuyan_get_rank_board

ホットランキング:ホット検索キーワードランキング + 人気記事ランキング

不要

jiuyan_search_articles

キーワードでディスカッション投稿/記事を検索(人気度または時間順)

不要

jiuyan_get_article_detail

article_id で記事のHTML全文とメタ情報を取得

不要

jiuyan_get_community

コミュニティ欄目リスト(研選/広場/生活区 × 最新/人気/異動ソート)

不要

jiuyan_get_action_field

異動当日のセクターフィールドリスト(action_field_id)

必要

jiuyan_get_action_list

異動セクター内の個別銘柄の異動明細(ストップ高理由など)

必要

jiuyan_get_follow_feed

フォローフィード:自分がフォローしている人の最新発言

必要

Related MCP server: A-Stock MCP Server

クイックスタート

git clone <repo-url> && cd jiuyan-mcp
npm install

MCPクライアント設定(例:~/.omp/agent/mcp.json)に登録:

{
  "mcpServers": {
    "jiuyan": {
      "type": "stdio",
      "command": "node",
      "args": ["/绝对路径/jiuyan-mcp/src/index.js"],
      "env": {
        "JIYAN_SESSION": "<可选:网页 SESSION cookie 值>"
      }
    }
  }
}
  1. ブラウザで www.jiuyangongshe.com; にログイン

  2. F12 → Application/ストレージ → Cookies → https://www.jiuyangongshe.com

  3. SESSION という名前の値をコピーして JIYAN_SESSION に設定

  4. MCPクライアントを再起動。未設定の場合、匿名ツールは通常通り動作し、ログインツールは明確なメッセージを返します。

署名メカニズム(なぜこのサーバーが必要なのか)

韭研公社のweb API(web-api.jiuyangongshe.com/jystock-app)は、各リクエストに token + timestamp ヘッダーを要求します。署名の原料はSSRページ内に埋め込まれており(window.__NUXT__ 内の難読化キーの {digest, project, serverTime})、 導出アルゴリズムはNuxtにバンドルされたVM難読化モジュール内に隠されています。本プロジェクトは node:vm サンドボックス内でwebpackモジュールテーブルを収集し、 そのモジュールを初期化して、その署名関数を直接呼び出して毎回のリクエストのヘッダーを生成します。ブラウザは一切不要です。

堅牢性の設計:

  • digestキー名と署名関数名はすべて難読化された成果物——緩い正規表現でdigestを抽出し、署名関数は「出力形状」で 自動発見するため、サイトがリリースで名前を変えても適応可能;

  • 署名の時間窓は10分未満。token失効(errCode=110)時は自動でページを再取得してサンドボックスを再構築し、1回リトライ;

  • chunkファイルはシステム一時ディレクトリにキャッシュ(7日間)。約1.6MBの静的リソースの再ダウンロードを回避;

  • 隣接する上流リクエスト間は強制的に1秒以上の間隔を空け、丁寧なレート制限。

既知の制限

  • 「異動」ファミリーとフォローフィードは実測でログイン状態が必須(errCode=1)。匿名では回避不可;

  • 公開プロジェクトで「user_id で指定ユーザーの過去の発言を取得する」webエンドポイントは見つかっておらず、フォローしている人の発言は 現在フォローフィード(/api/v2/article/newest/list)経由で取得;

  • 旧APPドメイン app.jiuyangongshe.com にはバージョンゲートがあり(errCode=9)、本プロジェクトでは使用しない;

  • サイトフロントエンドの大規模アップグレードで署名モジュールIDが変わる可能性があり、その際は KNOWN_MODULE_IDS の更新が必要。

構造

src/
  signer.js   # SSR digest 抓取 + vm 沙箱签名函数发现与调用
  api.js      # HTTP 客户端:鉴权头、限速、errCode 映射、110 自动重试
  tools.js    # 8 个 MCP 工具定义与入参 schema
  index.js    # stdio MCP 服务器入口

License

MIT

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables real-time stock market analysis through AKShare API integration. Supports retrieving live stock prices, historical data, technical indicators (MA, MACD, RSI), market sentiment analysis, stock search, and financial news.
    5
    -
  • A
    license
    Not graded
    quality
    D
    maintenance
    Provides free Chinese A-share stock data including real-time quotes, historical K-lines, market scanning, and multi-factor stock screening via BaoStock and Sina Finance APIs.
    MIT
  • F
    license
    A
    quality
    D
    maintenance
    Enables searching notes, retrieving note content and comments, and posting comments on Xiaohongshu (Little Red Book) via HTTP API without using Playwright.
    6
    -
  • F
    license
    Not graded
    quality
    C
    maintenance
    Enables local scraping and interaction with Douyin (TikTok China) content, including videos, user data, comments, live streams, and private messages, using personal account cookies without official APIs.
    1
    -