WotAIEcho home

Echo Documentation

The agent-native content engine: brand-first content marketing your agents call over MCP or the CLI.

Quickstart

  1. Create an account and start your 14-day free trial (card required, no charge until the trial ends).
  2. Connect your agent — add a custom connector in Claude, ChatGPT, or Cursor with this URL and authenticate when prompted:https://echo.wotai.co/api/mcp
  3. Or use an API key — mint one on /welcome and send it as the x-api-key header (CLI, scripts, CI).
  4. Set up your brand — ask your agent to call brand-config.create with your brand's voice and messaging. Every other capability references it.

Authentication

MCP connector (OAuth 2.1 + PKCE): for agents. Adding the connector by URL triggers a browser sign-in and consent; the granted scopes below bound what the agent can call. Your organization is bound into the token automatically.

API key (x-api-key): for the CLI and automation. Keys are shown once, stored hashed, carry your organization, and get the full capability set.

Both paths hit the same endpoint and meter against the same organization quota.

Capabilities (19)

ToolScopeWhat it does
brand-config.createwrite:generateCreate a brand (voice, messaging, audience). Returns a `brandId` — pass it as `brandId` to every brand-scoped capability (Brand DNA, audits, content). Subject to your plan's brand-config cap.
brand-config.listread:intelligenceList your organization's brands — each with its `brandId` (pass to brand-scoped capabilities), slug, and creation date.
usage.getread:intelligenceCheck your engine-call usage: plan, calls used, limit, remaining, and when the period resets. Never spends a call.
report.listread:intelligenceList your organization's stored reports (DNAs, audits, generated content), newest first.
report.getread:intelligenceFetch one stored report by the generationId a capability returned. A failed run also carries a machine-readable `runError` ({ code, retryable, message }) — check `retryable` to decide whether re-running may succeed.
brand-dna
brand-scoped
read:intelligenceGenerate a brand's core identity profile (returns a report).
audience-dna
brand-scoped
read:intelligenceGenerate target-audience profiles for a brand (returns a report).
competitor-dna
brand-scoped
read:intelligenceGenerate a competitive analysis for a brand (returns a report).
seo-audit
brand-scoped
read:intelligenceRun an SEO audit for a website (returns a report).
tech-audit
brand-scoped
read:intelligenceRun a technical SEO audit for a website (returns a report).
backlink-audit
brand-scoped
read:intelligenceRun a backlink audit for a website (returns a report).
social-audit
brand-scoped
read:intelligenceRun a social-presence audit for a website (returns a report).
local-seo-audit
brand-scoped
read:intelligenceRun a local-SEO audit for a business (returns a report).
content-performance-audit
brand-scoped
read:intelligenceRun a content-performance audit for a website (returns a report).
pillar-generation
brand-scoped
write:generateGenerate an SEO-optimized pillar page from a source URL (returns a draft).
idea-generation
brand-scoped
write:generateGenerate content ideas for an audience segment (returns ideas).
social-media-generation
brand-scoped
write:generateGenerate social-media posts from a content idea (returns posts).
blog-generation
brand-scoped
write:generateGenerate a brand-aligned blog post (returns a finished draft).
keyword-research
brand-scoped
read:intelligenceLook up ranked keywords for a domain, stored against one of your brands (returns keyword data).

Brand configs

A brand config is the typed document every capability runs against — voice, messaging, audience, and publishing rules, referenced by a kebab-case slug. Create one with brand-config.create; your plan caps how many you can have (see plans below).

The document is validated on create with per-field issues returned for anything missing. It requires meta.schema_version ("v1" or "v1.1"), a kebab-case meta.brand_id, and 14 top-level sections: meta, identity, voice, banned_phrasings, naming, tokens, post_schema, surfaces, publishing_pipeline, pre_publish_overrides, keyword_universe, cover_image_overrides, cross_references, and internal_link_targets. Your agent can iterate on the validation issues until the document passes.

Plans, metering, and caps

PlanEngine calls / moBrand configs
solo5001
starter1,0003
growth5,00010
scale20,00030

Every call meters against your organization with hard spend caps. Usage is attributed per brand config. Manage, change plan, or cancel from /welcome → Manage subscription.

Error codes

UNAUTHENTICATEDNo valid credential. Connect via OAuth or send a valid x-api-key. A credential-less tools/call also gets an HTTP 401 with a WWW-Authenticate challenge so MCP hosts can start OAuth.

ENTITLEMENT_DENIEDYour subscription does not grant this call (no active plan, or the capability is outside your plan). Start or fix your subscription on /welcome.

RATE_LIMITEDQuota or spend cap reached for the current billing period. Retry after the window resets, or upgrade.

NOT_FOUNDThe brand or resource does not exist for YOUR organization. Cross-tenant lookups return the same 404 (no existence probing).

BRAND_CONFIG_CAP_EXCEEDEDYour plan's brand-config limit is reached. The error carries limit and current; upgrade to add more brands.

NO_ORGANIZATIONYour credential is not bound to an organization. Re-mint your API key from /welcome or reconnect the OAuth connector.

VALIDATION_ERRORInput failed schema validation. The error lists per-field issues your agent can fix and retry.

Pricing and product overview: wotai.co/products/echo