ynufe-campus-mcp
云南财经大学教务系统 MCP 服务器 — 将强智教务系统 (xjwis.ynufe.edu.cn) 的登录与数据查询封装为 Model Context Protocol 工具。
本包是 NINIYOYYO/ynufe-campus-app 仓库的独立 Python 子包:前端 App(TypeScript/Capacitor)负责移动端体验,本包为 AI Agent / CLI 提供同一套教务数据的程序化访问。
✨ 功能
| 工具 | 说明 |
|---|---|
ynufe_login |
登录(自动 OCR 验证码,无需人工输入) |
ynufe_profile |
学籍信息(姓名/院系/专业/班级) |
ynufe_grades |
成绩单(GPA / 学分 / 全部明细,可按学期过滤) |
ynufe_timetable |
课表(按日期定位周次,支持校区过滤) |
ynufe_semester |
学期信息(当前周次 / 总周数 / 校区模式) |
ynufe_exams |
考试安排 |
ynufe_notices |
教务通知 / 公告(标题/时间/未读状态) |
ynufe_plan |
培养方案(课程总表 / 学分缺口 / 未修必修) |
ynufe_logout |
退出登录 |
🔒 凭据安全
- 绝不硬编码 学号 / 密码
- 凭据仅通过 MCP 工具参数或环境变量传入:
export YNUFE_USER="你的学号"
export YNUFE_PASS="你的密码"
- 所有数据只落在使用者本地,不经任何第三方服务器中转
🚀 安装
方式一:uvx(推荐,一行安装)
uvx ynufe-campus-mcp
方式二:从源码
uv sync # 安装依赖
uv run ynufe-campus-mcp
方式三:交互式 CLI
YNUFE_USER=学号 YNUFE_PASS=密码 uv run ynufe-campus-mcp --interactive
🔌 接入 MCP 客户端
以 Claude Desktop / Hermes / Cursor 为例,在 MCP 配置中加入:
{
"mcpServers": {
"ynufe": {
"command": "uvx",
"args": ["ynufe-campus-mcp"],
"env": {
"YNUFE_USER": "你的学号",
"YNUFE_PASS": "你的密码"
}
}
}
}
🧪 自测(无需真实凭据)
uv run python tests/mcp_protocol_test.py
验证 MCP 协议握手与 9 个工具的 tools/list 声明,不发起真实登录。
⚠️ 免责声明
本项目为个人学习用途,仅供云财在校生自用,请遵守学校网络与信息系统使用规定。强智教务系统接口可能变更,作者不保证持续可用。
📄 License
MIT — 见 LICENSE
Metadata
Release files for ynufe-campus-mcp 0.2.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| ynufe_campus_mcp-0.2.0.tar.gz | 48.6 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| ynufe_campus_mcp-0.2.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 71.4 kB
Release files / ynufe_campus_mcp-0.2.0.tar.gz
| Download URL | ynufe_campus_mcp-0.2.0.tar.gz |
|---|---|
| Size | 48.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
9f97155985060184f7ef134292143197c22c41ebcf0faa88be4c0b8ab610fb38
|
|
BLAKE2b-256 checksum How to use checksums |
47cfeacc1852662e339d01005b18da1893ce5302a46ad44ad238a355ba8818f7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.11.6 {"installer":{"name":"uv","version":"0.11.6","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Debian GNU/Linux","version":"13","id":"trixie","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Release files / ynufe_campus_mcp-0.2.0-py3-none-any.whl
| Download URL | ynufe_campus_mcp-0.2.0-py3-none-any.whl |
|---|---|
| Size | 22.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
ffbe3bbca7333a232afad0d5c7b40470a8f45632a8ab5cfe0f6b76b816e12ae5
|
|
BLAKE2b-256 checksum How to use checksums |
14127c2a7757cda47964ea0400791d50e3fa7a4393a9e6cd44139ad174adaa87
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.11.6 {"installer":{"name":"uv","version":"0.11.6","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Debian GNU/Linux","version":"13","id":"trixie","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|