Skip to main content
Glama

ADAM MCP

ci

ADAM MCP connects MCP-compatible AI clients to your University of Basel ADAM courses.

It runs on your machine. Cursor, Claude Desktop, VS Code Copilot, Windsurf, Claude Code, the ChatGPT desktop app, Codex CLI, and the Codex IDE extension can list courses, read pages, find files, and surface deadlines from ADAM.

This is a community project, not a University of Basel service.

Demo

YC marketing demo (~90s, chat UX) · Legacy Inspector cut

What you can ask

  • What changed in my courses this week?

  • What deadlines do I have?

  • Find the exercise sheet about Fourier transforms.

  • Summarize this course page and give me the ADAM link.

  • List the material available for this course.

Answers include canonical ADAM URLs (https://adam.unibas.ch/go/...).

Related MCP server: Moodle Study MCP

Quick start

You need Node.js 20+ and Google Chrome.

From the registry (after publish)

packages/mcp ships a self-contained CLI: workspace packages are bundled into dist/adam-mcp.mjs; runtime deps are only @modelcontextprotocol/server, playwright-core, and zod. Once adam-mcp@0.2.0 is published:

npx -y adam-mcp
# or
npm install -g adam-mcp
adam-mcp

Default is live ADAM. Run npm run login once, then start the server (see docs/setup.md). --browser is optional.

Clone (setup helpers + host snippets)

git clone https://github.com/Arudchayan/adam-mcp.git
cd adam-mcp
npm install
npm run setup

npm run setup prints MCP snippets with absolute paths for this computer. Paste one into your client.

  • Your real courses: paste the snippet from npm run setup, then npm run login and sign in to ADAM in Chrome. The window closes automatically; the session continues headless.

Restart the client, then ask:

What courses am I in? Include the ADAM URL for each.

Host-specific files (Cursor, Claude Desktop, VS Code, Windsurf, Claude Code, ChatGPT desktop, Codex): docs/setup.md.

How it works

AI client  --stdio MCP-->  adam-mcp  -->  Chrome session  -->  adam.unibas.ch

ADAM MCP uses a local Chrome session for ADAM authentication. The default runtime is live ADAM.

Architecture · What is in scope · Capabilities · Roadmap

Tools

Tool

Returns

adam_list_courses

Enrolled courses and ADAM URLs

adam_get_course / adam_list_children

Course snapshot and folder contents

adam_read_page

Page text (confirm: true)

adam_list_files / adam_get_file

File metadata and URLs, not bytes

adam_extract_file_text

Local PDF/text extract (confirm: true)

adam_search

Title matches in enrolled objects

adam_list_calendar / adam_list_news

Dates and news from pages you can see

adam_get_exercise

Exercise text and deadline (confirm: true); no submit

adam_get_forum

Forum meta and thread summaries; post bodies need confirm: true; no post/reply

adam_login / adam_session_status

Chrome session (--browser only; fixture hides them)

Listings carry listingState: ok | empty | unknown — empty means the folder listed and has nothing (not a failure, not "no deadlines"); unknown means the list did not load, do not call it empty.

Prompts: what_changed, prepare_my_week, study_this.

Limitations

  • No writes, mail, grades, or exam (tst) objects.

  • Search is not ADAM’s global search box. Dates are not the ILIAS calendar GUI.

  • Scanned PDFs are not OCR’d.

Privacy

Tool results go to the model your client is already using. Course content is copyrighted.

SECURITY.md · threat model

Develop

npm test
npm run typecheck

CONTRIBUTING.md · AGENTS.md

License: GPL-3.0-or-later.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers