mcp-registry/io.github.martinsa04/ntnu-mcp · v0.1.0
Also listed as glama/martinsa04/ntnu-mcp
As of 2026-10-18 22:46 UTC, the Martinsa04 Ntnu MCP server is up with a Glimind reliability score of 89/100 (grade B). Over the last 30 days it answered 99.9% of Glimind's liveness checks. It had 9 outages in 90 days, with a median recovery of 5 minutes.
Unofficial NTNU course data: search, timetables, grades, course info, and exam logistics.
Claude Code
claude mcp add --transport http martinsa04-ntnu-mcp-server https://ntnu-mcp.martinsundal.no/mcp
Claude Desktop · Windsurf · Cline (mcpServers JSON)
{
"mcpServers": {
"martinsa04-ntnu-mcp-server": {
"type": "http",
"url": "https://ntnu-mcp.martinsundal.no/mcp"
}
}
}
Third-party server, listed as discovered. Review its source before installing.
12 of 12 tool(s) carry no readOnlyHint/destructiveHint annotations.
Annotate read-only tools with {"readOnlyHint": true}. Agents and gateways can then run them without a confirmation prompt, and route around destructive ones. How to fix →
25 parameter(s) across 11 tool(s) have no description.
Add a "description" to each parameter with its format and an example ("ISO 8601 date, e.g. 2026-10-17"). This is the commonest cause of wrong arguments on the first call. How to fix →
Handshake + tools/list takes ~2,128 ms.
Serve tools/list from memory, keep the process warm, and host close to your users. Every new agent session pays this before its first call.
No tool declares an outputSchema.
Declare outputSchema and return structuredContent (MCP 2025-06-18+). Agents can then parse results without guessing, and chain tools reliably. How to fix →
Paste-ready definitions with the problems above fixed. Changes marked verify need a human look. 11 tool(s) still need parameter descriptions written by someone who knows the API. All of them as JSON: /v1/readiness/mcp-registry%2Fio.github.martinsa04%2Fntnu-mcp/fixes
{
"name": "check_timetable_conflicts",
"description": "Checks a set of NTNU courses for the same year for clashing lecture/lab times and colliding exam dates — a clash check to run before registering for courses. Accepts bare course codes. Each side of a conflict carries its activity 'kind': a lecture-vs-lecture clash is unavoidable, while one involving an exercise or lab often has alternative groups. Exam dates come from the catalog, which does not mark deferred (utsatt/kont) sittings.",
"inputSchema": {
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"course_codes",
"year"
],
"properties": {
"year": {
"type": "integer"
},
"course_codes": {
"type": "array",
"items": {
"type": "string"
},
"minItems": 2
}
},
"additionalProperties": false
},
"annotations": {
"readOnlyHint": true
}
}{
"name": "compare_courses",
"description": "Side-by-side comparison of NTNU courses for a given year — campus, exam dates, weekly teaching hours, and latest grade distribution — to help choose between courses. Accepts bare course codes.",
"inputSchema": {
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"course_codes",
"year"
],
"properties": {
"year": {
"type": "integer"
},
"course_codes": {
"type": "array",
"items": {
"type": "string"
},
"minItems": 1
}
},
"additionalProperties": false
},
"annotations": {
"readOnlyHint": true
}
}{
"name": "get_course_info",
"description": "Everything about an NTNU course except exam logistics: credits, level, campus, language of instruction, prerequisites, mandatory activities, course content / learning outcomes, credit reductions ('studiepoengreduksjon'), which study programs the teaching is planned for, contacts, and any alert notices (e.g. 'no longer taught'). English text by default; pass language 'nb' for Norwegian. Omit year for the current study year. For exam dates, times, aid codes, and rooms use get_exam_info.",
"inputSchema": {
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"course_code"
],
"properties": {
"year": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
]
},
"language": {
"anyOf": [
{
"enum": [
"nb",
"en"
],
"type": "string"
},
{
"type": "null"
}
]
},
"course_code": {
"type": "string"
}
},
"additionalProperties": false
},
"annotations": {
"readOnlyHint": true
}
}Get an email or webhook when this server's readiness drops by 10+ points, tool-poisoning text appears, or a tool breaks:
curl -X POST https://glimind.com/v1/subscriptions -H 'content-type: application/json' -d '{"tools":["mcp-registry/io.github.martinsa04/ntnu-mcp"],"email":"[email protected]"}'Agents: watch_tool({"toolId": "mcp-registry/io.github.martinsa04/ntnu-mcp"}) over MCP.
get_course_info ~236 tokensget_exam_info ~233 tokensget_study_plan ~212 tokenscheck_timetable_conflicts ~209 tokensget_grade_distribution ~170 tokensStatic checks of the advertised tools/list (schema, descriptions, annotations, tool-poisoning patterns, names, size) plus observed protocol, uptime, latency and contract changes. Read-only: no tool is ever called. Weights: schema 15, docs 20, safety 15, efficiency 15, compatibility 15, protocol 5, reliability 10, stability 5. Token counts are estimates (~3.6 characters per token).
Operator? Fix these, then re-check live. Embed the readiness badge:
[](https://glimind.com/server/mcp-registry%2Fio.github.martinsa04%2Fntnu-mcp?ref=badge)
<a href="https://glimind.com/server/mcp-registry%2Fio.github.martinsa04%2Fntnu-mcp?ref=badge"><img src="https://glimind.com/v1/readiness/badge/mcp-registry%2Fio.github.martinsa04%2Fntnu-mcp.svg" alt="MCP agent-readiness"></a>
.. image:: https://glimind.com/v1/readiness/badge/mcp-registry%2Fio.github.martinsa04%2Fntnu-mcp.svg :target: https://glimind.com/server/mcp-registry%2Fio.github.martinsa04%2Fntnu-mcp?ref=badge :alt: MCP agent-readiness
Glimind records every version of this server's tool definitions in a signed, append-only transparency log. Current manifest sha256:8960d31eaf39d6f4…, first seen 2026-10-17, included at leaf 6552 of 23,647. Version history · verify what your client received.
Compare: most reliable data servers · most reliable retrieval servers · most reliable search servers
Glimind tells agents whether a server is up right now and how to call it, then fails over to a live alternative when it isn't.
Claude Code
claude mcp add --transport http glimind https://glimind.com/mcp
Claude Desktop · Windsurf · Cline (mcpServers JSON)
{
"mcpServers": {
"glimind": {
"type": "http",
"url": "https://glimind.com/mcp"
}
}
}
As of 2026-10-18 22:46 UTC, the Martinsa04 Ntnu MCP server is up with a Glimind reliability score of 89/100 (grade B). Over the last 30 days it answered 99.9% of Glimind's liveness checks. It had 9 outages in 90 days, with a median recovery of 5 minutes.
Martinsa04 Ntnu MCP server advertises 12 tools, including check_timetable_conflicts, compare_courses, get_course_info, get_course_schedule, get_course_versions.
Point your MCP client at this streamable-http endpoint: https://ntnu-mcp.martinsundal.no/mcp
Glimind scanned all 12 tool definitions for tool-poisoning patterns — hidden or invisible characters, instructions that override the model, concealment from the user, requests to read credential or MCP config files, conversation exfiltration and cross-tool shadowing — and found none. This checks what the server tells the model, not what its code does; review the source before granting access to sensitive data.
Status page: 90-day uptime, every outage and how long it lasted.
Claim this listing to get the Verified operator marker, a remediation checklist and owner analytics, or embed the live badge from any of the tool pages above. Maintainers: alerts, deploy attestation and monthly reports.
Status is an automated estimate from Glimind's liveness checks (handshake and tool listing only; no tool is ever called) and may lag or differ from your network. Glimind is not affiliated with this server or its operator. Operator? Request a correction or opt out at https://glimind.com/opt-out.