Skip to main content
Glama
Zessi-C

jiuyan-mcp

by Zessi-C

jiuyan-mcp

MCP-сервер для получения данных с Цзюяньгуншэ (jiuyangongshe.com).

Приоритет — без входа получать публичные фирменные данные (лента событий, горячие списки, поиск, полный текст статей, разделы сообщества); «Аномалии» и «Лента подписок» — данные, доступные только после входа на сайт, работают после настройки cookie SESSION из веб-версии.

Только для личного обучения и исследований. Уважайте условия обслуживания сайта, не используйте для высокочастотного сбора данных или в коммерческих целях. Этот репозиторий не имеет отношения к официальному Цзюяньгуншэ.

Обзор инструментов

Инструмент

Описание

Вход

jiuyan_get_timeline

Лента событий: поток событий, сгруппированный по датам (заголовок/рейтинг/тема/связанные статьи)

нет

jiuyan_get_rank_board

Горячие списки: рейтинг горячих ключевых слов + рейтинг популярных статей

нет

jiuyan_search_articles

Поиск обсуждений/статей по ключевым словам (сортировка по популярности или времени)

нет

jiuyan_get_article_detail

Полный HTML-текст статьи и метаинформация по article_id

нет

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-клиент. Если не настроено, анонимные инструменты работают как обычно, а инструменты входа возвращают понятное сообщение.

Механизм подписи (почему для работы нужен этот сервер)

Веб-API Цзюяньгуншэ (web-api.jiuyangongshe.com/jystock-app) требует заголовки token + timestamp для каждого запроса. Сырьё для подписи встроено в SSR-страницу ({digest, project, serverTime} из обфусцированного ключа в window.__NUXT__), алгоритм вывода спрятан в обфусцированном VM-модуле Nuxt. Этот проект в песочнице node:vm собирает таблицу модулей webpack и инициализирует этот модуль, напрямую вызывая его функцию подписи для генерации заголовков каждого запроса — браузер не нужен.

Продуманная устойчивость:

  • Имя ключа digest и имя функции подписи — результат обфускации: digest извлекается свободным регулярным выражением, функция подписи автоматически обнаруживается по «форме вывода» — смена имён при релизах сайта тоже адаптируется;

  • Окно времени подписи <10 минут, при истечении token (errCode=110) автоматически перезагружает страницу, пересоздаёт песочницу и повторяет попытку;

  • Файлы chunk кэшируются в системной временной папке (7 дней), чтобы не скачивать повторно ~1.6MB статических ресурсов;

  • Принудительный интервал ≥1s между соседними запросами к вышестоящему серверу — вежливое ограничение скорости.

Известные ограничения

  • Весь набор «Аномалий» и лента подписок на практике требуют входа (errCode=1), анонимно обойти нельзя;

  • В открытых проектах не найден веб-эндпоинт «получить историю сообщений указанного пользователя по user_id»; сообщения людей, на которых вы подписаны, сейчас получаются через ленту подписок (/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
    -