---
title: skill_get
description: Fetch one ad-ops playbook (Skill) by slug, including its full instructions and current revision.
---

Fetches a single **Skill** by its `slug`, returning the full instruction `body` plus the current `revision`. Discover slugs first with [`skill_list`](/mcp/tools/skill-list).

## Input

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `skill_name` | `string` | yes | The Skill slug (its per-organization handle). |

## Output

`{ slug, name, description, body, revision }`. The `body` is the playbook the agent follows; `revision` is the optimistic-concurrency token.

## Example

> _"Load my weekly-meta-audit playbook and run it."_

```ts
skill_get({ skill_name: 'weekly-meta-audit' });
// → { slug: 'weekly-meta-audit', name: '…', body: '# Playbook\n…', revision: 3 }
```

The agent reads the `body` as its instructions, then calls whatever AdCrunch tools the playbook names (`list_entities`, `query_insights`, …).

:::tip[Keep the revision]

If you intend to edit the Skill, hold onto `revision` — pass it as `base_revision` to [`skill_update`](/mcp/tools/skill-update) or [`skill_delete`](/mcp/tools/skill-delete) so a concurrent change can't be silently clobbered.

:::

## Errors

- Returns an error result when no Skill with that slug exists in your organization.
- `401` or `403` — see [Errors](/mcp/errors), which every tool shares. This one needs `skill:read`.

## Reference

Fetch a single ad-ops playbook (Skill) by its slug, returning the full instruction body and the current revision. Echo the revision back as base_revision when updating the Skill.

### Input

| Argument | Type | Required | Description |
| --- | --- | --- | --- |
| `skill_name` | string | yes | The Skill slug (its stable per-organization handle). |

### Failure codes

A failed call has `isError` set, and `structuredContent.error` holds one of these codes. [Errors](/mcp/errors) describes the shape of a failed call.

- `not_found`
- `forbidden`
- `invalid_request`
- `internal_error`

### Scope

The token must hold `skill:read`. [Auth & scopes](/mcp/auth) lists each scope.

### Annotations

A client reads these hints. A hint that the tool does not declare has the default value of the MCP specification.

- **Read-only.** The tool changes nothing.
- **Closed world.** The tool reads and writes the data of AdCrunch only.
