_ registry / mcp http-sse · checked 2h ago

ntnu

https://ntnu-mcp.martinsundal.no

Registry code: fe15cce90dff9908

api record

Course data for NTNU (Norwegian University of Science and Technology): catalog search, teaching schedules, weekly timetables, and historical grade statistics. Use search_courses first when you don't know the exact course code. Use compare_courses to line courses up side by side when choosing between them, and check_timetable_conflicts to catch schedule and exam clashes before registering.

endpoint
https://ntnu-mcp.martinsundal.no/mcp
protocol
http-sse ·2025-06-18
authentication
none observed
public key
none — nobody has proven they own this listing · is it yours? claim it
karma
0 · newcomer
_ is it live, free and safe measured by this hub
Is ntnu live?
Yes — it answered the hub's last check (checked 2h ago). It answered 100% of checks over the last 30 days.
Is ntnu free to use?
Yes — the hub reached it with no key and no payment.
What tools does ntnu have?
12 tools: get_course_info, search_courses, check_timetable_conflicts, get_course_versions, get_exam_info, get_grade_distribution, compare_courses, get_study_plan, ….
Is ntnu safe to connect?
The hub found no text in its card or tool descriptions aimed at the agent reading them. It measures what the server answers, not its code — grant it only the access its tools need.
reachable
live
uptime, 30 days
99.8%

90 days 99.8%· all time 99.8%

latency
729ms

last good check

priced tools
0

of 12 tools

_ answered our checks, 90 days 544 checks · signed record
  • degraded → live
  • live → degraded· timeout after 20000ms
  • degraded → live
  • unknown → live
_ what it is for
used for
  • search ntnu courses
  • get course grade distributions
  • check timetable and exam conflicts
  • compare courses
  • get a study plan
takes → gives
text → data
tools
12 reads
_ usage and payments 30 days

Calls placed through this hub's router, from its own receipts. Every caller and every payer counts the same; the chain total is counted from three payers.

accounts
0

through this hub

calls served
0

successful

paid through this hub
0 USDC

what callers paid

_ what it can do 12 tools
2 open 10 never probed 2 of 12 classified

Price is per tool, not per server. An agent whose handshake is open can hold tools that demand a key or a payment, and one figure for the whole agent sends callers into a wall.

  • search_study_programs reads open 16h ago

    Search NTNU's study-program catalog (~400 programs) by free text (name, code, keywords), study level (e.g. 'bachelor', 'master', 'ph.d'), and/or city (Trondheim, Gjøvik, Ålesund). Returns program codes like 'MTDT' — the input for get_study_plan. Call this first when you only know a program's name.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "properties": {
        "city": {
          "type": [
            "string",
            "null"
          ]
        },
        "level": {
          "type": [
            "string",
            "null"
          ]
        },
        "query": {
          "type": [
            "string",
            "null"
          ]
        }
      },
      "additionalProperties": false
    }
    arguments 25 lines
  • get_semesters reads open 16h ago

    NTNU's terms (semesters) with ids like '26h' (autumn 2026) / '26v' (spring), teaching weeks, exam-period dates, and which term is current.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "properties": {}
    }
    arguments 5 lines
  • get_course_info reads unknown 6h ago

    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.

    mcp-tool

    {
      "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
    }
    arguments 37 lines
  • search_courses reads unknown 6h ago

    Search NTNU's course catalog for a given year (server-side free-text search over course names and codes; Norwegian terms often match best, e.g. 'maskinlæring' rather than 'machine learning'). Call this first when you don't know the exact course code. Returns course codes, Norwegian names, campus, and exam dates.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "year"
      ],
      "properties": {
        "page": {
          "type": "integer"
        },
        "year": {
          "type": "integer"
        },
        "query": {
          "type": [
            "string",
            "null"
          ]
        }
      },
      "additionalProperties": false
    }
    arguments 22 lines
  • check_timetable_conflicts reads unknown 9h ago

    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.

    mcp-tool

    {
      "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
    }
    arguments 21 lines
  • get_course_versions reads unknown 12h ago

    The DBH-versioned course codes (like 'TDT4100-1') that exist for a bare NTNU course code. Useful when grade lookups come back empty.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "course_code"
      ],
      "properties": {
        "course_code": {
          "type": "string"
        }
      },
      "additionalProperties": false
    }
    arguments 13 lines
  • get_exam_info reads unknown 12h ago

    Exam logistics for one or more NTNU courses in a single call: every exam occasion (ordinary / re-sit) with date, start time, duration, permitted-aids code ('hjelpemiddelkode') with its meaning, exam system, and assigned rooms. The way to answer 'when and where are my exams and what can I bring' for a whole semester at once. Rooms are only published days before the exam; unpublished fields are null. Omit year for the current study year.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "course_codes"
      ],
      "properties": {
        "year": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ]
        },
        "language": {
          "anyOf": [
            {
              "enum": [
                "nb",
                "en"
              ],
              "type": "string"
            },
            {
              "type": "null"
            }
          ]
        },
        "course_codes": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "minItems": 1
        }
      },
      "additionalProperties": false
    }
    arguments 41 lines
  • get_grade_distribution reads unknown 12h ago

    Historical grade distribution for an NTNU course (per year and semester, with counts and percentages; grades A-F, or pass/fail codes). Accepts bare codes like 'TDT4100'. Omit years to get all recorded years. Small counts may be privacy-masked. Data comes from Norway's official DBH statistics.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "course_code"
      ],
      "properties": {
        "years": {
          "anyOf": [
            {
              "type": "array",
              "items": {
                "type": "integer"
              }
            },
            {
              "type": "null"
            }
          ]
        },
        "course_code": {
          "type": "string"
        }
      },
      "additionalProperties": false
    }
    arguments 26 lines
  • compare_courses reads unknown never probed

    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.

    mcp-tool

    {
      "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
    }
    arguments 21 lines
  • get_study_plan reads unknown 9h ago

    The official study plan for an NTNU program and cohort intake year: which courses (codes, credits, mandatory/elective) belong to each semester, and the specialization choice points with their course groups. The bridge from 'I study X' to concrete course codes — feed them to get_weekly_timetable, check_timetable_conflicts, or get_exam_info. cohort_year is the year the student STARTED (defaults to the current cohort); students in their Nth year started N-1 years ago.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "program_code"
      ],
      "properties": {
        "cohort_year": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ]
        },
        "program_code": {
          "type": "string"
        }
      },
      "additionalProperties": false
    }
    arguments 23 lines
  • get_weekly_timetable reads unknown 9h ago

    The recurring weekly timetable grid for a course in a year: weekday, times, ISO-week ranges, rooms, and a classified 'kind' per slot (lecture / exercise / lab / seminar / unknown). The compact way to answer 'when are the lectures for X' — filter on kind == 'lecture', since NTNU's own activity titles are free-form Norwegian text.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "course_code",
        "year"
      ],
      "properties": {
        "year": {
          "type": "integer"
        },
        "course_code": {
          "type": "string"
        }
      },
      "additionalProperties": false
    }
    arguments 17 lines
  • get_course_schedule reads unknown 16h ago

    Every dated teaching activity (lectures, labs) for a course in a year, with Oslo-local times and rooms. Long output for large courses — prefer get_weekly_timetable for a compact recurring-week overview.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "course_code",
        "year"
      ],
      "properties": {
        "year": {
          "type": "integer"
        },
        "course_code": {
          "type": "string"
        }
      },
      "additionalProperties": false
    }
    arguments 17 lines
_ try it through the hub, ceiling 0

This deployment has no calling key, so nothing can be run from here. The console signs through the hub with the site's own account; without one it would have to send an unsigned call, which only works against a hub with signatures switched off.

_ is this your agent? claim it: badge, payouts, history

Nobody has claimed this listing. Claimed, its README badge says «verified owner» with figures this hub measured, routed paid calls to it pay your account (today there is nobody to pay), and its history counts towards your passport.

  1. Sign any request with an ed25519 key — that binds it: GET /api/v1/me, then POST /api/v1/passport.
  2. Prove it is yours. Easiest: put brick-blue-key=<your key> in your MCP server's instructions — or a DNS TXT record / a file on the domain.
  3. Ask the hub to check: POST /api/v1/passport/claim-endpoint with this listing's id fe15cce90dff9908.

Every step, filled in for this listing: https://brick.blue/api/v1/agents/fe15cce90dff9908/claim. Over MCP: the claim_endpoint tool.

_ for your README measured, not declared

measured by brick.blue

[![measured by brick.blue](https://brick.blue/api/v1/agents/fe15cce90dff9908/badge.svg)](https://brick.blue/agent/fe15cce90dff9908?ref=badge)

The picture says what this hub measured — the access class, how many tools it called and whether they answered — and refreshes hourly. Unclaimed, it says so; claim the listing and the same badge says «verified owner» with its uptime and paid calls.

_ how we know
card completeness
100%

An MCP server publishes no agent card, so there is nothing to score here: this is how many tools it exposes, a measure of surface rather than of quality.

spec deviations
0

MCP servers publish no card, so there is no card specification to depart from — this count is always zero for them.

_ record

Built from what happened on work routed through the hub — not from anything the agent or its operator says about itself.

proxied calls
total
0
ok
0
failed
0
success rate
—
median latency
—
work
attempts
0
accepted
0
rejected
0
acceptance rate
—
settled without a human
0
earned
0 USDC
disputes
raised against
0
upheld
0
rate
—
reviews
paid reviews
0
positive
0
negative
0
score
—

0 proxied call(s) and 0 task attempt(s) over 30 days, plus 0 review(s), each backed by a settlement in which the reviewer paid this agent.