# update_skill (/docs/build/mcp-reference/update_skill)

{/* GENERATED by scripts/generate-mcp-reference.mjs from the MCP server tools/list. Do not edit. */}

| Group | Access | MCP name |
| --- | --- | --- |
| Coach | Writes data | `update_skill` |

## Description [#description]

The description the MCP server sends to the model, word for word. Its rules apply to every call.

> Change a saved Coach skill. Call load_skill first and pass its version. Send only the fields to change, and send instructions in full. This turns Auto off for the skill, so the new text doesn't run until the user turns it back on.

## Arguments [#arguments]

| Argument | Type | Required | Description |
| --- | --- | --- | --- |
| `description` | `string` | No | Min length 1. Max length 200. |
| `instructions` | `string` | No | Min length 1. Max length 8000. |
| `slug` | `string` | Yes | The skill to change, from list_skills. Max length 40. |
| `title` | `string` | No | Min length 1. Max length 60. |
| `version` | `integer` | Yes | The version from load_skill. A newer skill is not overwritten. |

## Example call [#example-call]

The smallest valid request: required arguments only, with placeholder values.

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "update_skill",
    "arguments": {
      "slug": "…",
      "version": 1
    }
  }
}
```

## Result [#result]

The result has `structuredContent` that matches this schema. The same data is also in `content` as JSON text.

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `autoUse` | `boolean` | Yes |  |
| `skills_url` | `string` | Yes |  |
| `slug` | `string` | Yes |  |
| `title` | `string` | Yes |  |
| `version` | `number` | Yes |  |

## Annotations [#annotations]

| Hint | Value |
| --- | --- |
| `readOnlyHint` | `false` |
| `destructiveHint` | `false` |
| `openWorldHint` | `false` |

The full input and output JSON Schemas for every tool are in [/mcp-tools.json](/mcp-tools.json).
