Skip to main content
Glama
Zessi-C

jiuyan-mcp

by Zessi-C

jiuyan-mcp

韭研公社(jiuyangongshe.com) 데이터 수집 MCP 서버.

우선 로그인 없이 공개 특색 데이터(타임라인, 인기 순위, 검색, 기사 전문, 커뮤니티 카테고리)를 획득합니다. 「이동(异动)」과 「팔로우 피드」는 사이트 내 로그인 데이터로, 웹 SESSION 쿠키를 설정하면 사용할 수 있습니다.

개인 학습 및 연구용으로만 제공되며, 사이트 서비스 약관을 존중해 주시고 고빈도 크롤링이나 상업적 이용을 삼가 주세요. 본 저장소는 韭研公社 공식과 아무런 관련이 없습니다.

도구 목록

도구

설명

로그인

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 值>"
      }
    }
  }
}

로그인 쿠키(JIYAN_SESSION) 획득

  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 페이지에 내장되어 있으며(window.__NUXT__ 내 난독화 키의 {digest, project, serverTime}), 파생 알고리즘은 Nuxt 패키징의 VM 난독화 모듈에 숨겨져 있습니다. 본 프로젝트는 node:vm 샌드박스 내에서 webpack 모듈 테이블을 수집하고 해당 모듈을 초기화하여, 그 서명 함수를 직접 호출해 매 요청의 헤더를 생성합니다. 브라우저가 전혀 필요 없습니다.

견고성 설계:

  • digest 키 이름과 서명 함수 이름 모두 난독화 산출물입니다 — 관대한 정규식으로 digest를 추출하고, 서명 함수는 "출력 형태"로 자동 발견하므로 사이트가 배포 시 이름을 바꿔도 적응할 수 있습니다;

  • 서명 시간 창 <10분, token 만료(errCode=110) 시 페이지를 자동으로 다시 가져와 샌드박스를 재구축하고 한 번 재시도합니다;

  • chunk 파일은 시스템 임시 디렉터리(7일)에 캐시되어 ~1.6MB 정적 리소스의 반복 다운로드를 방지합니다;

  • 인접 업스트림 요청 간 강제 ≥1초 간격으로 정중한 속도 제한을 적용합니다.

알려진 제한 사항

  • 「이동」 전체 묶음과 팔로우 피드는 실측 결과 로그인 상태가 필수(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
    -