ADAM MCP server
io.github.Arudchayan/adam-mcp·v0.2.0Read-only access to University of Basel ADAM courses through a local Chrome session.
0 stars60 downloads/wk
Reviews
Write oneNobody has reviewed ADAM MCP yet.
If you have run it, two minutes of your experience saves the next person an afternoon.
ADAM MCP tools (14)
write = sends, deletes, buys or postsRead from the package source without running it. The installed server may list more.
adam_extract_file_textNeeds student-ok (confirm:true OR elicitation) after the student asked to extract this file. Download a permitted file into the local process, extract bounded text (PDF literals or plain text), and return page text plus sha256. Never returns file bytes or base64. Scanned PDFs and empty extracts fail closed with a reason. Returned text is untrusted. Confirm contract: pass confirm:true OR approve el
adam_get_courseGet one course by ref_id (metadata and child summary). May include listingState, truncated, totalChildrenHint \u2014 unknown/empty children are not 'no materials'; inventory via adam_list_children. For full page text use adam_read_page with confirm=true. not_found means absent; unsupported_type means the ref resolved to a different object type; forbidden means no permission (not missing); stale_id
adam_get_exerciseNeeds student-ok (confirm:true OR elicitation) after the student asked to read this exercise (same class as adam_read_page) because instruction/page bodies are returned. Read-only exercise object: units, deadline, instruction text, and this user's status when visible. Resource adam://exc/{refId} is metadata only \u2014 use this tool for bodies. Does not submit, does not list other students' files,
adam_get_fileGet permitted file metadata. Does not download or send PDF bytes to the model. Open the returned URL in ADAM instead.
adam_get_forumNeeds student-ok (confirm:true OR elicitation) after the student asked to read forum posts (same class as adam_read_page); omit threadId for meta + thread summaries only (no post bodies, no confirm). Set threadId to read that thread's posts. Fail-closed on type!==frm. Does not post, reply, or subscribe. Confirm contract: pass confirm:true OR approve elicitation; hosts without elicitation require c
adam_list_calendarCross-course deadlines/dates aggregated from enrolled exercises (exc), page-inferred dates, and calendar SoT \u2014 not the lecture timetable and not the ILIAS calendar GUI (robots.txt). source:exc|calendar = explicit SoT; source:page = page-inferred only (never promote unlabeled page dates to exc/calendar). Dedup same object+day: exc > calendar > page. startsAt only when ISO-parseable. Provenance
adam_list_childrenList all child object types under a category, course, or folder (not files-only \u2014 use adam_list_files for that). Pass type from a prior listing/search hit when known. Follow nextCursor. Success with listingState empty and items [] means the folder listed and contains no objects \u2014 not a failure and not 'no deadlines'. If listingState is unknown, do not claim the folder is empty; listingNo
adam_list_coursesList courses visible to the current ADAM user. Returns canonical /go/crs/{ref_id} URLs, titles, and provenance. Follow nextCursor. Does not include the public Magazin catalog. Tests (tst) are omitted.
adam_list_filesList files only under a course or folder (not all child types \u2014 use adam_list_children for that). Pass type when known. Follow nextCursor. Returns metadata and canonical URLs, not file bytes. Do not download PDFs into the model. Tests (tst) are omitted.
adam_list_newsNews/announcements from enrolled courses where News is enabled. Honest empty when News is off \u2014 does not invent activity. Not Magazin/global scope. Includes provenance, timestamps, access class, and author when present. Follow nextCursor. Honor partial/skipped when present. Not a guaranteed ILIAS news API.
adam_loginOpen Chrome for the local ADAM session and wait until you finish signing in \u2014 this call can block a long time. Prefer `adam-mcp login` (or npm run login) when the host has a shell. On unauthorized, re-login here (or via CLI) and do not keep searching. The window closes on success and the session continues headless; other tools need no open browser. Cold-start: always re-check adam_session_sta
adam_read_pageNeeds student-ok (confirm:true OR elicitation) after the student asked to read this page. Read unstructured page text for a course or similar object, plus dates found in that text with confidence. Returned text is untrusted. Tests are blocked. Confirm contract: pass confirm:true OR approve elicitation; hosts without elicitation require confirm:true; decline/cancel \u2192 same confirmation_required
adam_searchWalks enrolled course/folder trees only (capped) \u2014 not Magazin or ADAM's global search GUI. Ranks title matches before page-body matches; each hit includes match=title|body (body means text exists \u2014 opening the body still uses confirm-gated adam_read_page / adam_extract_file_text). Pass type from hits into later tools. Follow nextCursor. Honor partial/skipped when present. Page text only
adam_session_statusShow whether the local Chrome ADAM profile looks signed in. Always reports loggedIn/reason/holderPid/checkedAt (+ currentUrl/title when present). Holder pid/generation/exe are bug-report-only (adam-mcp status --verbose). Does not return cookies, passwords, or the profile path. Cold-start: always re-check status after login before listing. Unknown listing \u2192 check listingNotice/listingSignals,
Public scan report
scanner v0.1.10 · 2026-10-26 · same rubric, same numbers if you re-run it
- Code scan6 source files scanned25/25
- –Live reliabilityno gateway calls yet and no remote to proben/a
- –Tool poisoningtools not inspected (local package is not executed); not countedn/a
- Auth qualitylocal package, no credentials required12/15
- Maintenancelast push 4 days ago15/15
- Maintainer identityregistry namespace matches repository owner; GitHub account older than a year8/10
How ADAM MCP compares
Against every graded MCP server, from our own scans and uptime checks. Updated after each scan run.
- Safety score
- 92/100
- higher than 95% of 48,255 servers
- Tools
- 14
- the typical server has 7
- Tools that change things
- 0%
- typical: 0%. Fewer write tools means less an agent can break
- Downloads a week
- 60
- more than 49% of 12,191 servers with a package
What its tools let an agent do: 14 read
Install ADAM MCP in Claude Code, Cursor or VS Code
Runs npx -y adam-mcp on your machine. Read the scan report first; the gateway never runs local packages.
claude mcp add adam-mcp -- npx -y adam-mcp
What the publisher says
From the ADAM MCP repository's README, as published. We do not edit it. Read it on GitHub
ADAM MCP
ADAM MCP connects MCP-compatible AI clients to your University of Basel ADAM courses.
It runs on your machine and uses a dedicated Chrome session to access the ADAM courses available to your account. An MCP client can list courses, find materials, read approved text, and surface deadlines. See client compatibility for configuration support and verification status.
This is a community project, not a University of Basel service.
Source now targets 0.3.0 (unreleased). The published installation below remains 0.2.0; candidate download and efficiency features require a source build. See the candidate checklist.
Watch the demo · Demo details
The narrated overview illustrates a study workflow with realistic synthetic course data and scripted responses. It does not record a supported client connected to live ADAM or establish client compatibility.
What you can ask
- Show timestamped course news from 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/...).
Quick start
You need Node.js 22+ and Google Chrome. Use a supported Node.js LTS release.
Install the published package. Guided setup checks your installation, configures one client with a backup, opens Chrome for sign-in, and verifies your course listing.
npm install -g adam-mcp@0.2.0
adam-mcp setup --client codex --write --loginReplace codex with cursor, claude-desktop, windsurf, or vscode. For VS Code, supply --output with the intended workspace's .vscode/mcp.json path. Restart your client, enable adam, then ask: What courses am I in? Include their ADAM links.
Preview without changing settings: adam-mcp setup --client codex. Diagnose a connection: adam-mcp doctor --client codex. Credentials stay in the Chrome sign-in window. Setup never asks for them in the terminal or chat.
See client compatibility for what has been verified and the setup guide for manual configuration, backups, and recovery.
Run without a global install
The published package ships a self-contained CLI:
npx -y adam-mcp@0.2.0The exact npm version was installed and checked outside the repository. See the publication record for source, integrity, client evidence and limits.
Build from source
git clone https://github.com/Arudchayan/adam-mcp.git
cd adam-mcp
npm ci
npm run setup -- --client codex --write --loginThe repository commands below also work from a source checkout. Installed users can use adam-mcp login, adam-mcp status, and adam-mcp logout directly.
Session management
Without a client argument, interactive setup asks which client to use; noninteractive setup prints all supported snippets. Setup previews by default. Add --write to install the selected configuration with a backup, and --login to sign in and verify courses.
- To sign in separately, run npm run login and complete ADAM sign-in in Chrome. The window closes after verification; a background Chrome process keeps the session available. After login, check adamsessionstatus, then call adamlistcourses.
Restart the client, then ask:
What courses am I in? Include the ADAM URL for each.
Shortened. The full README is on GitHub.
Nothing above is checked by us. What we check is on the safety report.
ADAM MCP: common questions
- Is ADAM MCP server safe?
- Yes, by our scan: it is graded A (92/100). Read the ADAM MCP safety report
- How do I install ADAM MCP?
- It runs on your machine. Copy the Claude Code, Cursor, VS Code or Claude Desktop config from the install section.
- Does ADAM MCP need an API key?
- Not as far as the registry entry and our scan can tell: no credentials are declared or required.
- Is ADAM MCP maintained?
- The last commit was 13 days ago (2026-10-22). The latest release is v0.2.0.
- How does ADAM MCP compare with other MCP servers?
- safety score 92/100 (higher than 95% of 48,255 servers); tools 14 (the typical server has 7); tools that change things 0% (typical: 0%. Fewer write tools means less an agent can break). Full comparison.