Skip to content

MCP Server

Connect your assistant to Trakkr. Read your brand’s AI visibility, explore the evidence and use tools with clear inputs.

Get connected

Choose your client. Hosted setup uses https://api.trakkr.ai/mcp over Streamable HTTP. Sign in to Trakkr and approve access; your client handles OAuth.

Claude: hosted sign-in

Official client guide

Use a custom connector in your Claude account, including Claude desktop.

  • For a managed Claude workspace, an owner may need to add the connector first.
  1. Open Customize > Connectors, then add a custom connector named Trakkr.
  2. Set the remote MCP server URL to https://api.trakkr.ai/mcp.
  3. Choose Register automatically if Claude asks how to identify its OAuth client. Connect, sign in to Trakkr and approve access.
Remote server URL
https://api.trakkr.ai/mcp

Trakkr advertises the trakkr:mcp scope, dynamic client registration and S256 PKCE. A paid Trakkr plan is required. Access follows your account’s brand permissions. You can revoke the connection in Settings → API and MCP.

Advanced: local token setup

Use this route when your client supports local stdio servers and you need a local setup.

Claude uses hosted sign-in. For local stdio setup, choose Claude desktop, Claude Code or an editor that supports local MCP servers.

Make your first read

Enable Trakkr in your client’s tool selector, then ask: “Use Trakkr’s list_brands to show the brands I can access and their IDs.” This read changes no account data.

list_brands input
{}

Sample output. Synthetic fixture, not account data.

list_brands sample JSON text
{
  "brands": [
    {
      "id": "00000000-0000-4000-8000-000000000001",
      "name": "Sample brand",
      "active": true,
      "role": "viewer"
    }
  ]
}

A successful result has a brands array. Copy the id of a brand you can access for later calls. An empty array means this account has no accessible brands; it does not mean setup failed.

Continue with a read-only recipe

Available tools

82 tools. Search by tool, task or parameter. Inputs come from the current schema snapshot, including fields offered only by the hosted server.

82 of 82 tools

Content 6

add_knowledgeAdd a source to the brand's knowledge base from raw text or a URL. Processed async.

Changes account data or starts work

brand_idstringRequired

The brand to add knowledge to.

source_typestringRequired

Choose the source type.

Allowed: "text", "url"

contentstring | nullOptional

Raw text. Required when source_type='text'.

Default: null

urlstring | nullOptional

Page URL. Required when source_type='url'.

Default: null

namestring | nullOptional

Optional display name.

Default: null

user_intentstringOptional · Hosted only

A short description of the user’s request. Omit secrets and prior chat.

Maximum length: 600

Complete input schema
add_knowledge: hosted inputSchema
{
  "properties": {
    "brand_id": {
      "title": "Brand Id",
      "type": "string"
    },
    "source_type": {
      "enum": [
        "text",
        "url"
      ],
      "title": "Source Type",
      "type": "string"
    },
    "content": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Content"
    },
    "url": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Url"
    },
    "name": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Name"
    },
    "user_intent": {
      "type": "string",
      "maxLength": 600
    }
  },
  "required": [
    "brand_id",
    "source_type"
  ],
  "title": "add_knowledgeArguments",
  "type": "object"
}
Output contract

The tool returns JSON in MCP text content. It does not declare an outputSchema or structuredContent. Response fields depend on the selected view and result.

Related API routes: /content/knowledge/sources. See the OpenAPI response schemas for the corresponding HTTP contracts.

Link to this tool
generate_articleGenerate a brand article from a prompt, grounded in the brand's knowledge and voice. Async; never publishes.

Changes account data or starts work

brand_idstringRequired

The brand to write for.

primary_promptstringRequired

The topic or query the article should win.

secondary_promptsarray | nullOptional

Optional extra angles to cover.

Default: null

word_targetintegerOptional

Target length, 300-6000.

Default: 2000

Minimum: 300

Maximum: 6000

template_idstring | nullOptional

Optional report-template id to structure the piece.

Default: null

user_intentstringOptional · Hosted only

A short description of the user’s request. Omit secrets and prior chat.

Maximum length: 600

Complete input schema
generate_article: hosted inputSchema
{
  "properties": {
    "brand_id": {
      "title": "Brand Id",
      "type": "string"
    },
    "primary_prompt": {
      "title": "Primary Prompt",
      "type": "string"
    },
    "secondary_prompts": {
      "anyOf": [
        {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Secondary Prompts"
    },
    "word_target": {
      "default": 2000,
      "maximum": 6000,
      "minimum": 300,
      "title": "Word Target",
      "type": "integer"
    },
    "template_id": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Template Id"
    },
    "user_intent": {
      "type": "string",
      "maxLength": 600
    }
  },
  "required": [
    "brand_id",
    "primary_prompt"
  ],
  "title": "generate_articleArguments",
  "type": "object"
}
Output contract

The tool returns JSON in MCP text content. It does not declare an outputSchema or structuredContent. Response fields depend on the selected view and result.

Related API routes: /content/articles/generate. See the OpenAPI response schemas for the corresponding HTTP contracts.

Link to this tool
get_articlesRead brand articles authored inside Trakkr.

Read only

brand_idstringRequired

The brand to inspect.

viewstringOptional

Select the result view.

Default: "list"

Allowed: "list", "detail"

article_idstring | nullOptional

Required for 'detail'.

Default: null

statusstring | nullOptional

Filter by status.

Default: null

Allowed: "draft", "review", "ready", "published"

standalone_onlybooleanOptional

Exclude campaign articles.

Default: false

limitintegerOptional

Results per page, 1-200.

Default: 50

Minimum: 1

Maximum: 200

offsetintegerOptional

Pagination offset.

Default: 0

Minimum: 0

Maximum: 1000000

user_intentstringOptional · Hosted only

A short description of the user’s request. Omit secrets and prior chat.

Maximum length: 600

Complete input schema
get_articles: hosted inputSchema
{
  "properties": {
    "brand_id": {
      "title": "Brand Id",
      "type": "string"
    },
    "view": {
      "default": "list",
      "enum": [
        "list",
        "detail"
      ],
      "title": "View",
      "type": "string"
    },
    "article_id": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Article Id"
    },
    "status": {
      "anyOf": [
        {
          "enum": [
            "draft",
            "review",
            "ready",
            "published"
          ],
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Status"
    },
    "standalone_only": {
      "default": false,
      "title": "Standalone Only",
      "type": "boolean"
    },
    "limit": {
      "default": 50,
      "maximum": 200,
      "minimum": 1,
      "title": "Limit",
      "type": "integer"
    },
    "offset": {
      "default": 0,
      "maximum": 1000000,
      "minimum": 0,
      "title": "Offset",
      "type": "integer"
    },
    "user_intent": {
      "type": "string",
      "maxLength": 600
    }
  },
  "required": [
    "brand_id"
  ],
  "title": "get_articlesArguments",
  "type": "object"
}
Output contract

The tool returns JSON in MCP text content. It does not declare an outputSchema or structuredContent. Response fields depend on the selected view and result.

Related API routes: /content/articles. See the OpenAPI response schemas for the corresponding HTTP contracts.

Link to this tool
get_knowledgeRead the brand's knowledge base sources.

Read only

brand_idstringRequired

The brand to inspect.

viewstringOptional

Select the result view.

Default: "sources"

Allowed: "sources", "stats"

user_intentstringOptional · Hosted only

A short description of the user’s request. Omit secrets and prior chat.

Maximum length: 600

Complete input schema
get_knowledge: hosted inputSchema
{
  "properties": {
    "brand_id": {
      "title": "Brand Id",
      "type": "string"
    },
    "view": {
      "default": "sources",
      "enum": [
        "sources",
        "stats"
      ],
      "title": "View",
      "type": "string"
    },
    "user_intent": {
      "type": "string",
      "maxLength": 600
    }
  },
  "required": [
    "brand_id"
  ],
  "title": "get_knowledgeArguments",
  "type": "object"
}
Output contract

The tool returns JSON in MCP text content. It does not declare an outputSchema or structuredContent. Response fields depend on the selected view and result.

Related API routes: /content/knowledge. See the OpenAPI response schemas for the corresponding HTTP contracts.

Link to this tool
get_writing_styleRead the brand's configured voice - tone, vocabulary, do's and don'ts, sample sentences.

Read only

brand_idstringRequired

The brand to inspect.

viewstringOptional

Select the result view.

Default: "profile"

Allowed: "profile", "samples"

user_intentstringOptional · Hosted only

A short description of the user’s request. Omit secrets and prior chat.

Maximum length: 600

Complete input schema
get_writing_style: hosted inputSchema
{
  "properties": {
    "brand_id": {
      "title": "Brand Id",
      "type": "string"
    },
    "view": {
      "default": "profile",
      "enum": [
        "profile",
        "samples"
      ],
      "title": "View",
      "type": "string"
    },
    "user_intent": {
      "type": "string",
      "maxLength": 600
    }
  },
  "required": [
    "brand_id"
  ],
  "title": "get_writing_styleArguments",
  "type": "object"
}
Output contract

The tool returns JSON in MCP text content. It does not declare an outputSchema or structuredContent. Response fields depend on the selected view and result.

Related API routes: /content/writing-style. See the OpenAPI response schemas for the corresponding HTTP contracts.

Link to this tool
manage_knowledgeDelete or reprocess a knowledge source.

Changes account data or starts work · Review the change before approving

actionstringRequired

Choose the operation to perform.

Allowed: "delete", "reprocess"

source_idstringRequired

The source to act on.

user_intentstringOptional · Hosted only

A short description of the user’s request. Omit secrets and prior chat.

Maximum length: 600

Complete input schema
manage_knowledge: hosted inputSchema
{
  "properties": {
    "action": {
      "enum": [
        "delete",
        "reprocess"
      ],
      "title": "Action",
      "type": "string"
    },
    "source_id": {
      "title": "Source Id",
      "type": "string"
    },
    "user_intent": {
      "type": "string",
      "maxLength": 600
    }
  },
  "required": [
    "action",
    "source_id"
  ],
  "title": "manage_knowledgeArguments",
  "type": "object"
}
Output contract

The tool returns JSON in MCP text content. It does not declare an outputSchema or structuredContent. Response fields depend on the selected view and result.

Related API routes: /content/knowledge/sources/{id}. See the OpenAPI response schemas for the corresponding HTTP contracts.

Link to this tool

Actions 16

bulk_manage_promptsCreate, delete, activate, or deactivate prompts in bulk.

Changes account data or starts work · Review the change before approving

actionstringRequired

Choose the operation to perform.

Allowed: "bulk_create", "bulk_delete", "activate", "deactivate"

brand_idstringRequired

The brand these prompts belong to.

promptsstring | array | nullOptional

JSON array of prompt objects for bulk_create.

Default: null

prompt_idsstring | array | nullOptional

Comma-separated prompt IDs for bulk_delete, activate, or deactivate.

Default: null

user_intentstringOptional · Hosted only

A short description of the user’s request. Omit secrets and prior chat.

Maximum length: 600

Complete input schema
bulk_manage_prompts: hosted inputSchema
{
  "properties": {
    "action": {
      "enum": [
        "bulk_create",
        "bulk_delete",
        "activate",
        "deactivate"
      ],
      "title": "Action",
      "type": "string"
    },
    "brand_id": {
      "title": "Brand Id",
      "type": "string"
    },
    "prompts": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "items": {
            "additionalProperties": true,
            "type": "object"
          },
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Prompts"
    },
    "prompt_ids": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Prompt Ids"
    },
    "user_intent": {
      "type": "string",
      "maxLength": 600
    }
  },
  "required": [
    "action",
    "brand_id"
  ],
  "title": "bulk_manage_promptsArguments",
  "type": "object"
}
Output contract

The tool returns JSON in MCP text content. It does not declare an outputSchema or structuredContent. Response fields depend on the selected view and result.

Related API routes: /get-prompts. See the OpenAPI response schemas for the corresponding HTTP contracts.

Link to this tool
commit_opportunityDecide on one suggestion: commit, dismiss or snooze. Committing freezes how the change will be measured, which makes a before-and-after result possible later. Cannot grant an agent any permission.

Changes account data or starts work · Review the change before approving

brand_idstringRequired

The brand that owns the suggestion.

opportunity_idstringRequired

The suggestion to decide on (from list_opportunity_pool).

actionstringOptional

Choose the operation to perform.

Default: "commit"

Allowed: "commit", "dismiss", "snooze"

reasonstring | nullOptional

Why it was dismissed. Recommended for action='dismiss'.

Default: null

snooze_daysinteger | nullOptional

How long to hide it, 1-90.

Default: null

Minimum: 1

Maximum: 90

user_intentstringOptional · Hosted only

A short description of the user’s request. Omit secrets and prior chat.

Maximum length: 600

Complete input schema
commit_opportunity: hosted inputSchema
{
  "properties": {
    "brand_id": {
      "title": "Brand Id",
      "type": "string"
    },
    "opportunity_id": {
      "title": "Opportunity Id",
      "type": "string"
    },
    "action": {
      "default": "commit",
      "enum": [
        "commit",
        "dismiss",
        "snooze"
      ],
      "title": "Action",
      "type": "string"
    },
    "reason": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Reason"
    },
    "snooze_days": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "maximum": 90,
      "minimum": 1,
      "title": "Snooze Days"
    },
    "user_intent": {
      "type": "string",
      "maxLength": 600
    }
  },
  "required": [
    "brand_id",
    "opportunity_id"
  ],
  "title": "commit_opportunityArguments",
  "type": "object"
}
Output contract

The tool returns JSON in MCP text content. It does not declare an outputSchema or structuredContent. Response fields depend on the selected view and result.

Related API routes: /commit-opportunity. See the OpenAPI response schemas for the corresponding HTTP contracts.

Link to this tool
compare_reportsCompare visibility between two report periods.

Read only

brand_idstringRequired

The brand to compare.

baseline_startstringRequired

Baseline period start date, YYYY-MM-DD.

baseline_endstringRequired

Baseline period end date, YYYY-MM-DD.

comparison_startstringRequired

Comparison period start date, YYYY-MM-DD.

comparison_endstringRequired

Comparison period end date, YYYY-MM-DD.

user_intentstringOptional · Hosted only

A short description of the user’s request. Omit secrets and prior chat.

Maximum length: 600

Complete input schema
compare_reports: hosted inputSchema
{
  "properties": {
    "brand_id": {
      "title": "Brand Id",
      "type": "string"
    },
    "baseline_start": {
      "title": "Baseline Start",
      "type": "string"
    },
    "baseline_end": {
      "title": "Baseline End",
      "type": "string"
    },
    "comparison_start": {
      "title": "Comparison Start",
      "type": "string"
    },
    "comparison_end": {
      "title": "Comparison End",
      "type": "string"
    },
    "user_intent": {
      "type": "string",
      "maxLength": 600
    }
  },
  "required": [
    "brand_id",
    "baseline_start",
    "baseline_end",
    "comparison_start",
    "comparison_end"
  ],
  "title": "compare_reportsArguments",
  "type": "object"
}
Output contract

The tool returns JSON in MCP text content. It does not declare an outputSchema or structuredContent. Response fields depend on the selected view and result.

Related API routes: /get-reports. See the OpenAPI response schemas for the corresponding HTTP contracts.

Link to this tool
export_dataExport data as JSON or CSV.

Read only

brand_idstringRequired

The brand to export.

data_typestringRequired

Choose the data type.

Allowed: "prompts", "results", "citations", "reports", "collection_coverage"

formatstringOptional

Choose the format.

Default: "json"

Allowed: "json", "csv"

daysintegerOptional

Lookback window, 1-365.

Default: 30

Minimum: 1

Maximum: 365

limitintegerOptional

Max rows, 1-10000.

Default: 1000

Minimum: 1

Maximum: 10000

start_datestring | nullOptional

Default: null

end_datestring | nullOptional

Default: null

user_intentstringOptional · Hosted only

A short description of the user’s request. Omit secrets and prior chat.

Maximum length: 600

Complete input schema
export_data: hosted inputSchema
{
  "properties": {
    "brand_id": {
      "title": "Brand Id",
      "type": "string"
    },
    "data_type": {
      "enum": [
        "prompts",
        "results",
        "citations",
        "reports",
        "collection_coverage"
      ],
      "title": "Data Type",
      "type": "string"
    },
    "format": {
      "default": "json",
      "enum": [
        "json",
        "csv"
      ],
      "title": "Format",
      "type": "string"
    },
    "days": {
      "default": 30,
      "maximum": 365,
      "minimum": 1,
      "title": "Days",
      "type": "integer"
    },
    "limit": {
      "default": 1000,
      "maximum": 10000,
      "minimum": 1,
      "title": "Limit",
      "type": "integer"
    },
    "start_date": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Start Date"
    },
    "end_date": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "End Date"
    },
    "user_intent": {
      "type": "string",
      "maxLength": 600
    }
  },
  "required": [
    "brand_id",
    "data_type"
  ],
  "title": "export_dataArguments",
  "type": "object"
}
Output contract

The tool returns JSON in MCP text content. It does not declare an outputSchema or structuredContent. Response fields depend on the selected view and result.

Related API routes: /export. See the OpenAPI response schemas for the corresponding HTTP contracts.

Link to this tool
generate_reportGenerate an AI visibility report.

Changes account data or starts work

brand_idstringRequired

The brand to report on.

report_typestringOptional

Choose the report type.

Default: "executive"

Allowed: "executive", "weekly", "full"

time_rangestringOptional

Choose the time range.

Default: "7d"

Allowed: "7d", "14d", "30d"

user_intentstringOptional · Hosted only

A short description of the user’s request. Omit secrets and prior chat.

Maximum length: 600

Complete input schema
generate_report: hosted inputSchema
{
  "properties": {
    "brand_id": {
      "title": "Brand Id",
      "type": "string"
    },
    "report_type": {
      "default": "executive",
      "enum": [
        "executive",
        "weekly",
        "full"
      ],
      "title": "Report Type",
      "type": "string"
    },
    "time_range": {
      "default": "7d",
      "enum": [
        "7d",
        "14d",
        "30d"
      ],
      "title": "Time Range",
      "type": "string"
    },
    "user_intent": {
      "type": "string",
      "maxLength": 600
    }
  },
  "required": [
    "brand_id"
  ],
  "title": "generate_reportArguments",
  "type": "object"
}
Output contract

The tool returns JSON in MCP text content. It does not declare an outputSchema or structuredContent. Response fields depend on the selected view and result.

Related API routes: /get-reports. See the OpenAPI response schemas for the corresponding HTTP contracts.

Link to this tool
get_diagnosis_resultGet diagnosis results, history, or usage quota.

Read only

brand_idstring | nullOptional

For history/usage views.

Default: null

diagnosis_idstring | nullOptional

For fetching a specific result.

Default: null

viewstring | nullOptional

Select the result view.

Default: null

Allowed: "result", "history", "usage"

limitintegerOptional

Results per page for history, 1-100.

Default: 20

Minimum: 1

Maximum: 100

user_intentstringOptional · Hosted only

A short description of the user’s request. Omit secrets and prior chat.

Maximum length: 600

Complete input schema
get_diagnosis_result: hosted inputSchema
{
  "properties": {
    "brand_id": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Brand Id"
    },
    "diagnosis_id": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Diagnosis Id"
    },
    "view": {
      "anyOf": [
        {
          "enum": [
            "result",
            "history",
            "usage"
          ],
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "View"
    },
    "limit": {
      "default": 20,
      "maximum": 100,
      "minimum": 1,
      "title": "Limit",
      "type": "integer"
    },
    "user_intent": {
      "type": "string",
      "maxLength": 600
    }
  },
  "title": "get_diagnosis_resultArguments",
  "type": "object"
}
Output contract

The tool returns JSON in MCP text content. It does not declare an outputSchema or structuredContent. Response fields depend on the selected view and result.

Related API routes: /diagnose. See the OpenAPI response schemas for the corresponding HTTP contracts.

Link to this tool
get_period_summaryOne completed month or quarter: every report metric with the prior period and deltas already signed.

Read only

brand_idstring | nullOptional

The brand to report on.

Default: null

periodstring | nullOptional

A month as YYYY-MM or a quarter as YYYY-Qn. Defaults to the latest closed month.

Default: null

viewstringOptional

Select the result view.

Default: "summary"

Allowed: "summary", "list"

comparebooleanOptional

Include the prior period and computed deltas.

Default: true

include_definitionsbooleanOptional

Add each metric's one-line definition.

Default: false

monthsintegerOptional

view=list only: closed months to index, 1-36.

Default: 12

Minimum: 1

Maximum: 36

response_formatstringOptional

Choose the response format.

Default: "concise"

Allowed: "concise", "detailed"

brand_idsarray | nullOptional

Default: null

user_intentstringOptional · Hosted only

A short description of the user’s request. Omit secrets and prior chat.

Maximum length: 600

Complete input schema
get_period_summary: hosted inputSchema
{
  "properties": {
    "brand_id": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Brand Id"
    },
    "period": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Period"
    },
    "view": {
      "default": "summary",
      "enum": [
        "summary",
        "list"
      ],
      "title": "View",
      "type": "string"
    },
    "compare": {
      "default": true,
      "title": "Compare",
      "type": "boolean"
    },
    "include_definitions": {
      "default": false,
      "title": "Include Definitions",
      "type": "boolean"
    },
    "months": {
      "default": 12,
      "maximum": 36,
      "minimum": 1,
      "title": "Months",
      "type": "integer"
    },
    "response_format": {
      "default": "concise",
      "enum": [
        "concise",
        "detailed"
      ],
      "title": "Response Format",
      "type": "string"
    },
    "brand_ids": {
      "anyOf": [
        {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Brand Ids"
    },
    "user_intent": {
      "type": "string",
      "maxLength": 600
    }
  },
  "title": "get_period_summaryArguments",
  "type": "object"
}
Output contract

The tool returns JSON in MCP text content. It does not declare an outputSchema or structuredContent. Response fields depend on the selected view and result.

Related API routes: /get-period-summary. See the OpenAPI response schemas for the corresponding HTTP contracts.

Link to this tool
get_proofLegacy compatibility alias for get_results. Existing integrations continue to work, but new ones should use get_results.

Read only

brand_idstringRequired

The brand to check.

verdictstring | nullOptional

Choose the verdict.

Default: null

Allowed: "earned", "no_change", "harm", "couldnt_measure"

familystring | nullOptional

Choose the family.

Default: null

Allowed: "fix", "refresh", "create", "earn", "discuss", "optimize", "setup", "play"

daysinteger | nullOptional

Only results measured in the last 1-3650 days.

Default: null

Minimum: 1

Maximum: 3650

limitintegerOptional

Max results to return, 1-200.

Default: 50

Minimum: 1

Maximum: 200

cursorstring | nullOptional

Opaque cursor from a previous response (meta.next_cursor).

Default: null

user_intentstringOptional · Hosted only

A short description of the user’s request. Omit secrets and prior chat.

Maximum length: 600

Complete input schema
get_proof: hosted inputSchema
{
  "properties": {
    "brand_id": {
      "title": "Brand Id",
      "type": "string"
    },
    "verdict": {
      "anyOf": [
        {
          "enum": [
            "earned",
            "no_change",
            "harm",
            "couldnt_measure"
          ],
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Verdict"
    },
    "family": {
      "anyOf": [
        {
          "enum": [
            "fix",
            "refresh",
            "create",
            "earn",
            "discuss",
            "optimize",
            "setup",
            "play"
          ],
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Family"
    },
    "days": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "maximum": 3650,
      "minimum": 1,
      "title": "Days"
    },
    "limit": {
      "default": 50,
      "maximum": 200,
      "minimum": 1,
      "title": "Limit",
      "type": "integer"
    },
    "cursor": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Cursor"
    },
    "user_intent": {
      "type": "string",
      "maxLength": 600
    }
  },
  "required": [
    "brand_id"
  ],
  "title": "get_proofArguments",
  "type": "object"
}
Output contract

The tool returns JSON in MCP text content. It does not declare an outputSchema or structuredContent. Response fields depend on the selected view and result.

Related API routes: /get-proof. See the OpenAPI response schemas for the corresponding HTTP contracts.

Link to this tool
get_reportsList or retrieve generated reports.

Read only

brand_idstring | nullOptional

Filter by brand.

Default: null

report_idstring | nullOptional

Get a specific report.

Default: null

viewstringOptional

Select the result view.

Default: "list"

Allowed: "list", "results", "sentiment", "mentions_time_series"

report_typestring | nullOptional

'executive', 'weekly', or 'full'.

Default: null

statusstring | nullOptional

'pending', 'completed', or 'failed'.

Default: null

daysintegerOptional

Default: 30

Minimum: 1

Maximum: 365

limitintegerOptional

Results per page, 1-100.

Default: 20

Minimum: 1

Maximum: 100

offsetintegerOptional

Pagination offset.

Default: 0

Minimum: 0

Maximum: 1000000

response_formatstringOptional

Choose the response format.

Default: "concise"

Allowed: "concise", "detailed"

user_intentstringOptional · Hosted only

A short description of the user’s request. Omit secrets and prior chat.

Maximum length: 600

Complete input schema
get_reports: hosted inputSchema
{
  "properties": {
    "brand_id": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Brand Id"
    },
    "report_id": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Report Id"
    },
    "view": {
      "default": "list",
      "enum": [
        "list",
        "results",
        "sentiment",
        "mentions_time_series"
      ],
      "title": "View",
      "type": "string"
    },
    "report_type": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Report Type"
    },
    "status": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Status"
    },
    "days": {
      "default": 30,
      "maximum": 365,
      "minimum": 1,
      "title": "Days",
      "type": "integer"
    },
    "limit": {
      "default": 20,
      "maximum": 100,
      "minimum": 1,
      "title": "Limit",
      "type": "integer"
    },
    "offset": {
      "default": 0,
      "maximum": 1000000,
      "minimum": 0,
      "title": "Offset",
      "type": "integer"
    },
    "response_format": {
      "default": "concise",
      "enum": [
        "concise",
        "detailed"
      ],
      "title": "Response Format",
      "type": "string"
    },
    "user_intent": {
      "type": "string",
      "maxLength": 600
    }
  },
  "title": "get_reportsArguments",
  "type": "object"
}
Output contract

The tool returns JSON in MCP text content. It does not declare an outputSchema or structuredContent. Response fields depend on the selected view and result.

Related API routes: /get-reports. See the OpenAPI response schemas for the corresponding HTTP contracts.

Link to this tool
get_resultsCompare measurements before and after completed work. Results do not establish cause.

Read only

brand_idstringRequired

The brand to check.

verdictstring | nullOptional

Choose the verdict.

Default: null

Allowed: "earned", "no_change", "harm", "couldnt_measure"

familystring | nullOptional

Choose the family.

Default: null

Allowed: "fix", "refresh", "create", "earn", "discuss", "optimize", "setup", "play"

daysinteger | nullOptional

Only results measured in the last 1-3650 days.

Default: null

Minimum: 1

Maximum: 3650

limitintegerOptional

Max results to return, 1-200.

Default: 50

Minimum: 1

Maximum: 200

cursorstring | nullOptional

Opaque cursor from a previous response (meta.next_cursor).

Default: null

user_intentstringOptional · Hosted only

A short description of the user’s request. Omit secrets and prior chat.

Maximum length: 600

Complete input schema
get_results: hosted inputSchema
{
  "properties": {
    "brand_id": {
      "title": "Brand Id",
      "type": "string"
    },
    "verdict": {
      "anyOf": [
        {
          "enum": [
            "earned",
            "no_change",
            "harm",
            "couldnt_measure"
          ],
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Verdict"
    },
    "family": {
      "anyOf": [
        {
          "enum": [
            "fix",
            "refresh",
            "create",
            "earn",
            "discuss",
            "optimize",
            "setup",
            "play"
          ],
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Family"
    },
    "days": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "maximum": 3650,
      "minimum": 1,
      "title": "Days"
    },
    "limit": {
      "default": 50,
      "maximum": 200,
      "minimum": 1,
      "title": "Limit",
      "type": "integer"
    },
    "cursor": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Cursor"
    },
    "user_intent": {
      "type": "string",
      "maxLength": 600
    }
  },
  "required": [
    "brand_id"
  ],
  "title": "get_resultsArguments",
  "type": "object"
}
Output contract

The tool returns JSON in MCP text content. It does not declare an outputSchema or structuredContent. Response fields depend on the selected view and result.

Related API routes: /get-results. See the OpenAPI response schemas for the corresponding HTTP contracts.

Link to this tool
get_search_performanceGoogle Search Console clicks, impressions, CTR, average position, and top queries for the connected property or one page.

Read only

brand_idstringRequired

The brand whose connected Search Console property to check.

urlstring | nullOptional

Optional page URL. Omit for property-wide top pages and queries.

Default: null

daysintegerOptional

Inclusive lookback window, 1-90 days.

Default: 28

Minimum: 1

Maximum: 90

compare_previous_periodbooleanOptional

Include the immediately preceding equal period and metric deltas.

Default: false

user_intentstringOptional · Hosted only

A short description of the user’s request. Omit secrets and prior chat.

Maximum length: 600

Complete input schema
get_search_performance: hosted inputSchema
{
  "properties": {
    "brand_id": {
      "title": "Brand Id",
      "type": "string"
    },
    "url": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Url"
    },
    "days": {
      "default": 28,
      "maximum": 90,
      "minimum": 1,
      "title": "Days",
      "type": "integer"
    },
    "compare_previous_period": {
      "default": false,
      "title": "Compare Previous Period",
      "type": "boolean"
    },
    "user_intent": {
      "type": "string",
      "maxLength": 600
    }
  },
  "required": [
    "brand_id"
  ],
  "title": "get_search_performanceArguments",
  "type": "object"
}
Output contract

The tool returns JSON in MCP text content. It does not declare an outputSchema or structuredContent. Response fields depend on the selected view and result.

Related API routes: /get-search-performance. See the OpenAPI response schemas for the corresponding HTTP contracts.

Link to this tool
get_trafficLive AI referral traffic status, reports, and visitor sessions.

Read only

brand_idstringRequired

The brand to check.

viewstringOptional

Select the result view.

Default: "status"

Allowed: "status", "report", "visitors"

daysintegerOptional

Lookback window for report view, 1-365.

Default: 30

Minimum: 1

Maximum: 365

user_intentstringOptional · Hosted only

A short description of the user’s request. Omit secrets and prior chat.

Maximum length: 600

Complete input schema
get_traffic: hosted inputSchema
{
  "properties": {
    "brand_id": {
      "title": "Brand Id",
      "type": "string"
    },
    "view": {
      "default": "status",
      "enum": [
        "status",
        "report",
        "visitors"
      ],
      "title": "View",
      "type": "string"
    },
    "days": {
      "default": 30,
      "maximum": 365,
      "minimum": 1,
      "title": "Days",
      "type": "integer"
    },
    "user_intent": {
      "type": "string",
      "maxLength": 600
    }
  },
  "required": [
    "brand_id"
  ],
  "title": "get_trafficArguments",
  "type": "object"
}
Output contract

The tool returns JSON in MCP text content. It does not declare an outputSchema or structuredContent. Response fields depend on the selected view and result.

Related API routes: /traffic/status. See the OpenAPI response schemas for the corresponding HTTP contracts.

Link to this tool
list_opportunity_poolSuggestions waiting on a decision, from every recommendation system at once. Not the same object as get_opportunities, which lists citation outreach targets.

Read only

brand_idstringRequired

The brand to check.

familystring | nullOptional

Choose the family.

Default: null

Allowed: "fix", "refresh", "create", "earn", "discuss", "optimize", "setup", "play"

kindstring | nullOptional

Comma-separated kinds, e.g. 'search_gap,audit_fix'.

Default: null

impactstring | nullOptional

Choose the impact.

Default: null

Allowed: "low", "medium", "high"

limitintegerOptional

Max suggestions to return, 1-200.

Default: 50

Minimum: 1

Maximum: 200

cursorstring | nullOptional

Opaque cursor from a previous response (meta.next_cursor).

Default: null

user_intentstringOptional · Hosted only

A short description of the user’s request. Omit secrets and prior chat.

Maximum length: 600

Complete input schema
list_opportunity_pool: hosted inputSchema
{
  "properties": {
    "brand_id": {
      "title": "Brand Id",
      "type": "string"
    },
    "family": {
      "anyOf": [
        {
          "enum": [
            "fix",
            "refresh",
            "create",
            "earn",
            "discuss",
            "optimize",
            "setup",
            "play"
          ],
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Family"
    },
    "kind": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Kind"
    },
    "impact": {
      "anyOf": [
        {
          "enum": [
            "low",
            "medium",
            "high"
          ],
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Impact"
    },
    "limit": {
      "default": 50,
      "maximum": 200,
      "minimum": 1,
      "title": "Limit",
      "type": "integer"
    },
    "cursor": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Cursor"
    },
    "user_intent": {
      "type": "string",
      "maxLength": 600
    }
  },
  "required": [
    "brand_id"
  ],
  "title": "list_opportunity_poolArguments",
  "type": "object"
}
Output contract

The tool returns JSON in MCP text content. It does not declare an outputSchema or structuredContent. Response fields depend on the selected view and result.

Related API routes: /get-opportunity-pool. See the OpenAPI response schemas for the corresponding HTTP contracts.

Link to this tool
manage_actionAct on one action in the queue: complete, dismiss, reopen, start, snooze, unsnooze, pin, unpin, assign, or note. One explicit verb per call, no destructive default. Editor access required.

Changes account data or starts work · Review the change before approving

actionstringRequired

Choose the operation to perform.

Allowed: "complete", "dismiss", "reopen", "start", "snooze", "unsnooze", "pin", "unpin", "assign", "note"

brand_idstringRequired

The brand that owns the action.

action_idstringRequired

The action to act on (from get_actions).

notestring | nullOptional

Reason or comment stored on the timeline. Required for action='note'.

Default: null

snooze_untilstring | nullOptional

ISO date or datetime in the future. Required for action='snooze'.

Default: null

assigneestring | nullOptional

Teammate's Trakkr user id. Required for action='assign'.

Default: null

user_intentstringOptional · Hosted only

A short description of the user’s request. Omit secrets and prior chat.

Maximum length: 600

Complete input schema
manage_action: hosted inputSchema
{
  "properties": {
    "action": {
      "enum": [
        "complete",
        "dismiss",
        "reopen",
        "start",
        "snooze",
        "unsnooze",
        "pin",
        "unpin",
        "assign",
        "note"
      ],
      "title": "Action",
      "type": "string"
    },
    "brand_id": {
      "title": "Brand Id",
      "type": "string"
    },
    "action_id": {
      "title": "Action Id",
      "type": "string"
    },
    "note": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Note"
    },
    "snooze_until": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Snooze Until"
    },
    "assignee": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Assignee"
    },
    "user_intent": {
      "type": "string",
      "maxLength": 600
    }
  },
  "required": [
    "action",
    "brand_id",
    "action_id"
  ],
  "title": "manage_actionArguments",
  "type": "object"
}
Output contract

The tool returns JSON in MCP text content. It does not declare an outputSchema or structuredContent. Response fields depend on the selected view and result.

Related API routes: /manage-action. See the OpenAPI response schemas for the corresponding HTTP contracts.

Link to this tool
manage_conversionsManage conversion values for AI-referred traffic.

Changes account data or starts work · Review the change before approving

actionstringRequired

Choose the operation to perform.

Allowed: "list", "set", "delete"

brand_idstringRequired

The brand to manage conversions for.

event_namestring | nullOptional

Required for action='set' and action='delete'.

Default: null

valuenumber | nullOptional

Dollar value per conversion. Required for action='set'.

Default: null

user_intentstringOptional · Hosted only

A short description of the user’s request. Omit secrets and prior chat.

Maximum length: 600

Complete input schema
manage_conversions: hosted inputSchema
{
  "properties": {
    "action": {
      "enum": [
        "list",
        "set",
        "delete"
      ],
      "title": "Action",
      "type": "string"
    },
    "brand_id": {
      "title": "Brand Id",
      "type": "string"
    },
    "event_name": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Event Name"
    },
    "value": {
      "anyOf": [
        {
          "type": "number"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Value"
    },
    "user_intent": {
      "type": "string",
      "maxLength": 600
    }
  },
  "required": [
    "action",
    "brand_id"
  ],
  "title": "manage_conversionsArguments",
  "type": "object"
}
Output contract

The tool returns JSON in MCP text content. It does not declare an outputSchema or structuredContent. Response fields depend on the selected view and result.

Related API routes: /traffic/conversions. See the OpenAPI response schemas for the corresponding HTTP contracts.

Link to this tool
run_diagnosisDiagnose a search query across AI models in real-time.

Changes account data or starts work

brand_idstringRequired

The brand context for analysis.

querystringRequired

The search query to diagnose, 3-500 characters.

user_intentstringOptional · Hosted only

A short description of the user’s request. Omit secrets and prior chat.

Maximum length: 600

Complete input schema
run_diagnosis: hosted inputSchema
{
  "properties": {
    "brand_id": {
      "title": "Brand Id",
      "type": "string"
    },
    "query": {
      "title": "Query",
      "type": "string"
    },
    "user_intent": {
      "type": "string",
      "maxLength": 600
    }
  },
  "required": [
    "brand_id",
    "query"
  ],
  "title": "run_diagnosisArguments",
  "type": "object"
}
Output contract

The tool returns JSON in MCP text content. It does not declare an outputSchema or structuredContent. Response fields depend on the selected view and result.

Related API routes: /diagnose. See the OpenAPI response schemas for the corresponding HTTP contracts.

Link to this tool

Agency 3

compare_brandsCompare 2-10 brands side by side across visibility, citations, and open actions.

Read only

brand_idsarrayRequired

2-10 brand IDs to compare.

daysintegerOptional

Window for time-bounded metrics, 7-365.

Default: 30

Minimum: 7

Maximum: 365

metricsarray | nullOptional

Subset of: 'visibility', 'citations', 'actions'. Default all.

Default: null

user_intentstringOptional · Hosted only

A short description of the user’s request. Omit secrets and prior chat.

Maximum length: 600

Complete input schema
compare_brands: hosted inputSchema
{
  "properties": {
    "brand_ids": {
      "items": {
        "type": "string"
      },
      "title": "Brand Ids",
      "type": "array"
    },
    "days": {
      "default": 30,
      "maximum": 365,
      "minimum": 7,
      "title": "Days",
      "type": "integer"
    },
    "metrics": {
      "anyOf": [
        {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Metrics"
    },
    "user_intent": {
      "type": "string",
      "maxLength": 600
    }
  },
  "required": [
    "brand_ids"
  ],
  "title": "compare_brandsArguments",
  "type": "object"
}
Output contract

The tool returns JSON in MCP text content. It does not declare an outputSchema or structuredContent. Response fields depend on the selected view and result.

Related API routes: /agency/compare-brands. See the OpenAPI response schemas for the corresponding HTTP contracts.

Link to this tool
get_portfolio_actionsHighest-impact actions across every brand in the portfolio, ranked.

Read only

group_idstring | nullOptional

Optional - limit to one brand group.

Default: null

quick_winboolean | nullOptional

Only high-impact / low-effort actions.

Default: null

limitintegerOptional

Max actions, 1-200.

Default: 50

Minimum: 1

Maximum: 200

user_intentstringOptional · Hosted only

A short description of the user’s request. Omit secrets and prior chat.

Maximum length: 600

Complete input schema
get_portfolio_actions: hosted inputSchema
{
  "properties": {
    "group_id": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Group Id"
    },
    "quick_win": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Quick Win"
    },
    "limit": {
      "default": 50,
      "maximum": 200,
      "minimum": 1,
      "title": "Limit",
      "type": "integer"
    },
    "user_intent": {
      "type": "string",
      "maxLength": 600
    }
  },
  "title": "get_portfolio_actionsArguments",
  "type": "object"
}
Output contract

The tool returns JSON in MCP text content. It does not declare an outputSchema or structuredContent. Response fields depend on the selected view and result.

Related API routes: /agency/portfolio-actions. See the OpenAPI response schemas for the corresponding HTTP contracts.

Link to this tool
list_brand_groupsList brand groups (agency portfolios) accessible to the API key, with rollup stats.

Read only

user_intentstringOptional · Hosted only

A short description of the user’s request. Omit secrets and prior chat.

Maximum length: 600

Complete input schema
list_brand_groups: hosted inputSchema
{
  "properties": {
    "user_intent": {
      "type": "string",
      "maxLength": 600
    }
  },
  "title": "list_brand_groupsArguments",
  "type": "object"
}
Output contract

The tool returns JSON in MCP text content. It does not declare an outputSchema or structuredContent. Response fields depend on the selected view and result.

Related API routes: /agency/brand-groups. See the OpenAPI response schemas for the corresponding HTTP contracts.

Link to this tool

Intelligence 9

discover_publishersFind magazines, news sites and blogs for a topic that do not cite you yet, and read their pages. Up to five leads with contact and write-for-us pages.

Changes account data or starts work

brand_idstringRequired

The brand to research for.

topicstring | nullOptional

What the articles would be about. Required unless prompt_ids is given.

Default: null

prompt_idsarray | nullOptional

Up to 20 tracked prompt ids to aim at.

Default: null

seed_domainstring | nullOptional

A publisher that already worked. It is left out of the results.

Default: null

marketstring | nullOptional

Optional market, e.g. UK.

Default: null

languagestring | nullOptional

Optional language.

Default: null

new_onlybooleanOptional

Skip publishers that already cite you. Set false to include them.

Default: true

user_intentstringOptional · Hosted only

A short description of the user’s request. Omit secrets and prior chat.

Maximum length: 600

Complete input schema
discover_publishers: hosted inputSchema
{
  "properties": {
    "brand_id": {
      "title": "Brand Id",
      "type": "string"
    },
    "topic": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Topic"
    },
    "prompt_ids": {
      "anyOf": [
        {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Prompt Ids"
    },
    "seed_domain": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Seed Domain"
    },
    "market": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Market"
    },
    "language": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Language"
    },
    "new_only": {
      "default": true,
      "title": "New Only",
      "type": "boolean"
    },
    "user_intent": {
      "type": "string",
      "maxLength": 600
    }
  },
  "required": [
    "brand_id"
  ],
  "title": "discover_publishersArguments",
  "type": "object"
}
Output contract

The tool returns JSON in MCP text content. It does not declare an outputSchema or structuredContent. Response fields depend on the selected view and result.

Related API routes: /discover-publishers. See the OpenAPI response schemas for the corresponding HTTP contracts.

Link to this tool
get_content_ideasAI-generated content ideas to improve visibility.

Read only

brand_idstringRequired

The brand to check.

limitintegerOptional

Results per page, 1-200.

Default: 50

Minimum: 1

Maximum: 200

offsetintegerOptional

Pagination offset.

Default: 0

Minimum: 0

Maximum: 1000000

statusstring | nullOptional

Filter by status.

Default: null

Allowed: "active", "dismissed", "implemented"

user_intentstringOptional · Hosted only

A short description of the user’s request. Omit secrets and prior chat.

Maximum length: 600

Complete input schema
get_content_ideas: hosted inputSchema
{
  "properties": {
    "brand_id": {
      "title": "Brand Id",
      "type": "string"
    },
    "limit": {
      "default": 50,
      "maximum": 200,
      "minimum": 1,
      "title": "Limit",
      "type": "integer"
    },
    "offset": {
      "default": 0,
      "maximum": 1000000,
      "minimum": 0,
      "title": "Offset",
      "type": "integer"
    },
    "status": {
      "anyOf": [
        {
          "enum": [
            "active",
            "dismissed",
            "implemented"
          ],
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Status"
    },
    "user_intent": {
      "type": "string",
      "maxLength": 600
    }
  },
  "required": [
    "brand_id"
  ],
  "title": "get_content_ideasArguments",
  "type": "object"
}
Output contract

The tool returns JSON in MCP text content. It does not declare an outputSchema or structuredContent. Response fields depend on the selected view and result.

Related API routes: /get-content-ideas. See the OpenAPI response schemas for the corresponding HTTP contracts.

Link to this tool
get_narrativesNarrative intelligence: tracked topics and storylines.

Read only

brand_idstringRequired

The brand to check.

narrative_idstring | nullOptional

Get a specific narrative by ID.

Default: null

includestring | nullOptional

Comma-separated extras: 'snapshots', 'correctives'.

Default: null

daysintegerOptional

Lookback window, 7-365.

Default: 90

Minimum: 7

Maximum: 365

user_intentstringOptional · Hosted only

A short description of the user’s request. Omit secrets and prior chat.

Maximum length: 600

Complete input schema
get_narratives: hosted inputSchema
{
  "properties": {
    "brand_id": {
      "title": "Brand Id",
      "type": "string"
    },
    "narrative_id": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Narrative Id"
    },
    "include": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Include"
    },
    "days": {
      "default": 90,
      "maximum": 365,
      "minimum": 7,
      "title": "Days",
      "type": "integer"
    },
    "user_intent": {
      "type": "string",
      "maxLength": 600
    }
  },
  "required": [
    "brand_id"
  ],
  "title": "get_narrativesArguments",
  "type": "object"
}
Output contract

The tool returns JSON in MCP text content. It does not declare an outputSchema or structuredContent. Response fields depend on the selected view and result.

Related API routes: /narratives. See the OpenAPI response schemas for the corresponding HTTP contracts.

Link to this tool
get_opportunitiesCitation gaps where competitors appear but you don't.

Read only

brand_idstringRequired

The brand to check.

daysinteger | nullOptional

Lookback window, 7-365.

Default: null

Minimum: 1

Maximum: 365

limitintegerOptional

Max results, 1-200.

Default: 50

Minimum: 1

Maximum: 200

user_intentstringOptional · Hosted only

A short description of the user’s request. Omit secrets and prior chat.

Maximum length: 600

Complete input schema
get_opportunities: hosted inputSchema
{
  "properties": {
    "brand_id": {
      "title": "Brand Id",
      "type": "string"
    },
    "days": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "maximum": 365,
      "minimum": 1,
      "title": "Days"
    },
    "limit": {
      "default": 50,
      "maximum": 200,
      "minimum": 1,
      "title": "Limit",
      "type": "integer"
    },
    "user_intent": {
      "type": "string",
      "maxLength": 600
    }
  },
  "required": [
    "brand_id"
  ],
  "title": "get_opportunitiesArguments",
  "type": "object"
}
Output contract

The tool returns JSON in MCP text content. It does not declare an outputSchema or structuredContent. Response fields depend on the selected view and result.

Related API routes: /get-opportunities. See the OpenAPI response schemas for the corresponding HTTP contracts.

Link to this tool
get_perceptionHow AI models describe, position, and talk about the brand. Covers sentiment, themes, narrative shifts, and competitor-relative metrics.

Read only

brand_idstringRequired

The brand to check.

viewstringOptional

Select the result view.

Default: "dashboard"

Allowed: "dashboard", "metrics", "story", "narrative_drift", "narrative"

daysintegerOptional

Lookback window, 7-365.

Default: 90

Minimum: 7

Maximum: 365

periodstring | nullOptional

Default: null

tracked_brandstring | nullOptional

For metrics view, compare against this competitor.

Default: null

user_intentstringOptional · Hosted only

A short description of the user’s request. Omit secrets and prior chat.

Maximum length: 600

Complete input schema
get_perception: hosted inputSchema
{
  "properties": {
    "brand_id": {
      "title": "Brand Id",
      "type": "string"
    },
    "view": {
      "default": "dashboard",
      "enum": [
        "dashboard",
        "metrics",
        "story",
        "narrative_drift",
        "narrative"
      ],
      "title": "View",
      "type": "string"
    },
    "days": {
      "default": 90,
      "maximum": 365,
      "minimum": 7,
      "title": "Days",
      "type": "integer"
    },
    "period": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Period"
    },
    "tracked_brand": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Tracked Brand"
    },
    "user_intent": {
      "type": "string",
      "maxLength": 600
    }
  },
  "required": [
    "brand_id"
  ],
  "title": "get_perceptionArguments",
  "type": "object"
}
Output contract

The tool returns JSON in MCP text content. It does not declare an outputSchema or structuredContent. Response fields depend on the selected view and result.

Related API routes: /get-perception. See the OpenAPI response schemas for the corresponding HTTP contracts.

Link to this tool
get_prismAI Pages connection state and monthly usage: enabled, domain, platform, features, allowed crawlers, requests used against the limit.

Read only

brand_idstringRequired

The brand to check.

user_intentstringOptional · Hosted only

A short description of the user’s request. Omit secrets and prior chat.

Maximum length: 600

Complete input schema
get_prism: hosted inputSchema
{
  "properties": {
    "brand_id": {
      "title": "Brand Id",
      "type": "string"
    },
    "user_intent": {
      "type": "string",
      "maxLength": 600
    }
  },
  "required": [
    "brand_id"
  ],
  "title": "get_prismArguments",
  "type": "object"
}
Output contract

The tool returns JSON in MCP text content. It does not declare an outputSchema or structuredContent. Response fields depend on the selected view and result.

Related API routes: /ai-pages. See the OpenAPI response schemas for the corresponding HTTP contracts.

Link to this tool
get_tracked_articlesYour tracked published articles, on publishers or your own site, and whether AI answers cite each exact URL and mention you.

Read only

brand_idstringRequired

The brand to check.

domainstring | nullOptional

Only articles on this domain.

Default: null

user_intentstringOptional · Hosted only

A short description of the user’s request. Omit secrets and prior chat.

Maximum length: 600

Complete input schema
get_tracked_articles: hosted inputSchema
{
  "properties": {
    "brand_id": {
      "title": "Brand Id",
      "type": "string"
    },
    "domain": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Domain"
    },
    "user_intent": {
      "type": "string",
      "maxLength": 600
    }
  },
  "required": [
    "brand_id"
  ],
  "title": "get_tracked_articlesArguments",
  "type": "object"
}
Output contract

The tool returns JSON in MCP text content. It does not declare an outputSchema or structuredContent. Response fields depend on the selected view and result.

Related API routes: /get-tracked-articles. See the OpenAPI response schemas for the corresponding HTTP contracts.

Link to this tool
manage_publisher_shortlistList, save, or remove publishers on your Outreach shortlist. Save a discovered publisher with its article idea and evidence.

Changes account data or starts work · Review the change before approving

brand_idstringRequired

The brand to update.

actionstringRequired

Choose the operation to perform.

Allowed: "list", "add", "remove"

domainstring | nullOptional

Publisher domain. Required for add and remove.

Default: null

research_idstring | nullOptional

The research_id from discover_publishers.

Default: null

article_ideastring | nullOptional

The specific article to propose. Required with research_id.

Default: null

rationalestring | nullOptional

Why the publisher fits. Required with research_id.

Default: null

proposed_routestring | nullOptional

How to reach the editor. Required with research_id.

Default: null

user_intentstringOptional · Hosted only

A short description of the user’s request. Omit secrets and prior chat.

Maximum length: 600

Complete input schema
manage_publisher_shortlist: hosted inputSchema
{
  "properties": {
    "brand_id": {
      "title": "Brand Id",
      "type": "string"
    },
    "action": {
      "enum": [
        "list",
        "add",
        "remove"
      ],
      "title": "Action",
      "type": "string"
    },
    "domain": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Domain"
    },
    "research_id": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Research Id"
    },
    "article_idea": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Article Idea"
    },
    "rationale": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Rationale"
    },
    "proposed_route": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Proposed Route"
    },
    "user_intent": {
      "type": "string",
      "maxLength": 600
    }
  },
  "required": [
    "brand_id",
    "action"
  ],
  "title": "manage_publisher_shortlistArguments",
  "type": "object"
}
Output contract

The tool returns JSON in MCP text content. It does not declare an outputSchema or structuredContent. Response fields depend on the selected view and result.

Related API routes: /publisher-shortlist/manage. See the OpenAPI response schemas for the corresponding HTTP contracts.

Link to this tool
manage_tracked_articleStart, stop, or resume tracking a live article URL.

Changes account data or starts work · Review the change before approving

brand_idstringRequired

The brand to update.

actionstringRequired

Choose the operation to perform.

Allowed: "track", "stop", "restore"

urlstring | nullOptional

The live article URL. Required for 'track'.

Default: null

article_idstring | nullOptional

The tracked article id, for stop and restore.

Default: null

titlestring | nullOptional

Optional article title.

Default: null

prompt_idsarray | nullOptional

Up to 20 tracked prompt ids the article targets.

Default: null

published_onstring | nullOptional

Optional publication date, YYYY-MM-DD.

Default: null

user_intentstringOptional · Hosted only

A short description of the user’s request. Omit secrets and prior chat.

Maximum length: 600

Complete input schema
manage_tracked_article: hosted inputSchema
{
  "properties": {
    "brand_id": {
      "title": "Brand Id",
      "type": "string"
    },
    "action": {
      "enum": [
        "track",
        "stop",
        "restore"
      ],
      "title": "Action",
      "type": "string"
    },
    "url": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Url"
    },
    "article_id": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Article Id"
    },
    "title": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Title"
    },
    "prompt_ids": {
      "anyOf": [
        {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Prompt Ids"
    },
    "published_on": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Published On"
    },
    "user_intent": {
      "type": "string",
      "maxLength": 600
    }
  },
  "required": [
    "brand_id",
    "action"
  ],
  "title": "manage_tracked_articleArguments",
  "type": "object"
}
Output contract

The tool returns JSON in MCP text content. It does not declare an outputSchema or structuredContent. Response fields depend on the selected view and result.

Related API routes: /tracked-articles/manage. See the OpenAPI response schemas for the corresponding HTTP contracts.

Link to this tool

Audit 7

get_action_statsAggregate counts for the brand action queue: totals, quick-wins, completion rate, breakdowns.

Read only

brand_idstringRequired

The brand to check.

user_intentstringOptional · Hosted only

A short description of the user’s request. Omit secrets and prior chat.

Maximum length: 600

Complete input schema
get_action_stats: hosted inputSchema
{
  "properties": {
    "brand_id": {
      "title": "Brand Id",
      "type": "string"
    },
    "user_intent": {
      "type": "string",
      "maxLength": 600
    }
  },
  "required": [
    "brand_id"
  ],
  "title": "get_action_statsArguments",
  "type": "object"
}
Output contract

The tool returns JSON in MCP text content. It does not declare an outputSchema or structuredContent. Response fields depend on the selected view and result.

Related API routes: /get-action-stats. See the OpenAPI response schemas for the corresponding HTTP contracts.

Link to this tool
get_actionsUnified recommendation queue across audit, crawler, citations, competitors, and more.

Read only

brand_idstringRequired

The brand to check.

statusstringOptional

Filter by status.

Default: "open"

Allowed: "open", "active", "pending", "in_progress", "completed", "dismissed", "snoozed", "expired", "superseded"

categorystring | nullOptional

Comma-separated. content, technical, competitive, optimization, citation, setup, reddit, diagnose.

Default: null

sourcestring | nullOptional

Filter by signal source (site_audit, crawler_monitoring, prompt_monitoring, etc.).

Default: null

action_typestring | nullOptional

Specific action_type, e.g. 'add_llms_txt', 'add_schema_markup'.

Default: null

lensstring | nullOptional

Choose the lens.

Default: null

Allowed: "crawler", "content", "competitive", "technical", "citation"

quick_winboolean | nullOptional

Only high-impact / low-effort actions.

Default: null

searchstring | nullOptional

Text search across title, description, source, action_type.

Default: null

urlstring | nullOptional

Filter to actions scoped to this URL or path.

Default: null

sort_bystringOptional

Choose the sort by.

Default: "priority_score"

Allowed: "priority_score", "created_at", "updated_at"

sort_dirstringOptional

Choose the sort dir.

Default: "desc"

Allowed: "asc", "desc"

limitintegerOptional

Results per page, 1-200.

Default: 50

Minimum: 1

Maximum: 200

offsetintegerOptional

Pagination offset.

Default: 0

Minimum: 0

Maximum: 1000000

user_intentstringOptional · Hosted only

A short description of the user’s request. Omit secrets and prior chat.

Maximum length: 600

Complete input schema
get_actions: hosted inputSchema
{
  "properties": {
    "brand_id": {
      "title": "Brand Id",
      "type": "string"
    },
    "status": {
      "default": "open",
      "enum": [
        "open",
        "active",
        "pending",
        "in_progress",
        "completed",
        "dismissed",
        "snoozed",
        "expired",
        "superseded"
      ],
      "title": "Status",
      "type": "string"
    },
    "category": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Category"
    },
    "source": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Source"
    },
    "action_type": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Action Type"
    },
    "lens": {
      "anyOf": [
        {
          "enum": [
            "crawler",
            "content",
            "competitive",
            "technical",
            "citation"
          ],
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Lens"
    },
    "quick_win": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Quick Win"
    },
    "search": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Search"
    },
    "url": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Url"
    },
    "sort_by": {
      "default": "priority_score",
      "enum": [
        "priority_score",
        "created_at",
        "updated_at"
      ],
      "title": "Sort By",
      "type": "string"
    },
    "sort_dir": {
      "default": "desc",
      "enum": [
        "asc",
        "desc"
      ],
      "title": "Sort Dir",
      "type": "string"
    },
    "limit": {
      "default": 50,
      "maximum": 200,
      "minimum": 1,
      "title": "Limit",
      "type": "integer"
    },
    "offset": {
      "default": 0,
      "maximum": 1000000,
      "minimum": 0,
      "title": "Offset",
      "type": "integer"
    },
    "user_intent": {
      "type": "string",
      "maxLength": 600
    }
  },
  "required": [
    "brand_id"
  ],
  "title": "get_actionsArguments",
  "type": "object"
}
Output contract

The tool returns JSON in MCP text content. It does not declare an outputSchema or structuredContent. Response fields depend on the selected view and result.

Related API routes: /get-actions. See the OpenAPI response schemas for the corresponding HTTP contracts.

Link to this tool
get_audit_findingsAudit issues + flagged pages for an AI-search technical audit.

Read only

brand_idstringRequired

The brand to check.

audit_idstring | nullOptional

Specific audit. Defaults to the brand's latest complete audit.

Default: null

severitystringOptional

Comma-separated: critical, high, medium, low.

Default: "critical,high"

issue_statusstringOptional

Comma-separated: open, in_progress, fixed, ignored.

Default: "open,in_progress"

check_namestring | nullOptional

Filter issues by check_name substring (e.g. 'llms_txt', 'schema').

Default: null

page_urlstring | nullOptional

Filter to issues whose affected_urls contain this URL.

Default: null

page_typestring | nullOptional

Filter audit_pages by page_type.

Default: null

url_patternstring | nullOptional

Filter audit_pages by URL substring.

Default: null

min_scoreinteger | nullOptional

Min technical_score for pages, 0-100.

Default: null

Minimum: 0

Maximum: 100

max_scoreinteger | nullOptional

Max technical_score for pages, 0-100.

Default: null

Minimum: 0

Maximum: 100

issues_limitintegerOptional

Max issues, 1-50.

Default: 20

Minimum: 1

Maximum: 50

pages_limitintegerOptional

Max pages, 1-100.

Default: 20

Minimum: 1

Maximum: 100

user_intentstringOptional · Hosted only

A short description of the user’s request. Omit secrets and prior chat.

Maximum length: 600

Complete input schema
get_audit_findings: hosted inputSchema
{
  "properties": {
    "brand_id": {
      "title": "Brand Id",
      "type": "string"
    },
    "audit_id": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Audit Id"
    },
    "severity": {
      "default": "critical,high",
      "title": "Severity",
      "type": "string"
    },
    "issue_status": {
      "default": "open,in_progress",
      "title": "Issue Status",
      "type": "string"
    },
    "check_name": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Check Name"
    },
    "page_url": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Page Url"
    },
    "page_type": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Page Type"
    },
    "url_pattern": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Url Pattern"
    },
    "min_score": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "maximum": 100,
      "minimum": 0,
      "title": "Min Score"
    },
    "max_score": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "maximum": 100,
      "minimum": 0,
      "title": "Max Score"
    },
    "issues_limit": {
      "default": 20,
      "maximum": 50,
      "minimum": 1,
      "title": "Issues Limit",
      "type": "integer"
    },
    "pages_limit": {
      "default": 20,
      "maximum": 100,
      "minimum": 1,
      "title": "Pages Limit",
      "type": "integer"
    },
    "user_intent": {
      "type": "string",
      "maxLength": 600
    }
  },
  "required": [
    "brand_id"
  ],
  "title": "get_audit_findingsArguments",
  "type": "object"
}
Output contract

The tool returns JSON in MCP text content. It does not declare an outputSchema or structuredContent. Response fields depend on the selected view and result.

Related API routes: /get-audit-findings. See the OpenAPI response schemas for the corresponding HTTP contracts.

Link to this tool
get_page_analysisDeep analysis for a single URL: diagnosis, verdict, schema, entities, bot visibility.

Read only

brand_idstringRequired

The brand to check.

urlstring | nullOptional

Page URL. Normalized to https:// if no scheme given.

Default: null

max_age_daysintegerOptional

Default: 30

Minimum: 1

Maximum: 365

user_intentstringOptional · Hosted only

A short description of the user’s request. Omit secrets and prior chat.

Maximum length: 600

Complete input schema
get_page_analysis: hosted inputSchema
{
  "properties": {
    "brand_id": {
      "title": "Brand Id",
      "type": "string"
    },
    "url": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Url"
    },
    "max_age_days": {
      "default": 30,
      "maximum": 365,
      "minimum": 1,
      "title": "Max Age Days",
      "type": "integer"
    },
    "user_intent": {
      "type": "string",
      "maxLength": 600
    }
  },
  "required": [
    "brand_id"
  ],
  "title": "get_page_analysisArguments",
  "type": "object"
}
Output contract

The tool returns JSON in MCP text content. It does not declare an outputSchema or structuredContent. Response fields depend on the selected view and result.

Related API routes: /get-page-analyses. See the OpenAPI response schemas for the corresponding HTTP contracts.

Link to this tool
list_auditsList site audits for a brand, or fetch one by ID.

Read only

brand_idstringRequired

The brand to check.

audit_idstring | nullOptional

Return only this audit.

Default: null

statusstring | nullOptional

Filter by audit status (e.g. 'complete').

Default: null

limitintegerOptional

Max audits to return, 1-100.

Default: 20

Minimum: 1

Maximum: 100

periodstring | nullOptional

Default: null

user_intentstringOptional · Hosted only

A short description of the user’s request. Omit secrets and prior chat.

Maximum length: 600

Complete input schema
list_audits: hosted inputSchema
{
  "properties": {
    "brand_id": {
      "title": "Brand Id",
      "type": "string"
    },
    "audit_id": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Audit Id"
    },
    "status": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Status"
    },
    "limit": {
      "default": 20,
      "maximum": 100,
      "minimum": 1,
      "title": "Limit",
      "type": "integer"
    },
    "period": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Period"
    },
    "user_intent": {
      "type": "string",
      "maxLength": 600
    }
  },
  "required": [
    "brand_id"
  ],
  "title": "list_auditsArguments",
  "type": "object"
}
Output contract

The tool returns JSON in MCP text content. It does not declare an outputSchema or structuredContent. Response fields depend on the selected view and result.

Related API routes: /get-audits. See the OpenAPI response schemas for the corresponding HTTP contracts.

Link to this tool
list_page_analysesList recent deep page analyses for a brand.

Read only

brand_idstringRequired

The brand to check.

limitintegerOptional

Max analyses to return, 1-100.

Default: 20

Minimum: 1

Maximum: 100

user_intentstringOptional · Hosted only

A short description of the user’s request. Omit secrets and prior chat.

Maximum length: 600

Complete input schema
list_page_analyses: hosted inputSchema
{
  "properties": {
    "brand_id": {
      "title": "Brand Id",
      "type": "string"
    },
    "limit": {
      "default": 20,
      "maximum": 100,
      "minimum": 1,
      "title": "Limit",
      "type": "integer"
    },
    "user_intent": {
      "type": "string",
      "maxLength": 600
    }
  },
  "required": [
    "brand_id"
  ],
  "title": "list_page_analysesArguments",
  "type": "object"
}
Output contract

The tool returns JSON in MCP text content. It does not declare an outputSchema or structuredContent. Response fields depend on the selected view and result.

Related API routes: /get-page-analyses. See the OpenAPI response schemas for the corresponding HTTP contracts.

Link to this tool
list_pagesThe page registry: one row per URL the brand owns or appears on, with its bottleneck and verdict.

Read only

brand_idstringRequired

The brand to check.

ownershipstring | nullOptional

Choose the ownership.

Default: null

Allowed: "owned", "competitor", "editorial", "social", "video", "other"

trackedboolean | nullOptional

True for pages someone chose to watch.

Default: null

limitintegerOptional

Max pages to return, 1-200.

Default: 50

Minimum: 1

Maximum: 200

cursorstring | nullOptional

Opaque cursor from a previous response (meta.next_cursor).

Default: null

user_intentstringOptional · Hosted only

A short description of the user’s request. Omit secrets and prior chat.

Maximum length: 600

Complete input schema
list_pages: hosted inputSchema
{
  "properties": {
    "brand_id": {
      "title": "Brand Id",
      "type": "string"
    },
    "ownership": {
      "anyOf": [
        {
          "enum": [
            "owned",
            "competitor",
            "editorial",
            "social",
            "video",
            "other"
          ],
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Ownership"
    },
    "tracked": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Tracked"
    },
    "limit": {
      "default": 50,
      "maximum": 200,
      "minimum": 1,
      "title": "Limit",
      "type": "integer"
    },
    "cursor": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Cursor"
    },
    "user_intent": {
      "type": "string",
      "maxLength": 600
    }
  },
  "required": [
    "brand_id"
  ],
  "title": "list_pagesArguments",
  "type": "object"
}
Output contract

The tool returns JSON in MCP text content. It does not declare an outputSchema or structuredContent. Response fields depend on the selected view and result.

Related API routes: /get-pages. See the OpenAPI response schemas for the corresponding HTTP contracts.

Link to this tool

Core 11

get_business_contextRead the brand team’s brief, priorities, rules and content standards before planning or creating work.

Read only

brand_idstringRequired

The brand whose business context to read.

user_intentstringOptional · Hosted only

A short description of the user’s request. Omit secrets and prior chat.

Maximum length: 600

Complete input schema
get_business_context: hosted inputSchema
{
  "properties": {
    "brand_id": {
      "title": "Brand Id",
      "type": "string"
    },
    "user_intent": {
      "type": "string",
      "maxLength": 600
    }
  },
  "required": [
    "brand_id"
  ],
  "title": "get_business_contextArguments",
  "type": "object"
}
Output contract

The tool returns JSON in MCP text content. It does not declare an outputSchema or structuredContent. Response fields depend on the selected view and result.

Related API routes: /get-business-context. See the OpenAPI response schemas for the corresponding HTTP contracts.

Link to this tool
get_visibility_scoresVisibility scores and trends over time.

Read only

brand_idstringRequired

The brand to check.

viewstringOptional

Select the result view.

Default: "summary"

Allowed: "summary", "time_series", "by_model", "by_prompt"

daysintegerOptional

Lookback window, 7-365.

Default: 90

Minimum: 7

Maximum: 365

periodstring | nullOptional

Default: null

tag_idsstring | nullOptional

Comma-separated tag IDs to filter prompts.

Default: null

prompt_idstring | nullOptional

Filter to a single prompt.

Default: null

user_intentstringOptional · Hosted only

A short description of the user’s request. Omit secrets and prior chat.

Maximum length: 600

Complete input schema
get_visibility_scores: hosted inputSchema
{
  "properties": {
    "brand_id": {
      "title": "Brand Id",
      "type": "string"
    },
    "view": {
      "default": "summary",
      "enum": [
        "summary",
        "time_series",
        "by_model",
        "by_prompt"
      ],
      "title": "View",
      "type": "string"
    },
    "days": {
      "default": 90,
      "maximum": 365,
      "minimum": 7,
      "title": "Days",
      "type": "integer"
    },
    "period": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Period"
    },
    "tag_ids": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Tag Ids"
    },
    "prompt_id": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Prompt Id"
    },
    "user_intent": {
      "type": "string",
      "maxLength": 600
    }
  },
  "required": [
    "brand_id"
  ],
  "title": "get_visibility_scoresArguments",
  "type": "object"
}
Output contract

The tool returns JSON in MCP text content. It does not declare an outputSchema or structuredContent. Response fields depend on the selected view and result.

Related API routes: /get-scores. See the OpenAPI response schemas for the corresponding HTTP contracts.

Link to this tool
list_brandsList all tracked brands. Returns IDs needed for other tools.

Read only

brand_idstring | nullOptional

Filter to a single brand.

Default: null

includestring | nullOptional

Comma-separated extras: 'markets', 'aliases', 'profile'.

Default: null

user_intentstringOptional · Hosted only

A short description of the user’s request. Omit secrets and prior chat.

Maximum length: 600

Complete input schema
list_brands: hosted inputSchema
{
  "properties": {
    "brand_id": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Brand Id"
    },
    "include": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Include"
    },
    "user_intent": {
      "type": "string",
      "maxLength": 600
    }
  },
  "title": "list_brandsArguments",
  "type": "object"
}
Output contract

The tool returns JSON in MCP text content. It does not declare an outputSchema or structuredContent. Response fields depend on the selected view and result.

Related API routes: /get-brands. See the OpenAPI response schemas for the corresponding HTTP contracts.

Link to this tool
list_promptsList tracked search queries for a brand.

Read only

brand_idstringRequired

The brand to list prompts for.

active_onlybooleanOptional

Only return active prompts.

Default: false

tag_idsstring | nullOptional

Comma-separated tag IDs to filter.

Default: null

limitintegerOptional

Results per page, 1-500.

Default: 100

Minimum: 1

Maximum: 500

offsetintegerOptional

Pagination offset.

Default: 0

Minimum: 0

Maximum: 1000000

user_intentstringOptional · Hosted only

A short description of the user’s request. Omit secrets and prior chat.

Maximum length: 600

Complete input schema
list_prompts: hosted inputSchema
{
  "properties": {
    "brand_id": {
      "title": "Brand Id",
      "type": "string"
    },
    "active_only": {
      "default": false,
      "title": "Active Only",
      "type": "boolean"
    },
    "tag_ids": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Tag Ids"
    },
    "limit": {
      "default": 100,
      "maximum": 500,
      "minimum": 1,
      "title": "Limit",
      "type": "integer"
    },
    "offset": {
      "default": 0,
      "maximum": 1000000,
      "minimum": 0,
      "title": "Offset",
      "type": "integer"
    },
    "user_intent": {
      "type": "string",
      "maxLength": 600
    }
  },
  "required": [
    "brand_id"
  ],
  "title": "list_promptsArguments",
  "type": "object"
}
Output contract

The tool returns JSON in MCP text content. It does not declare an outputSchema or structuredContent. Response fields depend on the selected view and result.

Related API routes: /get-prompts. See the OpenAPI response schemas for the corresponding HTTP contracts.

Link to this tool
list_tagsList every prompt tag for a brand, including unused tags and prompt counts.

Read only

brand_idstringRequired

The brand to list tags for.

user_intentstringOptional · Hosted only

A short description of the user’s request. Omit secrets and prior chat.

Maximum length: 600

Complete input schema
list_tags: hosted inputSchema
{
  "properties": {
    "brand_id": {
      "title": "Brand Id",
      "type": "string"
    },
    "user_intent": {
      "type": "string",
      "maxLength": 600
    }
  },
  "required": [
    "brand_id"
  ],
  "title": "list_tagsArguments",
  "type": "object"
}
Output contract

The tool returns JSON in MCP text content. It does not declare an outputSchema or structuredContent. Response fields depend on the selected view and result.

Related API routes: /get-tags. See the OpenAPI response schemas for the corresponding HTTP contracts.

Link to this tool
manage_promptCreate, update, or delete a tracked prompt.

Changes account data or starts work · Review the change before approving

actionstringRequired

Choose the operation to perform.

Allowed: "create", "update", "delete"

brand_idstring | nullOptional

Required for create. The brand this prompt belongs to.

Default: null

prompt_idstring | nullOptional

Required for update/delete. The prompt to modify.

Default: null

textstring | nullOptional

The search query text. Required for create.

Default: null

activeboolean | nullOptional

Whether the prompt is actively tracked.

Default: null

intentstring | nullOptional

Query intent classification.

Default: null

user_intentstringOptional · Hosted only

A short description of the user’s request. Omit secrets and prior chat.

Maximum length: 600

Complete input schema
manage_prompt: hosted inputSchema
{
  "properties": {
    "action": {
      "enum": [
        "create",
        "update",
        "delete"
      ],
      "title": "Action",
      "type": "string"
    },
    "brand_id": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Brand Id"
    },
    "prompt_id": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Prompt Id"
    },
    "text": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Text"
    },
    "active": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Active"
    },
    "intent": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Intent"
    },
    "user_intent": {
      "type": "string",
      "maxLength": 600
    }
  },
  "required": [
    "action"
  ],
  "title": "manage_promptArguments",
  "type": "object"
}
Output contract

The tool returns JSON in MCP text content. It does not declare an outputSchema or structuredContent. Response fields depend on the selected view and result.

Related API routes: /get-prompts. See the OpenAPI response schemas for the corresponding HTTP contracts.

Link to this tool
manage_prompt_tagsCreate, rename, recolour, or delete a prompt tag, or add/remove it across prompts.

Changes account data or starts work · Review the change before approving

actionstringRequired

Choose the operation to perform.

Allowed: "create", "update", "delete", "add", "remove"

brand_idstringRequired

The brand that owns the prompts and tag.

tag_idstring | nullOptional

Required for update/delete. For add/remove, use this or tag_name.

Default: null

tag_namestring | nullOptional

Required for create. For add/remove, use this or tag_id.

Default: null

colourstring | nullOptional

Optional six-digit hex colour such as #2563eb.

Default: null

prompt_idsstring | array | nullOptional

Prompt IDs for add/remove. Maximum 200.

Default: null

create_if_missingbooleanOptional

When adding by name, create a missing tag.

Default: true

user_intentstringOptional · Hosted only

A short description of the user’s request. Omit secrets and prior chat.

Maximum length: 600

Complete input schema
manage_prompt_tags: hosted inputSchema
{
  "properties": {
    "action": {
      "enum": [
        "create",
        "update",
        "delete",
        "add",
        "remove"
      ],
      "title": "Action",
      "type": "string"
    },
    "brand_id": {
      "title": "Brand Id",
      "type": "string"
    },
    "tag_id": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Tag Id"
    },
    "tag_name": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Tag Name"
    },
    "colour": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Colour"
    },
    "prompt_ids": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Prompt Ids"
    },
    "create_if_missing": {
      "default": true,
      "title": "Create If Missing",
      "type": "boolean"
    },
    "user_intent": {
      "type": "string",
      "maxLength": 600
    }
  },
  "required": [
    "action",
    "brand_id"
  ],
  "title": "manage_prompt_tagsArguments",
  "type": "object"
}
Output contract

The tool returns JSON in MCP text content. It does not declare an outputSchema or structuredContent. Response fields depend on the selected view and result.

Related API routes: /manage-prompt-tags. See the OpenAPI response schemas for the corresponding HTTP contracts.

Link to this tool
report_unmet_needRecord a request that no current Trakkr tool can complete, without forcing an unrelated action.

Changes account data or starts work

user_requeststringRequired

A short summary of the requested outcome.

missing_capabilitystringRequired

The smallest missing capability that blocked the outcome.

attempted_toolsstring | nullOptional

Optional comma-separated Trakkr tools already tried.

Default: null

user_intentstringOptional · Hosted only

A short description of the user’s request. Omit secrets and prior chat.

Maximum length: 600

Complete input schema
report_unmet_need: hosted inputSchema
{
  "properties": {
    "user_request": {
      "title": "User Request",
      "type": "string"
    },
    "missing_capability": {
      "title": "Missing Capability",
      "type": "string"
    },
    "attempted_tools": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Attempted Tools"
    },
    "user_intent": {
      "type": "string",
      "maxLength": 600
    }
  },
  "required": [
    "user_request",
    "missing_capability"
  ],
  "title": "report_unmet_needArguments",
  "type": "object"
}
Output contract

The tool returns JSON in MCP text content. It does not declare an outputSchema or structuredContent. Response fields depend on the selected view and result.

Link to this tool
set_brand_locationSet a brand primary market so competitor and AI-search analysis uses the right geography.

Changes account data or starts work · Review the change before approving

brand_idstringRequired

The brand to update.

countrystringRequired

ISO-2 country code such as 'GB' or 'US'.

regionstring | nullOptional

Optional state, region, or province.

Default: null

citystring | nullOptional

Optional city to narrow the market further.

Default: null

user_intentstringOptional · Hosted only

A short description of the user’s request. Omit secrets and prior chat.

Maximum length: 600

Complete input schema
set_brand_location: hosted inputSchema
{
  "properties": {
    "brand_id": {
      "title": "Brand Id",
      "type": "string"
    },
    "country": {
      "title": "Country",
      "type": "string"
    },
    "region": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Region"
    },
    "city": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "City"
    },
    "user_intent": {
      "type": "string",
      "maxLength": 600
    }
  },
  "required": [
    "brand_id",
    "country"
  ],
  "title": "set_brand_locationArguments",
  "type": "object"
}
Output contract

The tool returns JSON in MCP text content. It does not declare an outputSchema or structuredContent. Response fields depend on the selected view and result.

Related API routes: /get-brands/location. See the OpenAPI response schemas for the corresponding HTTP contracts.

Link to this tool
suggest_promptsSuggest fresh AI-search prompts to track, grounded in the brand's own profile.

Changes account data or starts work

brand_idstringRequired

The brand to suggest prompts for.

focusstring | nullOptional

Optional topic or keyword to steer suggestions toward a product line or use-case.

Default: null

limitintegerOptional

How many suggestions to return, 1-10.

Default: 8

Minimum: 1

Maximum: 10

user_intentstringOptional · Hosted only

A short description of the user’s request. Omit secrets and prior chat.

Maximum length: 600

Complete input schema
suggest_prompts: hosted inputSchema
{
  "properties": {
    "brand_id": {
      "title": "Brand Id",
      "type": "string"
    },
    "focus": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Focus"
    },
    "limit": {
      "default": 8,
      "maximum": 10,
      "minimum": 1,
      "title": "Limit",
      "type": "integer"
    },
    "user_intent": {
      "type": "string",
      "maxLength": 600
    }
  },
  "required": [
    "brand_id"
  ],
  "title": "suggest_promptsArguments",
  "type": "object"
}
Output contract

The tool returns JSON in MCP text content. It does not declare an outputSchema or structuredContent. Response fields depend on the selected view and result.

Related API routes: /get-prompts/suggest. See the OpenAPI response schemas for the corresponding HTTP contracts.

Link to this tool
update_brand_aliasesUpdate a brand’s aliases (alternate names folded into its visibility).

Changes account data or starts work · Review the change before approving

brand_idstringRequired

The brand to update.

aliasesstringRequired

Comma-separated alias names (e.g. "AWS, Amazon Web Services").

actionstringOptional

Choose the operation to perform.

Default: "add"

Allowed: "add", "remove", "set"

user_intentstringOptional · Hosted only

A short description of the user’s request. Omit secrets and prior chat.

Maximum length: 600

Complete input schema
update_brand_aliases: hosted inputSchema
{
  "properties": {
    "brand_id": {
      "title": "Brand Id",
      "type": "string"
    },
    "aliases": {
      "title": "Aliases",
      "type": "string"
    },
    "action": {
      "default": "add",
      "enum": [
        "add",
        "remove",
        "set"
      ],
      "title": "Action",
      "type": "string"
    },
    "user_intent": {
      "type": "string",
      "maxLength": 600
    }
  },
  "required": [
    "brand_id",
    "aliases"
  ],
  "title": "update_brand_aliasesArguments",
  "type": "object"
}
Output contract

The tool returns JSON in MCP text content. It does not declare an outputSchema or structuredContent. Response fields depend on the selected view and result.

Related API routes: /get-brands/aliases. See the OpenAPI response schemas for the corresponding HTTP contracts.

Link to this tool

Activity 4

get_changesWhat moved for a brand since you last looked: a compact digest of visibility, citation, competitor, rank, crawler, opportunity, and report changes. Returns a latest_seen cursor to pass back as since next time.

Read only

brand_idstringRequired

The brand to check.

sincestring | nullOptional

ISO-8601 timestamp (e.g. the latest_seen from a prior call). Only changes newer than this are returned.

Default: null

daysintegerOptional

Lookback window when since is not given, 1-180.

Default: 7

Minimum: 1

Maximum: 180

limitintegerOptional

Max changes, 1-200.

Default: 50

Minimum: 1

Maximum: 200

user_intentstringOptional · Hosted only

A short description of the user’s request. Omit secrets and prior chat.

Maximum length: 600

Complete input schema
get_changes: hosted inputSchema
{
  "properties": {
    "brand_id": {
      "title": "Brand Id",
      "type": "string"
    },
    "since": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Since"
    },
    "days": {
      "default": 7,
      "maximum": 180,
      "minimum": 1,
      "title": "Days",
      "type": "integer"
    },
    "limit": {
      "default": 50,
      "maximum": 200,
      "minimum": 1,
      "title": "Limit",
      "type": "integer"
    },
    "user_intent": {
      "type": "string",
      "maxLength": 600
    }
  },
  "required": [
    "brand_id"
  ],
  "title": "get_changesArguments",
  "type": "object"
}
Output contract

The tool returns JSON in MCP text content. It does not declare an outputSchema or structuredContent. Response fields depend on the selected view and result.

Related API routes: /notifications. See the OpenAPI response schemas for the corresponding HTTP contracts.

Link to this tool
get_notificationsRead the in-product activity feed: visibility shifts, citations, competitors, actions, workflows, audits.

Read only

brand_idstringRequired

The brand to inspect.

viewstringOptional

Select the result view.

Default: "list"

Allowed: "list", "unread_count"

unread_onlybooleanOptional

If true, only return unread events.

Default: false

event_typestring | nullOptional

Filter by exact notification event_type, for example 'visibility_drop'.

Default: null

daysintegerOptional

Lookback window, 1-180.

Default: 30

Minimum: 1

Maximum: 180

limitintegerOptional

Max rows, 1-200.

Default: 50

Minimum: 1

Maximum: 200

user_intentstringOptional · Hosted only

A short description of the user’s request. Omit secrets and prior chat.

Maximum length: 600

Complete input schema
get_notifications: hosted inputSchema
{
  "properties": {
    "brand_id": {
      "title": "Brand Id",
      "type": "string"
    },
    "view": {
      "default": "list",
      "enum": [
        "list",
        "unread_count"
      ],
      "title": "View",
      "type": "string"
    },
    "unread_only": {
      "default": false,
      "title": "Unread Only",
      "type": "boolean"
    },
    "event_type": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Event Type"
    },
    "days": {
      "default": 30,
      "maximum": 180,
      "minimum": 1,
      "title": "Days",
      "type": "integer"
    },
    "limit": {
      "default": 50,
      "maximum": 200,
      "minimum": 1,
      "title": "Limit",
      "type": "integer"
    },
    "user_intent": {
      "type": "string",
      "maxLength": 600
    }
  },
  "required": [
    "brand_id"
  ],
  "title": "get_notificationsArguments",
  "type": "object"
}
Output contract

The tool returns JSON in MCP text content. It does not declare an outputSchema or structuredContent. Response fields depend on the selected view and result.

Related API routes: /notifications. See the OpenAPI response schemas for the corresponding HTTP contracts.

Link to this tool
manage_webhookList, inspect, create, delete, or test outgoing webhooks for the brand.

Changes account data or starts work · Review the change before approving

brand_idstringRequired

The brand to update.

actionstringRequired

Choose the operation to perform.

Allowed: "list", "get", "create", "delete", "test"

webhook_idstring | nullOptional

Required for get, delete, test.

Default: null

urlstring | nullOptional

HTTPS endpoint. Required for 'create'.

Default: null

eventsarray | nullOptional

Event names. Required for 'create'.

Default: null

signing_secretstring | nullOptional

Optional signing secret for 'create'.

Default: null

user_intentstringOptional · Hosted only

A short description of the user’s request. Omit secrets and prior chat.

Maximum length: 600

Complete input schema
manage_webhook: hosted inputSchema
{
  "properties": {
    "brand_id": {
      "title": "Brand Id",
      "type": "string"
    },
    "action": {
      "enum": [
        "list",
        "get",
        "create",
        "delete",
        "test"
      ],
      "title": "Action",
      "type": "string"
    },
    "webhook_id": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Webhook Id"
    },
    "url": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Url"
    },
    "events": {
      "anyOf": [
        {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Events"
    },
    "signing_secret": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Signing Secret"
    },
    "user_intent": {
      "type": "string",
      "maxLength": 600
    }
  },
  "required": [
    "brand_id",
    "action"
  ],
  "title": "manage_webhookArguments",
  "type": "object"
}
Output contract

The tool returns JSON in MCP text content. It does not declare an outputSchema or structuredContent. Response fields depend on the selected view and result.

Related API routes: /webhooks. See the OpenAPI response schemas for the corresponding HTTP contracts.

Link to this tool
mark_notifications_readMark notifications as read by ID or clear the entire unread inbox.

Changes account data or starts work · Review the change before approving

brand_idstringRequired

The brand the notifications belong to.

notification_idsarray | nullOptional

Specific notification IDs to mark read.

Default: null

mark_allbooleanOptional

Mark every unread notification read for the brand.

Default: false

user_intentstringOptional · Hosted only

A short description of the user’s request. Omit secrets and prior chat.

Maximum length: 600

Complete input schema
mark_notifications_read: hosted inputSchema
{
  "properties": {
    "brand_id": {
      "title": "Brand Id",
      "type": "string"
    },
    "notification_ids": {
      "anyOf": [
        {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Notification Ids"
    },
    "mark_all": {
      "default": false,
      "title": "Mark All",
      "type": "boolean"
    },
    "user_intent": {
      "type": "string",
      "maxLength": 600
    }
  },
  "required": [
    "brand_id"
  ],
  "title": "mark_notifications_readArguments",
  "type": "object"
}
Output contract

The tool returns JSON in MCP text content. It does not declare an outputSchema or structuredContent. Response fields depend on the selected view and result.

Related API routes: /notifications/read. See the OpenAPI response schemas for the corresponding HTTP contracts.

Link to this tool

Visibility 5

get_citationsCitation URLs, history, queries, sources, feed, heatmap.

Read only

brand_idstringRequired

The brand to check.

viewstringOptional

Select the result view.

Default: "list"

Allowed: "list", "history", "queries", "sources", "feed", "recent", "heatmap", "analytics", "detail", "by_model", "top_pages"

daysintegerOptional

Lookback window, 7-365.

Default: 30

Minimum: 7

Maximum: 365

periodstring | nullOptional

Default: null

limitintegerOptional

Results per page, 1-500.

Default: 100

Minimum: 1

Maximum: 500

offsetintegerOptional

Pagination offset.

Default: 0

Minimum: 0

Maximum: 1000000

domainstring | nullOptional

Required when view='sources'. The domain to analyze.

Default: null

days_backinteger | nullOptional

Default: null

Minimum: 1

Maximum: 30

tag_idsstring | nullOptional

Comma-separated tag IDs to filter.

Default: null

prompt_textstring | nullOptional

Filter to prompts containing this text.

Default: null

response_formatstringOptional

Choose the response format.

Default: "concise"

Allowed: "concise", "detailed"

user_intentstringOptional · Hosted only

A short description of the user’s request. Omit secrets and prior chat.

Maximum length: 600

Complete input schema
get_citations: hosted inputSchema
{
  "properties": {
    "brand_id": {
      "title": "Brand Id",
      "type": "string"
    },
    "view": {
      "default": "list",
      "enum": [
        "list",
        "history",
        "queries",
        "sources",
        "feed",
        "recent",
        "heatmap",
        "analytics",
        "detail",
        "by_model",
        "top_pages"
      ],
      "title": "View",
      "type": "string"
    },
    "days": {
      "default": 30,
      "maximum": 365,
      "minimum": 7,
      "title": "Days",
      "type": "integer"
    },
    "period": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Period"
    },
    "limit": {
      "default": 100,
      "maximum": 500,
      "minimum": 1,
      "title": "Limit",
      "type": "integer"
    },
    "offset": {
      "default": 0,
      "maximum": 1000000,
      "minimum": 0,
      "title": "Offset",
      "type": "integer"
    },
    "domain": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Domain"
    },
    "days_back": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "maximum": 30,
      "minimum": 1,
      "title": "Days Back"
    },
    "tag_ids": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Tag Ids"
    },
    "prompt_text": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Prompt Text"
    },
    "response_format": {
      "default": "concise",
      "enum": [
        "concise",
        "detailed"
      ],
      "title": "Response Format",
      "type": "string"
    },
    "user_intent": {
      "type": "string",
      "maxLength": 600
    }
  },
  "required": [
    "brand_id"
  ],
  "title": "get_citationsArguments",
  "type": "object"
}
Output contract

The tool returns JSON in MCP text content. It does not declare an outputSchema or structuredContent. Response fields depend on the selected view and result.

Related API routes: /get-citations. See the OpenAPI response schemas for the corresponding HTTP contracts.

Link to this tool
get_competitorsCompetitor analysis: summary, arena, head-to-head, threats, daily trend.

Read only

brand_idstringRequired

The brand to check.

viewstringOptional

Select the result view.

Default: "summary"

Allowed: "summary", "arena", "head-to-head", "by-model", "threats", "heatmap", "over_time"

competitorstring | nullOptional

Required for 'head-to-head'. On 'over_time' it narrows to you and that one competitor.

Default: null

daysintegerOptional

Choose the days.

Default: 30

Allowed: 7, 14, 30, 90

periodstring | nullOptional

Default: null

tag_idsstring | nullOptional

Comma-separated tag IDs from list_tags. Recalculates every metric over only those prompts.

Default: null

limitintegerOptional

'over_time' only: how many competitor series to return, 1-50.

Default: 10

Minimum: 1

Maximum: 50

response_formatstringOptional

Choose the response format.

Default: "concise"

Allowed: "concise", "detailed"

user_intentstringOptional · Hosted only

A short description of the user’s request. Omit secrets and prior chat.

Maximum length: 600

Complete input schema
get_competitors: hosted inputSchema
{
  "properties": {
    "brand_id": {
      "title": "Brand Id",
      "type": "string"
    },
    "view": {
      "default": "summary",
      "enum": [
        "summary",
        "arena",
        "head-to-head",
        "by-model",
        "threats",
        "heatmap",
        "over_time"
      ],
      "title": "View",
      "type": "string"
    },
    "competitor": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Competitor"
    },
    "days": {
      "default": 30,
      "enum": [
        7,
        14,
        30,
        90
      ],
      "title": "Days",
      "type": "integer"
    },
    "period": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Period"
    },
    "tag_ids": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Tag Ids"
    },
    "limit": {
      "default": 10,
      "maximum": 50,
      "minimum": 1,
      "title": "Limit",
      "type": "integer"
    },
    "response_format": {
      "default": "concise",
      "enum": [
        "concise",
        "detailed"
      ],
      "title": "Response Format",
      "type": "string"
    },
    "user_intent": {
      "type": "string",
      "maxLength": 600
    }
  },
  "required": [
    "brand_id"
  ],
  "title": "get_competitorsArguments",
  "type": "object"
}
Output contract

The tool returns JSON in MCP text content. It does not declare an outputSchema or structuredContent. Response fields depend on the selected view and result.

Related API routes: /get-competitor-data. See the OpenAPI response schemas for the corresponding HTTP contracts.

Link to this tool
get_model_breakdownVisibility by AI model (ChatGPT, Perplexity, Gemini, etc.).

Read only

brand_idstringRequired

The brand to check.

daysintegerOptional

Lookback window, 7-365.

Default: 30

Minimum: 7

Maximum: 365

periodstring | nullOptional

Default: null

include_trendsbooleanOptional

Include trend data per model.

Default: false

user_intentstringOptional · Hosted only

A short description of the user’s request. Omit secrets and prior chat.

Maximum length: 600

Complete input schema
get_model_breakdown: hosted inputSchema
{
  "properties": {
    "brand_id": {
      "title": "Brand Id",
      "type": "string"
    },
    "days": {
      "default": 30,
      "maximum": 365,
      "minimum": 7,
      "title": "Days",
      "type": "integer"
    },
    "period": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Period"
    },
    "include_trends": {
      "default": false,
      "title": "Include Trends",
      "type": "boolean"
    },
    "user_intent": {
      "type": "string",
      "maxLength": 600
    }
  },
  "required": [
    "brand_id"
  ],
  "title": "get_model_breakdownArguments",
  "type": "object"
}
Output contract

The tool returns JSON in MCP text content. It does not declare an outputSchema or structuredContent. Response fields depend on the selected view and result.

Related API routes: /get-models. See the OpenAPI response schemas for the corresponding HTTP contracts.

Link to this tool
get_rankingsCompetitive rankings in AI search results.

Read only

brand_idstringRequired

The brand to check.

viewstringOptional

Select the result view.

Default: "overall"

Allowed: "overall", "by-prompt", "prompt-trends"

daysintegerOptional

Lookback window, 1-365.

Default: 30

Minimum: 1

Maximum: 365

periodstring | nullOptional

Default: null

include_volumebooleanOptional

Include search volume estimates.

Default: false

tag_idsstring | nullOptional

Comma-separated tag IDs from list_tags. Applies to overall and prompt-trends.

Default: null

limitintegerOptional

'prompt-trends' only: how many prompts to return, 1-100.

Default: 25

Minimum: 1

Maximum: 100

user_intentstringOptional · Hosted only

A short description of the user’s request. Omit secrets and prior chat.

Maximum length: 600

Complete input schema
get_rankings: hosted inputSchema
{
  "properties": {
    "brand_id": {
      "title": "Brand Id",
      "type": "string"
    },
    "view": {
      "default": "overall",
      "enum": [
        "overall",
        "by-prompt",
        "prompt-trends"
      ],
      "title": "View",
      "type": "string"
    },
    "days": {
      "default": 30,
      "maximum": 365,
      "minimum": 1,
      "title": "Days",
      "type": "integer"
    },
    "period": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Period"
    },
    "include_volume": {
      "default": false,
      "title": "Include Volume",
      "type": "boolean"
    },
    "tag_ids": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Tag Ids"
    },
    "limit": {
      "default": 25,
      "maximum": 100,
      "minimum": 1,
      "title": "Limit",
      "type": "integer"
    },
    "user_intent": {
      "type": "string",
      "maxLength": 600
    }
  },
  "required": [
    "brand_id"
  ],
  "title": "get_rankingsArguments",
  "type": "object"
}
Output contract

The tool returns JSON in MCP text content. It does not declare an outputSchema or structuredContent. Response fields depend on the selected view and result.

Related API routes: /get-rankings. See the OpenAPI response schemas for the corresponding HTTP contracts.

Link to this tool
manage_competitorTrack, untrack, hide, or unhide a competitor for a brand.

Changes account data or starts work · Review the change before approving

brand_idstringRequired

The brand to update.

actionstringRequired

Choose the operation to perform.

Allowed: "list", "add", "remove", "hide", "unhide"

competitorstring | nullOptional

Competitor name (a domain works too). Required for every action except 'list'.

Default: null

user_intentstringOptional · Hosted only

A short description of the user’s request. Omit secrets and prior chat.

Maximum length: 600

Complete input schema
manage_competitor: hosted inputSchema
{
  "properties": {
    "brand_id": {
      "title": "Brand Id",
      "type": "string"
    },
    "action": {
      "enum": [
        "list",
        "add",
        "remove",
        "hide",
        "unhide"
      ],
      "title": "Action",
      "type": "string"
    },
    "competitor": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Competitor"
    },
    "user_intent": {
      "type": "string",
      "maxLength": 600
    }
  },
  "required": [
    "brand_id",
    "action"
  ],
  "title": "manage_competitorArguments",
  "type": "object"
}
Output contract

The tool returns JSON in MCP text content. It does not declare an outputSchema or structuredContent. Response fields depend on the selected view and result.

Related API routes: /competitors/manage. See the OpenAPI response schemas for the corresponding HTTP contracts.

Link to this tool

Crawler 9

get_crawler_accessAccess tab data: findings, bot matrix, robots.txt, llms.txt, submit-to-search.

Read only

brand_idstringRequired

The brand to check.

range_presetstringOptional

Choose the range preset.

Default: "30d"

Allowed: "24h", "7d", "30d", "90d", "custom"

start_datestring | nullOptional

Default: null

end_datestring | nullOptional

Default: null

user_intentstringOptional · Hosted only

A short description of the user’s request. Omit secrets and prior chat.

Maximum length: 600

Complete input schema
get_crawler_access: hosted inputSchema
{
  "properties": {
    "brand_id": {
      "title": "Brand Id",
      "type": "string"
    },
    "range_preset": {
      "default": "30d",
      "enum": [
        "24h",
        "7d",
        "30d",
        "90d",
        "custom"
      ],
      "title": "Range Preset",
      "type": "string"
    },
    "start_date": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Start Date"
    },
    "end_date": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "End Date"
    },
    "user_intent": {
      "type": "string",
      "maxLength": 600
    }
  },
  "required": [
    "brand_id"
  ],
  "title": "get_crawler_accessArguments",
  "type": "object"
}
Output contract

The tool returns JSON in MCP text content. It does not declare an outputSchema or structuredContent. Response fields depend on the selected view and result.

Related API routes: /crawler/access. See the OpenAPI response schemas for the corresponding HTTP contracts.

Link to this tool
get_crawler_detailDrawer sections (verdict, pipeline, health, traffic, diagnostics) for one page, path, or bot.

Read only

brand_idstringRequired

The brand to check.

kindstringRequired

Choose the kind.

Allowed: "page", "path", "bot"

entity_idstringRequired

The page URL (kind='page'), path ID (kind='path'), or normalized bot name (kind='bot') from get_crawler_pages.

range_presetstringOptional

Choose the range preset.

Default: "30d"

Allowed: "24h", "7d", "30d", "90d", "custom"

start_datestring | nullOptional

Default: null

end_datestring | nullOptional

Default: null

intentstringOptional

Choose the intent.

Default: "all"

Allowed: "all", "interaction", "search", "training"

platformstring | nullOptional

Optional comma-separated platform names (path/bot only).

Default: null

searchstring | nullOptional

Optional search filter (path/bot only).

Default: null

statusstringOptional

Filter by status.

Default: "all"

Allowed: "all", "converting", "cited", "crawled", "healthy", "cold"

user_intentstringOptional · Hosted only

A short description of the user’s request. Omit secrets and prior chat.

Maximum length: 600

Complete input schema
get_crawler_detail: hosted inputSchema
{
  "properties": {
    "brand_id": {
      "title": "Brand Id",
      "type": "string"
    },
    "kind": {
      "enum": [
        "page",
        "path",
        "bot"
      ],
      "title": "Kind",
      "type": "string"
    },
    "entity_id": {
      "title": "Entity Id",
      "type": "string"
    },
    "range_preset": {
      "default": "30d",
      "enum": [
        "24h",
        "7d",
        "30d",
        "90d",
        "custom"
      ],
      "title": "Range Preset",
      "type": "string"
    },
    "start_date": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Start Date"
    },
    "end_date": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "End Date"
    },
    "intent": {
      "default": "all",
      "enum": [
        "all",
        "interaction",
        "search",
        "training"
      ],
      "title": "Intent",
      "type": "string"
    },
    "platform": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Platform"
    },
    "search": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Search"
    },
    "status": {
      "default": "all",
      "enum": [
        "all",
        "converting",
        "cited",
        "crawled",
        "healthy",
        "cold"
      ],
      "title": "Status",
      "type": "string"
    },
    "user_intent": {
      "type": "string",
      "maxLength": 600
    }
  },
  "required": [
    "brand_id",
    "kind",
    "entity_id"
  ],
  "title": "get_crawler_detailArguments",
  "type": "object"
}
Output contract

The tool returns JSON in MCP text content. It does not declare an outputSchema or structuredContent. Response fields depend on the selected view and result.

Related API routes: /crawler/page-details, /crawler/path-details, /crawler/bot-details. See the OpenAPI response schemas for the corresponding HTTP contracts.

Link to this tool
get_crawler_liveLive tab data: activity feed, top pages, or sessions.

Read only

brand_idstringRequired

The brand to check.

viewstringOptional

Select the result view.

Default: "activity"

Allowed: "activity", "pages", "sessions"

range_presetstringOptional

Choose the range preset.

Default: "30d"

Allowed: "24h", "7d", "30d", "90d", "custom"

start_datestring | nullOptional

Default: null

end_datestring | nullOptional

Default: null

intentstringOptional

Choose the intent.

Default: "all"

Allowed: "all", "interaction", "search", "training"

platformstring | nullOptional

Optional comma-separated platform names.

Default: null

http_statusstring | nullOptional

Optional comma-separated status groups: 2xx,3xx,4xx,5xx.

Default: null

searchstring | nullOptional

Optional URL search filter.

Default: null

sort_bystring | nullOptional

Default: null

sort_dirstringOptional

Choose the sort dir.

Default: "desc"

Allowed: "asc", "desc"

cursorstring | nullOptional

Pagination cursor from the previous response.

Default: null

limitintegerOptional

Results per page, 1-100.

Default: 25

Minimum: 1

Maximum: 100

user_intentstringOptional · Hosted only

A short description of the user’s request. Omit secrets and prior chat.

Maximum length: 600

Complete input schema
get_crawler_live: hosted inputSchema
{
  "properties": {
    "brand_id": {
      "title": "Brand Id",
      "type": "string"
    },
    "view": {
      "default": "activity",
      "enum": [
        "activity",
        "pages",
        "sessions"
      ],
      "title": "View",
      "type": "string"
    },
    "range_preset": {
      "default": "30d",
      "enum": [
        "24h",
        "7d",
        "30d",
        "90d",
        "custom"
      ],
      "title": "Range Preset",
      "type": "string"
    },
    "start_date": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Start Date"
    },
    "end_date": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "End Date"
    },
    "intent": {
      "default": "all",
      "enum": [
        "all",
        "interaction",
        "search",
        "training"
      ],
      "title": "Intent",
      "type": "string"
    },
    "platform": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Platform"
    },
    "http_status": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Http Status"
    },
    "search": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Search"
    },
    "sort_by": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Sort By"
    },
    "sort_dir": {
      "default": "desc",
      "enum": [
        "asc",
        "desc"
      ],
      "title": "Sort Dir",
      "type": "string"
    },
    "cursor": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Cursor"
    },
    "limit": {
      "default": 25,
      "maximum": 100,
      "minimum": 1,
      "title": "Limit",
      "type": "integer"
    },
    "user_intent": {
      "type": "string",
      "maxLength": 600
    }
  },
  "required": [
    "brand_id"
  ],
  "title": "get_crawler_liveArguments",
  "type": "object"
}
Output contract

The tool returns JSON in MCP text content. It does not declare an outputSchema or structuredContent. Response fields depend on the selected view and result.

Related API routes: /crawler/live. See the OpenAPI response schemas for the corresponding HTTP contracts.

Link to this tool
get_crawler_overviewHero stats, chart, setup state, top pages, and recent preview.

Read only

brand_idstringRequired

The brand to check.

range_presetstringOptional

Choose the range preset.

Default: "30d"

Allowed: "24h", "7d", "30d", "90d", "custom"

start_datestring | nullOptional

Required when range_preset='custom'. Format YYYY-MM-DD.

Default: null

end_datestring | nullOptional

Required when range_preset='custom'. Format YYYY-MM-DD.

Default: null

compare_tostringOptional

Choose the compare to.

Default: "none"

Allowed: "none", "previous_period"

user_intentstringOptional · Hosted only

A short description of the user’s request. Omit secrets and prior chat.

Maximum length: 600

Complete input schema
get_crawler_overview: hosted inputSchema
{
  "properties": {
    "brand_id": {
      "title": "Brand Id",
      "type": "string"
    },
    "range_preset": {
      "default": "30d",
      "enum": [
        "24h",
        "7d",
        "30d",
        "90d",
        "custom"
      ],
      "title": "Range Preset",
      "type": "string"
    },
    "start_date": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Start Date"
    },
    "end_date": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "End Date"
    },
    "compare_to": {
      "default": "none",
      "enum": [
        "none",
        "previous_period"
      ],
      "title": "Compare To",
      "type": "string"
    },
    "user_intent": {
      "type": "string",
      "maxLength": 600
    }
  },
  "required": [
    "brand_id"
  ],
  "title": "get_crawler_overviewArguments",
  "type": "object"
}
Output contract

The tool returns JSON in MCP text content. It does not declare an outputSchema or structuredContent. Response fields depend on the selected view and result.

Related API routes: /crawler/overview. See the OpenAPI response schemas for the corresponding HTTP contracts.

Link to this tool
get_crawler_pagesPages tab data: URLs, grouped paths, or normalized bots.

Read only

brand_idstringRequired

The brand to check.

lensstringOptional

Choose the lens.

Default: "pages"

Allowed: "pages", "paths", "bots"

range_presetstringOptional

Choose the range preset.

Default: "30d"

Allowed: "24h", "7d", "30d", "90d", "custom"

start_datestring | nullOptional

Default: null

end_datestring | nullOptional

Default: null

intentstringOptional

Choose the intent.

Default: "all"

Allowed: "all", "interaction", "search", "training"

platformstring | nullOptional

Optional comma-separated platform names.

Default: null

searchstring | nullOptional

Optional search filter.

Default: null

statusstringOptional

Filter by status.

Default: "all"

Allowed: "all", "converting", "cited", "crawled", "healthy", "cold"

sort_bystring | nullOptional

Default: null

sort_dirstringOptional

Choose the sort dir.

Default: "desc"

Allowed: "asc", "desc"

cursorstring | nullOptional

Pagination cursor from the previous response.

Default: null

limitintegerOptional

Results per page, 1-100.

Default: 25

Minimum: 1

Maximum: 100

user_intentstringOptional · Hosted only

A short description of the user’s request. Omit secrets and prior chat.

Maximum length: 600

Complete input schema
get_crawler_pages: hosted inputSchema
{
  "properties": {
    "brand_id": {
      "title": "Brand Id",
      "type": "string"
    },
    "lens": {
      "default": "pages",
      "enum": [
        "pages",
        "paths",
        "bots"
      ],
      "title": "Lens",
      "type": "string"
    },
    "range_preset": {
      "default": "30d",
      "enum": [
        "24h",
        "7d",
        "30d",
        "90d",
        "custom"
      ],
      "title": "Range Preset",
      "type": "string"
    },
    "start_date": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Start Date"
    },
    "end_date": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "End Date"
    },
    "intent": {
      "default": "all",
      "enum": [
        "all",
        "interaction",
        "search",
        "training"
      ],
      "title": "Intent",
      "type": "string"
    },
    "platform": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Platform"
    },
    "search": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Search"
    },
    "status": {
      "default": "all",
      "enum": [
        "all",
        "converting",
        "cited",
        "crawled",
        "healthy",
        "cold"
      ],
      "title": "Status",
      "type": "string"
    },
    "sort_by": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Sort By"
    },
    "sort_dir": {
      "default": "desc",
      "enum": [
        "asc",
        "desc"
      ],
      "title": "Sort Dir",
      "type": "string"
    },
    "cursor": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Cursor"
    },
    "limit": {
      "default": 25,
      "maximum": 100,
      "minimum": 1,
      "title": "Limit",
      "type": "integer"
    },
    "user_intent": {
      "type": "string",
      "maxLength": 600
    }
  },
  "required": [
    "brand_id"
  ],
  "title": "get_crawler_pagesArguments",
  "type": "object"
}
Output contract

The tool returns JSON in MCP text content. It does not declare an outputSchema or structuredContent. Response fields depend on the selected view and result.

Related API routes: /crawler/pages. See the OpenAPI response schemas for the corresponding HTTP contracts.

Link to this tool
get_crawler_submit_statusGet submit-to-search status and summary for crawler URLs.

Read only

brand_idstringRequired

The brand to check.

range_presetstringOptional

Choose the range preset.

Default: "30d"

Allowed: "24h", "7d", "30d", "90d", "custom"

start_datestring | nullOptional

Default: null

end_datestring | nullOptional

Default: null

urlsstring | nullOptional

Optional comma-separated URLs to check.

Default: null

statusstring | nullOptional

Filter by status.

Default: null

Allowed: "pending", "success", "failed"

user_intentstringOptional · Hosted only

A short description of the user’s request. Omit secrets and prior chat.

Maximum length: 600

Complete input schema
get_crawler_submit_status: hosted inputSchema
{
  "properties": {
    "brand_id": {
      "title": "Brand Id",
      "type": "string"
    },
    "range_preset": {
      "default": "30d",
      "enum": [
        "24h",
        "7d",
        "30d",
        "90d",
        "custom"
      ],
      "title": "Range Preset",
      "type": "string"
    },
    "start_date": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Start Date"
    },
    "end_date": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "End Date"
    },
    "urls": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Urls"
    },
    "status": {
      "anyOf": [
        {
          "enum": [
            "pending",
            "success",
            "failed"
          ],
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Status"
    },
    "user_intent": {
      "type": "string",
      "maxLength": 600
    }
  },
  "required": [
    "brand_id"
  ],
  "title": "get_crawler_submit_statusArguments",
  "type": "object"
}
Output contract

The tool returns JSON in MCP text content. It does not declare an outputSchema or structuredContent. Response fields depend on the selected view and result.

Related API routes: /crawler/submit-to-search/status. See the OpenAPI response schemas for the corresponding HTTP contracts.

Link to this tool
preview_crawler_access_fixPreview an Access fix without applying it.

Read only

brand_idstringRequired

The brand to check.

finding_idstringRequired

Finding ID from get_crawler_access.

range_presetstringOptional

Choose the range preset.

Default: "30d"

Allowed: "24h", "7d", "30d", "90d", "custom"

start_datestring | nullOptional

Default: null

end_datestring | nullOptional

Default: null

user_intentstringOptional · Hosted only

A short description of the user’s request. Omit secrets and prior chat.

Maximum length: 600

Complete input schema
preview_crawler_access_fix: hosted inputSchema
{
  "properties": {
    "brand_id": {
      "title": "Brand Id",
      "type": "string"
    },
    "finding_id": {
      "title": "Finding Id",
      "type": "string"
    },
    "range_preset": {
      "default": "30d",
      "enum": [
        "24h",
        "7d",
        "30d",
        "90d",
        "custom"
      ],
      "title": "Range Preset",
      "type": "string"
    },
    "start_date": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Start Date"
    },
    "end_date": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "End Date"
    },
    "user_intent": {
      "type": "string",
      "maxLength": 600
    }
  },
  "required": [
    "brand_id",
    "finding_id"
  ],
  "title": "preview_crawler_access_fixArguments",
  "type": "object"
}
Output contract

The tool returns JSON in MCP text content. It does not declare an outputSchema or structuredContent. Response fields depend on the selected view and result.

Related API routes: /crawler/access/preview-fix. See the OpenAPI response schemas for the corresponding HTTP contracts.

Link to this tool
send_crawler_verification_pingSend the verification ping shown in the crawler dashboard.

Changes account data or starts work

brand_idstringRequired

The brand to update.

user_intentstringOptional · Hosted only

A short description of the user’s request. Omit secrets and prior chat.

Maximum length: 600

Complete input schema
send_crawler_verification_ping: hosted inputSchema
{
  "properties": {
    "brand_id": {
      "title": "Brand Id",
      "type": "string"
    },
    "user_intent": {
      "type": "string",
      "maxLength": 600
    }
  },
  "required": [
    "brand_id"
  ],
  "title": "send_crawler_verification_pingArguments",
  "type": "object"
}
Output contract

The tool returns JSON in MCP text content. It does not declare an outputSchema or structuredContent. Response fields depend on the selected view and result.

Related API routes: /crawler/verification-ping. See the OpenAPI response schemas for the corresponding HTTP contracts.

Link to this tool

Research 5

get_latest_researchMost recent completed prompt research run with the full analytics payload.

Read only

brand_idstringRequired

The brand to check.

report_typestring | nullOptional

Choose the report type.

Default: null

Allowed: "full_research", "topic_snapshot"

results_limitintegerOptional

Max per-prompt results to return, 1-500.

Default: 100

Minimum: 1

Maximum: 500

results_offsetintegerOptional

Pagination offset into the results array.

Default: 0

Minimum: 0

Maximum: 1000000

user_intentstringOptional · Hosted only

A short description of the user’s request. Omit secrets and prior chat.

Maximum length: 600

Complete input schema
get_latest_research: hosted inputSchema
{
  "properties": {
    "brand_id": {
      "title": "Brand Id",
      "type": "string"
    },
    "report_type": {
      "anyOf": [
        {
          "enum": [
            "full_research",
            "topic_snapshot"
          ],
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Report Type"
    },
    "results_limit": {
      "default": 100,
      "maximum": 500,
      "minimum": 1,
      "title": "Results Limit",
      "type": "integer"
    },
    "results_offset": {
      "default": 0,
      "maximum": 1000000,
      "minimum": 0,
      "title": "Results Offset",
      "type": "integer"
    },
    "user_intent": {
      "type": "string",
      "maxLength": 600
    }
  },
  "required": [
    "brand_id"
  ],
  "title": "get_latest_researchArguments",
  "type": "object"
}
Output contract

The tool returns JSON in MCP text content. It does not declare an outputSchema or structuredContent. Response fields depend on the selected view and result.

Related API routes: /research/latest. See the OpenAPI response schemas for the corresponding HTTP contracts.

Link to this tool
get_research_creditsTopic snapshot credit usage for the current month.

Read only

brand_idstringRequired

The brand to check.

user_intentstringOptional · Hosted only

A short description of the user’s request. Omit secrets and prior chat.

Maximum length: 600

Complete input schema
get_research_credits: hosted inputSchema
{
  "properties": {
    "brand_id": {
      "title": "Brand Id",
      "type": "string"
    },
    "user_intent": {
      "type": "string",
      "maxLength": 600
    }
  },
  "required": [
    "brand_id"
  ],
  "title": "get_research_creditsArguments",
  "type": "object"
}
Output contract

The tool returns JSON in MCP text content. It does not declare an outputSchema or structuredContent. Response fields depend on the selected view and result.

Related API routes: /research/snapshot-credits. See the OpenAPI response schemas for the corresponding HTTP contracts.

Link to this tool
get_research_runFull analytics payload for one run: visibility, position distribution, competitor share, intent and focus breakdowns, best/missed prompts, and per-prompt results.

Read only

run_idstring | nullOptional

The prompt research run ID. Get IDs from get_research_runs.

Default: null

results_limitintegerOptional

Max per-prompt results to return, 1-500.

Default: 100

Minimum: 1

Maximum: 500

results_offsetintegerOptional

Pagination offset into the results array.

Default: 0

Minimum: 0

Maximum: 1000000

response_formatstringOptional

Choose the response format.

Default: "concise"

Allowed: "concise", "detailed"

user_intentstringOptional · Hosted only

A short description of the user’s request. Omit secrets and prior chat.

Maximum length: 600

Complete input schema
get_research_run: hosted inputSchema
{
  "properties": {
    "run_id": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Run Id"
    },
    "results_limit": {
      "default": 100,
      "maximum": 500,
      "minimum": 1,
      "title": "Results Limit",
      "type": "integer"
    },
    "results_offset": {
      "default": 0,
      "maximum": 1000000,
      "minimum": 0,
      "title": "Results Offset",
      "type": "integer"
    },
    "response_format": {
      "default": "concise",
      "enum": [
        "concise",
        "detailed"
      ],
      "title": "Response Format",
      "type": "string"
    },
    "user_intent": {
      "type": "string",
      "maxLength": 600
    }
  },
  "title": "get_research_runArguments",
  "type": "object"
}
Output contract

The tool returns JSON in MCP text content. It does not declare an outputSchema or structuredContent. Response fields depend on the selected view and result.

Related API routes: /research/runs/{run_id}. See the OpenAPI response schemas for the corresponding HTTP contracts.

Link to this tool
get_research_runsList prompt research runs (newest first) with visibility, mention rate, and top competitors.

Read only

brand_idstringRequired

The brand to list runs for.

report_typestring | nullOptional

Choose the report type.

Default: null

Allowed: "full_research", "topic_snapshot"

ready_onlybooleanOptional

If true, only return runs that completed successfully.

Default: true

limitintegerOptional

Results per page, 1-100.

Default: 20

Minimum: 1

Maximum: 100

offsetintegerOptional

Pagination offset.

Default: 0

Minimum: 0

Maximum: 1000000

user_intentstringOptional · Hosted only

A short description of the user’s request. Omit secrets and prior chat.

Maximum length: 600

Complete input schema
get_research_runs: hosted inputSchema
{
  "properties": {
    "brand_id": {
      "title": "Brand Id",
      "type": "string"
    },
    "report_type": {
      "anyOf": [
        {
          "enum": [
            "full_research",
            "topic_snapshot"
          ],
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Report Type"
    },
    "ready_only": {
      "default": true,
      "title": "Ready Only",
      "type": "boolean"
    },
    "limit": {
      "default": 20,
      "maximum": 100,
      "minimum": 1,
      "title": "Limit",
      "type": "integer"
    },
    "offset": {
      "default": 0,
      "maximum": 1000000,
      "minimum": 0,
      "title": "Offset",
      "type": "integer"
    },
    "user_intent": {
      "type": "string",
      "maxLength": 600
    }
  },
  "required": [
    "brand_id"
  ],
  "title": "get_research_runsArguments",
  "type": "object"
}
Output contract

The tool returns JSON in MCP text content. It does not declare an outputSchema or structuredContent. Response fields depend on the selected view and result.

Related API routes: /research/runs. See the OpenAPI response schemas for the corresponding HTTP contracts.

Link to this tool
run_research_snapshotTrigger a topic snapshot - 50 focused prompts on the supplied topic. Consumes one monthly credit.

Changes account data or starts work

brand_idstringRequired

The brand to run the snapshot for.

topicstringRequired

The topic to focus on (2-200 chars).

topic_contextstring | nullOptional

Optional context to refine prompt generation (up to 500 chars).

Default: null

user_intentstringOptional · Hosted only

A short description of the user’s request. Omit secrets and prior chat.

Maximum length: 600

Complete input schema
run_research_snapshot: hosted inputSchema
{
  "properties": {
    "brand_id": {
      "title": "Brand Id",
      "type": "string"
    },
    "topic": {
      "title": "Topic",
      "type": "string"
    },
    "topic_context": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Topic Context"
    },
    "user_intent": {
      "type": "string",
      "maxLength": 600
    }
  },
  "required": [
    "brand_id",
    "topic"
  ],
  "title": "run_research_snapshotArguments",
  "type": "object"
}
Output contract

The tool returns JSON in MCP text content. It does not declare an outputSchema or structuredContent. Response fields depend on the selected view and result.

Related API routes: /research/snapshot. See the OpenAPI response schemas for the corresponding HTTP contracts.

Link to this tool

Reddit 5

get_redditReddit monitoring data: connection state, mentions feed, opportunities, threads, subreddits, triggers, and analytics.

Read only

brand_idstringRequired

The brand to check.

viewstringOptional

Select the result view.

Default: "overview"

Allowed: "overview", "feed", "opportunities", "thread", "subreddits", "triggers", "analytics"

thread_idstring | nullOptional

Required when view='thread'.

Default: null

statusstring | nullOptional

Filter by status.

Default: null

Allowed: "all", "open", "responded"

subredditstring | nullOptional

Filter feed or opportunities by subreddit name (no r/ prefix).

Default: null

daysintegerOptional

Lookback window, 1-180.

Default: 30

Minimum: 1

Maximum: 180

page_sizeintegerOptional

Rows per page, 1-100.

Default: 30

Minimum: 1

Maximum: 100

user_intentstringOptional · Hosted only

A short description of the user’s request. Omit secrets and prior chat.

Maximum length: 600

Complete input schema
get_reddit: hosted inputSchema
{
  "properties": {
    "brand_id": {
      "title": "Brand Id",
      "type": "string"
    },
    "view": {
      "default": "overview",
      "enum": [
        "overview",
        "feed",
        "opportunities",
        "thread",
        "subreddits",
        "triggers",
        "analytics"
      ],
      "title": "View",
      "type": "string"
    },
    "thread_id": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Thread Id"
    },
    "status": {
      "anyOf": [
        {
          "enum": [
            "all",
            "open",
            "responded"
          ],
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Status"
    },
    "subreddit": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Subreddit"
    },
    "days": {
      "default": 30,
      "maximum": 180,
      "minimum": 1,
      "title": "Days",
      "type": "integer"
    },
    "page_size": {
      "default": 30,
      "maximum": 100,
      "minimum": 1,
      "title": "Page Size",
      "type": "integer"
    },
    "user_intent": {
      "type": "string",
      "maxLength": 600
    }
  },
  "required": [
    "brand_id"
  ],
  "title": "get_redditArguments",
  "type": "object"
}
Output contract

The tool returns JSON in MCP text content. It does not declare an outputSchema or structuredContent. Response fields depend on the selected view and result.

Related API routes: /reddit. See the OpenAPI response schemas for the corresponding HTTP contracts.

Link to this tool
manage_reddit_opportunityUpdate the status of a single Reddit opportunity (dismiss or mark responded).

Changes account data or starts work · Review the change before approving

brand_idstringRequired

The brand the opportunity belongs to.

opportunity_idstringRequired

The opportunity to update.

actionstringRequired

Choose the operation to perform.

Allowed: "dismiss", "mark_responded"

user_intentstringOptional · Hosted only

A short description of the user’s request. Omit secrets and prior chat.

Maximum length: 600

Complete input schema
manage_reddit_opportunity: hosted inputSchema
{
  "properties": {
    "brand_id": {
      "title": "Brand Id",
      "type": "string"
    },
    "opportunity_id": {
      "title": "Opportunity Id",
      "type": "string"
    },
    "action": {
      "enum": [
        "dismiss",
        "mark_responded"
      ],
      "title": "Action",
      "type": "string"
    },
    "user_intent": {
      "type": "string",
      "maxLength": 600
    }
  },
  "required": [
    "brand_id",
    "opportunity_id",
    "action"
  ],
  "title": "manage_reddit_opportunityArguments",
  "type": "object"
}
Output contract

The tool returns JSON in MCP text content. It does not declare an outputSchema or structuredContent. Response fields depend on the selected view and result.

Related API routes: /reddit/opportunities. See the OpenAPI response schemas for the corresponding HTTP contracts.

Link to this tool
manage_reddit_subredditAdd or remove a subreddit from the Reddit monitor.

Changes account data or starts work · Review the change before approving

brand_idstringRequired

The brand to update.

actionstringRequired

Choose the operation to perform.

Allowed: "add", "remove"

subredditstring | nullOptional

Subreddit name (no r/ prefix). Required for 'add'.

Default: null

subreddit_idstring | nullOptional

Required for 'remove'.

Default: null

user_intentstringOptional · Hosted only

A short description of the user’s request. Omit secrets and prior chat.

Maximum length: 600

Complete input schema
manage_reddit_subreddit: hosted inputSchema
{
  "properties": {
    "brand_id": {
      "title": "Brand Id",
      "type": "string"
    },
    "action": {
      "enum": [
        "add",
        "remove"
      ],
      "title": "Action",
      "type": "string"
    },
    "subreddit": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Subreddit"
    },
    "subreddit_id": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Subreddit Id"
    },
    "user_intent": {
      "type": "string",
      "maxLength": 600
    }
  },
  "required": [
    "brand_id",
    "action"
  ],
  "title": "manage_reddit_subredditArguments",
  "type": "object"
}
Output contract

The tool returns JSON in MCP text content. It does not declare an outputSchema or structuredContent. Response fields depend on the selected view and result.

Related API routes: /reddit/subreddits. See the OpenAPI response schemas for the corresponding HTTP contracts.

Link to this tool
manage_reddit_triggerAdd or remove a keyword trigger that drives Reddit scanning.

Changes account data or starts work · Review the change before approving

brand_idstringRequired

The brand to update.

actionstringRequired

Choose the operation to perform.

Allowed: "add", "remove"

keywordstring | nullOptional

Keyword to track. Required for 'add'.

Default: null

trigger_idstring | nullOptional

Required for 'remove'.

Default: null

user_intentstringOptional · Hosted only

A short description of the user’s request. Omit secrets and prior chat.

Maximum length: 600

Complete input schema
manage_reddit_trigger: hosted inputSchema
{
  "properties": {
    "brand_id": {
      "title": "Brand Id",
      "type": "string"
    },
    "action": {
      "enum": [
        "add",
        "remove"
      ],
      "title": "Action",
      "type": "string"
    },
    "keyword": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Keyword"
    },
    "trigger_id": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Trigger Id"
    },
    "user_intent": {
      "type": "string",
      "maxLength": 600
    }
  },
  "required": [
    "brand_id",
    "action"
  ],
  "title": "manage_reddit_triggerArguments",
  "type": "object"
}
Output contract

The tool returns JSON in MCP text content. It does not declare an outputSchema or structuredContent. Response fields depend on the selected view and result.

Related API routes: /reddit/triggers. See the OpenAPI response schemas for the corresponding HTTP contracts.

Link to this tool
scan_redditTrigger an on-demand Reddit scan for the brand.

Changes account data or starts work

brand_idstringRequired

The brand to scan.

user_intentstringOptional · Hosted only

A short description of the user’s request. Omit secrets and prior chat.

Maximum length: 600

Complete input schema
scan_reddit: hosted inputSchema
{
  "properties": {
    "brand_id": {
      "title": "Brand Id",
      "type": "string"
    },
    "user_intent": {
      "type": "string",
      "maxLength": 600
    }
  },
  "required": [
    "brand_id"
  ],
  "title": "scan_redditArguments",
  "type": "object"
}
Output contract

The tool returns JSON in MCP text content. It does not declare an outputSchema or structuredContent. Response fields depend on the selected view and result.

Related API routes: /reddit/scan. See the OpenAPI response schemas for the corresponding HTTP contracts.

Link to this tool

Automations 2

get_workflowsRead exact-rule automation state: list, single rule, recent runs, run detail, or starter templates.

Read only

brand_idstringRequired

The brand to inspect.

viewstringOptional

Select the result view.

Default: "list"

Allowed: "list", "get", "runs", "run_detail", "templates"

workflow_idstring | nullOptional

Required for 'get'. Optional filter for 'runs'.

Default: null

run_idstring | nullOptional

Required for 'run_detail'.

Default: null

statusstring | nullOptional

Filter by status.

Default: null

Allowed: "active", "paused", "deleted"

daysintegerOptional

Lookback for runs, 1-90.

Default: 30

Minimum: 1

Maximum: 90

limitintegerOptional

Max rows, 1-200.

Default: 50

Minimum: 1

Maximum: 200

offsetintegerOptional

Pagination offset.

Default: 0

Minimum: 0

Maximum: 1000000

user_intentstringOptional · Hosted only

A short description of the user’s request. Omit secrets and prior chat.

Maximum length: 600

Complete input schema
get_workflows: hosted inputSchema
{
  "properties": {
    "brand_id": {
      "title": "Brand Id",
      "type": "string"
    },
    "view": {
      "default": "list",
      "enum": [
        "list",
        "get",
        "runs",
        "run_detail",
        "templates"
      ],
      "title": "View",
      "type": "string"
    },
    "workflow_id": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Workflow Id"
    },
    "run_id": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Run Id"
    },
    "status": {
      "anyOf": [
        {
          "enum": [
            "active",
            "paused",
            "deleted"
          ],
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Status"
    },
    "days": {
      "default": 30,
      "maximum": 90,
      "minimum": 1,
      "title": "Days",
      "type": "integer"
    },
    "limit": {
      "default": 50,
      "maximum": 200,
      "minimum": 1,
      "title": "Limit",
      "type": "integer"
    },
    "offset": {
      "default": 0,
      "maximum": 1000000,
      "minimum": 0,
      "title": "Offset",
      "type": "integer"
    },
    "user_intent": {
      "type": "string",
      "maxLength": 600
    }
  },
  "required": [
    "brand_id"
  ],
  "title": "get_workflowsArguments",
  "type": "object"
}
Output contract

The tool returns JSON in MCP text content. It does not declare an outputSchema or structuredContent. Response fields depend on the selected view and result.

Related API routes: /workflows. See the OpenAPI response schemas for the corresponding HTTP contracts.

Link to this tool
manage_workflowPause, resume, delete, or instantiate an exact rule from a template.

Changes account data or starts work · Review the change before approving

brand_idstringRequired

The brand the workflow belongs to.

actionstringRequired

Choose the operation to perform.

Allowed: "pause", "resume", "delete", "from_template"

workflow_idstring | nullOptional

Required for pause / resume / delete.

Default: null

template_idstring | nullOptional

Required for 'from_template'.

Default: null

namestring | nullOptional

Optional name override for 'from_template'.

Default: null

user_intentstringOptional · Hosted only

A short description of the user’s request. Omit secrets and prior chat.

Maximum length: 600

Complete input schema
manage_workflow: hosted inputSchema
{
  "properties": {
    "brand_id": {
      "title": "Brand Id",
      "type": "string"
    },
    "action": {
      "enum": [
        "pause",
        "resume",
        "delete",
        "from_template"
      ],
      "title": "Action",
      "type": "string"
    },
    "workflow_id": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Workflow Id"
    },
    "template_id": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Template Id"
    },
    "name": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Name"
    },
    "user_intent": {
      "type": "string",
      "maxLength": 600
    }
  },
  "required": [
    "brand_id",
    "action"
  ],
  "title": "manage_workflowArguments",
  "type": "object"
}
Output contract

The tool returns JSON in MCP text content. It does not declare an outputSchema or structuredContent. Response fields depend on the selected view and result.

Related API routes: /workflows. See the OpenAPI response schemas for the corresponding HTTP contracts.

Link to this tool

Download the schema snapshot. Your client discovers the serving tool list after sign-in; a published client listing may expose a different reviewed version.

Resources and prompts

Clients vary in their support for MCP resources and server prompts. Use the client’s resource picker or prompt menu when available.

Brand briefings
trakkr://brand

The index of your brands and their IDs, each linked to the briefings below. Start here to find a brand ID.

trakkr://brand/{id}/brand-book

Paste-ready context so any AI describes the brand right: what it is, how AI frames it now, what to set straight, and the proof.

trakkr://brand/{id}/snapshot

Latest AI visibility: headline scores, a by-model table, and the prompts where you win and lose.

trakkr://brand/{id}/citation-gaps

Prompts where AI cites a rival but not you, ranked, with who gets cited and what to publish.

trakkr://brand/{id}/prompts

The AI-search questions Trakkr is tracking for this brand, active and paused.

trakkr://brands

The brands you can access, with the IDs the per-brand resources need.

trakkr://brand/{id}/briefing

Headline visibility and trend, plus the open-action snapshot.

trakkr://brand/{id}/actions

The brand top open actions, most impactful first.

trakkr://brand/{id}/changes

What moved in the last week (the get_changes digest).

trakkr://brand/{id}/latest-report

The most recent generated report.

Public research resources
trakkr://data

Index of the research briefings below.

trakkr://data/what-gets-cited

Which page types earn AI citations, and owned vs third-party.

trakkr://data/crawler-personalities

What each AI bot actually fetches and reads.

trakkr://data/llms-txt-truth

The honest null result: llms.txt shows no citation lift.

trakkr://data/schema-advantage

How structured data correlates with getting cited.

trakkr://data/citation-decay

How fast AI citations fade.

trakkr://data/model-divergence

Where AI models disagree on who to recommend.

trakkr://data/playbook

The synthesis: the rules for getting cited, with links.

Server prompts
/weekly-reviewbrand, period

Your Monday brief: visibility and trend, who is gaining, the biggest citation gaps, and the easy wins, as five tight bullets.

/competitor-teardownbrand, competitor

Where a rival beats you, where you beat them, and three concrete moves to close the gap.

/citation-gap-planbrand

The prompts you are losing, cross-referenced with the research on what actually gets cited, ending in a ranked plan of what to publish.

/content-briefbrand, topic

A citation-optimised outline plus the on-page schema to include for one piece, ready to hand to a writing tool.

/setup-trackingdomain

Onboarding in one chat: confirm the brand, set its market, then propose a starter set of prompts to track and create them on your say-so.

/trakkr-watchbrand_id, since

A watch playbook: pulls what moved for a brand, summarizes it plainly, and offers next steps. Pass the last cursor to see only what is new.

Public Knowledge MCP

For public product help and research, use https://api.trakkr.ai/public/mcp. It needs no account or sign-in. It cannot read private brand data.

Call search with a question, then pass an ID from the results to fetch for full content and the canonical URL to cite. Keep the returned ID as given.

Public search input
{
  "query": "How do I connect Trakkr to Claude?"
}

Public MCP manifest · Server card · Input schemas

Troubleshooting

Cannot connect

Use the exact HTTPS URL above with Streamable HTTP. Check your client’s MCP status and network policy. For Claude custom connectors, the server must be reachable from Claude’s cloud.

Sign-in or registration fails

Use automatic registration (DCR), then sign in to Trakkr and approve access. Leave client ID, client secret and token fields empty unless your administrator provides them. If Claude offers a published identity, choose Register automatically.

Tools appear but authentication expires

Reconnect using your client’s OAuth sign-in action. If access was revoked, connect again from the client. Review connected assistants in Trakkr Settings → API and MCP. For local setup, replace a revoked connect token and restart that server.

No tools, or a tool is missing

Check that Trakkr is enabled in the client’s tool selector. Refresh or restart the MCP connection and start a new chat. Some clients have tool limits, and directory listings may expose a reviewed subset. Use list_brands as the first check.

No brands or access denied

Check which Trakkr account you signed in with and whether it has access to the brand. The authenticated MCP requires a paid plan; some features have additional plan requirements. A connection does not grant new brand permissions.

Session or transport error

Reconnect the MCP server and retry a read such as list_brands. Before repeating a write or starting a job, check its result or job status so you do not run it twice.

Local server will not start

Check that uvx is available to the client process, not just your terminal. Use its full executable path if needed. Make sure TRAKKR_API_KEY contains your MCP connect token and restart the local server.

Copilot Studio does not discover tools

Check generative orchestration, your environment’s custom connector policy, and OAuth 2.0 with Dynamic discovery. Test the connection in Studio before publishing the agent.