Mashov MCP Server

Mashov MCP Server

Enables interaction with the Mashov school management system API, allowing retrieval of grades, schedule, messages, and more through natural language.

Category
Visit Server

README

Mashov MCP Server

License: MIT Python 3.8+ Docker

An MCP (Model Context Protocol) server for interacting with the Mashov school management system API.

Features

  • šŸ“Š Get average of all grades
  • šŸ“ˆ Get all grades in graph format (optionally filtered by subject)
  • šŸŽ“ Get average of Bagrut (matriculation) grades
  • šŸ« Get list of all schools
  • šŸ“ø Get user's profile picture
  • šŸ‘„ Get user's class list
  • šŸ’¬ Get messages
  • šŸ“… Get schedule/timetable

Prerequisites

Choose one of the following:

Option 1: Docker (Recommended for Easy Setup) 🐳

  • Docker installed (Get Docker)
  • Mashov account credentials

Option 2: Python (For Development)

  • Python 3.8 or higher
  • uv (recommended) or pip
  • Mashov account credentials

Installation

🐳 Option 1: Using Docker (Recommended)

  1. Clone this repository:
git clone https://github.com/AmitMarcus/MashovMCP.git
cd MashovMCP
  1. Build the Docker image (required before using with MCP):
docker build -t mashov-mcp-server:latest .

āš ļø Important: You must build the image before configuring your MCP client.

  1. Verify the image was built:
docker images | grep mashov-mcp-server

You should see:

mashov-mcp-server   latest   ...   ...   ...
  1. Test it (optional):
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

šŸ Option 2: Using Python + uv

  1. Clone this repository:
git clone https://github.com/AmitMarcus/MashovMCP.git
cd MashovMCP
  1. Install uv (if not already installed):
# macOS/Linux
curl -LsSf https://astral.sh/uv/install.sh | sh

# Windows
powershell -c "irm https://astral.sh/uv/install.ps1 | iex"
  1. Install dependencies:
uv pip install -e .
  1. Configure credentials:
cp env.example .env
# Edit .env with your Mashov credentials

Configuration

Create a .env file with your Mashov credentials:

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

Usage

Testing the API (Without MCP)

Before using the MCP server, you can test the API client directly:

python test_api.py

This script will:

  • Test authentication
  • Test API endpoints
  • Show detailed results
  • Help debug API issues

This is useful for:

  • Verifying your credentials work
  • Debugging API endpoint issues
  • Understanding the API response format
  • Testing before integrating with MCP

Running the MCP Server

The server runs via stdio and communicates using the MCP protocol:

python mashov_mcp_server.py

MCP Client Configuration

To use this server with an MCP client (like Claude Desktop), add it to your MCP configuration file.

Option 1: Using Docker 🐳 (Recommended)

{
  "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"
      ]
    }
  }
}

Option 2: Using 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"
      }
    }
  }
}

Available Tools

get_grades_average

Get the average of all grades for the authenticated user.

get_all_grades

Get all grades in graph format, optionally filtered by subject.

  • Parameters:
    • subject (optional): Subject name to filter grades

get_bagrut_average

Get the average of all Bagrut (matriculation) grades.

get_schools

Get list of all available schools.

get_user_picture

Get the authenticated user's profile picture.

get_class_list

Get the user's class list.

get_messages

Get messages for the authenticated user.

  • Parameters:
    • limit (optional): Maximum number of messages to retrieve (default: 10)

get_schedule

Get the user's schedule/timetable.

Project Structure

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

License

MIT License - see LICENSE file for details

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured