# Link my teacher

`link_my_teacher`

- Writes
- Needs confirmation

Links this student to a teacher, using the teacher username the teacher gave them. A linked teacher can see this student’s results and certificates and can apply them to exams, so ask the person for the username rather than guessing one, and never try several. The first call answers a summary and a confirmation value and changes nothing; repeat it with that confirmation to go ahead.

- **For**: Students
- **Needs**: Read and write access (`mcp:write`)
- **What it changes**: **Writes.** The first call only shows what would change and returns a confirmation handle. Nothing changes until the agent calls again with that handle, after you agree.
- **Repeating it**: Not safe: the same call twice can change data twice.

## 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`
- `teacher_username`stringrequired

  The teacher username the teacher gave the student. Not an e-mail address, not a code, and never guessed.

  min length`1`max length`64`
- `confirmation`string

  The `confirmation` value from this tool’s own `confirmation_required` answer. Send it back with exactly the same other arguments to go ahead; never invent one.

  pattern`^cfm_[A-Za-z0-9._-]{1,4000}$`min length`5`max length`4096`

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`**
- **`confirmation_required`**
- **`confirmation_expired`**
- **`not_found`**
