Skip to main content

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 university 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"],
)

profile = client.alma.profile()
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

Release files for tue-api-wrapper 0.3.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for tue-api-wrapper 0.3.0
File Size Uploaded
tue_api_wrapper-0.3.0.tar.gz 214.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for tue-api-wrapper 0.3.0
File Interpreter ABI Platform
tue_api_wrapper-0.3.0-py3-none-any.whl Python 3 none any Details

Total release size: 444.4 kB

Release files / tue_api_wrapper-0.3.0.tar.gz

Download URL tue_api_wrapper-0.3.0.tar.gz
Size 214.9 kB
Tags Source
SHA-256 checksum
How to use checksums
ef7673451e70be8b80006b9c5c535806f2b2a05fc9a6f86b56d6b2cf3d31ee19
BLAKE2b-256 checksum
How to use checksums
92894ccc6fac296b1274161c9a06c61923f9d73353f94eb681e6dc95d1872f32
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jul 10, 2026.

Transparency log

Release files / tue_api_wrapper-0.3.0-py3-none-any.whl

Download URL tue_api_wrapper-0.3.0-py3-none-any.whl
Size 229.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
f7f83fa54df659790d0776d2da294540c23f3c76f534bcbafe814b96435ecbc0
BLAKE2b-256 checksum
How to use checksums
c31c06b8e4e5b63f9fe7479f83d8af9b40046d305c900af24c512c95f3982fd0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jul 10, 2026.

Transparency log

Release history Release notifications | RSS feed

0.4.1

2 release files

0.4.0

2 release files

This release

0.3.0 This release

2 release files

0.2.3

2 release files

0.2.1

2 release files

0.2.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page