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 guideUse a custom connector in your Claude account, including Claude desktop.
- For a managed Claude workspace, an owner may need to add the connector first.
- Open Customize > Connectors, then add a custom connector named Trakkr.
- Set the remote MCP server URL to https://api.trakkr.ai/mcp.
- Choose Register automatically if Claude asks how to identify its OAuth client. Connect, sign in to Trakkr and approve access.
https://api.trakkr.ai/mcpTrakkr 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.
{}Sample output. Synthetic fixture, not account data.
{
"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.
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_idstringRequiredThe brand to add knowledge to.
source_typestringRequiredChoose the source type.
Allowed: "text", "url"
contentstring | nullOptionalRaw text. Required when source_type='text'.
Default: null
urlstring | nullOptionalPage URL. Required when source_type='url'.
Default: null
namestring | nullOptionalOptional display name.
Default: null
user_intentstringOptional · Hosted onlyA short description of the user’s request. Omit secrets and prior chat.
Maximum length: 600
Complete input schema
{
"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.
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_idstringRequiredThe brand to write for.
primary_promptstringRequiredThe topic or query the article should win.
secondary_promptsarray | nullOptionalOptional extra angles to cover.
Default: null
word_targetintegerOptionalTarget length, 300-6000.
Default: 2000
Minimum: 300
Maximum: 6000
template_idstring | nullOptionalOptional report-template id to structure the piece.
Default: null
user_intentstringOptional · Hosted onlyA short description of the user’s request. Omit secrets and prior chat.
Maximum length: 600
Complete input schema
{
"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.
get_articlesRead brand articles authored inside Trakkr.
Read only
brand_idstringRequiredThe brand to inspect.
viewstringOptionalSelect the result view.
Default: "list"
Allowed: "list", "detail"
article_idstring | nullOptionalRequired for 'detail'.
Default: null
statusstring | nullOptionalFilter by status.
Default: null
Allowed: "draft", "review", "ready", "published"
standalone_onlybooleanOptionalExclude campaign articles.
Default: false
limitintegerOptionalResults per page, 1-200.
Default: 50
Minimum: 1
Maximum: 200
offsetintegerOptionalPagination offset.
Default: 0
Minimum: 0
Maximum: 1000000
user_intentstringOptional · Hosted onlyA short description of the user’s request. Omit secrets and prior chat.
Maximum length: 600
Complete input schema
{
"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.
get_knowledgeRead the brand's knowledge base sources.
Read only
brand_idstringRequiredThe brand to inspect.
viewstringOptionalSelect the result view.
Default: "sources"
Allowed: "sources", "stats"
user_intentstringOptional · Hosted onlyA short description of the user’s request. Omit secrets and prior chat.
Maximum length: 600
Complete input schema
{
"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.
get_writing_styleRead the brand's configured voice - tone, vocabulary, do's and don'ts, sample sentences.
Read only
brand_idstringRequiredThe brand to inspect.
viewstringOptionalSelect the result view.
Default: "profile"
Allowed: "profile", "samples"
user_intentstringOptional · Hosted onlyA short description of the user’s request. Omit secrets and prior chat.
Maximum length: 600
Complete input schema
{
"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.
manage_knowledgeDelete or reprocess a knowledge source.
Changes account data or starts work · Review the change before approving
actionstringRequiredChoose the operation to perform.
Allowed: "delete", "reprocess"
source_idstringRequiredThe source to act on.
user_intentstringOptional · Hosted onlyA short description of the user’s request. Omit secrets and prior chat.
Maximum length: 600
Complete input schema
{
"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.
Actions 16
bulk_manage_promptsCreate, delete, activate, or deactivate prompts in bulk.
Changes account data or starts work · Review the change before approving
actionstringRequiredChoose the operation to perform.
Allowed: "bulk_create", "bulk_delete", "activate", "deactivate"
brand_idstringRequiredThe brand these prompts belong to.
promptsstring | array | nullOptionalJSON array of prompt objects for bulk_create.
Default: null
prompt_idsstring | array | nullOptionalComma-separated prompt IDs for bulk_delete, activate, or deactivate.
Default: null
user_intentstringOptional · Hosted onlyA short description of the user’s request. Omit secrets and prior chat.
Maximum length: 600
Complete input schema
{
"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.
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_idstringRequiredThe brand that owns the suggestion.
opportunity_idstringRequiredThe suggestion to decide on (from list_opportunity_pool).
actionstringOptionalChoose the operation to perform.
Default: "commit"
Allowed: "commit", "dismiss", "snooze"
reasonstring | nullOptionalWhy it was dismissed. Recommended for action='dismiss'.
Default: null
snooze_daysinteger | nullOptionalHow long to hide it, 1-90.
Default: null
Minimum: 1
Maximum: 90
user_intentstringOptional · Hosted onlyA short description of the user’s request. Omit secrets and prior chat.
Maximum length: 600
Complete input schema
{
"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.
compare_reportsCompare visibility between two report periods.
Read only
brand_idstringRequiredThe brand to compare.
baseline_startstringRequiredBaseline period start date, YYYY-MM-DD.
baseline_endstringRequiredBaseline period end date, YYYY-MM-DD.
comparison_startstringRequiredComparison period start date, YYYY-MM-DD.
comparison_endstringRequiredComparison period end date, YYYY-MM-DD.
user_intentstringOptional · Hosted onlyA short description of the user’s request. Omit secrets and prior chat.
Maximum length: 600
Complete input schema
{
"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.
export_dataExport data as JSON or CSV.
Read only
brand_idstringRequiredThe brand to export.
data_typestringRequiredChoose the data type.
Allowed: "prompts", "results", "citations", "reports", "collection_coverage"
formatstringOptionalChoose the format.
Default: "json"
Allowed: "json", "csv"
daysintegerOptionalLookback window, 1-365.
Default: 30
Minimum: 1
Maximum: 365
limitintegerOptionalMax rows, 1-10000.
Default: 1000
Minimum: 1
Maximum: 10000
start_datestring | nullOptionalDefault: null
end_datestring | nullOptionalDefault: null
user_intentstringOptional · Hosted onlyA short description of the user’s request. Omit secrets and prior chat.
Maximum length: 600
Complete input schema
{
"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.
generate_reportGenerate an AI visibility report.
Changes account data or starts work
brand_idstringRequiredThe brand to report on.
report_typestringOptionalChoose the report type.
Default: "executive"
Allowed: "executive", "weekly", "full"
time_rangestringOptionalChoose the time range.
Default: "7d"
Allowed: "7d", "14d", "30d"
user_intentstringOptional · Hosted onlyA short description of the user’s request. Omit secrets and prior chat.
Maximum length: 600
Complete input schema
{
"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.
get_diagnosis_resultGet diagnosis results, history, or usage quota.
Read only
brand_idstring | nullOptionalFor history/usage views.
Default: null
diagnosis_idstring | nullOptionalFor fetching a specific result.
Default: null
viewstring | nullOptionalSelect the result view.
Default: null
Allowed: "result", "history", "usage"
limitintegerOptionalResults per page for history, 1-100.
Default: 20
Minimum: 1
Maximum: 100
user_intentstringOptional · Hosted onlyA short description of the user’s request. Omit secrets and prior chat.
Maximum length: 600
Complete input schema
{
"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.
get_period_summaryOne completed month or quarter: every report metric with the prior period and deltas already signed.
Read only
brand_idstring | nullOptionalThe brand to report on.
Default: null
periodstring | nullOptionalA month as YYYY-MM or a quarter as YYYY-Qn. Defaults to the latest closed month.
Default: null
viewstringOptionalSelect the result view.
Default: "summary"
Allowed: "summary", "list"
comparebooleanOptionalInclude the prior period and computed deltas.
Default: true
include_definitionsbooleanOptionalAdd each metric's one-line definition.
Default: false
monthsintegerOptionalview=list only: closed months to index, 1-36.
Default: 12
Minimum: 1
Maximum: 36
response_formatstringOptionalChoose the response format.
Default: "concise"
Allowed: "concise", "detailed"
brand_idsarray | nullOptionalDefault: null
user_intentstringOptional · Hosted onlyA short description of the user’s request. Omit secrets and prior chat.
Maximum length: 600
Complete input schema
{
"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.
get_proofLegacy compatibility alias for get_results. Existing integrations continue to work, but new ones should use get_results.
Read only
brand_idstringRequiredThe brand to check.
verdictstring | nullOptionalChoose the verdict.
Default: null
Allowed: "earned", "no_change", "harm", "couldnt_measure"
familystring | nullOptionalChoose the family.
Default: null
Allowed: "fix", "refresh", "create", "earn", "discuss", "optimize", "setup", "play"
daysinteger | nullOptionalOnly results measured in the last 1-3650 days.
Default: null
Minimum: 1
Maximum: 3650
limitintegerOptionalMax results to return, 1-200.
Default: 50
Minimum: 1
Maximum: 200
cursorstring | nullOptionalOpaque cursor from a previous response (meta.next_cursor).
Default: null
user_intentstringOptional · Hosted onlyA short description of the user’s request. Omit secrets and prior chat.
Maximum length: 600
Complete input schema
{
"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.
get_reportsList or retrieve generated reports.
Read only
brand_idstring | nullOptionalFilter by brand.
Default: null
report_idstring | nullOptionalGet a specific report.
Default: null
viewstringOptionalSelect 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
daysintegerOptionalDefault: 30
Minimum: 1
Maximum: 365
limitintegerOptionalResults per page, 1-100.
Default: 20
Minimum: 1
Maximum: 100
offsetintegerOptionalPagination offset.
Default: 0
Minimum: 0
Maximum: 1000000
response_formatstringOptionalChoose the response format.
Default: "concise"
Allowed: "concise", "detailed"
user_intentstringOptional · Hosted onlyA short description of the user’s request. Omit secrets and prior chat.
Maximum length: 600
Complete input schema
{
"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.
get_resultsCompare measurements before and after completed work. Results do not establish cause.
Read only
brand_idstringRequiredThe brand to check.
verdictstring | nullOptionalChoose the verdict.
Default: null
Allowed: "earned", "no_change", "harm", "couldnt_measure"
familystring | nullOptionalChoose the family.
Default: null
Allowed: "fix", "refresh", "create", "earn", "discuss", "optimize", "setup", "play"
daysinteger | nullOptionalOnly results measured in the last 1-3650 days.
Default: null
Minimum: 1
Maximum: 3650
limitintegerOptionalMax results to return, 1-200.
Default: 50
Minimum: 1
Maximum: 200
cursorstring | nullOptionalOpaque cursor from a previous response (meta.next_cursor).
Default: null
user_intentstringOptional · Hosted onlyA short description of the user’s request. Omit secrets and prior chat.
Maximum length: 600
Complete input schema
{
"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.
get_search_performanceGoogle Search Console clicks, impressions, CTR, average position, and top queries for the connected property or one page.
Read only
brand_idstringRequiredThe brand whose connected Search Console property to check.
urlstring | nullOptionalOptional page URL. Omit for property-wide top pages and queries.
Default: null
daysintegerOptionalInclusive lookback window, 1-90 days.
Default: 28
Minimum: 1
Maximum: 90
compare_previous_periodbooleanOptionalInclude the immediately preceding equal period and metric deltas.
Default: false
user_intentstringOptional · Hosted onlyA short description of the user’s request. Omit secrets and prior chat.
Maximum length: 600
Complete input schema
{
"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.
get_trafficLive AI referral traffic status, reports, and visitor sessions.
Read only
brand_idstringRequiredThe brand to check.
viewstringOptionalSelect the result view.
Default: "status"
Allowed: "status", "report", "visitors"
daysintegerOptionalLookback window for report view, 1-365.
Default: 30
Minimum: 1
Maximum: 365
user_intentstringOptional · Hosted onlyA short description of the user’s request. Omit secrets and prior chat.
Maximum length: 600
Complete input schema
{
"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.
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_idstringRequiredThe brand to check.
familystring | nullOptionalChoose the family.
Default: null
Allowed: "fix", "refresh", "create", "earn", "discuss", "optimize", "setup", "play"
kindstring | nullOptionalComma-separated kinds, e.g. 'search_gap,audit_fix'.
Default: null
impactstring | nullOptionalChoose the impact.
Default: null
Allowed: "low", "medium", "high"
limitintegerOptionalMax suggestions to return, 1-200.
Default: 50
Minimum: 1
Maximum: 200
cursorstring | nullOptionalOpaque cursor from a previous response (meta.next_cursor).
Default: null
user_intentstringOptional · Hosted onlyA short description of the user’s request. Omit secrets and prior chat.
Maximum length: 600
Complete input schema
{
"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.
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
actionstringRequiredChoose the operation to perform.
Allowed: "complete", "dismiss", "reopen", "start", "snooze", "unsnooze", "pin", "unpin", "assign", "note"
brand_idstringRequiredThe brand that owns the action.
action_idstringRequiredThe action to act on (from get_actions).
notestring | nullOptionalReason or comment stored on the timeline. Required for action='note'.
Default: null
snooze_untilstring | nullOptionalISO date or datetime in the future. Required for action='snooze'.
Default: null
assigneestring | nullOptionalTeammate's Trakkr user id. Required for action='assign'.
Default: null
user_intentstringOptional · Hosted onlyA short description of the user’s request. Omit secrets and prior chat.
Maximum length: 600
Complete input schema
{
"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.
manage_conversionsManage conversion values for AI-referred traffic.
Changes account data or starts work · Review the change before approving
actionstringRequiredChoose the operation to perform.
Allowed: "list", "set", "delete"
brand_idstringRequiredThe brand to manage conversions for.
event_namestring | nullOptionalRequired for action='set' and action='delete'.
Default: null
valuenumber | nullOptionalDollar value per conversion. Required for action='set'.
Default: null
user_intentstringOptional · Hosted onlyA short description of the user’s request. Omit secrets and prior chat.
Maximum length: 600
Complete input schema
{
"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.
run_diagnosisDiagnose a search query across AI models in real-time.
Changes account data or starts work
brand_idstringRequiredThe brand context for analysis.
querystringRequiredThe search query to diagnose, 3-500 characters.
user_intentstringOptional · Hosted onlyA short description of the user’s request. Omit secrets and prior chat.
Maximum length: 600
Complete input schema
{
"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.
Agency 3
compare_brandsCompare 2-10 brands side by side across visibility, citations, and open actions.
Read only
brand_idsarrayRequired2-10 brand IDs to compare.
daysintegerOptionalWindow for time-bounded metrics, 7-365.
Default: 30
Minimum: 7
Maximum: 365
metricsarray | nullOptionalSubset of: 'visibility', 'citations', 'actions'. Default all.
Default: null
user_intentstringOptional · Hosted onlyA short description of the user’s request. Omit secrets and prior chat.
Maximum length: 600
Complete input schema
{
"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.
get_portfolio_actionsHighest-impact actions across every brand in the portfolio, ranked.
Read only
group_idstring | nullOptionalOptional - limit to one brand group.
Default: null
quick_winboolean | nullOptionalOnly high-impact / low-effort actions.
Default: null
limitintegerOptionalMax actions, 1-200.
Default: 50
Minimum: 1
Maximum: 200
user_intentstringOptional · Hosted onlyA short description of the user’s request. Omit secrets and prior chat.
Maximum length: 600
Complete input schema
{
"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.
list_brand_groupsList brand groups (agency portfolios) accessible to the API key, with rollup stats.
Read only
user_intentstringOptional · Hosted onlyA short description of the user’s request. Omit secrets and prior chat.
Maximum length: 600
Complete input schema
{
"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.
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_idstringRequiredThe brand to research for.
topicstring | nullOptionalWhat the articles would be about. Required unless prompt_ids is given.
Default: null
prompt_idsarray | nullOptionalUp to 20 tracked prompt ids to aim at.
Default: null
seed_domainstring | nullOptionalA publisher that already worked. It is left out of the results.
Default: null
marketstring | nullOptionalOptional market, e.g. UK.
Default: null
languagestring | nullOptionalOptional language.
Default: null
new_onlybooleanOptionalSkip publishers that already cite you. Set false to include them.
Default: true
user_intentstringOptional · Hosted onlyA short description of the user’s request. Omit secrets and prior chat.
Maximum length: 600
Complete input schema
{
"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.
get_content_ideasAI-generated content ideas to improve visibility.
Read only
brand_idstringRequiredThe brand to check.
limitintegerOptionalResults per page, 1-200.
Default: 50
Minimum: 1
Maximum: 200
offsetintegerOptionalPagination offset.
Default: 0
Minimum: 0
Maximum: 1000000
statusstring | nullOptionalFilter by status.
Default: null
Allowed: "active", "dismissed", "implemented"
user_intentstringOptional · Hosted onlyA short description of the user’s request. Omit secrets and prior chat.
Maximum length: 600
Complete input schema
{
"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.
get_narrativesNarrative intelligence: tracked topics and storylines.
Read only
brand_idstringRequiredThe brand to check.
narrative_idstring | nullOptionalGet a specific narrative by ID.
Default: null
includestring | nullOptionalComma-separated extras: 'snapshots', 'correctives'.
Default: null
daysintegerOptionalLookback window, 7-365.
Default: 90
Minimum: 7
Maximum: 365
user_intentstringOptional · Hosted onlyA short description of the user’s request. Omit secrets and prior chat.
Maximum length: 600
Complete input schema
{
"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.
get_opportunitiesCitation gaps where competitors appear but you don't.
Read only
brand_idstringRequiredThe brand to check.
daysinteger | nullOptionalLookback window, 7-365.
Default: null
Minimum: 1
Maximum: 365
limitintegerOptionalMax results, 1-200.
Default: 50
Minimum: 1
Maximum: 200
user_intentstringOptional · Hosted onlyA short description of the user’s request. Omit secrets and prior chat.
Maximum length: 600
Complete input schema
{
"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.
get_perceptionHow AI models describe, position, and talk about the brand. Covers sentiment, themes, narrative shifts, and competitor-relative metrics.
Read only
brand_idstringRequiredThe brand to check.
viewstringOptionalSelect the result view.
Default: "dashboard"
Allowed: "dashboard", "metrics", "story", "narrative_drift", "narrative"
daysintegerOptionalLookback window, 7-365.
Default: 90
Minimum: 7
Maximum: 365
periodstring | nullOptionalDefault: null
tracked_brandstring | nullOptionalFor metrics view, compare against this competitor.
Default: null
user_intentstringOptional · Hosted onlyA short description of the user’s request. Omit secrets and prior chat.
Maximum length: 600
Complete input schema
{
"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.
get_prismAI Pages connection state and monthly usage: enabled, domain, platform, features, allowed crawlers, requests used against the limit.
Read only
brand_idstringRequiredThe brand to check.
user_intentstringOptional · Hosted onlyA short description of the user’s request. Omit secrets and prior chat.
Maximum length: 600
Complete input schema
{
"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.
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_idstringRequiredThe brand to check.
domainstring | nullOptionalOnly articles on this domain.
Default: null
user_intentstringOptional · Hosted onlyA short description of the user’s request. Omit secrets and prior chat.
Maximum length: 600
Complete input schema
{
"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.
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_idstringRequiredThe brand to update.
actionstringRequiredChoose the operation to perform.
Allowed: "list", "add", "remove"
domainstring | nullOptionalPublisher domain. Required for add and remove.
Default: null
research_idstring | nullOptionalThe research_id from discover_publishers.
Default: null
article_ideastring | nullOptionalThe specific article to propose. Required with research_id.
Default: null
rationalestring | nullOptionalWhy the publisher fits. Required with research_id.
Default: null
proposed_routestring | nullOptionalHow to reach the editor. Required with research_id.
Default: null
user_intentstringOptional · Hosted onlyA short description of the user’s request. Omit secrets and prior chat.
Maximum length: 600
Complete input schema
{
"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.
manage_tracked_articleStart, stop, or resume tracking a live article URL.
Changes account data or starts work · Review the change before approving
brand_idstringRequiredThe brand to update.
actionstringRequiredChoose the operation to perform.
Allowed: "track", "stop", "restore"
urlstring | nullOptionalThe live article URL. Required for 'track'.
Default: null
article_idstring | nullOptionalThe tracked article id, for stop and restore.
Default: null
titlestring | nullOptionalOptional article title.
Default: null
prompt_idsarray | nullOptionalUp to 20 tracked prompt ids the article targets.
Default: null
published_onstring | nullOptionalOptional publication date, YYYY-MM-DD.
Default: null
user_intentstringOptional · Hosted onlyA short description of the user’s request. Omit secrets and prior chat.
Maximum length: 600
Complete input schema
{
"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.
Audit 7
get_action_statsAggregate counts for the brand action queue: totals, quick-wins, completion rate, breakdowns.
Read only
brand_idstringRequiredThe brand to check.
user_intentstringOptional · Hosted onlyA short description of the user’s request. Omit secrets and prior chat.
Maximum length: 600
Complete input schema
{
"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.
get_actionsUnified recommendation queue across audit, crawler, citations, competitors, and more.
Read only
brand_idstringRequiredThe brand to check.
statusstringOptionalFilter by status.
Default: "open"
Allowed: "open", "active", "pending", "in_progress", "completed", "dismissed", "snoozed", "expired", "superseded"
categorystring | nullOptionalComma-separated. content, technical, competitive, optimization, citation, setup, reddit, diagnose.
Default: null
sourcestring | nullOptionalFilter by signal source (site_audit, crawler_monitoring, prompt_monitoring, etc.).
Default: null
action_typestring | nullOptionalSpecific action_type, e.g. 'add_llms_txt', 'add_schema_markup'.
Default: null
lensstring | nullOptionalChoose the lens.
Default: null
Allowed: "crawler", "content", "competitive", "technical", "citation"
quick_winboolean | nullOptionalOnly high-impact / low-effort actions.
Default: null
searchstring | nullOptionalText search across title, description, source, action_type.
Default: null
urlstring | nullOptionalFilter to actions scoped to this URL or path.
Default: null
sort_bystringOptionalChoose the sort by.
Default: "priority_score"
Allowed: "priority_score", "created_at", "updated_at"
sort_dirstringOptionalChoose the sort dir.
Default: "desc"
Allowed: "asc", "desc"
limitintegerOptionalResults per page, 1-200.
Default: 50
Minimum: 1
Maximum: 200
offsetintegerOptionalPagination offset.
Default: 0
Minimum: 0
Maximum: 1000000
user_intentstringOptional · Hosted onlyA short description of the user’s request. Omit secrets and prior chat.
Maximum length: 600
Complete input schema
{
"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.
get_audit_findingsAudit issues + flagged pages for an AI-search technical audit.
Read only
brand_idstringRequiredThe brand to check.
audit_idstring | nullOptionalSpecific audit. Defaults to the brand's latest complete audit.
Default: null
severitystringOptionalComma-separated: critical, high, medium, low.
Default: "critical,high"
issue_statusstringOptionalComma-separated: open, in_progress, fixed, ignored.
Default: "open,in_progress"
check_namestring | nullOptionalFilter issues by check_name substring (e.g. 'llms_txt', 'schema').
Default: null
page_urlstring | nullOptionalFilter to issues whose affected_urls contain this URL.
Default: null
page_typestring | nullOptionalFilter audit_pages by page_type.
Default: null
url_patternstring | nullOptionalFilter audit_pages by URL substring.
Default: null
min_scoreinteger | nullOptionalMin technical_score for pages, 0-100.
Default: null
Minimum: 0
Maximum: 100
max_scoreinteger | nullOptionalMax technical_score for pages, 0-100.
Default: null
Minimum: 0
Maximum: 100
issues_limitintegerOptionalMax issues, 1-50.
Default: 20
Minimum: 1
Maximum: 50
pages_limitintegerOptionalMax pages, 1-100.
Default: 20
Minimum: 1
Maximum: 100
user_intentstringOptional · Hosted onlyA short description of the user’s request. Omit secrets and prior chat.
Maximum length: 600
Complete input schema
{
"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.
get_page_analysisDeep analysis for a single URL: diagnosis, verdict, schema, entities, bot visibility.
Read only
brand_idstringRequiredThe brand to check.
urlstring | nullOptionalPage URL. Normalized to https:// if no scheme given.
Default: null
max_age_daysintegerOptionalDefault: 30
Minimum: 1
Maximum: 365
user_intentstringOptional · Hosted onlyA short description of the user’s request. Omit secrets and prior chat.
Maximum length: 600
Complete input schema
{
"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.
list_auditsList site audits for a brand, or fetch one by ID.
Read only
brand_idstringRequiredThe brand to check.
audit_idstring | nullOptionalReturn only this audit.
Default: null
statusstring | nullOptionalFilter by audit status (e.g. 'complete').
Default: null
limitintegerOptionalMax audits to return, 1-100.
Default: 20
Minimum: 1
Maximum: 100
periodstring | nullOptionalDefault: null
user_intentstringOptional · Hosted onlyA short description of the user’s request. Omit secrets and prior chat.
Maximum length: 600
Complete input schema
{
"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.
list_page_analysesList recent deep page analyses for a brand.
Read only
brand_idstringRequiredThe brand to check.
limitintegerOptionalMax analyses to return, 1-100.
Default: 20
Minimum: 1
Maximum: 100
user_intentstringOptional · Hosted onlyA short description of the user’s request. Omit secrets and prior chat.
Maximum length: 600
Complete input schema
{
"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.
list_pagesThe page registry: one row per URL the brand owns or appears on, with its bottleneck and verdict.
Read only
brand_idstringRequiredThe brand to check.
ownershipstring | nullOptionalChoose the ownership.
Default: null
Allowed: "owned", "competitor", "editorial", "social", "video", "other"
trackedboolean | nullOptionalTrue for pages someone chose to watch.
Default: null
limitintegerOptionalMax pages to return, 1-200.
Default: 50
Minimum: 1
Maximum: 200
cursorstring | nullOptionalOpaque cursor from a previous response (meta.next_cursor).
Default: null
user_intentstringOptional · Hosted onlyA short description of the user’s request. Omit secrets and prior chat.
Maximum length: 600
Complete input schema
{
"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.
Core 11
get_business_contextRead the brand team’s brief, priorities, rules and content standards before planning or creating work.
Read only
brand_idstringRequiredThe brand whose business context to read.
user_intentstringOptional · Hosted onlyA short description of the user’s request. Omit secrets and prior chat.
Maximum length: 600
Complete input schema
{
"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.
get_visibility_scoresVisibility scores and trends over time.
Read only
brand_idstringRequiredThe brand to check.
viewstringOptionalSelect the result view.
Default: "summary"
Allowed: "summary", "time_series", "by_model", "by_prompt"
daysintegerOptionalLookback window, 7-365.
Default: 90
Minimum: 7
Maximum: 365
periodstring | nullOptionalDefault: null
tag_idsstring | nullOptionalComma-separated tag IDs to filter prompts.
Default: null
prompt_idstring | nullOptionalFilter to a single prompt.
Default: null
user_intentstringOptional · Hosted onlyA short description of the user’s request. Omit secrets and prior chat.
Maximum length: 600
Complete input schema
{
"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.
list_brandsList all tracked brands. Returns IDs needed for other tools.
Read only
brand_idstring | nullOptionalFilter to a single brand.
Default: null
includestring | nullOptionalComma-separated extras: 'markets', 'aliases', 'profile'.
Default: null
user_intentstringOptional · Hosted onlyA short description of the user’s request. Omit secrets and prior chat.
Maximum length: 600
Complete input schema
{
"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.
list_promptsList tracked search queries for a brand.
Read only
brand_idstringRequiredThe brand to list prompts for.
active_onlybooleanOptionalOnly return active prompts.
Default: false
tag_idsstring | nullOptionalComma-separated tag IDs to filter.
Default: null
limitintegerOptionalResults per page, 1-500.
Default: 100
Minimum: 1
Maximum: 500
offsetintegerOptionalPagination offset.
Default: 0
Minimum: 0
Maximum: 1000000
user_intentstringOptional · Hosted onlyA short description of the user’s request. Omit secrets and prior chat.
Maximum length: 600
Complete input schema
{
"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.
manage_promptCreate, update, or delete a tracked prompt.
Changes account data or starts work · Review the change before approving
actionstringRequiredChoose the operation to perform.
Allowed: "create", "update", "delete"
brand_idstring | nullOptionalRequired for create. The brand this prompt belongs to.
Default: null
prompt_idstring | nullOptionalRequired for update/delete. The prompt to modify.
Default: null
textstring | nullOptionalThe search query text. Required for create.
Default: null
activeboolean | nullOptionalWhether the prompt is actively tracked.
Default: null
intentstring | nullOptionalQuery intent classification.
Default: null
user_intentstringOptional · Hosted onlyA short description of the user’s request. Omit secrets and prior chat.
Maximum length: 600
Complete input schema
{
"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.
report_unmet_needRecord a request that no current Trakkr tool can complete, without forcing an unrelated action.
Changes account data or starts work
user_requeststringRequiredA short summary of the requested outcome.
missing_capabilitystringRequiredThe smallest missing capability that blocked the outcome.
attempted_toolsstring | nullOptionalOptional comma-separated Trakkr tools already tried.
Default: null
user_intentstringOptional · Hosted onlyA short description of the user’s request. Omit secrets and prior chat.
Maximum length: 600
Complete input schema
{
"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.
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_idstringRequiredThe brand to update.
countrystringRequiredISO-2 country code such as 'GB' or 'US'.
regionstring | nullOptionalOptional state, region, or province.
Default: null
citystring | nullOptionalOptional city to narrow the market further.
Default: null
user_intentstringOptional · Hosted onlyA short description of the user’s request. Omit secrets and prior chat.
Maximum length: 600
Complete input schema
{
"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.
suggest_promptsSuggest fresh AI-search prompts to track, grounded in the brand's own profile.
Changes account data or starts work
brand_idstringRequiredThe brand to suggest prompts for.
focusstring | nullOptionalOptional topic or keyword to steer suggestions toward a product line or use-case.
Default: null
limitintegerOptionalHow many suggestions to return, 1-10.
Default: 8
Minimum: 1
Maximum: 10
user_intentstringOptional · Hosted onlyA short description of the user’s request. Omit secrets and prior chat.
Maximum length: 600
Complete input schema
{
"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.
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_idstringRequiredThe brand to update.
aliasesstringRequiredComma-separated alias names (e.g. "AWS, Amazon Web Services").
actionstringOptionalChoose the operation to perform.
Default: "add"
Allowed: "add", "remove", "set"
user_intentstringOptional · Hosted onlyA short description of the user’s request. Omit secrets and prior chat.
Maximum length: 600
Complete input schema
{
"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.
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_idstringRequiredThe brand to check.
sincestring | nullOptionalISO-8601 timestamp (e.g. the latest_seen from a prior call). Only changes newer than this are returned.
Default: null
daysintegerOptionalLookback window when since is not given, 1-180.
Default: 7
Minimum: 1
Maximum: 180
limitintegerOptionalMax changes, 1-200.
Default: 50
Minimum: 1
Maximum: 200
user_intentstringOptional · Hosted onlyA short description of the user’s request. Omit secrets and prior chat.
Maximum length: 600
Complete input schema
{
"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.
get_notificationsRead the in-product activity feed: visibility shifts, citations, competitors, actions, workflows, audits.
Read only
brand_idstringRequiredThe brand to inspect.
viewstringOptionalSelect the result view.
Default: "list"
Allowed: "list", "unread_count"
unread_onlybooleanOptionalIf true, only return unread events.
Default: false
event_typestring | nullOptionalFilter by exact notification event_type, for example 'visibility_drop'.
Default: null
daysintegerOptionalLookback window, 1-180.
Default: 30
Minimum: 1
Maximum: 180
limitintegerOptionalMax rows, 1-200.
Default: 50
Minimum: 1
Maximum: 200
user_intentstringOptional · Hosted onlyA short description of the user’s request. Omit secrets and prior chat.
Maximum length: 600
Complete input schema
{
"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.
manage_webhookList, inspect, create, delete, or test outgoing webhooks for the brand.
Changes account data or starts work · Review the change before approving
brand_idstringRequiredThe brand to update.
actionstringRequiredChoose the operation to perform.
Allowed: "list", "get", "create", "delete", "test"
webhook_idstring | nullOptionalRequired for get, delete, test.
Default: null
urlstring | nullOptionalHTTPS endpoint. Required for 'create'.
Default: null
eventsarray | nullOptionalEvent names. Required for 'create'.
Default: null
signing_secretstring | nullOptionalOptional signing secret for 'create'.
Default: null
user_intentstringOptional · Hosted onlyA short description of the user’s request. Omit secrets and prior chat.
Maximum length: 600
Complete input schema
{
"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.
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_idstringRequiredThe brand the notifications belong to.
notification_idsarray | nullOptionalSpecific notification IDs to mark read.
Default: null
mark_allbooleanOptionalMark every unread notification read for the brand.
Default: false
user_intentstringOptional · Hosted onlyA short description of the user’s request. Omit secrets and prior chat.
Maximum length: 600
Complete input schema
{
"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.
Visibility 5
get_citationsCitation URLs, history, queries, sources, feed, heatmap.
Read only
brand_idstringRequiredThe brand to check.
viewstringOptionalSelect the result view.
Default: "list"
Allowed: "list", "history", "queries", "sources", "feed", "recent", "heatmap", "analytics", "detail", "by_model", "top_pages"
daysintegerOptionalLookback window, 7-365.
Default: 30
Minimum: 7
Maximum: 365
periodstring | nullOptionalDefault: null
limitintegerOptionalResults per page, 1-500.
Default: 100
Minimum: 1
Maximum: 500
offsetintegerOptionalPagination offset.
Default: 0
Minimum: 0
Maximum: 1000000
domainstring | nullOptionalRequired when view='sources'. The domain to analyze.
Default: null
days_backinteger | nullOptionalDefault: null
Minimum: 1
Maximum: 30
tag_idsstring | nullOptionalComma-separated tag IDs to filter.
Default: null
prompt_textstring | nullOptionalFilter to prompts containing this text.
Default: null
response_formatstringOptionalChoose the response format.
Default: "concise"
Allowed: "concise", "detailed"
user_intentstringOptional · Hosted onlyA short description of the user’s request. Omit secrets and prior chat.
Maximum length: 600
Complete input schema
{
"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.
get_competitorsCompetitor analysis: summary, arena, head-to-head, threats, daily trend.
Read only
brand_idstringRequiredThe brand to check.
viewstringOptionalSelect the result view.
Default: "summary"
Allowed: "summary", "arena", "head-to-head", "by-model", "threats", "heatmap", "over_time"
competitorstring | nullOptionalRequired for 'head-to-head'. On 'over_time' it narrows to you and that one competitor.
Default: null
daysintegerOptionalChoose the days.
Default: 30
Allowed: 7, 14, 30, 90
periodstring | nullOptionalDefault: null
tag_idsstring | nullOptionalComma-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_formatstringOptionalChoose the response format.
Default: "concise"
Allowed: "concise", "detailed"
user_intentstringOptional · Hosted onlyA short description of the user’s request. Omit secrets and prior chat.
Maximum length: 600
Complete input schema
{
"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.
get_model_breakdownVisibility by AI model (ChatGPT, Perplexity, Gemini, etc.).
Read only
brand_idstringRequiredThe brand to check.
daysintegerOptionalLookback window, 7-365.
Default: 30
Minimum: 7
Maximum: 365
periodstring | nullOptionalDefault: null
include_trendsbooleanOptionalInclude trend data per model.
Default: false
user_intentstringOptional · Hosted onlyA short description of the user’s request. Omit secrets and prior chat.
Maximum length: 600
Complete input schema
{
"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.
get_rankingsCompetitive rankings in AI search results.
Read only
brand_idstringRequiredThe brand to check.
viewstringOptionalSelect the result view.
Default: "overall"
Allowed: "overall", "by-prompt", "prompt-trends"
daysintegerOptionalLookback window, 1-365.
Default: 30
Minimum: 1
Maximum: 365
periodstring | nullOptionalDefault: null
include_volumebooleanOptionalInclude search volume estimates.
Default: false
tag_idsstring | nullOptionalComma-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 onlyA short description of the user’s request. Omit secrets and prior chat.
Maximum length: 600
Complete input schema
{
"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.
manage_competitorTrack, untrack, hide, or unhide a competitor for a brand.
Changes account data or starts work · Review the change before approving
brand_idstringRequiredThe brand to update.
actionstringRequiredChoose the operation to perform.
Allowed: "list", "add", "remove", "hide", "unhide"
competitorstring | nullOptionalCompetitor name (a domain works too). Required for every action except 'list'.
Default: null
user_intentstringOptional · Hosted onlyA short description of the user’s request. Omit secrets and prior chat.
Maximum length: 600
Complete input schema
{
"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.
Crawler 9
get_crawler_accessAccess tab data: findings, bot matrix, robots.txt, llms.txt, submit-to-search.
Read only
brand_idstringRequiredThe brand to check.
range_presetstringOptionalChoose the range preset.
Default: "30d"
Allowed: "24h", "7d", "30d", "90d", "custom"
start_datestring | nullOptionalDefault: null
end_datestring | nullOptionalDefault: null
user_intentstringOptional · Hosted onlyA short description of the user’s request. Omit secrets and prior chat.
Maximum length: 600
Complete input schema
{
"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.
get_crawler_detailDrawer sections (verdict, pipeline, health, traffic, diagnostics) for one page, path, or bot.
Read only
brand_idstringRequiredThe brand to check.
kindstringRequiredChoose the kind.
Allowed: "page", "path", "bot"
entity_idstringRequiredThe page URL (kind='page'), path ID (kind='path'), or normalized bot name (kind='bot') from get_crawler_pages.
range_presetstringOptionalChoose the range preset.
Default: "30d"
Allowed: "24h", "7d", "30d", "90d", "custom"
start_datestring | nullOptionalDefault: null
end_datestring | nullOptionalDefault: null
intentstringOptionalChoose the intent.
Default: "all"
Allowed: "all", "interaction", "search", "training"
platformstring | nullOptionalOptional comma-separated platform names (path/bot only).
Default: null
searchstring | nullOptionalOptional search filter (path/bot only).
Default: null
statusstringOptionalFilter by status.
Default: "all"
Allowed: "all", "converting", "cited", "crawled", "healthy", "cold"
user_intentstringOptional · Hosted onlyA short description of the user’s request. Omit secrets and prior chat.
Maximum length: 600
Complete input schema
{
"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.
get_crawler_liveLive tab data: activity feed, top pages, or sessions.
Read only
brand_idstringRequiredThe brand to check.
viewstringOptionalSelect the result view.
Default: "activity"
Allowed: "activity", "pages", "sessions"
range_presetstringOptionalChoose the range preset.
Default: "30d"
Allowed: "24h", "7d", "30d", "90d", "custom"
start_datestring | nullOptionalDefault: null
end_datestring | nullOptionalDefault: null
intentstringOptionalChoose the intent.
Default: "all"
Allowed: "all", "interaction", "search", "training"
platformstring | nullOptionalOptional comma-separated platform names.
Default: null
http_statusstring | nullOptionalOptional comma-separated status groups: 2xx,3xx,4xx,5xx.
Default: null
searchstring | nullOptionalOptional URL search filter.
Default: null
sort_bystring | nullOptionalDefault: null
sort_dirstringOptionalChoose the sort dir.
Default: "desc"
Allowed: "asc", "desc"
cursorstring | nullOptionalPagination cursor from the previous response.
Default: null
limitintegerOptionalResults per page, 1-100.
Default: 25
Minimum: 1
Maximum: 100
user_intentstringOptional · Hosted onlyA short description of the user’s request. Omit secrets and prior chat.
Maximum length: 600
Complete input schema
{
"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.
get_crawler_overviewHero stats, chart, setup state, top pages, and recent preview.
Read only
brand_idstringRequiredThe brand to check.
range_presetstringOptionalChoose the range preset.
Default: "30d"
Allowed: "24h", "7d", "30d", "90d", "custom"
start_datestring | nullOptionalRequired when range_preset='custom'. Format YYYY-MM-DD.
Default: null
end_datestring | nullOptionalRequired when range_preset='custom'. Format YYYY-MM-DD.
Default: null
compare_tostringOptionalChoose the compare to.
Default: "none"
Allowed: "none", "previous_period"
user_intentstringOptional · Hosted onlyA short description of the user’s request. Omit secrets and prior chat.
Maximum length: 600
Complete input schema
{
"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.
get_crawler_pagesPages tab data: URLs, grouped paths, or normalized bots.
Read only
brand_idstringRequiredThe brand to check.
lensstringOptionalChoose the lens.
Default: "pages"
Allowed: "pages", "paths", "bots"
range_presetstringOptionalChoose the range preset.
Default: "30d"
Allowed: "24h", "7d", "30d", "90d", "custom"
start_datestring | nullOptionalDefault: null
end_datestring | nullOptionalDefault: null
intentstringOptionalChoose the intent.
Default: "all"
Allowed: "all", "interaction", "search", "training"
platformstring | nullOptionalOptional comma-separated platform names.
Default: null
searchstring | nullOptionalOptional search filter.
Default: null
statusstringOptionalFilter by status.
Default: "all"
Allowed: "all", "converting", "cited", "crawled", "healthy", "cold"
sort_bystring | nullOptionalDefault: null
sort_dirstringOptionalChoose the sort dir.
Default: "desc"
Allowed: "asc", "desc"
cursorstring | nullOptionalPagination cursor from the previous response.
Default: null
limitintegerOptionalResults per page, 1-100.
Default: 25
Minimum: 1
Maximum: 100
user_intentstringOptional · Hosted onlyA short description of the user’s request. Omit secrets and prior chat.
Maximum length: 600
Complete input schema
{
"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.
get_crawler_submit_statusGet submit-to-search status and summary for crawler URLs.
Read only
brand_idstringRequiredThe brand to check.
range_presetstringOptionalChoose the range preset.
Default: "30d"
Allowed: "24h", "7d", "30d", "90d", "custom"
start_datestring | nullOptionalDefault: null
end_datestring | nullOptionalDefault: null
urlsstring | nullOptionalOptional comma-separated URLs to check.
Default: null
statusstring | nullOptionalFilter by status.
Default: null
Allowed: "pending", "success", "failed"
user_intentstringOptional · Hosted onlyA short description of the user’s request. Omit secrets and prior chat.
Maximum length: 600
Complete input schema
{
"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.
preview_crawler_access_fixPreview an Access fix without applying it.
Read only
brand_idstringRequiredThe brand to check.
finding_idstringRequiredFinding ID from get_crawler_access.
range_presetstringOptionalChoose the range preset.
Default: "30d"
Allowed: "24h", "7d", "30d", "90d", "custom"
start_datestring | nullOptionalDefault: null
end_datestring | nullOptionalDefault: null
user_intentstringOptional · Hosted onlyA short description of the user’s request. Omit secrets and prior chat.
Maximum length: 600
Complete input schema
{
"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.
send_crawler_verification_pingSend the verification ping shown in the crawler dashboard.
Changes account data or starts work
brand_idstringRequiredThe brand to update.
user_intentstringOptional · Hosted onlyA short description of the user’s request. Omit secrets and prior chat.
Maximum length: 600
Complete input schema
{
"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.
submit_crawler_to_searchSubmit crawler pages to AI search via IndexNow.
Changes account data or starts work
brand_idstringRequiredThe brand to update.
urlsstringRequiredComma-separated absolute URLs to submit.
user_intentstringOptional · Hosted onlyA short description of the user’s request. Omit secrets and prior chat.
Maximum length: 600
Complete input schema
{
"properties": {
"brand_id": {
"title": "Brand Id",
"type": "string"
},
"urls": {
"title": "Urls",
"type": "string"
},
"user_intent": {
"type": "string",
"maxLength": 600
}
},
"required": [
"brand_id",
"urls"
],
"title": "submit_crawler_to_searchArguments",
"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. See the OpenAPI response schemas for the corresponding HTTP contracts.
Research 5
get_latest_researchMost recent completed prompt research run with the full analytics payload.
Read only
brand_idstringRequiredThe brand to check.
report_typestring | nullOptionalChoose the report type.
Default: null
Allowed: "full_research", "topic_snapshot"
results_limitintegerOptionalMax per-prompt results to return, 1-500.
Default: 100
Minimum: 1
Maximum: 500
results_offsetintegerOptionalPagination offset into the results array.
Default: 0
Minimum: 0
Maximum: 1000000
user_intentstringOptional · Hosted onlyA short description of the user’s request. Omit secrets and prior chat.
Maximum length: 600
Complete input schema
{
"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.
get_research_creditsTopic snapshot credit usage for the current month.
Read only
brand_idstringRequiredThe brand to check.
user_intentstringOptional · Hosted onlyA short description of the user’s request. Omit secrets and prior chat.
Maximum length: 600
Complete input schema
{
"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.
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 | nullOptionalThe prompt research run ID. Get IDs from get_research_runs.
Default: null
results_limitintegerOptionalMax per-prompt results to return, 1-500.
Default: 100
Minimum: 1
Maximum: 500
results_offsetintegerOptionalPagination offset into the results array.
Default: 0
Minimum: 0
Maximum: 1000000
response_formatstringOptionalChoose the response format.
Default: "concise"
Allowed: "concise", "detailed"
user_intentstringOptional · Hosted onlyA short description of the user’s request. Omit secrets and prior chat.
Maximum length: 600
Complete input schema
{
"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.
get_research_runsList prompt research runs (newest first) with visibility, mention rate, and top competitors.
Read only
brand_idstringRequiredThe brand to list runs for.
report_typestring | nullOptionalChoose the report type.
Default: null
Allowed: "full_research", "topic_snapshot"
ready_onlybooleanOptionalIf true, only return runs that completed successfully.
Default: true
limitintegerOptionalResults per page, 1-100.
Default: 20
Minimum: 1
Maximum: 100
offsetintegerOptionalPagination offset.
Default: 0
Minimum: 0
Maximum: 1000000
user_intentstringOptional · Hosted onlyA short description of the user’s request. Omit secrets and prior chat.
Maximum length: 600
Complete input schema
{
"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.
run_research_snapshotTrigger a topic snapshot - 50 focused prompts on the supplied topic. Consumes one monthly credit.
Changes account data or starts work
brand_idstringRequiredThe brand to run the snapshot for.
topicstringRequiredThe topic to focus on (2-200 chars).
topic_contextstring | nullOptionalOptional context to refine prompt generation (up to 500 chars).
Default: null
user_intentstringOptional · Hosted onlyA short description of the user’s request. Omit secrets and prior chat.
Maximum length: 600
Complete input schema
{
"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.
Reddit 5
get_redditReddit monitoring data: connection state, mentions feed, opportunities, threads, subreddits, triggers, and analytics.
Read only
brand_idstringRequiredThe brand to check.
viewstringOptionalSelect the result view.
Default: "overview"
Allowed: "overview", "feed", "opportunities", "thread", "subreddits", "triggers", "analytics"
thread_idstring | nullOptionalRequired when view='thread'.
Default: null
statusstring | nullOptionalFilter by status.
Default: null
Allowed: "all", "open", "responded"
subredditstring | nullOptionalFilter feed or opportunities by subreddit name (no r/ prefix).
Default: null
daysintegerOptionalLookback window, 1-180.
Default: 30
Minimum: 1
Maximum: 180
page_sizeintegerOptionalRows per page, 1-100.
Default: 30
Minimum: 1
Maximum: 100
user_intentstringOptional · Hosted onlyA short description of the user’s request. Omit secrets and prior chat.
Maximum length: 600
Complete input schema
{
"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.
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_idstringRequiredThe brand the opportunity belongs to.
opportunity_idstringRequiredThe opportunity to update.
actionstringRequiredChoose the operation to perform.
Allowed: "dismiss", "mark_responded"
user_intentstringOptional · Hosted onlyA short description of the user’s request. Omit secrets and prior chat.
Maximum length: 600
Complete input schema
{
"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.
manage_reddit_subredditAdd or remove a subreddit from the Reddit monitor.
Changes account data or starts work · Review the change before approving
brand_idstringRequiredThe brand to update.
actionstringRequiredChoose the operation to perform.
Allowed: "add", "remove"
subredditstring | nullOptionalSubreddit name (no r/ prefix). Required for 'add'.
Default: null
subreddit_idstring | nullOptionalRequired for 'remove'.
Default: null
user_intentstringOptional · Hosted onlyA short description of the user’s request. Omit secrets and prior chat.
Maximum length: 600
Complete input schema
{
"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.
manage_reddit_triggerAdd or remove a keyword trigger that drives Reddit scanning.
Changes account data or starts work · Review the change before approving
brand_idstringRequiredThe brand to update.
actionstringRequiredChoose the operation to perform.
Allowed: "add", "remove"
keywordstring | nullOptionalKeyword to track. Required for 'add'.
Default: null
trigger_idstring | nullOptionalRequired for 'remove'.
Default: null
user_intentstringOptional · Hosted onlyA short description of the user’s request. Omit secrets and prior chat.
Maximum length: 600
Complete input schema
{
"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.
scan_redditTrigger an on-demand Reddit scan for the brand.
Changes account data or starts work
brand_idstringRequiredThe brand to scan.
user_intentstringOptional · Hosted onlyA short description of the user’s request. Omit secrets and prior chat.
Maximum length: 600
Complete input schema
{
"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.
Automations 2
get_workflowsRead exact-rule automation state: list, single rule, recent runs, run detail, or starter templates.
Read only
brand_idstringRequiredThe brand to inspect.
viewstringOptionalSelect the result view.
Default: "list"
Allowed: "list", "get", "runs", "run_detail", "templates"
workflow_idstring | nullOptionalRequired for 'get'. Optional filter for 'runs'.
Default: null
run_idstring | nullOptionalRequired for 'run_detail'.
Default: null
statusstring | nullOptionalFilter by status.
Default: null
Allowed: "active", "paused", "deleted"
daysintegerOptionalLookback for runs, 1-90.
Default: 30
Minimum: 1
Maximum: 90
limitintegerOptionalMax rows, 1-200.
Default: 50
Minimum: 1
Maximum: 200
offsetintegerOptionalPagination offset.
Default: 0
Minimum: 0
Maximum: 1000000
user_intentstringOptional · Hosted onlyA short description of the user’s request. Omit secrets and prior chat.
Maximum length: 600
Complete input schema
{
"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.
manage_workflowPause, resume, delete, or instantiate an exact rule from a template.
Changes account data or starts work · Review the change before approving
brand_idstringRequiredThe brand the workflow belongs to.
actionstringRequiredChoose the operation to perform.
Allowed: "pause", "resume", "delete", "from_template"
workflow_idstring | nullOptionalRequired for pause / resume / delete.
Default: null
template_idstring | nullOptionalRequired for 'from_template'.
Default: null
namestring | nullOptionalOptional name override for 'from_template'.
Default: null
user_intentstringOptional · Hosted onlyA short description of the user’s request. Omit secrets and prior chat.
Maximum length: 600
Complete input schema
{
"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.
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://brandThe index of your brands and their IDs, each linked to the briefings below. Start here to find a brand ID.
trakkr://brand/{id}/brand-bookPaste-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}/snapshotLatest AI visibility: headline scores, a by-model table, and the prompts where you win and lose.
trakkr://brand/{id}/citation-gapsPrompts where AI cites a rival but not you, ranked, with who gets cited and what to publish.
trakkr://brand/{id}/promptsThe AI-search questions Trakkr is tracking for this brand, active and paused.
trakkr://brandsThe brands you can access, with the IDs the per-brand resources need.
trakkr://brand/{id}/briefingHeadline visibility and trend, plus the open-action snapshot.
trakkr://brand/{id}/actionsThe brand top open actions, most impactful first.
trakkr://brand/{id}/changesWhat moved in the last week (the get_changes digest).
trakkr://brand/{id}/latest-reportThe most recent generated report.
Public research resources
trakkr://dataIndex of the research briefings below.
trakkr://data/what-gets-citedWhich page types earn AI citations, and owned vs third-party.
trakkr://data/crawler-personalitiesWhat each AI bot actually fetches and reads.
trakkr://data/llms-txt-truthThe honest null result: llms.txt shows no citation lift.
trakkr://data/schema-advantageHow structured data correlates with getting cited.
trakkr://data/citation-decayHow fast AI citations fade.
trakkr://data/model-divergenceWhere AI models disagree on who to recommend.
trakkr://data/playbookThe synthesis: the rules for getting cited, with links.
Server prompts
/weekly-reviewbrand, periodYour Monday brief: visibility and trend, who is gaining, the biggest citation gaps, and the easy wins, as five tight bullets.
/competitor-teardownbrand, competitorWhere a rival beats you, where you beat them, and three concrete moves to close the gap.
/citation-gap-planbrandThe 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, topicA citation-optimised outline plus the on-page schema to include for one piece, ready to hand to a writing tool.
/setup-trackingdomainOnboarding 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, sinceA 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.
{
"query": "How do I connect Trakkr to Claude?"
}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.
