返回市场
萨比斯-MCP服务器

萨比斯-MCP服务器

作者:hanifisenturk2 星标更新:2025-06-27

项目介绍

SABIS MCP Server 🎓

这是一个用于从萨卡里亚大学SABIS(学生信息系统)访问学术成绩的模型上下文协议(MCP)服务器。该服务器使AI助手和应用程序能够通过自动化网络爬虫安全地检索学生的学术信息。

🌟 特性

  • 🔐 安全认证:使用环境变量进行凭证管理
  • 📊 全面的成绩检索:获取详细的学术信息,包括:
    • 课程代码和名称
    • 考核类型(期中考试、小测验、作业、项目、期末考试)
    • 成绩百分比和权重
    • 最终字母等级
    • 学年和学期信息
  • 🤖 MCP集成:与Claude、Cursor和其他支持MCP的AI助手兼容
  • 🚀 无头浏览器自动化:使用Puppeteer进行可靠的网络爬虫操作
  • ⚡ 实时数据:直接从SABIS系统获取实时数据

🛠️ 技术栈

  • TypeScript - 类型安全开发
  • Puppeteer - 网络爬虫和浏览器自动化
  • Model Context Protocol SDK - MCP服务器实现
  • Node.js - 运行时环境

📋 要求

  • Node.js 18+
  • TypeScript 5.8+
  • 有效的SABIS凭证(萨卡里亚大学学生账户)

🚀 安装

  1. 克隆仓库:

    git clone https://github.com/your-username/sabis-mcp-server.git
    cd sabis-mcp-server
    
  2. 安装依赖项:

    npm install
    
  3. 设置环境变量: 在根目录创建一个.env文件:

    USERNAME=your_sabis_username
    PASSWORD=your_sabis_password
    
  4. 构建项目:

    npm run build
    

⚙️ 配置

环境变量

变量描述必需
USERNAME您的SABIS学生ID/用户名✅ 是
PASSWORD您的SABIS账户密码✅ 是

MCP客户端配置

您有两种方法来配置您的MCP客户端的凭证:

方法1:在MCP配置中使用环境变量

在您的MCP客户端配置中添加服务器,并直接在配置中添加凭证:

{
  "mcpServers": {
    "sabis-mcp-server": {
      "command": "node",
      "args": [
        "/path/to/sabis-mcp-server/build/index.js"
      ],
      "env": {
        "USERNAME": "your_student_number",
        "PASSWORD": "your_password"
      }
    }
  }
}

方法2:使用.env文件

或者,在项目目录中创建一个.env文件,并从MCP配置中移除env属性:

创建.env文件:

USERNAME=your_student_number
PASSWORD=your_password

MCP配置:

{
  "mcpServers": {
    "sabis-mcp-server": {
      "command": "node",
      "args": [
        "/path/to/sabis-mcp-server/build/index.js"
      ]
    }
  }
}

💡 提示:方法1对于像Cursor这样的MCP客户端更方便,而方法2更适合将凭证与配置文件分开。

🎯 使用

配置完成后,您可以使用兼容的AI助手来使用MCP服务器:

可用工具

get-grades

从SABIS系统检索学术成绩。

示例用法:

// 通过支持MCP的AI助手
"获取我的SABIS成绩"

响应格式:

登录成功! 🎓

学年:2024 - 学期:春季

=== SWE310 - 移动应用开发 ===
班级:一年级A班
• 期中考试(45%):95
• 小测验(5%):100
• 期末考试(50%):85
📋 最终成绩:AA

🔧 开发

在开发模式下运行

# 安装依赖项
npm install

# 构建项目
npm run build

# 测试服务器
node build/index.js

项目结构

sabis-mcp-server/
├── src/
│   └── index.ts          # 主MCP服务器实现
├── build/                # 编译后的JavaScript输出
├── package.json         # 依赖项和脚本
├── tsconfig.json        # TypeScript配置
└── README.md           # 本文件

关键组件

  • MCP服务器设置:使用@modelcontextprotocol/sdk配置
  • 身份验证:基于环境的凭证管理
  • 网络爬虫:基于Puppeteer的SABIS门户自动化
  • 数据提取:DOM解析以获取成绩信息
  • 错误处理:全面的错误管理和日志记录

🛡️ 安全与隐私

  • 凭证:安全存储在环境变量中
  • 无头操作:不暴露UI中的敏感信息
  • HTTPS:与SABIS的所有通信都使用安全连接
  • 无数据存储:成绩实时获取,不本地存储
  • 会话管理:浏览器会话正确清理

🚨 故障排除

常见问题

“需要用户名和密码”

  • 确保环境变量USERNAMEPASSWORD已设置
  • 检查.env文件是否存在并包含正确的凭证

“登录失败”

  • 验证SABIS凭证是否正确
  • 检查SABIS门户是否可访问
  • 如有需要,请确保大学网络访问

浏览器/Puppeteer错误

  • 在Linux上安装Chromium依赖项:
    sudo apt-get install -y libgbm-dev libnss3-dev libxss1 libasound2
    

📚 API参考

工具

get-grades

使用SABIS进行身份验证并检索学术成绩信息。

参数:无(使用环境变量)

返回值

  • 学年和学期
  • 包含成绩的课程信息
  • 分数百分比的考核分解
  • 可用的最终成绩

🤝 贡献

  1. 分叉仓库
  2. 创建功能分支(git checkout -b feature/amazing-feature
  3. 提交更改(git commit -m '添加一些惊人的功能'
  4. 推送到分支(git push origin feature/amazing-feature
  5. 打开拉取请求

📄 许可

此项目根据ISC许可协议发布 - 查看LICENSE文件了解详情。

⚠️ 免责声明

此工具仅用于教育和个人用途。用户负责:

  • 遵守大学的服务条款
  • 保护其账户凭证
  • 负责任且道德地使用此工具

开发者不对任何误用或由此软件引起的后果负责。

👨‍💻 作者

梅赫梅特·汉尼菲·森图尔克

🔗 相关项目


注意:这是一个非官方工具,与萨卡里亚大学或官方SABIS系统无关。