Model Context Protocol is a transport, not a product: it lets an agent call typed tools. SiteAssets ships one server that wraps the public API, so anything you can do in the UI you can do from a prompt.
Step 1 — Get a key
Sign in, open the dashboard and create an API key. Keys are prefixed with sk_live_ and shown exactly once — copy it straight into your secret store, never into a tracked file.
Step 2 — Register the server
Add the server to your MCP configuration. The same block works in Claude Code, Cursor, Windsurf and VS Code.
{
"mcpServers": {
"siteassets": {
"command": "npx",
"args": ["-y", "@siteassets/mcp"],
"env": {
"SITEASSETS_API_KEY": "sk_live_xxxxxxxx"
}
}
}
} Step 3 — Know the three tools
- check_open_graph — fetches a URL and returns the score, metadata and issues.
- suggest_open_graph_fix — returns the missing tags with recommended values and ready-to-paste HTML.
- generate_og_image — renders a 1200 × 630 image as PNG, WebP or SVG and returns its URL.
{ "url": "https://example.com" } // check_open_graph
{ "url": "https://example.com" } // suggest_open_graph_fix
{
"title": "Hello world",
"description": "Optional",
"brandColor": "#d97706",
"template": "minimal",
"format": "png"
} // generate_og_image Step 4 — Ask for a fix, not a report
The useful prompt names the deliverable. “Audit the metadata on this page and open a patch” produces work; “what is my OG score” produces a number you still have to act on.
- Check https://example.com/pricing and list every failing tag.
- Rewrite the OG tags for this layout file, keeping titles under 70 characters.
- Generate a matching OG image with our brand colour and use it in the template.
- Re-check the deployed URL and tell me if the score improved.
Step 5 — Make it part of the commit
The highest-value use is a habit: after touching a layout or a page’s frontmatter, run a check. A tiny pre-push script is enough.
#!/usr/bin/env bash
set -euo pipefail
# Re-check a deployed preview before pushing metadata changes.
curl -s "https://siteassets.dev/api/v1/og/check?url=$PREVIEW_URL" \
-H "Authorization: Bearer $SITEASSETS_KEY" \
| node -e "let s='';process.stdin.on('data',d=>s+=d).on('end',()=>{const r=JSON.parse(s);if(r.score<100){console.error('OG score',r.score);process.exit(1)}})" Automate the check, not the fix. The agent should explain the tag it changed.
Anonymous MCP calls are rate limited per IP; keys raise the ceiling and make runs repeatable. If you also want prompt-level recipes, the skills library documents the same workflows as reusable instructions.