Cau Portal Open
FreeNot checked农大门户(cau-portal):中国农业大学通知公告 DSH 插件 + 爬虫/AI 加工管道(开源工具,数据由使用者自建)
About
农大门户(cau-portal):中国农业大学通知公告 DSH 插件 + 爬虫/AI 加工管道(开源工具,数据由使用者自建)
README
给中国农业大学学生用的 DeepSeek Harness(DSH)插件与数据管道:自动抓取学院/学校通知公告,AI 生成摘要/分类/重要度/截止日期,在 DSH 侧边栏面板浏览,并可在对话中直接查询(MCP 工具)。
本项目只开源工具本身:数据由每位使用者自己收集、自己保管,不作为工具服务的一部分。校内数据版权归学校所有,公开页面信息仅作个人学习使用(见文末免责声明)。
维护者:@ZBber-lab · 欢迎提 Issue / 建议
功能特性
- 侧边栏面板:右侧全高抽屉,今日要览 / 我的事项(截止提醒)/ 栏目频道 / 关注与归档 / 文章阅读(原文 + AI 摘要 + deadline 高亮 + 一键引用到对话)
- 对话查询:6 个 MCP 工具(最新通知 / 关键词检索 / 截止事项 / 站点目录 / 用量统计 / 文章详情),AI 可以直接在对话中回答"最近有什么通知""推免报名截止几号"
- AI 加工:DeepSeek 模型生成一句话摘要、分类(通知/新闻/讲座/竞赛/评奖/选课/学术)、重要度、截止日期(本地校验防幻觉)
- 数据自主:数据仓库可配置(owner/repo),完全由你掌控;令牌仅存本机浏览器
- 定时管道:GitHub Actions 每 2 小时自动抓取 + AI 加工(无需电脑开机)
架构
┌─────────────┐ GitHub Contents API / 代理 ┌──────────────────┐
│ DSH 浏览器 │ ──────────────────────────────▶ │ 你的数据仓库 │
│ 侧边栏面板 │ │ data/ │
│ (插件) │ │ ├ index.json │
└──────┬──────┘ │ ├ feed/ 栏目列表 │
│ │ ├ articles/ 全文 │
┌──────▼──────┐ MCP(stdio) │ └ usage.jsonl │
│ 对话查询 │ ──────────────────────────────▶ └──────────────────┘
│ mcp__cau__*│
└─────────────┘
▲
│ 工具代码公开;数据各自收集
┌───────┴────────────────────────────────────────┐
│ 爬虫管道 tools/scraper(本仓库,公开) │
│ 抓取 → AI 加工 → 提交到**你自己的**数据仓库 │
└────────────────────────────────────────────────┘
数据流:爬虫抓取公开网页 → AI 加工(DeepSeek API)→ 产物提交到你的数据仓库 data/ → 插件与 MCP 读取展示。数据仓库与你绑定,与工具代码解耦。
快速开始
前置要求
- DeepSeek Harness(DSH)web 环境
- Node.js 18+
- 一个 GitHub 账号与一个私有仓库(存放你的数据;见下)
- DeepSeek API Key(管道 AI 加工用;
deepseek-v4-flash等)
凭据与服务来源一览
| 需要什么 | 从哪获取 | 用途 |
|---|---|---|
| DeepSeek API Key | platform.deepseek.com → 注册/登录 → API Keys → 创建(账户需有余额) | 管道 AI 加工、面板按需摘要 |
| GitHub 数据仓 | github.com/new → 新建 私有 仓 | 存放你的 data/ |
| GitHub 细粒度令牌 | github.com/settings/personal-access-tokens → Fine-grained tokens → 选你的数据仓 → Contents: Read(+/Write) | 面板/MCP 读你的数据 |
| cron-job.org(调度桥) | console.cron-job.org → 免费注册 → 新建 job | 定时触发抓取(免费私有仓的 schedule 被禁用,需外部触发) |
| SMTP 邮箱授权码 | QQ:设置→账户→SMTP生成授权码;163:设置→POP3/SMTP/IMAP授权密码;Outlook:账户→安全→应用密码 | 每日邮件报告(可选) |
安全:这些 key/令牌只服务于你自己的数据与调度;除调度桥的令牌需填入 cron-job.org(第三方)外,其余凭据只存本机。
第 1 步:安装插件
dsh plugin --profile web add "github:ZBber-lab/cau-portal-open"
(这是官方仓库;若你 fork 了自己的一份,把地址换成你自己的 github:你的用户名/仓库名。安装后侧边栏出现「农大门户」入口。)
第 2 步:准备数据仓库
- 新建(或复用)一个 GitHub 仓库(建议私有),作为你的数据仓;
- 在该仓库开通一个细粒度令牌:GitHub → Settings → Developer settings → Personal access tokens → Fine-grained tokens → 选「Only select repositories」→ 勾选你的数据仓 → Permissions → Contents: Read(如需面板「删除」功能再加 Read and write);令牌只存在你自己浏览器里;
- 仓库内建
data/目录(可先留空,管道会自动生成内容)。
第 3 步:配置插件
打开 DSH 侧边栏 →「设置」:
- 数据源:把「数据仓库(owner/repo)」填成你的数据仓(如
yourname/cau-data); - 令牌管理:登记第 2 步的令牌;
- AI 加工 · 模型配置:选择管道/面板按需加工用的模型(独立配置槽,与主对话模型解耦)。
第 4 步:运行管道攒数据
本地试跑(在插件仓库目录):
node tools/scraper/crawl.mjs --pages 2 --articles 8 # 抓取
DEEPSEEK_API_KEY=sk-... node tools/scraper/enrich.mjs --limit 8 # AI 加工
Windows PowerShell 用户:用
$env:DEEPSEEK_API_KEY='sk-...'; node tools/scraper/enrich.mjs --limit 8(第 4 步的DEEPSEEK_API_KEY=... node ...是 macOS/Linux shell 语法)。
确认 data/ 出现 index.json / feed/ / articles/ 后,提交推送,插件即可读到数据。
第 5 步:定时自动抓取(可选)
把 .github/workflows/crawl.yml 复制到你自己的数据仓库,并配置仓库 Secret DEEPSEEK_API_KEY(AI 加工用;缺省时抓取照常、AI 加工跳过)。
本 workflow 用 workflow_dispatch(手动触发)而非原生 schedule,因为 GitHub 免费私有仓的 schedule 触发器不生效。要实现「每 2 小时自动」,需用外部触发器调用 Actions 的 dispatch 接口,常用 cron-job.org(免费):
- 在数据仓建一个尽量最小权限的细粒度令牌:仅选该数据仓,Permissions → Actions: Read & write;
- 到 cron-job.org 新建一个 cron job:
- Method:
POST,URL:https://api.github.com/repos/<你的用户名>/<你的数据仓>/actions/workflows/crawl.yml/dispatches - Headers:
Authorization: Bearer <第 1 步的令牌>、Accept: application/vnd.github+json - Body:
{"ref":"main"}
- Method:
- 设执行频率(如每 2 小时),保存即可。
安全提醒:该调度令牌只用于触发,请只授予
Actions: Read & write一个最小权限,且不要写进任何仓库或共享给他人。
第 6 步:接入对话查询(MCP,推荐)
想让 AI 直接在对话里查询(如最近有什么通知、推免报名截止几号),需把 MCP 服务器接入 DSH:
- 安装 MCP 依赖(一次性):
cd tools/mcp && pnpm install - 注册 MCP client:在 DSH profile 的
cordis.patch.yml里加(Windows:C:\Users\<你>\.dsh\profiles\web\cordis.patch.yml;macOS/Linux:~/.dsh/profiles/web/cordis.patch.yml;@deepseek-ai/dsh-mcp-client是 DSH 内置插件;<...>换成你的实际路径):- id: mcp-cau name: '@deepseek-ai/dsh-mcp-client' serverName: cau transport: stdio command: <Node 可执行文件路径,如 D:\nodejs1\node.exe> args: [<本仓库路径>\tools\mcp\index.mjs] cwd: <本仓库路径>\tools\mcp env: CAU_GITHUB_TOKEN: <你的数据仓只读令牌> # 与面板令牌一致 - 重启 dsh web,对话里即可使用
mcp__cau__*工具(共 6 个:最新通知 / 检索 / 截止事项 / 站点目录 / 用量统计 / 文章详情)。
说明:MCP 服务器与面板都读你配置的数据仓库;两者共用同一个只读令牌(
CAU_GITHUB_TOKEN)。
配置项一览(设置页)
| 模块 | 说明 |
|---|---|
| AI 加工 · 模型配置 | 独立模型槽 + 用量柱状图(次数/token/费用,7/30/90 天) |
| 令牌管理 | 多令牌登记:值/过期日/剩余天数/逐枚开关 |
| 数据源 | 数据仓库(owner/repo)、GitHub 云端开关、连通性检查 |
| 面板偏好 · 引用协同 | 自动附加阅读上下文、引用到对话、面板固定 |
| 待办提醒 · 关注 | 关注规则(关键词/来源/重要度)、系统通知 |
| 每日邮件报告 | 每天定时把今日高重要通知/截止事项推到邮箱 |
安全与隐私
- 令牌 / API Key / 邮箱授权码:只存在本机(浏览器 localStorage / 本地工具目录),不进仓库、不进日志、不经过任何第三方服务;
- 数据仓库完全由你掌控,可随时停更或删除;
- 插件代码不含任何凭据与个人数据;
- 本仓库为纯工具代码开源:不含任何校园系统的登录自动化、不内置任何账号/凭据,仅在
sites.json中面向公开页面进行抓取。
版权说明
- 本仓库为开源版,不使用中国农业大学官方校徽、校名题字等学校标识素材:界面徽标采用中性「CAU」文本、题字采用系统宋体文字,仓库内不包含任何官方校徽/校名文件。
- 本项目抓取的数据来源于各学校/单位公开网页,版权归原作者/单位所有;本项目不存储、不提供任何数据服务,仅提供工具与数据处理能力。
目录结构
├── src/ # 插件源码(服务端路由 + 客户端面板)
├── lib/ # 构建产物(随包发布)
├── tools/
│ ├── scraper/ # 爬虫 + AI 加工管道(零重型依赖,Node fetch 手写解析)
│ └── mcp/ # MCP 服务器(6 个查询工具;需 pnpm install + cordis.yaml 注册,见快速开始第 6 步)
├── assets/ # 开发期素材/脚本(不含官方校徽、校名素材)
├── sites.json # 站点/栏目配置(数据驱动,可自行增改)
├── docs/AI-SETUP-GUIDE.md# 给 AI agent 的配置指南(见下)
└── .github/workflows/ # Actions 定时抓取模板
站点/栏目是数据驱动的(sites.json):默认内置中国农业大学土地科学与技术学院 / 教务处 / 校新闻网 / 统一门户的栏目;想适配其他院校或栏目,改 sites.json 即可。
给 AI 看的文档
本项目同时提供 docs/AI-SETUP-GUIDE.md——写给 DSH 里的 AI agent 看的配置指南:把本文件路径发给 AI,或让用户把文件内容贴给 AI,AI 就能按步骤指导用户完成完整配置(安装 → 令牌 → 数据源 → 跑管道 → 验证)。
免责声明
- 本项目为按现状(AS-IS)提供的个人学习/效率工具,不承担任何因使用产生的责任;
- 数据由使用者自行收集与保管(见「数据自主」):使用者应遵守目标网站的使用条款、合理控制抓取频率,并遵守所在学校/单位的网络与信息系统使用规定;涉及个人信息的内容请谨慎处理并由使用者自行承担合规责任;
- 本项目不包含、不鼓励任何规避访问控制、批量注册、账号共享或攻击性行为。
许可证
见 LICENSE。
Installing Cau Portal Open
This server has no published package — it is built from source. Open the repository and follow its README.
▸ github.com/ZBber-lab/cau-portal-openFAQ
Is Cau Portal Open MCP free?
Yes, Cau Portal Open MCP is free — one-click install via Unyly at no cost.
Does Cau Portal Open need an API key?
No, Cau Portal Open runs without API keys or environment variables.
Is Cau Portal Open hosted or self-hosted?
Self-hosted: the server runs locally on your machine via the install command above.
How do I install Cau Portal Open in Claude Desktop, Claude Code or Cursor?
Open Cau Portal Open on unyly.org, pick your client tab (Claude Desktop, Claude Code, Cursor) and press Install — the config is generated automatically, no JSON editing.
Related MCPs
Fetch
Web content fetching and conversion for efficient LLM usage.
Roblox Studio
Enables AI coding tools to control Roblox Studio for workspace exploration, instance manipulation, and script management. It provides tools for playtesting, sce
by paralovAWS KB Retrieval
Retrieval from AWS Knowledge Base using Bedrock Agent Runtime.
by modelcontextprotocolSpring AI MCP Server
Provides auto-configuration for setting up an MCP server in Spring Boot applications.
llm-analysis-assistant
A very streamlined mcp client that supports calling and monitoring stdio/sse/streamableHttp, and can also view request responses through the /logs page. It also
by xuzexin-hzMCP-Agent
A simple, composable framework to build agents using Model Context Protocol by [LastMile AI](https://www.lastmileai.dev)
by lastmile-aiSpring AI MCP Client
Provides auto-configuration for MCP client functionality in Spring Boot applications.
mcp.natoma.ai
A Hosted MCP Platform to discover, install, manage and deploy MCP servers by [Natoma Labs](https://www.natoma.ai)
MCPHub
Website to list high quality MCP servers and reviews by real users. Also provide online chatbot for popular LLM models with MCP server support.
MCP Servers Rating and User Reviews
Website to rate MCP servers, write authentic user reviews, and [search engine for agent & mcp](http://www.deepnlp.org/search/agent)
Compare Cau Portal Open with
Not sure what to pick?
Find your stack in 60 seconds
Author?
Embed badge for your README
Browse similar
All ai MCPs
