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

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

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

## Description [#description]

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

> Save a new Coach skill for the user: reusable instructions for a job. Only call this when they ask. title names it, description says when to use it, and instructions hold the steps, format, and tone. The Coach won't use it on its own until they turn that on.

## Arguments [#arguments]

| Argument | Type | Required | Description |
| --- | --- | --- | --- |
| `description` | `string` | Yes | Min length 1. Max length 200. |
| `instructions` | `string` | Yes | Min length 1. Max length 8000. |
| `title` | `string` | Yes | Min length 1. Max length 60. |

## 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": "create_skill",
    "arguments": {
      "title": "…",
      "description": "…",
      "instructions": "…"
    }
  }
}
```

## 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).
