MCPserverCumtJW

ALbiehao/MCPserverCumtJW
0 Stars 16 次浏览 更新于 2026-08-23

MCP 服务配置

复制以下 JSON 到 OPClaw 或其他 MCP 客户端的配置文件中即可使用

{
  "mcpServers": {
    "MCP服务器 - SSE模式": {
      "type": "sse",
      "url": "https://ppbizon.xyz:8800/sse"
    }
  }
}

服务介绍


详细文档见https://modelscope.cn/docs/%E5%88%9B%E7%A9%BA%E9%97%B4%E5%8D%A1%E7%89%87

domain: nlp
tags:

  • MCP
  • 教务系统
  • 学生信息
    datasets:
    models:

启动文件

deployspec:
entry_file: app.py
license: MIT License

MCPserverCumtJW - 中国矿业大学徐海教务系统MCP工具

项目简介

MCPserverCumtJW是一个基于MCP (Model Context Protocol)的工具,用于访问中国矿业大学徐海校区教务系统的数据。该项目提供了一个简单的API接口,可以获取学生的考试信息和成绩信息。

功能特点

  • 安全的用户认证:使用RSA加密保护用户密码
  • 考试信息查询:获取指定学年学期的考试安排
  • 成绩信息查询:获取指定学年学期的成绩信息,并计算GPA
  • MCP接口:通过MCP协议提供API服务,方便AI助手调用

技术栈

  • Python 3.x
  • requests:用于HTTP请求
  • pycryptodomex:用于RSA加密
  • mcp-server:用于提供MCP服务
  • mcp:MCP客户端库
  • FastAPI:用于构建API服务
  • uvicorn:ASGI服务器
  • Gradio:用于构建Web界面
  • ModelScope:AI模型部署平台

安装方法

  1. 克隆项目代码
git clone https://github.com/yourusername/MCPserverCumtJW.git
cd MCPserverCumtJW
  1. 安装依赖
pip install -r requirements.txt

使用方法

启动MCP服务器

python main.py

服务器启动后,会输出"hello ai_mcp",表示服务已经成功启动。MCP服务器使用"stdio"模式运行,这意味着它通过标准输入/输出与客户端通信,适合与AI助手等工具集成。

启动Web界面

python app.py

启动Web界面后,可以通过浏览器访问http://localhost:7860,使用图形化界面与MCP服务交互。Web界面提供了以下功能:

  • 输入学生信息(用户名和密码)
  • 设置查询参数(学年和学期)
  • 查询考试信息
  • 查询成绩信息

在ModelScope平台上部署时,会自动使用app.py作为入口文件,提供Web界面服务。

API接口说明

获取考试信息

get_exam_list(student_username, student_password, year=None, term=None, exam_name=None)

参数说明:

  • student_username:学生用户名
  • student_password:学生密码
  • year:学年,如 "2023-2024"
  • term:学期,如 1, 2, 3
  • exam_name:考试名称,如 "期末考试"

返回值:

{
    "status": "success",
    "data": [
        {
            "course_name": "高等数学",
            "exam_date": "2024-01-15 09:00-11:00",
            "exam_location": "教学楼A-101",
            "exam_name": "期末考试"
        },
        // 更多考试信息...
    ],
    "message": "成功获取考试信息"
}

获取成绩信息

get_score_list(student_username, student_password, year=None, term=None, mark_type=None)

参数说明:

  • student_username:学生用户名
  • student_password:学生密码
  • year:学年,如 "2023-2024"
  • term:学期,如 1, 2, 3
  • mark_type:课程标记,如 "主修"/"辅修"等

返回值:

{
    "status": "success",
    "data": [
        {
            "course_name": "高等数学",
            "grade": "90",
            "credit": "4.0",
            "course_type": "必修"
        },
        // 更多成绩信息...
    ],
    "gpa": 3.8,
    "message": "成功获取成绩信息"
}

项目结构

.
├── .modelscope/    # ModelScope配置目录
│   ├── config.json # 模型配置
│   └── deploy.json # 部署规范
├── api.py          # API核心实现,包含教务系统客户端和MCP工具函数
├── app.py          # Web界面和MCP服务器启动入口
├── main.py         # 命令行模式MCP服务器入口
├── mcp_client_example.py # MCP客户端示例
├── models.py       # 数据模型定义
├── requirements.txt # 项目依赖
└── README.md       # 项目文档

数据模型

  • Student:学生信息,包含用户名和密码
  • Course:课程信息,包含课程名称、教师、地点、时间和周次
  • Schedule:课程表,包含多个课程
  • Score:成绩信息,包含课程名称、学分、成绩等
  • ScoreList:成绩列表,包含多个成绩信息,可计算GPA
  • Exam:考试信息,包含课程名称、考试时间、地点等
  • ExamList:考试列表,包含多个考试信息

服务配置与环境设置

服务参数配置

基本配置

在部署MCP服务器时,可以通过以下方式配置服务参数:

  1. 修改运行模式

    目前服务默认使用"stdio"模式运行,适合与AI助手集成。如需部署为HTTP服务,请修改main.py

    # 从
    mcp.run("stdio")
    
    # 改为
    import uvicorn
    uvicorn.run(mcp.app, host="0.0.0.0", port=8000)
    
  2. 配置服务名称

    main.py中,可以修改FastMCP的初始化参数来设置服务名称:

    # 默认名称为"jwxt"
    mcp = FastMCP("jwxt")
    
    # 可以修改为其他名称
    mcp = FastMCP("cumt-jwxt-service")
    
  3. 添加或移除工具

    可以通过mcp.add_tool()方法添加更多工具,或者移除现有工具:

    # 添加工具示例
    mcp.add_tool(api.get_schedule)  # 假设已实现get_schedule函数
    
    # 移除工具示例(需要先实现移除方法)
    # mcp.remove_tool("get_exam_list")
    

高级配置

  1. 环境变量配置

    为了保护敏感信息,建议使用环境变量存储配置:

    import os
    
    # 从环境变量获取配置
    PORT = int(os.getenv("MCP_PORT", 8000))
    HOST = os.getenv("MCP_HOST", "0.0.0.0")
    
    # 使用环境变量配置服务
    uvicorn.run(mcp.app, host=HOST, port=PORT)
    
  2. CORS配置

    如果需要支持跨域请求,可以配置CORS:

    from fastapi.middleware.cors import CORSMiddleware
    
    # 获取FastAPI应用实例
    app = mcp.app
    
    # 配置CORS
    app.add_middleware(
        CORSMiddleware,
        allow_origins=["*"],  # 在生产环境中应该限制来源
        allow_credentials=True,
        allow_methods=["*"],
        allow_headers=["*"],
    )
    

环境设置

本地开发环境

  1. Python环境

    • Python 3.8或更高版本
    • 建议使用虚拟环境:python -m venv venv
    • 激活虚拟环境:
      • Windows: venv\Scripts\activate
      • Linux/Mac: source venv/bin/activate
  2. 依赖安装

    • 安装所有依赖:pip install -r requirements.txt
    • 开发依赖(可选):pip install pytest black isort

生产环境

  1. 服务器要求

    • 支持Python 3.8+的Linux服务器(推荐Ubuntu 20.04或CentOS 8)
    • 至少512MB RAM(推荐1GB或更多)
    • 建议配置反向代理(Nginx或Apache)
  2. 安全设置

    • 创建专用服务账户运行应用
    • 配置防火墙,只开放必要端口
    • 启用HTTPS(使用Let's Encrypt免费证书)
    • 定期更新依赖包
  3. 监控与日志

    • 配置日志记录:logging.basicConfig(filename="mcp_server.log", level=logging.INFO)
    • 设置服务监控(如使用Prometheus或简单的健康检查端点)
  4. 自动启动

    • 使用systemd配置服务自动启动
    • 创建/etc/systemd/system/mcp-server.service文件

容器化部署

  1. Docker配置

    创建Dockerfile

    FROM python:3.9-slim
    
    WORKDIR /app
    
    COPY requirements.txt .
    RUN pip install --no-cache-dir -r requirements.txt
    
    COPY . .
    
    EXPOSE 8000
    
    CMD ["python", "main.py"]
    
  2. Docker Compose配置

    创建docker-compose.yml

    version: '3'
    
    services:
      mcp-server:
        build: .
        ports:
          - "8000:8000"
        environment:
          - MCP_PORT=8000
          - MCP_HOST=0.0.0.0
        restart: always
    

ModelScope平台部署

  1. 准备工作

    • 确保项目根目录包含requirements.txt文件
    • 确保main.py文件正确配置
  2. ModelScope配置

    • 项目已包含.modelscope文件夹,其中包含以下配置文件:
      • config.json: 定义模型类型、任务和框架
      • deploy.json: 定义部署规范,包括入口文件、资源需求和端口配置
  3. 部署步骤

    • 登录ModelScope平台
    • 创建新的空间或选择现有空间
    • 上传代码或关联GitHub仓库
    • 系统会自动读取.modelscope/deploy.json中的配置,使用app.py作为启动文件
    • 选择合适的计算资源
    • 完成部署后,可以通过Web界面与MCP服务交互

注意事项

  • 本项目仅供学习和研究使用
  • 请勿将学生账号密码明文存储或传输
  • 使用过程中请遵守学校相关规定
  • 部署到公网时,务必配置适当的安全措施
  • 定期更新依赖包以修复潜在安全漏洞

许可证

MIT License

在ModelScope上使用

克隆项目

git clone https://www.modelscope.cn/studios/yourusername/MCPserverCumtJW.git

在ModelScope上部署

  1. 在ModelScope平台创建空间
  2. 上传或关联代码仓库
  3. 配置启动文件为main.py
  4. 部署并使用MCP服务

使用MCP客户端调用服务

项目提供了mcp_client_example.py示例文件,演示如何使用MCP客户端调用服务:

# 创建MCP客户端
from mcp.client import Client
client = Client("https://www.modelscope.cn/api/v1/mcp/servers/yourusername/MCPserverCumtJW")

# 调用获取考试信息API
exam_result = client.get_exam_list(
    student_username="your_student_id",
    student_password="your_password",
    year="2023-2024",
    term=1
)

# 调用获取成绩信息API
score_result = client.get_score_list(
    student_username="your_student_id",
    student_password="your_password",
    year="2023-2024",
    term=1
)

完整示例请参考项目中的mcp_client_example.py文件。

相关 MCP 服务