fdu-cli
This server does not currently have a deployable release on Glama. Follow the repository's setup instructions to install and configure it for your MCP client, including any required credentials and local dependencies.
fdu-cli(fdu)
复旦校园服务的命令行和 MCP 服务,给 Claude Code、Codex 等编程助理用:让它直接查你的 DDL、课表、考试、成绩,下载课件,找学校通知和图书馆文献。
fdu login # 打开浏览器,登录复旦统一身份认证(一次即可)
fdu todo --days 7 # 这周要交、还没交的作业
fdu jw timetable # 本学期课表
fdu jw exams # 考试安排
fdu elearning files --course 线性代数 --search 第5讲
fdu library search --query "graph neural network" --year-from 2022
fdu mcp # 以 MCP 服务运行所有命令输出 JSON,适合程序和 AI 读取。完整命令见 skills/fdu-cli/reference.md,或运行 fdu services、fdu describe <服务.操作>。
能做什么
服务 | 命令 | 说明 |
eLearning |
| 课程、作业和截止时间、公告、课件列表和下载 |
教务系统 |
| 课表(含研究生)、考试、成绩和绩点、排名、培养方案完成情况、选课结果 |
校园卡 |
| 余额 |
宿舍 |
| 剩余电量 |
图书馆 |
| 各馆在馆人数;文献检索(不用登录) |
学校通知 |
| 教务处、研究生院、各院系官网通知(不用登录) |
树洞、旦克 |
| 树洞帖子、课程评价(需要树洞账号;校外自动走 WebVPN) |
学生邮箱 |
| 收件箱(IMAP 只读,需要客户端专用密码) |
对学校系统全部只读:不能提交作业、选课、发帖、发邮件,也不会改变邮件的已读状态。
Related MCP server: campus-edu-mcp
安装
需要 Node.js 20 或更新版本,以及 Chrome 或 Edge 浏览器(登录和部分页面要用)。
npm install -g github:sjy0630/fdu-cli
fdu --version从源码:
git clone https://github.com/sjy0630/fdu-cli.git
cd fdu-cli
npm install
npm link没有装 Chrome / Edge 时,可以把 FDU_BROWSER 设成任意 Chromium 内核浏览器的可执行文件路径,或者运行 npx playwright install chromium。
登录
fdu login # 复旦统一身份认证:eLearning、教务、校园卡、电量共用
fdu login --webvpn # 顺便建立 WebVPN 会话(校外访问树洞需要)
fdu status # 看看各系统的登录状态fdu login 会打开浏览器,你在学校自己的登录页面里输入学号密码、完成短信 / 企业微信验证,登录成功后窗口自动关闭。程序不读取表单、不保存密码,只保存登录后的 Cookie。登录过期后重新运行 fdu login 即可。
fdu hole login --email 学号@m.fudan.edu.cn # 树洞 / 旦克:密码只用来换令牌,不保存
fdu mail setup --user 学号@m.fudan.edu.cn # 学生邮箱:输入网页邮箱里生成的客户端专用密码本地保存了什么
都在 ~/.config/fdu-cli/default/(Windows:%APPDATA%\fdu-cli\default\;可用 FDU_HOME 改位置,--profile 切换多套登录)。目录权限 700,文件权限 600:
文件 | 内容 |
| 统一身份认证登录后的 Cookie(不含密码) |
| 树洞令牌 |
| 邮箱 IMAP 配置和客户端专用密码(明文) |
这些文件能代表你登录学校系统:不要同步到网盘、提交到仓库或发给别人。fdu logout、fdu hole logout、fdu mail forget 分别删除。
接入 Claude Code
方式一:插件(技能 + MCP 服务一起装)。先按上面装好 fdu,然后在 Claude Code 里:
/plugin marketplace add sjy0630/fdu-cli
/plugin install fdu-cli@fdu-cli方式二:只接 MCP 服务
claude mcp add --scope user fudan -- fdu mcp方式三:只装技能(让 Claude 通过命令行调用 fdu):把 skills/fdu-cli 文件夹复制到 ~/.claude/skills/。
接入 Codex
在 ~/.codex/config.toml 里加上:
[mcp_servers.fudan]
command = "fdu"
args = ["mcp"]技能:把 skills/fdu-cli 文件夹复制到 ~/.codex/skills/。
其他支持 MCP 的客户端(Cursor、Cline、Claude Desktop 等)同理:命令 fdu,参数 mcp,stdio 方式。
输出格式
{ "ok": true, "op": "jw.exams", "data": [ ... ] }
{ "ok": false, "op": "jw.grades", "error": { "code": "NEED_LOGIN", "message": "复旦账号没有登录或登录已过期。", "hint": "运行 `fdu login` ……" } }退出码 | 含义 |
0 | 成功 |
1 | 学校系统出错、网络问题、页面改版等 |
2 | 参数错误、命令不存在 |
3 | 需要登录或配置( |
时间都是 ISO 格式(UTC,末尾 Z),常用字段另附 *Shanghai(北京时间)。加 --compact 输出单行 JSON。
隐私
成绩、绩点、培养方案、邮件标成了隐私数据(
fdu services里sensitive: true)。技能会提醒编程助理:只用来回答你本人的问题,不写进代码仓库、提交信息或别的服务。这些数据只在你的电脑和学校系统之间传输;交给哪个 AI 模型由你使用的编程助理决定。
不想让助理看到某类数据时,就不要在它里面登录对应的账号,或者用
--profile分开。
开发
npm install
npm run dev -- jw exams # 不打包直接运行
npm test # 单元测试(虚构数据,不连学校系统)
npm run check # 类型检查 + 测试 + 打包
npm run docs # 改了命令后重新生成 skills/fdu-cli/reference.md代码结构和约定见 AGENTS.md。
说明
本项目与复旦大学官方无关。学校系统随时可能改版,读不到时会返回
FORMAT_CHANGED,欢迎提 issue。部分接口地址参考了社区项目(如旦挞 / DanXi)公开的接口信息,没有使用它们的代码。
许可
MIT
This server cannot be deployed
Maintenance
Related MCP Connectors
Connect AI assistants to Edusign attendance, courses, learners, documents, and API docs via OAuth.
Search university course materials, your flashcards, quizzes, streak and quota. All tools read-only.
Read-only access to Epivo's live course catalogue for AI agents.
PLATO (Pusan National University LMS) MCP server via Moodle Web Service API + ubboard scraping
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceEnables AI assistants to query the UEx virtual campus (CVUEx/AVUEx) in natural language, including deadlines, grades, announcements, forums, and course materials, using the user's own account with read-only access.MIT
- AlicenseAqualityBmaintenanceEnables AI assistants to read a student's own university academic data — class timetables, exam schedules, grades, available terms, and empty classrooms — from Qiangzhi (jsxsd) or Zhengfang V9 systems via a session imported from the browser. All access is strictly read-only, never performing course selection, withdrawal, or evaluations.61MIT
- AlicenseNot gradedqualityBmaintenanceEnables AI assistants to inspect enrolled courses, extract readable text from course documents, track upcoming deadlines, view announcements, and retrieve assignment details through the platform’s REST API.MIT
- AlicenseAqualityBmaintenanceEnables AI assistants to connect to a student's university learning platform through Lightpanda, supporting consultation of courses, activities, deadlines, calendar events, downloadable materials, and assignment submissions via natural-language requests.10MIT