Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.otterly.ai/llms.txt

Use this file to discover all available pages before exploring further.

The Model Context Protocol (MCP) lets AI assistants like Claude Code, Claude Desktop, Cursor, and other compatible clients call external tools in a structured way. The OtterlyAI MCP server exposes your brand reports, prompts, citations, recommendations, and audit checks as MCP tools so your assistant can answer questions about your AI search visibility directly.

Endpoint

https://data.otterly.ai/mcp
The server speaks the MCP streamable HTTP transport (protocol version 2024-11-05). Authenticate with the same Bearer token used for the Public API.

Authentication

Pass your OtterlyAI API key as a Bearer token in the Authorization header. Permissions and workspace scoping behave identically to the rest of the Public API — see Authentication.
Authorization: Bearer oai_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

OAuth (Coming Soon)

OAuth authentication is coming soon. This will allow you to authenticate users via standard OAuth 2.0 flows instead of static API keys. Stay tuned for updates.

Quick sanity check

Before wiring up a client, confirm the server responds:
curl https://data.otterly.ai/mcp \
  -H "Authorization: Bearer $OTTERLY_API_KEY" \
  -H "Accept: application/json, text/event-stream" \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{"name":"curl","version":"0"}}}'
You should get back the server’s capabilities and serverInfo.name = "otterly-mcp".

Claude Code

claude mcp add --transport http otterly https://data.otterly.ai/mcp \
  --header "Authorization: Bearer $OTTERLY_API_KEY"
Verify with claude mcp list — you should see otterly: ... - ✓ Connected. Tools are then available as mcp__otterly__<tool_name>.

Claude Desktop

Claude Desktop currently launches stdio servers, so use the mcp-remote bridge. Add the following to ~/Library/Application Support/Claude/claude_desktop_config.json (macOS):
{
  "mcpServers": {
    "otterly": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-remote",
        "https://data.otterly.ai/mcp",
        "--header",
        "Authorization: Bearer oai_live_..."
      ]
    }
  }
}
Restart Claude Desktop and the OtterlyAI tools will appear in the tool picker.

Cursor

In Cursor → Settings → MCP, add a new server using the same mcp-remote bridge:
{
  "mcpServers": {
    "otterly": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-remote",
        "https://data.otterly.ai/mcp",
        "--header",
        "Authorization: Bearer oai_live_..."
      ]
    }
  }
}

Available tools

Every tool maps 1:1 to an endpoint in the Public API OpenAPI spec. Required arguments match the API; optional arguments are listed below the table.

Workspaces & engines

ToolRequired argumentsDescription
list_workspacesList all workspaces accessible by the API key.
list_workspace_tagsworkspaceIdList tags defined for a workspace.
list_enginesList available AI engines and their supported countries. Optional filters: country, engine.

Brand reports

ToolRequired argumentsDescription
list_brand_reportsList brand reports accessible by the API key. Optional workspaceId scopes to a single workspace.
get_brand_reportreportIdGet a brand report’s details, including competitors, countries, and tags.
get_brand_report_statsreportId, startDate, endDate, countryAggregated stats — brand coverage history, brand ranks with sentiment, top domains, and engine breakdown.
list_brand_report_promptsreportId, startDate, endDate, countryList prompts with brand and domain mention stats for a date range and country.
get_brand_report_promptreportId, promptId, startDate, endDate, countryDetailed metrics for a single prompt — brand coverage history, ranks, sentiment, domain categories, tags.
list_brand_report_prompt_ai_responsesreportId, promptId, startDate, endDate, countryList AI response runs collected for a prompt — raw model content, brand mentions, and citations.
list_brand_report_citationsreportId, startDate, endDate, countryList cited URLs for a brand report, filterable by AI engine, tag, and search query.
get_brand_report_citation_statsreportId, startDate, endDate, countryCitation stats — top cited domains, share-of-citations, and most-cited URLs over a date window.
list_brand_report_citation_promptsreportId, url, startDate, endDate, countryList prompts that cited a specific URL within a brand report over a date window.
list_brand_report_recommendationsreportId, countryList AI-generated recommendations for improving brand visibility, optionally filtered by engine.

GEO audits

ToolRequired argumentsDescription
list_crawlability_checksworkspaceIdList crawlability audit checks (robots.txt analysis, bot access) for a workspace.
get_crawlability_checkcheckId, workspaceIdGet a crawlability check’s full results.
list_content_checksworkspaceIdList content / AI-readiness checks for a workspace.
get_content_checkcheckId, workspaceIdGet a content check’s full results — AI readiness, PageSpeed, structural and dynamic-content scores.

Write tools (API keys with write permission only)

ToolRequired argumentsDescription
create_crawlability_checkworkspaceId, urlCreate a new crawlability audit for a URL.
create_content_checkworkspaceId, urlCreate a new content / AI-readiness check. Optional: crawlerIdentity (impersonate a known crawler), sendOtterlyHeader (send identity header).
These tools are only registered when the API key was issued with write permission; with a read-only key they are not advertised by the server.

Common arguments

  • Dates: startDate and endDate are inclusive. Accept YYYY-MM-DD or a full ISO timestamp; only the date portion is used.
  • Country: country is a lowercase ISO 3166-1 alpha-2 code (e.g. us, de). Use uk for the United Kingdom.
  • Engines: engines (multi-value) and engine (single-value) accept chatgpt, google, perplexity, copilot, google_ai_mode, gemini. Call list_engines to see which engines are available in which countries.
  • Pagination: list tools accept page (default 1) and pageSize (default 50, max 100).
  • Extra filters on list_brand_report_prompts and list_brand_report_citations: engines, tagId, search, sortBy, sortOrder.

Typical conversation flow

  1. list_workspaces → pick a workspaceId (optional).
  2. list_brand_reports → pick a reportId.
  3. list_brand_report_prompts or list_brand_report_citations with reportId, a date range, and a country code (e.g. us, gb, de).
  4. Drill into get_brand_report_stats, get_brand_report_citation_stats, list_brand_report_recommendations, or the GEO audit tools as needed.

Things to know

  • Most tools are read-only. Write tools (create_crawlability_check, create_content_check) are only available to API keys explicitly granted the write permission.
  • Rate limits, error codes, and workspace scoping match the Public API. A 401 or 403 from a tool call means the API key is missing, invalid, or lacks permission for the requested workspace.
  • The OpenAPI spec at https://data.otterly.ai/v1/openapi.json is the source of truth for the underlying data shapes returned by each tool.
Hitting a bug or missing a tool you’d like to see? Email support@otterly.ai.