jiuyan-mcp
jiuyan-mcp
Servidor MCP de obtención de datos de Jiuyan Gongshe (jiuyangongshe.com).
Prioriza la obtención de datos públicos destacados sin inicio de sesión (línea de tiempo, ranking, búsqueda, texto completo de artículos, secciones de la comunidad); «Movimientos anómalos» y «Flujo de seguidos» son datos que requieren inicio de sesión en el sitio, y se pueden usar configurando la cookie SESSION de la página web.
Solo para aprendizaje e investigación personal. Respeta los términos de servicio del sitio; no hagas scraping de alta frecuencia ni uso comercial. Este repositorio no tiene ninguna relación con Jiuyan Gongshe.
Resumen de herramientas
Herramienta | Descripción | Inicio de sesión |
| Línea de tiempo: flujo de eventos agrupados por fecha (título/calificación/tema/artículos relacionados) | No |
| Ranking: ranking de palabras clave de búsqueda + ranking de artículos populares | No |
| Búsqueda de hilos/artículos por palabra clave (ordenados por popularidad o fecha) | No |
| Obtiene el HTML completo y los metadatos del artículo según article_id | No |
| Lista de secciones de la comunidad (Investigación/Plaza/Zona de vida × orden por más reciente/popular/anomalía) | No |
| Lista de campos de sector del día de movimientos anómalos (action_field_id) | Sí |
| Detalle de movimientos anómalos de acciones individuales bajo un sector (motivos de límite diario, etc.) | Sí |
| Flujo de seguidos: últimas publicaciones de las personas que sigues | Sí |
Related MCP server: A-Stock MCP Server
Inicio rápido
git clone <repo-url> && cd jiuyan-mcp
npm installRegístralo en la configuración de tu cliente MCP (por ejemplo, ~/.omp/agent/mcp.json):
{
"mcpServers": {
"jiuyan": {
"type": "stdio",
"command": "node",
"args": ["/绝对路径/jiuyan-mcp/src/index.js"],
"env": {
"JIYAN_SESSION": "<可选:网页 SESSION cookie 值>"
}
}
}
}Obtención de la cookie de inicio de sesión (JIYAN_SESSION)
Inicia sesión en www.jiuyangongshe.com;
F12 → Application/Almacenamiento → Cookies →
https://www.jiuyangongshe.com;Copia el valor de la cookie llamada
SESSIONy colócalo enJIYAN_SESSION;Reinicia el cliente MCP. Si no está configurada, las herramientas anónimas funcionan con normalidad y las herramientas de inicio de sesión devuelven un aviso claro.
Mecanismo de firma (por qué se necesita este servidor para funcionar)
La API web de Jiuyan Gongshe (web-api.jiuyangongshe.com/jystock-app) exige en cada solicitud las cabeceras token + timestamp.
El material para la firma está incrustado en la página SSR (el {digest, project, serverTime} de la clave ofuscada en window.__NUXT__),
y el algoritmo de derivación está oculto en el módulo ofuscado de VM empaquetado por Nuxt. Este proyecto recolecta la tabla de módulos de webpack dentro de un sandbox de node:vm e
inicializa ese módulo, llamando directamente a su función de firma para generar las cabeceras de cada solicitud, sin necesidad de navegador en todo el proceso.
Diseño de robustez:
Tanto el nombre de la clave digest como el de la función de firma son productos de ofuscación: se extrae el digest con una expresión regular flexible, y la función de firma se descubre automáticamente según la «forma de salida», de modo que se adapta incluso si el sitio rota los nombres en cada versión;
La ventana de tiempo de la firma es <10 minutos; cuando el token caduca (errCode=110), se vuelve a capturar la página automáticamente para reconstruir el sandbox y se reintenta una vez;
Los archivos chunk se cachean en el directorio temporal del sistema (7 días), evitando descargar repetidamente ~1,6 MB de recursos estáticos;
Se fuerza un intervalo de ≥1s entre solicitudes adyacentes al servidor, con limitación de velocidad cortés.
Limitaciones conocidas
Toda la familia de «Movimientos anómalos» y el flujo de seguidos requieren estado de inicio de sesión (errCode=1); no se puede eludir de forma anónima;
No se ha encontrado en ningún proyecto público un endpoint web para «obtener el historial de publicaciones de un usuario específico por user_id»; las publicaciones de las personas seguidas se obtienen actualmente a través del flujo de seguidos (
/api/v2/article/newest/list);El antiguo dominio de la APP
app.jiuyangongshe.comtiene control de versión (errCode=9); este proyecto no lo utiliza;Una actualización importante del frontend del sitio puede cambiar el id del módulo de firma; en ese caso será necesario actualizar
KNOWN_MODULE_IDS.
Estructura
src/
signer.js # SSR digest 抓取 + vm 沙箱签名函数发现与调用
api.js # HTTP 客户端:鉴权头、限速、errCode 映射、110 自动重试
tools.js # 8 个 MCP 工具定义与入参 schema
index.js # stdio MCP 服务器入口Licencia
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-