Skip to main content

Python SDK and local servers for University of Tuebingen study systems.

Project description

tue-api-wrapper Python package

Python SDK, FastAPI server, and local MCP server for University of Tübingen study systems.

The package has three entry points:

  • TuebingenPublicClient: public data that does not need credentials
  • TuebingenAuthenticatedClient: private student data with explicit credentials
  • tue-mcp: local MCP server for agents and LLM tools

Install for local development

cd package
python3 -m venv .venv
source .venv/bin/activate
pip install -e .

Install MCP support when you want the agent server:

pip install -e ".[mcp]"

Public data example

from tue_api_wrapper import TuebingenPublicClient

client = TuebingenPublicClient()

modules = client.alma.search_modules("machine learning", max_results=10)
events = client.campus.events(query="AI", limit=5)
gym = client.campus.gym_occupancy()
canteens = client.campus.canteens()
recordings = client.timms.search("theoretische informatik", limit=5)

Authenticated data example

Load credentials with the standard Python environment API and pass them explicitly:

import os
from tue_api_wrapper import TuebingenAuthenticatedClient

client = TuebingenAuthenticatedClient.login(
    username=os.environ["UNI_USERNAME"],
    password=os.environ["UNI_PASSWORD"],
)

timetable = client.alma.timetable("Sommer 2026")
documents = client.alma.studyservice_documents()
tasks = client.ilias.tasks()
deadlines = client.moodle.deadlines(days=30)
inbox = client.mail.inbox(limit=5)

In a local shell:

export UNI_USERNAME=your-zdv-id
export UNI_PASSWORD=your-password

Local MCP server

cd package
pip install -e ".[mcp]"
tue-mcp

Use stdio for most local agent clients. For HTTP-based clients:

tue-mcp --transport streamable-http --host 127.0.0.1 --port 8765

FastAPI server

tue-api-server

The API starts on http://127.0.0.1:8000 and exposes OpenAPI docs at /docs.

Publishing

Install the published package from PyPI:

pip install tue-api-wrapper

Install with MCP extras:

pip install "tue-api-wrapper[mcp]"

You can also install directly from GitHub:

pip install "tue-api-wrapper @ git+https://github.com/SebastianBoehler/tue-api-wrapper.git#subdirectory=package"

MCP extras from GitHub:

pip install "tue-api-wrapper[mcp] @ git+https://github.com/SebastianBoehler/tue-api-wrapper.git#subdirectory=package"

Release steps live in ../docs/release-pypi.md.

More docs

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

tue_api_wrapper-0.2.1.tar.gz (182.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

tue_api_wrapper-0.2.1-py3-none-any.whl (195.7 kB view details)

Uploaded Python 3

File details

Details for the file tue_api_wrapper-0.2.1.tar.gz.

File metadata

  • Download URL: tue_api_wrapper-0.2.1.tar.gz
  • Upload date:
  • Size: 182.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for tue_api_wrapper-0.2.1.tar.gz
Algorithm Hash digest
SHA256 6e1907614b7e10aa835a722ca1ef9450cc4c36bf408c1b8066d3682b2f0108f1
MD5 7be3e994476886c1ff6af78bbe7ebc3d
BLAKE2b-256 8a0d753a5fde34b5009ee66b4fdf429cb41fcf289161d5e57f57d2d562cb08bd

See more details on using hashes here.

Provenance

The following attestation bundles were made for tue_api_wrapper-0.2.1.tar.gz:

Publisher: publish-python.yml on SebastianBoehler/tue-api-wrapper

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file tue_api_wrapper-0.2.1-py3-none-any.whl.

File metadata

  • Download URL: tue_api_wrapper-0.2.1-py3-none-any.whl
  • Upload date:
  • Size: 195.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for tue_api_wrapper-0.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 9dd046b57f8d4df63e82b84244e665970ee1138e2d5f48f5cb966cd7ab286ae5
MD5 e317c6269939462c90e4cf24404c7dae
BLAKE2b-256 11ae6dc039c70920c4c511048b47f1abbde0023bfe6863a3cb84975d249e71dc

See more details on using hashes here.

Provenance

The following attestation bundles were made for tue_api_wrapper-0.2.1-py3-none-any.whl:

Publisher: publish-python.yml on SebastianBoehler/tue-api-wrapper

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page