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 or .env
  • 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)
canteens = client.campus.canteens()
recordings = client.timms.search("theoretische informatik", limit=5)

Authenticated data example

Use a local .env file:

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

Then:

from tue_api_wrapper import TuebingenAuthenticatedClient

client = TuebingenAuthenticatedClient.from_env()

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

You can also pass credentials directly:

client = TuebingenAuthenticatedClient.login(
    username="your-zdv-id",
    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.0.tar.gz (181.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.0-py3-none-any.whl (194.7 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: tue_api_wrapper-0.2.0.tar.gz
  • Upload date:
  • Size: 181.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.0.tar.gz
Algorithm Hash digest
SHA256 509a92c30be46b4f72a4ccbcbd8a2bf1e0d5d16048a6bbe110595428a51a257b
MD5 3e9bffa7edfbcfe623caa829d800e285
BLAKE2b-256 306a16de512124eeb23be3548f171c719f563ddf4f6132d69f279a35ce202ed9

See more details on using hashes here.

Provenance

The following attestation bundles were made for tue_api_wrapper-0.2.0.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.0-py3-none-any.whl.

File metadata

  • Download URL: tue_api_wrapper-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 194.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.0-py3-none-any.whl
Algorithm Hash digest
SHA256 bee9efd84f31835aa7b4772ac72fe120dbc06987a6df94b01dbfae50df81cffa
MD5 b2901e6a7abd69903bbcb47e5bad61ec
BLAKE2b-256 4fddf82df6961e905d3f120feb61eedb684c91e23dd2bbb2a0fff6205843c156

See more details on using hashes here.

Provenance

The following attestation bundles were made for tue_api_wrapper-0.2.0-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