DTU Learn MCP
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@DTU Learn MCPWhat's due in the next two weeks across all my courses?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
DTU Learn MCP (unofficial)
Let your AI assistant see your DTU Learn courses: lecture slides, course material, assignments, deadlines and announcements. Ask things like:
"What do I need to prepare for Thursday's 02450 lecture?" "Summarize the week 6 slides in Linear Algebra." "What's due in the next two weeks, and what does Project 2 actually ask for?"
It works with Claude Code, Claude Desktop, Codex (CLI and IDE), Cursor and other apps that support local MCP servers.
Unofficial. This is a student project, not made or endorsed by DTU. It only reads what your own DTU Learn account can already see.
How it works
Runs on your own computer. Your AI app starts it in the background when needed. There is no server in between.
You sign in yourself.
loginopens a normal browser window with DTU's own sign-in page. Your password and MFA never pass through this tool. Only the resulting DTU Learn session is saved, in~/.dtu-learn-mcp/, readable only by you.Read-only. It only ever reads from DTU Learn. It cannot submit assignments, post, or change anything. Every tool is marked read-only.
Files stay local. Files you ask about are downloaded to
~/.dtu-learn-mcp/files/so the assistant can read them.
See PRIVACY.md for details.
Related MCP server: ufora-mcp
Setup (about 2 minutes)
You need Node.js 20 or newer, Git, and Google Chrome or Microsoft Edge. The tool is not on npm: npx runs it straight from this GitHub repo.
1. Sign in once:
npx -y github:frederikngh/dtu-learn-mcp loginA browser window opens. Sign in to DTU Learn as usual (including MFA). When the DTU Learn front page appears, the window closes and you're done.
2. Add it to your AI app:
claude mcp add dtu-learn --scope user -- npx -y github:frederikngh/dtu-learn-mcpOr install the plugin, which also adds the /dtu-learn:prepare-for-lecture and /dtu-learn:week-plan skills:
claude plugin marketplace add frederikngh/dtu-learn-mcp
claude plugin install dtu-learn@dtu-learnSettings → Developer → Edit Config, and add to claude_desktop_config.json:
{
"mcpServers": {
"dtu-learn": { "command": "npx", "args": ["-y", "github:frederikngh/dtu-learn-mcp"] }
}
}Restart Claude Desktop.
codex mcp add dtu-learn -- npx -y github:frederikngh/dtu-learn-mcpAdd a local (stdio) MCP server with command npx and arguments -y github:frederikngh/dtu-learn-mcp.
The ChatGPT desktop app may be able to use local MCP servers depending on your version and plan; check OpenAI's current docs. chatgpt.com in the browser cannot reach a server on your computer.
Windows: if npx isn't found by your app, use "command": "cmd", "args": ["/c", "npx", "-y", "github:frederikngh/dtu-learn-mcp"].
Browser and phone apps (claude.ai, chatgpt.com, mobile) are not supported: they run in the cloud and can't reach a server on your computer.
Tools
Tool | What it does |
| Your current (or past) courses |
| A course's modules and files, searchable ("lecture 5", "week 6") |
| Downloads a file and returns its text: PDF, PowerPoint (with speaker notes), Word, notebooks, code |
| Details and URL for links, videos (Panopto) and external tools |
| Deadlines and dated items in the next N days |
| Hand-ins with instructions, attachments, your submission status and feedback (feedback files can be read with |
| Recent course announcements |
| Check or renew your sign-in |
Courses can be named by number (02450) or by part of their name.
Command line
Everything is also available from a terminal, which works with any agent that can run commands:
npx -y github:frederikngh/dtu-learn-mcp courses
npx -y github:frederikngh/dtu-learn-mcp upcoming --days 14
npx -y github:frederikngh/dtu-learn-mcp outline 02450 --search "lecture 5"
npx -y github:frederikngh/dtu-learn-mcp file 02450 123456
npx -y github:frederikngh/dtu-learn-mcp --helpTroubleshooting
"Not signed in" / "session has expired": run
npx -y github:frederikngh/dtu-learn-mcp loginagain. The tool tries a silent renewal first, so this should be rare."Could not start a browser": install Chrome or Edge, or run
npx playwright install chromium."spawn git ENOENT" or similar: install Git;
npxneeds it to fetch the tool from GitHub.Check everything:
npx -y github:frederikngh/dtu-learn-mcp status.Remove all saved data:
npx -y github:frederikngh/dtu-learn-mcp logout --all, then delete~/.dtu-learn-mcp.
Settings (environment variables): DTU_LEARN_DOWNLOAD_DIR (where files go), DTU_LEARN_BROWSER (chrome, msedge, …), DTU_LEARN_URL (another Brightspace site; untested).
Known limitations
Lecture and group-work times come from DTU's timetable, which DTU copies into the DTU Learn calendar;
get_upcomingshows them when they are there.Videos, Panopto, FeedbackFruits and other external tools can't be read, only linked.
Scanned PDFs have no text to extract; the file is still saved so a vision-capable assistant can open it.
Development
npm install
npm test # builds, then runs the tests against a fake Brightspace server
npm run dev # recompile on changeTest your local build in Claude Code with claude mcp add dtu-learn-dev -- node /path/to/dtu-learn-mcp/dist/cli.js.
Code layout: src/auth.ts (browser sign-in), src/client.ts (read-only API client), src/api.ts (courses, content, assignments…), src/tools.ts (tool definitions, shared by MCP and CLI), src/mcp.ts (MCP over stdio), src/extract.ts (file text). The plugin (skills + MCP config) lives in plugin/.
Contributions welcome. Please keep it read-only.
License
MIT
This server cannot be deployed
Maintenance
Related MCP Connectors
Web search, data extraction and controlled browser automation for AI assistants via OAuth.
Hosted browser for agents: open pages, search the web, extract data, read PDFs and take screenshots.
Control a real browser from AI agents: navigate, click, type, screenshot, read the page.
Web search and page reading for AI agents, including JSON APIs, RSS feeds and YouTube.
Related MCP Servers
- FlicenseNot gradedqualityBmaintenanceEnables LLMs to interact with a Brightspace account to retrieve courses, grades, due items, quizzes, course content, and files, including batch operations across multiple courses.-
- AlicenseBqualityAmaintenanceEnables AI clients to read a student's own UGent Ufora (D2L Brightspace) data, including courses, announcements, deadlines, grades, course materials, and PDF text, over stdio or local Streamable HTTP. All operations are read-only and run locally against the student's authenticated session.192MIT
- AlicenseNot gradedqualityBmaintenanceProvides local, read-only access to Memorial University's Brightspace D2L courses, enabling students to view content, grades, assignments, quizzes, announcements, and deadlines through natural language.Apache 2.0
- AlicenseNot gradedqualityAmaintenanceEnables AI assistants to browse your own university courses by downloading files, slides, announcements, deadlines, grades and lecture transcripts to your machine, then answering questions and searching across them through MCP tools. It logs in with your own account and refreshes only what changed.MIT