1. Conduid
  2. AI
  3. Smartschool MCP
MCP server · AI

Smartschool MCP

A dynamic Model Context Protocol (MCP) server that provides AI assistants with secure access to Smartschool APIs. This server automatically discovers all available Smartschool methods and exposes them as MCP tools with comprehensive safety guardrails.

51Fair

Scored 7 days ago · breakdown

About Smartschool MCP

Smartschool MCP is an MCP server published by MauroDruwel in the AI category: a dynamic Model Context Protocol (MCP) server that provides AI assistants with secure access to Smartschool APIs. This server automatically discovers all available Smartschool methods and exposes them as MCP tools with comprehensive safety guardrails.

Recent commit activity is the strongest signal that reported issues will get attention.

Install

From source
git clone https://github.com/MauroDruwel/Smartschool-MCP

This server has no ConduID identity, so agent calls to it are not receipted. Pin the version you install and review the source before granting it credentials.

Tools (13)

download_attachmentDownload a specific attachment by message and file ID

Parameters not published.

download_homepage_imageDownload an image embedded in a homepage block

Parameters not published.

get_attachmentsList attachments for a specific message

Parameters not published.

get_coursesList enrolled courses with teacher info

Parameters not published.

get_future_tasksUpcoming assignments organised by date

Parameters not published.

get_homepage_blocks"In de kijker" blocks pinned to the homepage (e.g. monthly menu, calendar)

Parameters not published.

get_messagesInbox/sent/trash with search, sender filter, and body retrieval

Parameters not published.

get_periodsAcademic terms for the current school year

Parameters not published.

get_planned_elementsPlanner items for the next N days

Parameters not published.

get_reportsAvailable report cards

Parameters not published.

Show all 13 tools
get_resultsGrades with optional filtering, pagination, and statistics

Parameters not published.

get_scheduleDay schedule by offset (0 = today, 1 = tomorrow, …)

Parameters not published.

get_student_support_linksSchool support resources and links

Parameters not published.

Ask AI

✦

Ask AI about Smartschool MCP

Powered by Claude · Grounded in docs

I know everything about Smartschool MCP. Ask me about installation, configuration, usage, or troubleshooting.

Security checks

  • ✓README presentThe repository ships documentation.
  • ✓License declaredUsable under a stated license.
  • !Scoped permissionsDoesn't declare a permission scope. Assume it can do anything its process can.

3 checks have not been run yet.

Releases

v0.3.0v0.3.0 · 22 Sep 2026What's Changed 🚀 Highlights MCP Python SDK v2 Migration: Upgraded to `mcp>=2.1.1,<3`, migrating from `FastMCP` to `MCPServer`, updating HTTP transport configurations to `streamable_http_app()`, and typing `SmartschoolOAuthProvider` with…
v0.1.4v0.1.4 · 7 Oct 2025Full Changelog: https://github.com/MauroDruwel/Smartschool-MCP/compare/v0.1.3...v0.1.4
v0.1.3v0.1.3 · 7 Oct 2025Full Changelog: https://github.com/MauroDruwel/Smartschool-MCP/compare/v0.1.2...v0.1.3
v0.1.2v0.1.2 · 7 Oct 2025Full Changelog: https://github.com/MauroDruwel/Smartschool-MCP/compare/v0.1.1...v0.1.2
v0.1.1v0.1.1 · 7 Oct 2025Full Changelog: https://github.com/MauroDruwel/Smartschool-MCP/compare/v0.1.0...v0.1.1

README

Smartschool MCP Server

CI codecov PyPI version

Connect Claude (and other MCP clients) to your Smartschool account — ask about grades, assignments, messages, and your schedule in plain language.

Tools

Tool What it does
get_courses List enrolled courses with teacher info
get_results Grades with optional filtering, pagination, and statistics
get_future_tasks Upcoming assignments organised by date
get_messages Inbox/sent/trash with search, sender filter, and body retrieval
get_schedule Day schedule by offset (0 = today, 1 = tomorrow, …)
get_periods Academic terms for the current school year
get_reports Available report cards
get_planned_elements Planner items for the next N days
get_student_support_links School support resources and links
get_attachments List attachments for a specific message
download_attachment Download a specific attachment by message and file ID

Quick start — Claude Desktop

uvx mcp install smartschool-mcp \
  -e SMARTSCHOOL_USERNAME="you" \
  -e SMARTSCHOOL_PASSWORD="secret" \
  -e SMARTSCHOOL_MAIN_URL="school.smartschool.be" \
  -e SMARTSCHOOL_MFA="YYYY-MM-DD"

Or add it manually to claude_desktop_config.json:

{
  "mcpServers": {
    "smartschool": {
      "command": "uvx",
      "args": ["smartschool-mcp"],
      "env": {
        "SMARTSCHOOL_USERNAME": "you",
        "SMARTSCHOOL_PASSWORD": "secret",
        "SMARTSCHOOL_MAIN_URL": "school.smartschool.be",
        "SMARTSCHOOL_MFA": "YYYY-MM-DD"
      }
    }
  }
}

Config file locations: %APPDATA%\Claude\claude_desktop_config.json (Windows) · ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) · ~/.config/Claude/claude_desktop_config.json (Linux)

Remote / claude.ai

The server supports Streamable HTTP transport for use as a remote integration on claude.ai.

Single-user mode

One server instance, your credentials in environment variables:

export SMARTSCHOOL_USERNAME="..."
export SMARTSCHOOL_PASSWORD="..."
export SMARTSCHOOL_MAIN_URL="school.smartschool.be"
export SMARTSCHOOL_MFA="YYYY-MM-DD"
export MCP_API_KEY="a-long-random-secret"   # optional but recommended

smartschool-mcp --transport streamable-http --host 0.0.0.0 --port 8000

Add to claude.ai → Settings → Integrations:

  • URL: https://your-domain.example.com/mcp
  • Authorization header: Bearer <your MCP_API_KEY> (if set)

Universal mode

One hosted server instance serves any Smartschool user — no per-user deployment needed.

smartschool-mcp --transport streamable-http --universal --host 0.0.0.0 --port 8000

Credentials are passed on every request:

What Where Example
School URL URL query param school ?school=myschool.smartschool.be
Date of birth (MFA) URL query param mfa &mfa=2000-01-15
Username OAuth Client ID your Smartschool username
Password OAuth Client Secret your Smartschool password

In claude.ai → Settings → Integrations → Add custom connector:

  • URL: https://your-domain.example.com/mcp?school=myschool.smartschool.be&mfa=YYYY-MM-DD
  • OAuth Client ID: your Smartschool username
  • OAuth Client Secret: your Smartschool password

MFA is your date of birth in YYYY-MM-DD format. Omit the mfa param if your account does not require it.

Making the server publicly accessible

Claude.ai requires HTTPS. Some options:

Option Command
Cloudflare Tunnel cloudflared tunnel --url http://localhost:8000
ngrok ngrok http 8000
VPS nginx / Caddy with a Let's Encrypt cert

Environment variables

Variable CLI flag Default Description
MCP_TRANSPORT --transport stdio stdio or streamable-http
MCP_HOST --host 0.0.0.0 Bind address (HTTP only)
MCP_PORT --port 8000 Port (HTTP only)
MCP_API_KEY — — Static Bearer token (single-user mode)
MCP_UNIVERSAL --universal off Enable universal mode (set to 1, true, or yes)
SESSION_TTL_SECONDS — 3600 How long to cache sessions (universal mode)
SMARTSCHOOL_USERNAME — — Your Smartschool username
SMARTSCHOOL_PASSWORD — — Your Smartschool password
SMARTSCHOOL_MAIN_URL — — School hostname, e.g. school.smartschool.be
SMARTSCHOOL_MFA — — Date of birth YYYY-MM-DD (if required)

Contributing

PRs are welcome. Run uv sync --extra dev to install dev dependencies, then uv run pytest / uv run ruff check . / uv run mypy smartschool_mcp/ before submitting.

Disclaimer

Unofficial tool, not affiliated with Smartschool. Use in accordance with your school's terms of service.

README copy captured when this server was indexed; it may lag the repository. The original is authoritative.

Questions

About Smartschool MCP

How do I install Smartschool MCP?

No package has been published for this server, so install it from source: clone the repository and follow its README.

Is Smartschool MCP safe to use with an AI agent?

Its trust score is 51 out of 100 (fair). It passes 2 of the 3 static security checks run so far; the failures are listed above. It has no ConduID identity yet, so agent calls to it are not receipted.

Is Smartschool MCP still maintained?

Yes — the latest release is v0.3.0 (22 Sep 2026), and the last commit was 25 days ago. The repository has 0 stars.