# Exams I could take

`find_exams_for_me`

- Read-only

Lists the exams this student may still apply for on one olympiad, with the category, the sitting, the language and the fee. The list already accounts for the student’s grade and country, the exams they have applied for, and the olympiad’s own rules about two exams on one day — so anything it returns is something add_exam_application will accept. session_date is the sitting’s calendar day (YYYY-MM-DD, no time and no time zone), and for a sitting run over more than one day, which its name shows, it is the last one; once entered, list_my_exams answers exam_date as the first day with its time_zone, and exam_start_time as the moment the sitting starts; its exam_time is the panel’s display text, a start time for some sittings and a window such as “24 Hours in GMT” for others, so it is not the start time. Pass for_application_id when looking for a replacement, so the exams that particular application may not move to are left out.

- **For**: Students
- **Needs**: Read access (`mcp:read`)
- **What it changes**: **Read-only.** It only reads. Nothing changes.

## Inputs

- `brand`string

  Which olympiad this is about. Required unless the connection covers exactly one, in which case that one is used.

  one of`coding``gmath``hilingua``neo``stem`
- `for_application_id`string

  The application_id being changed, when looking for something to move it to. Leave it out when applying for a new exam.

  pattern`^[a-f0-9]{24}$`min length`24`max length`24`

The server refuses a call that carries any field not listed here, and says which one.

## Answers instead of a result

What the tool says when it cannot do what was asked, and what to do about it.

- **`not_connected`**
- **`insufficient_scope`**
- **`rate_limited`**
- **`writes_disabled`**
- **`temporarily_unavailable`**
- **`upstream_error`**
- **`brand_not_allowed`**
- **`role_required`**
- **`tenant_account_missing`**
