# A student’s certificate

`get_student_certificate`

- Read-only

Returns the details of one certificate belonging to a student this account is responsible for: its title, the exam and the date, plus a link to the student list in the panel: My Students for a supervisor, where the certificate is opened, and Applications for a partner, the nearest page, since the panel has no page yet that opens a certificate for a partner. The platform checks the certificate is one this supervisor or partner may see. The official certificate file never leaves, and there is no shareable verification link; where this connection offers get_certificate_copy, it returns an MCP copy made for AI use. The roster tools do not hand out certificates, so take the id from the end of the panel certificate link the person has as certificate_id; the answer names the certificate as certificate, which this tool also takes on this connection.

- **For**: Teachers and partners
- **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`
- `certificate`string

  The certificate value from list_my_certificates or an earlier answer on this connection. It is bound to this connection and this olympiad; never compose one and never edit one. Give this or certificate_id.

  pattern`^crt_[A-Za-z0-9._-]{1,1000}$`min length`5`max length`1024`
- `certificate_id`string

  The 24-character id at the end of the panel certificate link the person pasted. Give this or certificate.

  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`**
- **`not_found`**
- **`not_allowed_here`**
