skill_create
Create a new ad-ops playbook (Skill) in your organization from an agent session.
Creates a new Skill (ad-ops playbook) in your organization. This is one of the AdCrunch MCP tools that writes — it requires the skill:write scope. A common pattern: you teach the agent a workflow once, then ask it to save that workflow as a Skill so your whole team’s agents can reuse it.
Input
| Field | Type | Required | Description |
|---|---|---|---|
name |
string |
yes | Human-readable display name. |
description |
string |
yes | When to use this Skill — what agents read to decide whether to load it. Invest here. |
body |
string |
yes | The playbook instructions (markdown). |
slug |
string |
no | Optional explicit handle; normalized to kebab-case. Defaults to one derived from the name. |
Output
The created Skill: { id, slug, name, description, body, revision, createdBy, … }. New Skills start at revision 1.
Example
“Save what we just did as a skill called ‘weekly meta audit’ so I can run it every Monday.”
skill_create({
name: 'Weekly Meta Audit',
description:
'Audit Meta campaign performance for the last 14 days and flag overspend. Use every Monday.',
body: '# Weekly Meta Audit\n1. list_entities(type: "campaign") for each Meta advertiser\n2. query_insights for the last 14 days…\n3. Flag any campaign with CPA above target.',
});
// → { slug: 'weekly-meta-audit', revision: 1, … }
Errors
- Slug already exists — a live Skill with that slug already exists in your organization. Pick a different name or slug (no silent suffixing).
- Invalid slug — the name (or slug) has no letters or digits to derive a slug from. Provide one that does.
401or403— see Errors, which every tool shares. This one needsskill:write.
Reference
Create an ad-ops playbook (Skill) in the active organization. The slug (its stable handle) is derived from the name unless an explicit slug is provided. Fails if a Skill with the same slug already exists in the organization.
Input
| Argument | Type | Required | Description |
|---|---|---|---|
body |
string | yes | The playbook instructions (the Skill body, markdown). |
description |
string | yes | When to use this Skill — what an agent reads to decide whether to load it. |
name |
string | yes | Human-readable display name. |
slug |
string | no | Optional explicit slug handle; normalized to kebab-case. Defaults to a slug derived from the name. |
Failure codes
A failed call has isError set, and structuredContent.error holds one of these codes. Errors describes the shape of a failed call.
invalid_slugslug_conflictforbiddeninvalid_requestinternal_error
Scope
The token must hold skill:write. Auth & scopes 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.
- Writes. The tool can change data.
- Destructive. The tool can make a change that you cannot undo. A client can ask you to confirm before it calls the tool.
- Not idempotent. A second call with the same arguments can change more.
- Closed world. The tool reads and writes the data of AdCrunch only.