{"$schema":"https://wellknown.network/schemas/agent-record-v1.json","schemaVersion":"1","id":"ag_t7qxwxet28pb","handle":"uoft-mcp","url":"https://wellknown.network/agents/uoft-mcp","links":{"self":"https://wellknown.network/agents/uoft-mcp/record.json","html":"https://wellknown.network/agents/uoft-mcp","markdown":"https://wellknown.network/agents/uoft-mcp/record.md","api":"https://wellknown.network/api/v1/agents/uoft-mcp","status":"https://wellknown.network/api/v1/agents/uoft-mcp/status","claim":"https://wellknown.network/agents/uoft-mcp/claim","claimApi":"https://wellknown.network/api/v1/claims","claimDescriptor":"https://wellknown.network/agents/uoft-mcp/claim.json","badge":"https://wellknown.network/agents/uoft-mcp/badge.svg","openapi":"https://wellknown.network/openapi.json","history":"https://wellknown.network/api/v1/agents/uoft-mcp/history","tools":"https://wellknown.network/api/v1/agents/uoft-mcp/tools"},"ard":{"identifier":"urn:air::server:uoft-mcp","type":"application/mcp-server-card+json"},"kind":"mcp_server","declared":{"name":"uoft-mcp","summary":"A small MCP wrapper for the UofT Timetable Builder API.","description":"# UofT MCP\n\nA small Python MCP server for the public [UofT Timetable Builder](https://ttb.utoronto.ca/)\nAPI, with reusable UofT login for Degree Explorer and ACORN. It exposes thirteen\ntools over local stdio using the\n[official MCP Python SDK](https://github.com/modelcontextprotocol/python-sdk): ten\npublic timetable tools and three local authentication controls.\n\n> **Work in progress:** ACORN and Degree Explorer authentication is available, but\n> their student-data and planning tools are still under development. The current\n> ACORN and Degree Explorer controls only connect, check, and forget local sessions.\n\nPublic timetable tools require no login, API key, database, web server, or environment\nvariables. This is an\nunofficial wrapper; it does not enroll students or write to ACORN. Saving a timetable\ncreates an anonymous public share link on the Timetable Builder, not a personal\naccount record.\n\n## Connect an MCP Client\n\nInstall [uv](https://docs.astral.sh/uv/getting-started/installation/), then add this\nconfiguration to any client that supports `mcpServers`:\n\n```json\n{\n  \"mcpServers\": {\n    \"uoft-timetable\": {\n      \"command\": \"uvx\",\n      \"args\": [\"uoft-mcp@latest\"],\n      \"env\": {\n        \"UV_HTTP_TIMEOUT\": \"300\"\n      }\n    }\n  }\n}\n```\n\nRestart the client after saving its configuration. On Windows, if the client cannot\nfind `uvx`, restart it after installing uv or replace `\"uvx\"` with the absolute path\nreported by `where.exe uvx`.\n\n`uvx` downloads the published package into an isolated environment and starts the\n`uoft-mcp` command. No repository clone, virtual environment setup, API key, server\nURL, or listening port is needed. The first start can take longer while uv downloads\nPython and the dependencies; later starts use its cache.\n\nTo pin a release instead of following the newest release, use\n`\"args\": [\"uoft-mcp==0.3.2\"]`.\n\n## Local Development\n\nFrom a clone of this repository:\n\n```powershell\nuv python install 3.13\nuv sync --locked --managed-python\n```\n\n`uv s…","publisher":{"name":"SleepyPandas","url":null},"homepage":"https://github.com/SleepyPandas/UofT-MCP","repository":"https://github.com/SleepyPandas/UofT-MCP","version":"0.3.2","license":null,"protocols":["mcp"],"tags":["mcp","timetable","university-of-toronto","uoft"],"pricing":null,"endpoints":[{"url":"pypi:uoft-mcp","type":"package_pypi","auth":null,"probeable":false}],"skills":null,"tools":null,"extra":null,"attribution":{"kind":"pypi","name":"pypi","repoUrl":"pypi","summary":"pypi","version":"pypi","description":"pypi","homepageUrl":"pypi","publisherName":"pypi"}},"derived":{"capabilities":[{"slug":"dev.package-management","name":"Packages & Dependencies","confidence":0.859,"provenance":"derived"},{"slug":"dev.version-control","name":"Version Control","confidence":0.825,"provenance":"derived"}],"categories":["dev"],"language":"en"},"observed":{"status":"unknown","statusReason":"Distributed as a package to run locally; no network endpoint to check.","lastOkAt":null,"lastProbedAt":null,"statusComputedAt":null,"reliability30d":null,"latestObservations":[],"tools":null,"package":{"name":"uoft-mcp","registry":"pypi","observedAt":"2026-09-12T08:20:46.879Z","publishedAt":"2026-09-12T03:57:12.352724Z","latestVersion":"0.3.2"},"toolSurface":null,"endpointFacts":[]},"verification":{"claimed":false,"claimedAt":null,"proofs":[]},"provenance":{"sources":[{"source":"pypi","key":"uoft-mcp","url":"https://pypi.org/project/uoft-mcp/","firstSeenAt":"2026-09-12T08:20:39.110Z","fetchedAt":"2026-09-12T08:20:39.110Z","normalizedAt":"2026-09-12T08:20:39.110Z"}]},"firstSeenAt":"2026-09-12T08:20:39.110Z","updatedAt":"2026-09-12T08:20:46.879Z"}