Connect ChatGPT, Claude, Cursor or any MCP client to Aveiro with one URL and OAuth. Agents can create sites, write pages, publish, draft social posts and newsletters, and film videos.
Aveiro runs a hosted MCP server at https://www.aveiro.app/api/mcp/mcp. Paste that URL into ChatGPT, Claude, Cursor or any MCP client, sign in, pick an organization, and the agent can create sites, write pages, publish, draft social posts and newsletters, and film videos. Nothing to install and no token to copy.
What it is
The Aveiro MCP server is a remote Model Context Protocol server. It exposes the same capabilities as the REST API — sites, pages, collections, publishing, media, social drafts, video mockups and newsletters — as named tools an agent can call directly, with descriptions and safety hints the host uses to decide when to ask you before acting.It is a remote server over streamable HTTP, so there is nothing to install: your client connects to a URL and authenticates with OAuth. It works with any MCP client that supports remote servers; ChatGPT, Claude Code, Claude.ai and Claude Desktop, Cursor and VS Code are the ones Aveiro tests against.
Connect a client
Every client needs the same URL:Claude Code — one command:Claude.ai and Claude Desktop — Settings → Connectors → Add custom connector, paste the URL, then sign in when prompted.ChatGPT — Settings → Connectors → add a custom connector with the URL, then sign in and pick the organization to grant.Cursor — Add to Cursor installs it in one click, or add it by hand in Settings → MCP.VS Code — Add to VS Code, or add the server to your MCP settings.Any other client — this is the generic configuration:The same URL and snippets are on the API tokens page of your dashboard, under Connect agents.
Signing in
The first time a client connects it opens a browser window: sign in to Aveiro, then choose the organization the agent may work in. That is the whole setup. The grant is scoped to that one organization, the client never sees an API token secret, and you can revoke it at any time from the dashboard.
https://www.aveiro.app/api/mcp/mcp
claude mcp add --transport http aveiro https://www.aveiro.app/api/mcp/mcp
A grant carries the scopes the full tool set needs: sites:read, sites:write, content:read, content:write, collections:write, content:delete, publish:write, social:write, newsletter:read and newsletter:write. Scopes are a ceiling, not a licence — every call is re-checked against your live member permissions in that organization, so an agent can never do more than you can. If new tools arrive that need a scope your grant predates, re-authorize the client from the consent screen to pick them up.
Clients that authenticate with a header (scripts, CI, an agent runtime without an OAuth flow) use an API token instead, sent as Authorization: Bearer av_live_…. Give the token only the scopes the job needs — publish:write if it should publish, content:write alone if a human should press publish.
Tools
Call aveiro_me first if you are unsure what a connection can do: it returns the scopes and the sites the grant reaches. Every tool that acts on a site takes a site_id from aveiro_list_sites.
Sites
Tool
Purpose
Scope
aveiro_me
Verify the connection and list its scopes and allowed sites
—
aveiro_list_sites
List the sites this connection can access
sites:read
aveiro_list_templates
Browse approved marketplace templates to clone
sites:read
aveiro_create_site
Create a site, ideally from a template slug
sites:write
Pages and collections
Tool
Purpose
Scope
aveiro_authoring_guide
The Aveiro MDX doctrine and component catalog — call before the first write
—
aveiro_list_pages
List a site's draft pages
content:read
aveiro_get_page
Read one draft page by path or ID
content:read
aveiro_create_page
Create a draft page
content:write
aveiro_update_page
Replace a page's draft content or metadata
content:write
aveiro_delete_page
Soft-delete a draft page (the homepage cannot be deleted)
content:delete
aveiro_reorder_pages
Reorder pages, move a page into a folder, or set a folder's sort mode
content:write
aveiro_list_collections
List a site's collections (folders)
content:read
aveiro_create_collection
Create a collection
collections:write
aveiro_delete_collection
Delete a collection and its pages
content:delete
Publishing
Tool
Purpose
Scope
aveiro_list_changes
List draft pages with unpublished edits
content:read
aveiro_publish_site
Publish changed pages — all of them, or a list of page IDs
publish:write
Site media
Tool
Purpose
Scope
aveiro_list_media
List images already in a site's media library — reuse before uploading
content:read
aveiro_prepare_media_upload
Signed-URL handshake to add an image to site media
content:write
aveiro_media_list_screenshot_styles
List the mockup looks a screenshot can be filmed in
content:write
aveiro_media_create_screenshot
Film a public page into a 3D mockup still (async — poll get)
content:write
aveiro_media_get_screenshot
Poll a screenshot render; read its warnings before embedding
content:write
aveiro_media_start_screenshot_login
Get a sign-in link so screenshots of a page behind login show the signed-in page
content:write
Social publishing
Tool
Purpose
Scope
aveiro_social_list_accounts
List connected social accounts to target
social:write
aveiro_social_list_posts
List posts with their event timelines — filter for rejected or pending ones
social:write
aveiro_social_get_post
One post with its feedback timeline and engagement snapshots
social:write
aveiro_social_get_performance
Cross-post engagement: early velocity and settled totals per platform
social:write
aveiro_social_create_draft
Create a post draft for human review
social:write
aveiro_social_update_draft
Revise a draft, pending or rejected post — for example to act on feedback
social:write
aveiro_social_list_media
List the social media library
social:write
aveiro_social_list_org_media
Browse the organization's general media storage
social:write
aveiro_social_prepare_upload
Direct-upload target for a local image or video
social:write
aveiro_social_register_media
Register media that already lives at a public URL
social:write
aveiro_social_generate_media
Generate images with the AI generator in platform-fit ratios (uses AI credits)
social:write
Video
Tool
Purpose
Scope
aveiro_video_list_presets
List website-render presets and recent renders
social:write
aveiro_video_create_mockup
Film a public page in a 3D device mockup (uses AI credits)
social:write
aveiro_video_get
Check whether a render has finished
social:write
Newsletters
Tool
Purpose
Scope
aveiro_newsletter_list_campaigns
List email campaigns, newest first
newsletter:read
aveiro_newsletter_get_campaign
One campaign with its full HTML and text
newsletter:read
aveiro_newsletter_get_analytics
Send, open, click and unsubscribe metrics with top links
newsletter:read
aveiro_newsletter_create_draft
Create a campaign in draft
newsletter:write
aveiro_newsletter_update_draft
Revise a draft campaign
newsletter:write
What an agent cannot do
Some steps stay with a person no matter which scopes a connection holds:
Social posts are never published by a tool. Drafts go to the approval queue; a human approves and schedules them in the dashboard. See the approval workflow.
Newsletters are never sent by a tool. Draft and revise over MCP; scheduling and sending happen in the dashboard.
Pages are published only with publish:write. Leave it off a token and every change waits for a human in the editor. Read publishing pages for how review works.
Authoring guidance
Before the first aveiro_create_page or aveiro_update_page call, an agent should call aveiro_authoring_guide. It returns the shared Aveiro MDX doctrine — linear editorial structure, registered components only, and the strict contracts for LineChart, OgCard, Collection and images. Content in another dialect is rejected or renders broken; content that passes validation but reads off-dialect still succeeds, and the response carries an advisory recommendations array describing suggested rewrites.
For images, call aveiro_list_media first and reuse what is there. When a new file is needed, aveiro_prepare_media_upload returns a short-lived signed URL: PUT the raw bytes, then embed the returned publicUrl. When the page should show a live product screen, aveiro_media_create_screenshot films the real page — poll aveiro_media_get_screenshot for the imageUrl and read its warnings; if one mentions a login redirect, aveiro_media_start_screenshot_login returns a link you open once per site, after which the agent retries with recapture: true.
Bootstrap from a template
An agent spinning up a new site should clone a marketplace template rather than start blank:
aveiro_list_templates returns the approved templates with a slug, category and live preview_url.
aveiro_create_site with name, slug and template set to that slug copies the template's pages, layout and styles.
Continue with aveiro_list_pages and aveiro_update_page on the returned site ID, then aveiro_publish_site when it is ready.
Cloning a large template can take a few minutes; the tool waits. Read choosing a template for what the gallery offers.
Tool safety hints
Every Aveiro tool declares behaviour hints alongside its description, and hosts such as ChatGPT use them to decide when to ask for confirmation before running a tool:
Hint
What it means
readOnlyHint
The tool only reads workspace data — no drafts, media or settings change.
destructiveHint
The tool can delete or irreversibly remove something, such as aveiro_delete_page.
idempotentHint
Repeating the same call with the same inputs has the same effect — updates and soft-deletes.
openWorldHint
Always false for Aveiro: tools act only on your Aveiro workspace, never the open web.
Running the server locally
The hosted server is the supported path. A stdio build of the same tool set lives in the Aveiro repository under mcp/aveiro/ for local development against the API with a token:
npm run inspector opens the MCP inspector for trying tools interactively.