MCP server for USOS (Uniwersytecki System Obsługi Studiów)
Project description
USOS Model Context Protocol (MCP) Server
A standardized Model Context Protocol (MCP) server that bridges the official USOS API (Uniwersytecki System Obsługi Studiów) with generative AI clients (such as Claude Code, Claude Desktop, Cursor, and web-based assistants via tunnels).
This server allows students of Polish universities to query their schedules, track academic grades, monitor ECTS accumulation, search for lecturer contact data, and review study programs through natural language conversations.
Project Overview & Architecture
The Problem
The USOSweb interface, while functional, presents nested tables, complex directories, and disparate systems for tracking grades, schedules, and program stages. Students frequently navigate multiple sub-menus to compile study progress, locate contact details, or coordinate schedules.
The Solution: USOS MCP Server
By wrapping the official USOS API in an MCP interface, this server translates complex REST-like endpoints into declarative Tools, Resources, and Prompts. This empowers local LLM agents to act as interactive academic advisors, personal schedulers, and administrative guides.
Design Principles
- Zero Middle-Man Hosting (RODO/GDPR-Shield): Academic records, grades, and student IDs are highly private data. Because this MCP server runs locally on the student's machine, the data flow occurs solely between the university's official API servers and the local client. Your code does not collect or process student data in any external database, radically simplifying RODO compliance.
- Multi-Target Architecture: Rather than hardcoding a single university's system, the server accepts a dynamic base URL and isolated API keys (e.g., University of Warsaw, Jagiellonian University, Warsaw University of Technology).
- State Persistence: OAuth 1.0a access tokens and university profiles are safely persisted in a local configuration file (e.g.,
~/.usos-mcp.json) securely on the student's system.
Usage with MCP Clients (e.g., Cursor)
You can connect this server to any MCP-compatible client like Cursor.
Option A: Running via PyPI (Recommended)
If you have uv installed, you can use uvx to fetch and run the package dynamically without manual installation:
"usos": {
"command": "uvx",
"args": ["usos-mcp"],
"env": {
"USOS_API_BASE_URL": "...",
"USOS_API_CONSUMER_KEY": "...",
"USOS_API_CONSUMER_SECRET": "..."
}
}
Option B: Running via Docker
If you prefer not to install Python/uv locally, you can use the Docker image. The -i flag is required for MCP to communicate over standard input/output.
"usos": {
"command": "docker",
"args": [
"run", "-i", "--rm",
"-e", "USOS_API_BASE_URL=...",
"-e", "USOS_API_CONSUMER_KEY=...",
"-e", "USOS_API_CONSUMER_SECRET=...",
"ghcr.io/your-username/usos-mcp:latest"
]
}
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file usos_mcp-0.1.1.tar.gz.
File metadata
- Download URL: usos_mcp-0.1.1.tar.gz
- Upload date:
- Size: 13.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.15 {"installer":{"name":"uv","version":"0.11.15","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
05f70183446f72146f5a5cd592c20412d68f85ff7339180425a35f80fa135d00
|
|
| MD5 |
5daeed05adab315e3bffc0c1584aa1f5
|
|
| BLAKE2b-256 |
f38b0d663ea6d4e8abcdcf77d6a9ad8cca1e56c4f6445e0475cc28fec3ab209c
|
File details
Details for the file usos_mcp-0.1.1-py3-none-any.whl.
File metadata
- Download URL: usos_mcp-0.1.1-py3-none-any.whl
- Upload date:
- Size: 14.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.15 {"installer":{"name":"uv","version":"0.11.15","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5f0be3b532084f193b153389a85714b1d49624f8e96fdfe045ba2245f8076350
|
|
| MD5 |
de87e124d9bf2cbd12dd8592fe5ba17c
|
|
| BLAKE2b-256 |
f587facdc2890bfd609dbeb4b896489891d9cfc54cde19fdc6a82a900eb725a5
|