nwafu-mcp
nwafu-mcp · Conjunto de herramientas MCP de información del campus de 西北农林科技大学
Proporciona a los agentes desplegados en cualquier plataforma de agentes un conjunto de herramientas compatibles con el protocolo MCP, que cubre tres capacidades principales:
Resumen de tendencias del canal del campus: obtiene las publicaciones populares recientes del canal oficial de QQ de 西北农林科技大学 (pd.qq.com/g/inwafu1934), las ordena según el nivel de interacción y las clasifica automáticamente en categorías como «actividades / concursos / avisos / recomendaciones / consejos / ayuda»; cada dato importante va acompañado del título y el enlace de la publicación de origen para garantizar la trazabilidad.
Consulta rápida en el sitio web oficial: consulta rápidamente actividades, concursos, avisos e información de contratación recientes a través del índice de texto completo del sitio web oficial de la universidad (www.nwafu.edu.cn) y del portal de noticias; admite palabras clave como «植保学院» o «教务处» para acotar el ámbito de búsqueda.
Búsqueda personalizada entre sitios: divide automáticamente la pregunta del usuario en términos de búsqueda, busca al mismo tiempo en el índice de texto completo del sitio web oficial y en las publicaciones recientes del canal del campus, combina los resultados y los muestra formateados en Markdown legible, con enlaces al contenido original.
Características
Implementación estándar de MCP: basada en el SDK oficial de Python
mcp(FastMCP), con transporte stdio; se puede conectar directamente a Claude Desktop, Cursor, Windsurf y otras plataformas de agentes compatibles con MCP.Información trazable: todas las entradas concluyentes llevan el título de la fuente + el enlace original; la información importante tiene un bloque separado de «aviso destacado / aviso de vigencia».
Clasificación inteligente: el motor de reglas clasifica automáticamente las publicaciones del canal en categorías como «recomendación / consejos / actividades / concursos / avisos / ayuda», y dentro de cada grupo las ordena por popularidad (me gusta + comentarios ponderados).
Búsqueda precisa por palabras clave: la consulta en el sitio web oficial admite cualquier palabra clave para acotar el ámbito (por ejemplo, nombre de facultad, departamento o asunto).
Robustez y tolerancia a fallos: tiempo de espera de solicitud, reintentos, retardo aleatorio para limitar la frecuencia y aviso de caducidad de cookies; el fallo de una herramienta no afecta a las demás.
Cumplimiento de privacidad: solo se obtiene contenido visible públicamente, sin omitir la validación de inicio de sesión/permisos; las cookies se inyectan mediante variables de entorno y no se escriben en el repositorio de código.
Related MCP server: NanoSearchMCP
Lista de herramientas
Herramienta | Uso | Parámetros clave |
| Resumen inteligente de las publicaciones populares recientes del canal QQ del campus (ranking de popularidad + clasificación + información clave) |
|
| Consulta rápida y resumen de avisos/actividades/concursos/contratación recientes del sitio web oficial |
|
| Búsqueda de texto completo en el sitio web oficial (palabras clave personalizadas) |
|
| Búsqueda personalizada de preguntas entre «sitio web oficial + canal del campus» |
|
Todas las herramientas devuelven texto Markdown con la siguiente estructura: fuente de datos, hora de obtención, condiciones de consulta, lista de resultados (título / fecha / fuente / resumen / enlace) y avisos destacados.
Cómo funciona
Canal QQ del campus
El cliente web de 腾讯频道 se renderiza íntegramente en el frontend; los datos públicos provienen de una pasarela protobuf-over-JSON:
POST https://pd.qq.com/qunng/guild/gotrpc/noauth/trpc.qchannel.commreader.ComReader/<Method>
x-oidb: {"uint32_service_type": 11 时间线 | 5 评论}El contenido público es legible de forma anónima, pero la pasarela exige una cookie de sesión a nivel de navegador (p_uin + uuid + EO-Bot-Js-Token). Esta herramienta:
Por defecto obtiene las últimas N publicaciones de la subsección «plaza de publicaciones» (
670126629) (ordenadas por fecha de publicación);Estima la popularidad con
点赞数 + 2 × 评论数y toma las publicaciones más populares dentro de la ventana;El motor de reglas clasifica automáticamente e indica por separado la información importante (avisos/anuncios/inscripciones/fechas límite/exámenes, etc.);
Opcionalmente, obtiene los comentarios populares de las publicaciones del ranking de popularidad (
GetFeedComments).
Nota: el endpoint «ordenar por popularidad» de
GetGuildFeedsdevuelve datos vacíos en las pruebas reales, por lo que el ranking de popularidad utiliza el esquema «publicaciones recientes × interacción», que se ajusta mejor al significado de «populares recientes».
Sitio web oficial de la universidad
El sitio principal y el portal de noticias de la universidad utilizan el buscador de texto completo de 通元 CMS:
GET https://www.nwsuaf.edu.cn/cms/web/search/index.jsp
?query=<关键词>&siteID=<站点ID>&searchScope=0&channelID=&matchType=0
&sortField=publishDate&order=1&date=<3|6|12>&page=<页码>siteID=32e6d9be...es el índice del sitio principal (cubre todas las facultades/departamentos de la universidad);Genera términos de búsqueda según la categoría (avisos/anuncios, actividades/conferencias/foros, concursos/certámenes, contratación, etc.), combina las palabras clave del usuario, obtiene los resultados por páginas y analiza el título, la fecha, la fuente, el resumen y el enlace original;
El rango de tiempo es de 90 días por defecto (corresponde al filtro de 3/6/12 meses del índice).
Inicio rápido (ejecución local)
cd nwafu-mcp
uv sync --extra dev1. Configurar la cookie del canal (opcional; solo necesaria para las herramientas del canal)
uv run nwafu-export-cookies --out cookies.jsonEl script abrirá la página del canal con Edge/Chrome locales para establecer una sesión y exportará la cookie. A continuación, escribe el cookie_header presente en cookies.json en una variable de entorno:
$env:PDQQ_COOKIES = "p_uin=xxx; uuid=xxx; EO-Bot-Js-Token=xxx"
# 或
$env:NWAFU_COOKIE_FILE = "F:\path\to\cookies.json"La cookie caduca (el token anti-raspado está vinculado a la instancia del navegador); para despliegues en la nube se recomienda renovarla periódicamente.
2. Probar directamente las funciones de las herramientas (sin pasar por el cliente MCP)
uv run python -c "
import os
os.environ['NWAFU_COOKIE_FILE'] = 'cookies.json'
from nwafu_mcp.server import official_site_recent
print(official_site_recent(category='通知', keyword='植保学院'))
"3. Ejecutar como servidor MCP
uv run nwafu-mcpConexión con clientes MCP
Claude Desktop (claude_desktop_config.json)
{
"mcpServers": {
"nwafu-campus": {
"command": "uvx",
"args": [
"--from",
"git+https://github.com/unielevotor/nwafu-AgentPlatformMCP",
"nwafu-mcp"
],
"env": {
"PDQQ_COOKIES": "p_uin=xxx; uuid=xxx; EO-Bot-Js-Token=xxx"
}
}
}
}Cursor / Windsurf / plataformas genéricas (formato JSON)
{
"mcpServers": {
"nwafu-campus": {
"command": "uvx",
"args": ["--from", "git+https://github.com/unielevotor/nwafu-AgentPlatformMCP", "nwafu-mcp"],
"env": {
"PDQQ_COOKIES": "p_uin=xxx; uuid=xxx; EO-Bot-Js-Token=xxx",
"PDQQ_GUILD_ID": "inwafu1934",
"PDQQ_CHANNEL_ID": "670126629"
}
}
}
}También se puede instalar con pip install git+https://github.com/unielevotor/nwafu-AgentPlatformMCP y ejecutarlo directamente con el comando nwafu-mcp.
Pasos de despliegue en GitHub
Haz push al repositorio de GitHub (
unielevotor/nwafu-AgentPlatformMCP):
git remote add origin https://github.com/unielevotor/nwafu-AgentPlatformMCP.git
git push -u origin mainConfirma que el repositorio sea Public (si es privado, la plataforma de agentes de destino debe poder acceder a las credenciales de GitHub).
En la configuración MCP de la plataforma de agentes, introduce el comando de inicio
uvx --from git+...de arriba e inyecta variables de entorno comoPDQQ_COOKIES.
Variables de entorno
Variable | Obligatoria | Descripción |
| Necesaria para herramientas del canal | Cookie de sesión del navegador para el canal QQ |
| Necesaria para herramientas del canal | Apunta al JSON exportado por |
| No | Identificador del canal, por defecto |
| No | ID de la subsección, por defecto |
| No | Intervalo entre solicitudes al canal (segundos), por defecto 0.3–0.8 |
| No | Tiempo de espera por solicitud (segundos), por defecto 30 |
Consulta .ene.example.
Ejemplo de salida (extracto)
# 🎓 西农校园频道 · 近期热门总结
> 数据来源:西北农林科技大学官方 QQ 频道 | 时间窗口:近 72 小时 | 帖子数:48
## 🔥 热度榜
1. **中元节鬼是真的多啊…**(👍7 · 💬1 · 08-27)
来源:[中元节鬼是真的多啊](https://pd.qq.com/g/inwafu1934/post/...)
## 🏆 竞赛(2)
- **关于举办2026年创新创业大赛的通知**(👍5 · 💬2 · 08-26)
来源:[…](https://pd.qq.com/g/inwafu1934/post/...)
## ⚠️ 重点信息(建议优先查看)
- [关于选课时间安排的通知](https://pd.qq.com/g/inwafu1934/post/...)# 📢 西北农林科技大学官网 · 近期信息查询
> 查询条件:分类=通知 | 关键词=植保学院 | 时间范围:近 90 天 | 结果数:12
1. **关于举办2026年植保论坛系列学术报告会(十七)的通知**(2026-08-26 · 植物保护学院)
[查看原文](https://ppc.nwafu.edu.cn/xzbg/...)Cumplimient y recomendaciones de uso
Solo se obtiene contenido visible públicamente, sin omitir el inicio de sesión, el pago ni la validación de permisos.
Ya inluye UA aleatorio, retardo aleatorio y reintentos en caso de fallo; al desplogar, no reduzcas el retardo para hacer raspados de alta frecuincia. Respeta los términos de servicio de la plataforma de destino y las leyes aplicables, como la Ley de Protección de Información Personal.
Para información importante (fechas límite de inscripción, caledario de exámenes, etc.), consulta siempre la fuente oficial; la salida de la herramienta es solo para un vistazo rápido.
La cookie del canal contiene identificadores de sesión; nunca la envíes a un repositorio público; inyéctala siempre mediante variables de entorno.
Preguntas frecuentes
Síntoma | Solución |
La herramienta del canal muestra «Cookie no configurada» | Ejecuta localmente |
La herramienta del canal reporta | La cookie ha caducado o falta el token anti-raspado; vuelve a exportarla |
Los resultados de búsqueda en el sitio web oficial están vacíos | Amplía |
No hay Edge/Chrome en la nube | Instala |
Estructura de directorios
src/nwafu_mcp/
server.py MCP 服务器与四个工具定义
qq_channel.py QQ 频道数据层(时间线/热评)
official_site.py 官网全文检索数据层
classify.py 帖子分类与热度评分
format.py Markdown 报告排版
config.py 环境变量与默认配置
export_cookies.py 本地导出频道 Cookie 的 CLI
tests/ 单元测试
scripts/mcp_smoke.py 端到端 MCP 冒烟测试(连接 stdio server 并调用全部工具)Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseAqualityCmaintenancecc98-mcp enables AI assistants to search, read, and aggregate posts from the Zhejiang University campus forum CC98, using official read-only API tools.101MIT
- FlicenseNot gradedqualityCmaintenanceProvides web search, page fetching, and A-stock data access (financial reports, announcements, research reports, penalties, IR meetings) via MCP tools.1
- FlicenseNot gradedqualityBmaintenanceMCP server that aggregates department notices and provides structured answers to queries about courses, schedules, and academic dates via tool calling.
- FlicenseAqualityCmaintenanceEnables interaction with Zhejiang University's learning platform (学在浙大 / 智云课堂) via MCP tools, allowing natural language commands to check todos, view schedules, fetch lecture transcripts, and submit homework.73
Related MCP Connectors
Search your AI chat history (ChatGPT, Claude, Codex) from any MCP client. Remote, private, read-only
Search Hacker News, Bluesky, and Substack from a single MCP interface
Markdown-first MCP server for Notion API with 8 composite tools and 39 actions.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/unielevotor/nwafu-AgentPlatformMCP'
If you have feedback or need assistance with the MCP directory API, please join our Discord server