学校管理系统API服务器

Mashov MCP Server是一个用于与Mashov学校管理系统API交互的模型上下文协议服务器,提供成绩查询、课表获取、消息管理等功能。

  • by AmitMarcus
  • Python
  • 本地部署
  • 2 星标
  • 更新于
在 GitHub 查看 AmitMarcus/MashovMCP

使用说明

Mashov MCP服务器

用于与Mashov学校管理系统API交互的MCP(模型上下文协议)服务器。

特性

  • 📊 获得所有成绩的平均值
  • 📈 以图表形式获取所有成绩(可选择按科目筛选)
  • 🎓 获得Bagrut(预科)成绩的平均值
  • 🏫 获取所有学校的列表
  • 📸 获取用户的个人资料图片
  • 👥 获取用户的类列表
  • 💬 获取消息
  • 📅 获取时间表

先决条件

选择以下选项之一:

选项1:Docker(建议用于轻松设置)🐳

选项2:Python(用于开发)

  • Python 3.8或更高版本
  • 紫外线 (推荐)或pip
  • Mashov帐户凭据

安装

🐳 选项1:使用Docker(推荐)

  1. 克隆此存储库:
git clone https://github.com/AmitMarcus/MashovMCP.git
cd MashovMCP
  1. 构建Docker镜像 (与MCP一起使用前需要):
docker build -t mashov-mcp-server:latest .

⚠️ 重要:在配置MCP客户端之前,您必须构建映像。

  1. 验证图像是否已构建:
docker images | grep mashov-mcp-server

您应该看到:

mashov-mcp-server   latest   ...   ...   ...
  1. 测试它(可选):
docker run -i --rm \
  -e MASHOV_USERNAME="your_username" \
  -e MASHOV_PASSWORD="your_password" \
  -e MASHOV_SEMEL="your_school_id" \
  -e MASHOV_YEAR="2025" \
  mashov-mcp-server:latest

🐍 选项2:使用Python+uv

  1. 克隆此存储库:
git clone https://github.com/AmitMarcus/MashovMCP.git
cd MashovMCP
  1. 安装uv (如果尚未安装):
# macOS/Linux
curl -LsSf https://astral.sh/uv/install.sh | sh

# Windows
powershell -c "irm https://astral.sh/uv/install.ps1 | iex"
  1. 安装依赖项:
uv pip install -e .
  1. 配置凭据:
cp env.example .env
# Edit .env with your Mashov credentials

配置

创建一个 .env 使用您的Mashov凭据文件:

MASHOV_USERNAME=your_username
MASHOV_PASSWORD=your_password
MASHOV_SEMEL=your_school_id
MASHOV_YEAR=2024

用法

测试API(无MCP)

在使用MCP服务器之前,您可以直接测试API客户端:

python test_api.py

此脚本将:

  • 测试身份验证
  • 测试API端点
  • 显示详细结果
  • 帮助调试API问题

这有助于:

  • 验证您的凭据是否有效
  • 调试API端点问题
  • 了解API响应格式
  • 与MCP集成前的测试

运行MCP服务器

服务器通过stdio运行,并使用MCP协议进行通信:

python mashov_mcp_server.py

MCP客户端配置

要将此服务器与MCP客户端(如Claude Desktop)一起使用,请将其添加到MCP配置文件中。

选项1:使用Docker🐳 (推荐)

{
  "mcpServers": {
    "mashov": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "-e", "MASHOV_USERNAME=your_username",
        "-e", "MASHOV_PASSWORD=your_password",
        "-e", "MASHOV_SEMEL=your_school_id",
        "-e", "MASHOV_YEAR=2025",
        "mashov-mcp-server:latest"
      ]
    }
  }
}

选项2:使用Python🐍

{
  "mcpServers": {
    "mashov": {
      "command": "python",
      "args": ["/absolute/path/to/MashovMCP/mashov_mcp_server.py"],
      "env": {
        "MASHOV_USERNAME": "your_username",
        "MASHOV_PASSWORD": "your_password",
        "MASHOV_SEMEL": "your_school_id",
        "MASHOV_YEAR": "2025"
      }
    }
  }
}

可用工具

get_grades_average

获取经过身份验证的用户的所有成绩的平均值。

get_all_grades

以图表形式获取所有成绩,可选择按科目过滤。

  • 参数:
    • subject (可选):主题名称过滤等级

get_bagrut_average

计算所有巴格鲁特(预科)成绩的平均值。

get_schools

获取所有可用学校的列表。

get_user_picture

获取经过身份验证的用户的个人资料图片。

get_class_list

获取用户的类列表。

get_messages

获取已验证用户的消息。

  • 参数:
    • limit (可选):要检索的最大邮件数(默认值:10)

get_schedule

获取用户的日程/时间表。

项目结构

MashovMCP/
├── mashov_mcp_server.py      # Main MCP server implementation
├── mashov_client.py          # Mashov API client wrapper
├── config.py                 # Configuration handling
├── pyproject.toml            # Project metadata and dependencies (uv/pip)
├── Dockerfile                # Docker image definition
├── .dockerignore             # Docker build exclusions
├── test_api.py               # API test script
├── .gitignore                # Git ignore rules
├── env.example               # Example environment configuration
├── AUTHENTICATION.md         # Authentication flow documentation
├── LICENSE                   # MIT License
└── README.md                 # This file

许可证

MIT许可证-请参阅 许可证 详细信息文件

贡献

欢迎投稿!请随时提交拉取请求。