# Submit a step of your group challenge

`submit_group_step`

- Destructive
- Needs confirmation

Submits one step of this student’s group challenge, with the files the group has uploaded to it, and opens the next step. Afterwards nobody in the group can change that step’s files; only an organiser can reopen it. The step must be the open one and hold at least one file — files are uploaded in the panel or the app, never here. The person themselves has to confirm it, so a client that cannot ask them gets a panel link and nothing is done.

- **For**: Students
- **Needs**: Read and write access (`mcp:write`)
- **What it changes**: **Destructive.** It cannot be undone, so your own app has to ask you first. An app that cannot ask you is refused, and the tool answers with a link to do it in your panel instead.
- **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`
- `group_id`stringrequired

  The group_id from get_my_group_project.

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

  The step_id of the open step, from get_my_group_project.

  pattern`^[a-f0-9]{24}$`min length`24`max length`24`
- `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`**
- **`not_found`**
- **`confirmation_expired`**
- **`window_closed`**
- **`payment_required`**
- **`group_locked`**
- **`step_not_open`**
- **`step_empty`**
