jiuyan-mcp
jiuyan-mcp
韭研公社(jiuyangongshe.com)データ取得MCPサーバー。
優先的にログイン不要で公開特色データ(タイムライン、ホットランキング、検索、記事全文、コミュニティ欄目)を取得。「異動」と「フォローフィード」はサイト内ログインデータのため、WebページのSESSION cookieを設定すれば利用可能。
個人の学習・研究のみを目的としています。サイトの利用規約を尊重し、高頻度のスクレイピングや商用利用は行わないでください。本リポジトリは韭研公社公式とは一切関係ありません。
ツール一覧
ツール | 説明 | ログイン |
| タイムライン:日付別にグループ化されたイベントフロー(タイトル/レーティング/テーマ/関連記事) | 不要 |
| ホットランキング:ホット検索キーワードランキング + 人気記事ランキング | 不要 |
| キーワードでディスカッション投稿/記事を検索(人気度または時間順) | 不要 |
| article_id で記事のHTML全文とメタ情報を取得 | 不要 |
| コミュニティ欄目リスト(研選/広場/生活区 × 最新/人気/異動ソート) | 不要 |
| 異動当日のセクターフィールドリスト(action_field_id) | 必要 |
| 異動セクター内の個別銘柄の異動明細(ストップ高理由など) | 必要 |
| フォローフィード:自分がフォローしている人の最新発言 | 必要 |
Related MCP server: A-Stock MCP Server
クイックスタート
git clone <repo-url> && cd jiuyan-mcp
npm installMCPクライアント設定(例:~/.omp/agent/mcp.json)に登録:
{
"mcpServers": {
"jiuyan": {
"type": "stdio",
"command": "node",
"args": ["/绝对路径/jiuyan-mcp/src/index.js"],
"env": {
"JIYAN_SESSION": "<可选:网页 SESSION cookie 值>"
}
}
}
}ログインcookie(JIYAN_SESSION)の取得
ブラウザで www.jiuyangongshe.com; にログイン
F12 → Application/ストレージ → Cookies →
https://www.jiuyangongshe.comSESSIONという名前の値をコピーしてJIYAN_SESSIONに設定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
This server cannot be deployed
Maintenance
Related MCP Connectors
Weibo posts, hot search, comments and profiles to JSON. No login or cookies needed.
Provide access to Chinese stock market data including historical prices, real-time data, news, and…
China A-share market data over MCP: 22 tools for quotes, K-line, financials, money flow, top-trader boards, sectors, macro, convertible bonds and factor screening. Five tools need no API key, so you can connect and try it immediately.
Access real-time and historical market data for China A-shares and Hong Kong stocks, along with ne…
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceEnables 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-
- AlicenseNot gradedqualityDmaintenanceProvides 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
- FlicenseAqualityDmaintenanceEnables searching notes, retrieving note content and comments, and posting comments on Xiaohongshu (Little Red Book) via HTTP API without using Playwright.6-
- FlicenseNot gradedqualityCmaintenanceEnables 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-