Agents & MCP
Ask your agent why ChatGPT recommends your competitor
The Contentstack Canoe MCP server gives Claude, Cursor and VS Code your scores, sources and fixes.
MCP, the API and skills need Growth or Enterprise. Start free, upgrade anytime.
You ask: Why does ChatGPT recommend Aldren over us for commuter e-bikes?
contentstack-canoe3 tool calls
list_geo_testsCommuter e-bikes, weeklyget_geo_latest_reportRun 8, successget_geo_latest_prompt_details20 questions, 4 engines
Your agent answers: ChatGPT names Aldren first on 6 of 8 range questions. You’re named on 2, after a note about cold-weather range.
CompetitiveRecommendation 1 of 3
Close the gap with Aldren on range questions
Publish tested cold-weather range figures on each model page.
The MCP server
Eight tools read the report. One re-runs it.
Ask in plain words. Your agent picks the tools, and you see every call.
You ask: List our brands and their monitors.
Your agent answers: Tarnwell Cycles has two monitors.
- Commuter e-bikesWeekly, run 8 finishedScore 61
- Cargo e-bikesMonthlyRunning
list_projectsYour brands.
list_geo_testsA brand’s monitors, latest score and run status.
You ask: Show me the answers where our top competitor won and we didn’t.
Your agent answers: Aldren is first on 6 of 8 range questions. Here are all six.
Report text is data. Every tool that returns report text tells your agent not to take orders from it.
get_geo_latest_reportThe latest run, recommendations, site audit and changes in one call.
get_geo_test_historyUp to 50 past runs, per engine.
get_geo_latest_prompt_detailsEvery question with each engine’s full answer.
get_geo_prompt_detailsThe same detail for an earlier run.
get_geo_latest_citationsCited sources: yours, competitors’ and third-party.
get_geo_citationsCitations for any run or date range.
You ask: Draft the top recommendation in Contentstack and wait for my OK.
Your agent answers: Draft ready. Nothing is published until you approve it.
Competitive#1
Close the gap with Aldren on range questions
Contentstack Canoe doesn’t write to your CMS. Your agent uses the Contentstack MCP or your own CMS tools.
You ask: Re-run the monitor and tell me what moved.
Your client asks: Allow trigger_geo_test_run? It spends 80 prompts.
Your agent answers: Run 9 is done: up 6 since run 8.
- Commuter e-bikesRun 9 finishedScore 67
trigger_geo_test_runStarts a fresh run of a monitor.
The one tool that acts. It spends prompts.
Illustrative data, fictional brand.
Setup
Connect your client in about a minute
One URL and one header for any client.
- Growth or Enterprise. 10,000 API and MCP requests a month on Growth.
- A Read & write API key. Read only keys can’t use MCP yet.
- Your key in
CONTENTSTACK_CANOE_API_KEY, not in chat.
https://canoe.contentstack.com/api/mcp
Run it once, then check it with claude mcp list.
$ claude mcp add --transport http \
contentstack-canoe \
https://canoe.contentstack.com/api/mcp \
--scope user \
--header \
"Authorization: Bearer $CONTENTSTACK_CANOE_API_KEY"
Sharing a repo? Commit .mcp.json instead
{
"mcpServers": {
"contentstack-canoe": {
"type": "http",
"url": "https://canoe.contentstack.com/api/mcp",
"headers": {
"Authorization": "Bearer ${CONTENTSTACK_CANOE_API_KEY}"
}
}
}
}
Save to ~/.cursor/mcp.json, or .cursor/mcp.json for one repo.
{
"mcpServers": {
"contentstack-canoe": {
"url": "https://canoe.contentstack.com/api/mcp",
"headers": {
"Authorization": "Bearer ${env:CONTENTSTACK_CANOE_API_KEY}"
}
}
}
}
For Copilot agent mode. VS Code asks for the key on first start.
{
"inputs": [
{
"type": "promptString",
"id": "contentstack-canoe-key",
"description": "Contentstack Canoe API key",
"password": true
}
],
"servers": {
"contentstack-canoe": {
"type": "http",
"url": "https://canoe.contentstack.com/api/mcp",
"headers": {
"Authorization": "Bearer ${input:contentstack-canoe-key}"
}
}
}
}
This file uses servers, not mcpServers.
Save to ~/.codeium/windsurf/mcp_config.json. Devin Desktop uses ~/.config/devin/mcp_config.json.
{
"mcpServers": {
"contentstack-canoe": {
"serverUrl": "https://canoe.contentstack.com/api/mcp",
"headers": {
"Authorization": "Bearer ${env:CONTENTSTACK_CANOE_API_KEY}"
}
}
}
}
Connects through the mcp-remote bridge (needs Node.js). The key sits in this file, so keep it private.
{
"mcpServers": {
"contentstack-canoe": {
"command": "npx",
"args": [
"-y", "mcp-remote",
"https://canoe.contentstack.com/api/mcp",
"--header", "Authorization:${CONTENTSTACK_CANOE_AUTH}"
],
"env": {
"CONTENTSTACK_CANOE_AUTH": "Bearer sk_your_key_here"
}
}
}
}
Any Streamable HTTP client that sends the Authorization header works. No OAuth yet.
[mcp_servers.contentstack-canoe]
url = "https://canoe.contentstack.com/api/mcp"
bearer_token_env_var = "CONTENTSTACK_CANOE_API_KEY"
- Claude API MCP connectorAvailable
- Claude.ai custom connectorsRequest-header beta organizationsLimited
- ChatGPTNeeds OAuth sign-inComing soon
Workflows
Automate it with skills, Agent OS or the API
Each reads the same report, and nothing publishes without your OK.
Eight skills that know the workflow
Each SKILL.md tells your agent which tools to call and when to ask.
AEO Content Optimizer
Agent OS drafts the fix. You approve it.
Import our blueprint into Contentstack Agent OS, connect your tools and call it on your own schedule.
Imports as a draft agent. You add your own keys. What’s Agent OS? (opens in a new tab)
Trigger
Your scheduler or CI calls it over HTTP.
Read
Pulls your Contentstack Canoe report over MCP.
Draft Drafts only
Matches each fix to a content type and creates draft entries.
Report
Posts one Slack digest. Your team reviews and publishes.
Script it without an agent
curl \
https://canoe.contentstack.com/api/projects \
--header \
"Authorization: Bearer $CONTENTSTACK_CANOE_API_KEY"
Common questions
Does using the MCP server spend prompts?
Reading doesn’t. It counts toward your monthly API and MCP requests. Only a run from trigger_geo_test_run spends prompts: one prompt is one question asked of one engine.
Can an agent publish changes to my site?
Only with your OK. Contentstack Canoe doesn’t write to your CMS. The Fix it in Contentstack skill asks before every change, and the Agent OS agent creates drafts only.
Do I need Contentstack CMS?
No. The MCP server, the API and most skills work on any stack. Only the Fix it in Contentstack skill and the Agent OS blueprint need Contentstack.
Give your agents the real numbers
MCP and the API switch on when you move to Growth.