课程查询服务器

ETH VVZ MCP Server是一个非官方的ETH Zurich课程目录查询工具,提供自然语言查询功能,支持AI助手访问2500+课程数据。

  • by fonCki
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 fonCki/eth-mcp

使用说明

ETH VVZ MCP服务器

苏黎世联邦理工学院课程目录的非官方MCP(模型上下文协议)服务器。

一个社区构建的工具,可以使用您的人工智能助手使用自然语言查询苏黎世联邦理工学院的2500多门课程。

备注:这是一个非官方项目,与苏黎世联邦理工学院无关或不受其认可。课程数据是从公开可用的数据中抓取的 ETH VVZ 网站。

安装

备注:预抓取数据库(16 MB)通过以下方式分发 Docker 中心,而不是这个存储库。拉动图像即可立即开始。

docker pull alfonsoridao/eth-mcp:latest

特性

  • 预加载数据库:带有完整2026年春季航线数据的船只-无需等待!
  • 自动更新:自动检测和抓取新学期
  • 完整课程数据:摘要、时间表、讲师、学分、能力
  • MCP兼容:适用于Claude Desktop、Claude Code和任何MCP客户端
  • 永久存储:使用Docker卷进行数据持久化

快速开始

克劳德桌面版

添加到您的 claude_desktop_config.json:

{
  "mcpServers": {
    "eth-courses": {
      "command": "docker",
      "args": [
        "run", "--rm", "-i",
        "-v", "eth-mcp-data:/data",
        "alfonsoridao/eth-mcp:latest"
      ]
    }
  }
}

克劳德代码

claude mcp add eth-courses -- docker run --rm -i -v eth-mcp-data:/data alfonsoridao/eth-mcp:latest

手动测试

# Pull and run (first time uses embedded database)
docker run --rm -it -v eth-mcp-data:/data alfonsoridao/eth-mcp:latest

可用的MCP工具

连接后,您的AI可以访问:

工具 说明
read_query 在课程数据库上执行SELECT查询
list_tables 显示所有可用表格
describe_table 显示表架构和列

查询示例

问你的AI:

  • “显示2026年春季的所有计算机科学课程”
  • “查找周二学分少于4的课程”
  • “机器学习的先决条件是什么?”
  • “列出X教授教授教授的所有课程”
  • “查找与我当前日程不重叠的课程”

数据库模式

主要表格

表 说明
learningunit 核心课程数据(标题、学分、部门、摘要、内容)
course 课程表和时间信息
lecturer 讲师信息
section 分级部门/项目结构
unitlecturerlink 将课程链接到讲师
unitsectionlink 将课程链接到各个部分

关键字段 learningunit

  • id, number -课程标识符(例如“252-0211-00L”)
  • title, title_english -课程名称
  • credits -ECTS学分
  • department -部门代码
  • objective, content, abstract -课程描述
  • exam_type, exam_mode -考试详情
  • language -教学语言

关键字段 course 日程

  • unit_id -链接到 learningunit.id
  • type -“V”(讲座)、“U”(练习)、“P”(实验)
  • timeslots -带有明细表的JSON数组

关键字段 lecturer

  • surname, name -讲师姓名

环境变量

变量 默认值 描述
ETH_SEMESTER 汽车 部队特定学期(例如“2026S”)
FORCE_REFRESH 0 设置为“1”以强制重新刮擦
SCRAPE_UPCOMING 1 也刮下即将到来的学期

例子

强制刷新特定学期

docker run --rm -i -v eth-mcp-data:/data \
  -e ETH_SEMESTER=2026S \
  -e FORCE_REFRESH=1 \
  alfonsoridao/eth-mcp:latest

直接查询数据库(调试)

docker run --rm -it -v eth-mcp-data:/data --entrypoint sqlite3 \
  alfonsoridao/eth-mcp:latest /data/vvz.db \
  "SELECT title, credits FROM learningunit LIMIT 10"

运作原理

  1. 首次运行:使用嵌入式数据库(无需抓取!)
  2. 后续运行:检查新学期数据是否可用
  3. 自动更新:仅在学期变化时才报废(通常为2月/8月)
  4. MCP服务器:在stdio上启动AI通信

数据源

课程数据是从官方网站上抓取的 苏黎世联邦理工学院VVZ 使用优秀 直观显示器 项目。

演出

  • 首次运行:即时(使用嵌入式数据库)
  • 学期更新:30-60分钟(为礼貌起见,收费有限)
  • 查询响应:<100ms

故障排除

集装箱立即出口

MCP服务器在stdio上运行。为了进行测试,请使用 -it 标记或通过MCP客户端连接。

数据似乎已经过时

docker run --rm -i -v eth-mcp-data:/data -e FORCE_REFRESH=1 alfonsoridao/eth-mcp:latest

检查数据库内容

docker run --rm -v eth-mcp-data:/data alpine cat /data/.metadata.json

许可证

MIT许可证-请参阅 许可证 了解详情。

鸣谢

作者

阿方索·里多- @阿方索


在人工智能的帮助下为ETH社区制作