New at ContentCon: meet Contentstack Canoe. See what AI says about your brand.
Growth and Enterprise8 skillsVersion 1.0.0

Agent skills

Eight skills that teach your agent to read the report, find where you lose, draft the fix and measure again. They work in any agent that reads Markdown.

How skills work

Each skill is a SKILL.md in the open Agent Skills format. It holds the procedure. The MCP server supplies the data.

  • Report text is data. Quoted, never obeyed.
  • No stale numbers. Checks run_status and _guidance first.
  • Asks before a run. One run per yes, since runs spend prompts.
  • Asks before writing. Approval for each Contentstack create, update or publish.
  • Keys stay secret. Never printed, logged or saved to a file.

What you need

  • Growth or Enterprise. Free has no API or MCP access.
  • A Read & write key in CONTENTSTACK_CANOE_API_KEY. Create a key
  • The MCP server connected as contentstack-canoe. Connect your client
  • For Fix it in Contentstack: the Contentstack MCP with GROUPS=cma, as someone who can edit entries.

Install

Copy the folders into your personal skills directory:

Terminal
curl -LO https://canoe.contentstack.com/skills/contentstack-canoe-skills.zip
unzip contentstack-canoe-skills.zip -d contentstack-canoe-skills
mkdir -p ~/.claude/skills
cp -R contentstack-canoe-skills/contentstack-canoe-* ~/.claude/skills/

For a team, commit them to the repo's .claude/skills/. Call one by name, like /contentstack-canoe-weekly-report.

  1. Turn on Code execution and file creation in Settings, then Capabilities. On Team and Enterprise, an Owner also turns on Skills.

  2. Open Customize, then Skills. Click +, then Create skill, then Upload a skill, once for each zip in the list below. On a paid plan, you can upload the one plugin zip under Customize, then Plugins, instead.

  3. Connect the MCP server. Custom connectors with a key header work only for organizations in Anthropic's request-header beta. Not in it? Use it without a connector.

Claude Desktop uses the same account and skills. Type / in a chat to pick one.

Upload each skill with the Skills API. The upload path must start with the skill's folder name.

Terminal
curl https://api.anthropic.com/v1/skills \
  -H "x-api-key: $ANTHROPIC_API_KEY" \
  -H "anthropic-version: 2023-06-01" \
  -F "files[]=@contentstack-canoe-weekly-report/SKILL.md;filename=contentstack-canoe-weekly-report/SKILL.md"

Skills run in a container with no network, so connect Contentstack Canoe through the MCP connector in the same request:

Terminal
curl https://api.anthropic.com/v1/messages \
  -H "x-api-key: $ANTHROPIC_API_KEY" \
  -H "anthropic-version: 2023-06-01" \
  -H "anthropic-beta: code-execution-2025-08-25,mcp-client-2025-11-20" \
  -H "content-type: application/json" \
  -d @- <<EOF
{
  "model": "claude-opus-5",
  "max_tokens": 16000,
  "container": {
    "skills": [{ "type": "custom", "skill_id": "<SKILL_ID>", "version": "latest" }]
  },
  "mcp_servers": [{
    "type": "url",
    "url": "https://canoe.contentstack.com/api/mcp",
    "name": "contentstack-canoe",
    "authorization_token": "$CONTENTSTACK_CANOE_API_KEY"
  }],
  "tools": [
    { "type": "code_execution_20260521", "name": "code_execution" },
    {
      "type": "mcp_toolset",
      "mcp_server_name": "contentstack-canoe",
      "configs": { "trigger_geo_test_run": { "enabled": false } }
    }
  ],
  "messages": [{ "role": "user", "content": "Build this week's AI visibility brief for Tarnwell Cycles." }]
}
EOF

No person is there to confirm a run, so trigger_geo_test_run is off. Turn it on only for the re-measure skill, when your code asks a person first. See Anthropic's skills guide (opens in a new tab).

Put the folders in your repo. Tell the agent to read contentstack-canoe-<name>/SKILL.md before a task, or list each skill in your rules or AGENTS.md.

Some clients prefix tool names, like mcp__contentstack-canoe__list_projects. The skills use bare names and work either way.

Use it without a connector

Claude.ai connectors with a key header are a limited beta, and ChatGPT needs OAuth sign-in (coming soon). Until then, use the skills with a report file.

  1. Upload the skills: Customize, Skills, +, Create skill, Upload a skill. Or upload the one plugin zip. Code execution must be on.

  2. In a chat, attach the exported report JSON or the report PDF.

  3. Type /, pick a skill and ask, like “Weekly brief from this report.”

Keep keys out of chats
  • Never paste a key into a chat, a Project or a skill. If you did, revoke it.
  • Prefer a file path or an upload. Exports use a Read only key.
  • Never allow trigger_geo_test_run unless you want runs. They spend prompts.

The skills

8 skills

Weekly visibility brief

contentstack-canoe-weekly-report
Works todayRead only

A two-minute read: score and trend, visibility, rank, sentiment, per-engine scores and the buyer journey. Then what moved and the three recommendations to act on first.

Example prompt
Give me this week's AI visibility brief for Tarnwell Cycles.

Competitor gap analysis

contentstack-canoe-competitor-gaps
Works todayRead only

Which competitors win, on which engines, stages and exact questions, in the engines' own words, plus the sources behind each win.

Example prompt
Who is beating Tarnwell Cycles in AI answers, and on which questions? Show me what the engines said about Aldren.

Citation target list

contentstack-canoe-citation-targets
Works todayRead only

The third-party domains and pages the engines cite, ranked, with engines, stages and competitor overlap. For PR and review sites. Never scrapes contacts or sends anything.

Example prompt
Build a PR target list from the sites the engines cite when buyers ask about commuter e-bikes.

Content briefs from lost questions

contentstack-canoe-content-briefs
Works todayRead only

Briefs for the questions you lose: the buyer's phrasing, what winning answers say, the evidence, the page type and the sources worth earning.

Example prompt
Turn the questions we lose to Aldren and Solvik into content briefs.

Fix it in Contentstack

contentstack-canoe-fix-in-contentstack
Works today, partlyWrites on approval

With the Contentstack MCP: picks a recommendation, finds the entry, shows the change and updates or publishes only when you approve that step. Then offers a re-run.

Partly: Contentstack Canoe doesn't know which entry renders which page, so the agent searches your stack by URL or title.

Example prompt
Take the top recommendation and draft the fix in Contentstack. Don't publish until I say so.

Re-measure after a change

contentstack-canoe-remeasure
Works todaySpends prompts

Estimates the prompt cost, starts the run (trigger_geo_test_run) on your yes, polls run_status and reports what moved: score, visibility, rank, engines, competitors and sources.

Example prompt
We just published the Aldren comparison page. Re-run the monitor and tell me what changed.

Visibility alerts

contentstack-canoe-visibility-alerts
Works today, partlyRead only

Checks every monitor against your thresholds: score drops, rank slips, competitors climbing, citation share falling, top sources lost. Posts to a channel you've connected only when a line is crossed.

Partly: runs on your own scheduler. Native alerts and outbound webhooks are coming soon.

Example prompt
Every Monday at 9, check all our monitors and post anything that crossed a threshold to #ai-visibility.

Leadership summary

contentstack-canoe-exec-summary
Works todayRead only

One board-ready page: where you stand, the trend, how you compare with key competitors and the three things to do next.

Example prompt
Write a one-page AI visibility update for Thursday's leadership meeting.

A weekly loop

The skills hand off to each other:

  1. Weekly visibility brief
  2. Competitor gap analysis
  3. Content briefs from lost questions
  4. Fix it in Contentstack
  5. Re-measure after a change

To run the fix step without a chat, use Agent OS. It only creates drafts.

Versions and updates

Version 1.0.0. Skills don't update themselves, so download all eight again (.zip, 47 KB) and replace your copies. Proprietary license, © 2026 Contentstack Inc.