nwafu-mcp
nwafu-mcp · Набор MCP-инструментов для информации о кампусе Северо-Западного университета сельского и лесного хозяйства
Предоставляет агентам, развёрнутым на любой платформе ИИ-агентов, набор инструментов, совместимых с протоколом MCP, охватывающий три ключевых возможности:
Сводка популярного в кампусном канале: собирает недавние популярные посты официального QQ-канала Северо-Западного университета сельского и лесного хозяйства (pd.qq.com/g/inwafu1934), сортирует их по уровню вовлечённости и автоматически распределяет по категориям «Мероприятия / Конкурсы / Уведомления / Рекомендации / Советы / Помощь». Каждая важная запись содержит заголовок и ссылку на исходный пост, что гарантирует прослеживаемость.
Быстрый поиск по официальному сайту: использует полнотекстовый индекс официального сайта университета (www.nwafu.edu.cn) и новостного портала для быстрого поиска последних мероприятий, конкурсов, уведомлений и вакансий. Поддерживается передача таких ключевых слов, как «Факультет защиты растений», «Учебный отдел», для сужения области поиска.
Пользовательский поиск по нескольким сайтам: автоматически разбивает вопрос пользователя на поисковые слова, одновременно ищет по полнотекстовому индексу официального сайта и недавним постам кампусного канала, объединяет результаты и выводит их в удобочитаемом Markdown со ссылками на оригиналы.
Функциональные возможности
Стандартная реализация MCP: на базе официального Python SDK
mcp(FastMCP), транспорт stdio; можно напрямую подключать Claude Desktop, Cursor, Windsurf и любые платформы ИИ-агентов, поддерживающие MCP.Проверяемость информации: каждый итоговый пункт содержит заголовок источника и ссылку на оригинал; важная информация выносится в отдельные блоки «Ключевые замечания / Замечания об актуальности».
Умная категоризация: движок правил автоматически относит посты канала к категориям «Рекомендации / Советы / Мероприятия / Конкурсы / Уведомления / Помощь»; внутри групп сортировка по популярности (взвешенные лайки + комментарии).
Точный поиск по ключевым словам: поиск по официальному сайту поддерживает произвольные ключевые слова для сужения области (например, название факультета, отдела или события).
Устойчивость и отказоустойчивость: таймауты запросов, повторы, случайные задержки для ограничения частоты, предупреждения об истечении Cookie; сбой одного инструмента не влияет на остальные.
Конфиденциальность и соответствие: собирается только публично доступный контент, без обхода проверок входа или прав доступа; Cookie передаются через переменные окружения и не сохраняются в репозитории.
Related MCP server: NanoSearchMCP
Список инструментов
Инструмент | Назначение | Ключевые параметры |
| Интеллектуальная сводка недавних популярных постов QQ-канала кампуса (рейтинг популярности + категории + ключевая информация) |
|
| Быстрый поиск и сводка последних уведомлений/мероприятий/конкурсов/вакансий с официального сайта |
|
| Полнотекстовый поиск по официальному сайту (произвольные ключевые слова) |
|
| Пользовательский поиск по «официальный сайт + кампусный канал» |
|
Все инструменты возвращают текст в формате Markdown со следующей структурой: источник данных, время сбора, условие запроса, список результатов (заголовок / дата / источник / аннотация / ссылка) и ключевые замечания.
Принцип работы
QQ-канал кампуса
Веб-версия канала Tencent полностью рендерится на стороне клиента; публичные данные поступают через шлюз protobuf-over-JSON:
POST https://pd.qq.com/qunng/guild/gotrpc/noauth/trpc.qchannel.commreader.ComReader/<Method>
x-oidb: {"uint32_service_type": 11 时间线 | 5 评论}Анонимно можно читать публичный контент, но шлюз требует браузерный сессионный Cookie (p_uin + uuid + EO-Bot-Js-Token). Инструмент:
по умолчанию загружает N последних постов (по времени публикации) из подраздела «Постовая площадь» (
670126629);оценивает популярность как
число лайков + 2 × число комментариеви выбирает самые горячие посты в окне;автоматически классифицирует посты с помощью правил; важная информация (уведомления/объявления/регистрация/дедлайны/экзамены и т. п.) выделяется отдельно;
опционально собирает популярные комментарии для постов из рейтинга (
GetFeedComments).
Примечание: интерфейс «сортировка по популярности» у
GetGuildFeedsпо факту возвращает пустые данные, поэтому рейтинг строится по схеме «недавние посты × вовлечённость», что больше соответствует смыслу «недавнее и популярное».
Официальный сайт университета
Главный сайт и новостной портал используют полнотекстовый поиск 通元 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...— индекс главного сайта (охватывает все факультеты и отделы университета);для каждой категории формируются поисковые запросы (уведомления/объявления, мероприятия/лекции/форумы, конкурсы/соревнования, вакансии и т. д.); после объединения с ключевыми словами пользователя выполняется постраничная загрузка с разбором заголовков, дат, источников, аннотаций и ссылок на оригиналы;
временной диапазон по умолчанию — последние 90 дней (соответствует фильтрам индекса на 3/6/12 месяцев).
Быстрый старт (локальный запуск)
cd nwafu-mcp
uv sync --extra dev1. Настройка Cookie канала (необязательно, нужно только для инструментов канала)
uv run nwafu-export-cookies --out cookies.jsonСкрипт откроет страницу канала в локальном Edge/Chrome, создаст сеанс и экспортирует Cookie. Затем значение cookie_header из cookies.json нужно записать в переменную окружения:
$env:PDQQ_COOKIES = "p_uin=xxx; uuid=xxx; EO-Bot-Js-Token=xxx"
# 或
$env:NWAFU_COOKIE_FILE = "F:\path\to\cookies.json"Cookie со временем истекают (анти-бот токен привязан к экземпляру браузера); при облачном развёртывании рекомендуется периодически их обновлять.
2. Прямое тестирование функций инструмента (без 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. Запуск в качестве MCP-сервера
uv run nwafu-mcpПодключение к 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 / универсальные платформы (в формате 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"
}
}
}
}Также можно установить пакет через pip install git+https://github.com/unielevotor/nwafu-AgentPlatformMCP и запускать его напрямую командой nwafu-mcp.
Шаги развёртывания на GitHub
Отправьте в GitHub-репозиторий (
unielevotor/nwafu-AgentPlatformMCP):
git remote add origin https://github.com/unielevotor/nwafu-AgentPlatformMCP.git
git push -u origin mainУбедитесь, что репозиторий имеет статус Public (для частного репозитория целевая платформа агентов должна иметь доступ к учётным данным GitHub).
В конфигурации MCP на платформе агентов укажите приведённую выше команду запуска
uvx --from git+...и передайте переменные окружения, напримерPDQQ_COOKIES.
Переменные окружения
Переменная | Требуется | Описание |
| нужно для инструментов канала | браузерный сессионный Cookie QQ-канала |
| нужно для инструментов канала | путь к JSON, экспортированному |
| нет | ID гильдии, по умолчанию |
| нет | ID подраздела, по умолчанию |
| нет | интервал между запросами к каналу (сек), по умолчанию 0.3–0.8 |
| нет | таймаут одного запроса (сек), по умолчанию 30 |
См. .env.example.
Пример вывода (фрагмент)
# 🎓 西农校园频道 · 近期热门总结
> 数据来源:西北农林科技大学官方 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/...)Соответствие требованиям и рекомендации
Собирайте только публично видимый контент, не обходите проверки входа, оплаты или прав доступа.
Уже встроены случайный User-Agent, случайные задержки и повторы при сбоях; при развёртывании не уменьшайте задержки для высокочастотного сбора данных и соблюдайте условия обслуживания целевых платформ и применимые законы, включая Закон о защите персональной информации.
Для важной информации (дедлайны регистрации, расписания экзаменов и т. п.) ориентируйтесь на официальные источники; вывод инструмента предназначен только для быстрого просмотра.
Cookie канала содержат идентификаторы сессии; не загружайте их в публичный репозиторий, обязательно передавайте через переменные окружения.
Часто задаваемые вопросы
Симптом | Решение |
Инструмент канала сообщает «Cookie не настроены» | выполните локально |
Инструмент канала возвращает | Cookie истекли или отсутствует анти-бот токен; экспортируйте их заново |
Пустые результаты поиска по официальному сайту | увеличьте |
Нет Edge/Chrome в облаке | установите |
Структура каталога
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