osiris-mcp-server
The server provides tools to query Dutch university Osiris course catalogs, enabling you to browse, search, and retrieve detailed information about courses, minors, and academic programs from institutions like TU/e, TU Delft, Radboud, Twente, and Wageningen.
List reference data: faculties, course types, academic years, categories/levels, blocks, timeslots, units, lecturers, languages, and education types.
Get course structure: see the sections and fields a course can contain.
Search and list courses: perform full-text searches with optional filters (faculty, course type, category, year, etc.) or list courses by faculty and type.
Retrieve course details: get course headers (id, code, name, ECTS, etc.) or full details (content, exams, lecturers, materials) by course code or internal ID.
Explore minors: search for minors (coherent packages/certificates) with filters, and retrieve full minor details by code or ID.
Multi-institution support: override the default institution (TU/e) with a short code (e.g.,
tue,tudelft,rug,ut) on any tool call.
Click on "Install 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., "@osiris-mcp-serversearch for courses about machine learning at TU Delft"
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.
osiris-mcp-server
An MCP server exposing Dutch university Osiris course catalogs as tools. It
reads from the public, read-only Osiris Student API that universities publish
at https://<host>.osiris-student.nl/ (e.g. TU/e, TU Delft, Radboud,
Twente, Wageningen).
Quick start
Requires Python 3.11+ and uv.
uv sync
uv run osiris # run the MCP server over stdioThe server targets TU/e (tue) by default and accepts an institution code
per call, e.g. tue, tudelft, rug, ut:
search_courses("4DM00", institution="tudelft")
get_course("4DM00", institution="tue")Related MCP server: University Course Catalog MCP Server
Usage with MCP clients
Add the server to your MCP client configuration.
{
"mcpServers": {
"osiris": {
"command": "uv",
"args": ["run", "--directory", "/path/to/osiris-mcp-server", "osiris"]
}
}
}For clients that support environment variables (e.g. OSIRIS_LANGUAGE,
OSIRIS_TIMEOUT), pass them via the env key.
Tools
Tool | Description |
| Faculties/departments, code + name |
| Course types (Bachelor College, Graduate School, ...) |
| Academic years in the catalog |
| Course categories/levels |
| Period/block tokens (e.g. |
| Timeslots (e.g. |
| Coordinating units (capaciteitsgroep/sectie) |
| Lecturer names |
| Instruction languages |
| Education types (e.g. |
| Sections/fields a course contains |
|
|
| Course header (id, code, name, ECTS, course_type, owner, level, year, blocks) |
| Full detail: content, exams, lecturers, materials, deep link, ... |
| Full detail by internal course id |
| Full-text search with filters |
| Search minors (coherent packages, certificates) |
| Full minor detail: study programme, entrance requirements, ... |
| Full minor detail by internal minor id |
The list_courses and search_courses tools accept the same filters; every
one is optional except faculty for list_courses:
Filter | Description |
| Faculty code (e.g. |
| Course-type code or full name (default |
| Category/level (e.g. |
| Start year ( |
| Block token (e.g. |
| Timeslot code, prefix match (e.g. |
| Coordinating unit (capaciteitsgroep/sectie) |
| Lecturer name |
| Instruction language (name or 2-letter code) |
| Education type (e.g. |
| Only courses with places available ( |
Search results include a blocks list per course with the offering periods:
block token, dates, timeslots, location and availability — plus lecturers,
education_type, faculty and coordinating unit.
search_minors accepts the same year, faculty and education_type filters;
results include startmoments (academic year + block the minor can be started)
and study_programs (degree programmes the minor serves).
Configuration
Variable | Default | Purpose |
| (unset) | Optional search-index header |
| (unset) | Optional search-index header |
|
| Content language ( |
|
| HTTP timeout in seconds |
Most institutions serve a sensible default index without OSIRIS_RELEASE_VERSION
or OSIRIS_MANIFEST. Only set them to pin a specific Elasticsearch index
version (e.g. one extracted from a university's Osiris app bundle).
Development
uv run pytest # unit tests (offline)
uv run pytest -m e2e # live tests against the configured catalog (default TU/e)
uv run ruff check .
uv run ruff format --check .
uv run mypy srcLicense
The code is MIT licensed; see LICENSE.
The course data comes from the relevant university's Osiris API and is owned by that institution. This project is not affiliated with or endorsed by any university, and the MIT license does not cover the underlying course data.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- Flicense-qualityCmaintenanceMCP server for querying a university course catalog. Enables searching courses, checking prerequisites, and looking up instructors via natural language.Last updated
- Flicense-qualityCmaintenanceMCP server that exposes a university course catalog to LLMs, enabling course search, prerequisite lookup, instructor details, and department directory through natural language.Last updated
- Alicense-qualityDmaintenanceEnables querying academic data such as subjects, degrees, locations, and schedules from Universitat Jaume I via MCP tools.Last updatedMIT
- Alicense-qualityAmaintenanceMCP server exposing NTNU course data (search, schedules, grades, semesters) as tools for LLM agents.Last updated501MIT
Related MCP Connectors
data.overheid.nl MCP — the Netherlands national open-data portal (CKAN API).
Netherlands Open Data (data.overheid.nl/data) CKAN MCP.
MCP server for the Inistate platform: module discovery, entry management, and activity submission.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/mitkozh/osiris-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server