学术成绩查询服务器

一个用于从Sakarya大学SABIS系统安全获取学生学术成绩的MCP服务器,支持AI助手和应用程序通过自动化网络爬虫实时获取详细学术信息。

  • by hanifisenturk
  • TypeScript
  • 本地部署
  • 2 星标
  • 更新于
在 GitHub 查看 hanifisenturk/sabis-mcp-server

使用说明

SABIS MCP服务器🎓

A. 模型上下文协议(MCP)服务器 从 萨卡里亚大学SABIS (学生信息系统)。该服务器使人工智能助手和应用程序能够通过自动网络抓取安全地检索学生的学术信息。

🌟 特性

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

🛠️ 技术栈

  • TypeScript -类型安全开发
  • 操纵者 -Web抓取和浏览器自动化
  • 模型上下文协议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 将文件放在项目目录中,然后删除 env MCP配置中的属性:

创建 .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更适合将凭据与配置文件分开。

🎯 用法

配置后,您可以将MCP服务器与兼容的AI助手一起使用:

可用工具

get-grades

从SABIS系统检索学术成绩。

示例用法:

// Through MCP-enabled AI assistant
"Get my grades from SABIS"

响应格式:

Login successful! 🎓

Academic Year: 2024 - Semester: Bahar

=== SWE310 - MOBİL UYGULAMA GELİŞTİRME ===
Grup: 1. Öğretim A Grubu
• Ara Sınav (45%): 95
• Ödev (5%): 100
• Final (50%): 85
📋 Final Grade: AA

🔧 发展

以开发模式运行

# Install dependencies
npm install

# Build the project
npm run build

# Test the server
node build/index.js

项目结构

sabis-mcp-server/
├── src/
│   └── index.ts          # Main MCP server implementation
├── build/                # Compiled JavaScript output
├── package.json         # Dependencies and scripts
├── tsconfig.json        # TypeScript configuration
└── README.md           # This file

关键组件

  • MCP服务器设置:使用配置 @modelcontextprotocol/sdk
  • 认证:基于环境的凭证管理
  • Web剪贴:SABIS门户基于Puppeter的自动化
  • 数据提取:DOM解析成绩信息
  • 错误处理:全面的错误管理和日志记录

🛡️ 安全与隐私

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

🚨 故障排除

常见问题

“需要用户名和密码”

  • 确保环境变量 USERNAME 和 PASSWORD 已设置
  • 检查 .env 文件存在并且包含正确的凭据

“登录失败”

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

浏览器/木偶错误

  • 在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 'Add some amazing feature')
  4. 推到分支(git push origin feature/amazing-feature)
  5. 打开拉取请求

📄 许可证

此项目根据ISC许可证获得许可-请参阅 许可证 文件以获取详细信息。

⚠️ 免责声明

此工具仅供教育和个人使用。用户负责:

  • 遵守大学服务条款
  • 保护他们的帐户凭据
  • 以负责任和合乎道德的方式使用该工具

开发人员不对因使用本软件而产生的任何误用或后果负责。

👨‍💻 作者

穆罕默德 Hanifi Şentürk

🔗 相关项目


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