Checks whether AI search engines cite your domain for a prompt. From $0.15/call via x402 or Stripe.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Bearer <api-key> — a prepaid-credit key from the Stripe rail. Omit it to pay per call over x402 instead.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Sends one prompt to 1 to 4 search assistants (Perplexity, OpenAI, Anthropic, Gemini) and reports whether each cites your target domains: cited status, citation count, cited domains, model, and a structured error per engine. Started concurrently; a failed engine returns `cited: null` and does not block the others (PD7). Paid, $0.75/call; read-only and safe to retry.
The prompt to send to the search assistant(s), verbatim. 1 to 4000 characters.
1 to 4 distinct engines to check, from perplexity, openai, anthropic, gemini.
1 to 10 target domains to check for a citation.
This tool isn't marked read-only, so it may change something on the server or in an account you connected.
Sends one prompt to 1 to 4 search assistants (Perplexity, OpenAI, Anthropic, Gemini) and reports whether each cites your target domains: cited status, citation count, cited domains, model, and a structured error per engine. Started concurrently; a failed engine returns `cited: null` and does not block the others (PD7). Paid, $0.75/call; read-only and safe to retry.
| Argument | Type | Description |
|---|---|---|
| prompt* | string | The prompt to send to the search assistant(s), verbatim. 1 to 4000 characters. |
| engines* | array | 1 to 4 distinct engines to check, from perplexity, openai, anthropic, gemini. |
| targets* | array | 1 to 10 target domains to check for a citation. |
{
"type": "object",
"required": [
"prompt",
"engines",
"targets"
],
"properties": {
"prompt": {
"type": "string",
"maxLength": 4000,
"minLength": 1,
"description": "The prompt to send to the search assistant(s), verbatim. 1 to 4000 characters."
},
"engines": {
"type": "array",
"items": {
"enum": [
"perplexity",
"openai",
"anthropic",
"gemini"
],
"type": "string"
},
"maxItems": 4,
"minItems": 1,
"description": "1 to 4 distinct engines to check, from perplexity, openai, anthropic, gemini.",
"uniqueItems": true
},
"targets": {
"type": "array",
"items": {
"type": "string",
"pattern": "^(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\\.)+[a-z]{2,63}$",
"maxLength": 253,
"minLength": 1,
"description": "A normalized domain, e.g. example.com (no scheme, no path, no whitespace, lowercase)."
},
"maxItems": 10,
"minItems": 1,
"description": "1 to 10 target domains to check for a citation."
}
},
"additionalProperties": false
}Sends one prompt to one search assistant (Perplexity, OpenAI or Gemini) and reports whether it cites your target domains: cited status, citation count, cited domains, model, and a structured error. For Claude, or several engines in one call, use citation_tracker_check. Paid, $0.15/call; read-only and safe to retry.
| Argument | Type | Description |
|---|---|---|
| prompt* | string | The prompt to send to the search assistant(s), verbatim. 1 to 4000 characters. |
| engines* | array | Exactly one engine: perplexity, openai, or gemini. |
| targets* | array | 1 to 10 target domains to check for a citation. |
{
"type": "object",
"required": [
"prompt",
"engines",
"targets"
],
"properties": {
"prompt": {
"type": "string",
"maxLength": 4000,
"minLength": 1,
"description": "The prompt to send to the search assistant(s), verbatim. 1 to 4000 characters."
},
"engines": {
"type": "array",
"items": {
"enum": [
"perplexity",
"openai",
"gemini"
],
"type": "string"
},
"maxItems": 1,
"minItems": 1,
"description": "Exactly one engine: perplexity, openai, or gemini."
},
"targets": {
"type": "array",
"items": {
"type": "string",
"pattern": "^(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\\.)+[a-z]{2,63}$",
"maxLength": 253,
"minLength": 1,
"description": "A normalized domain, e.g. example.com (no scheme, no path, no whitespace, lowercase)."
},
"maxItems": 10,
"minItems": 1,
"description": "1 to 10 target domains to check for a citation."
}
},
"additionalProperties": false
}Sends one prompt to Perplexity (sonar) and reports whether it cites your target domains, with citation count and cited domains. Free: one call per caller and 100 calls total per UTC day; both limits fail closed. A real live evaluation before you pay for citation_tracker_check.
| Argument | Type | Description |
|---|---|---|
| prompt* | string | The prompt to send to the search assistant(s), verbatim. 1 to 4000 characters. |
| targets* | array | 1 to 10 target domains to check for a citation. |
{
"type": "object",
"required": [
"prompt",
"targets"
],
"properties": {
"prompt": {
"type": "string",
"maxLength": 4000,
"minLength": 1,
"description": "The prompt to send to the search assistant(s), verbatim. 1 to 4000 characters."
},
"targets": {
"type": "array",
"items": {
"type": "string",
"pattern": "^(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\\.)+[a-z]{2,63}$",
"maxLength": 253,
"minLength": 1,
"description": "A normalized domain, e.g. example.com (no scheme, no path, no whitespace, lowercase)."
},
"maxItems": 10,
"minItems": 1,
"description": "1 to 10 target domains to check for a citation."
}
},
"additionalProperties": false
}Buys a monitor: 30 recurring runs of citation_tracker_check for one prompt and 1 to 10 target domains, daily or weekly. The first run happens now and is returned. Later runs are read with citation_tracker_monitor_status using the returned monitor_id (the only credential; it is not recoverable). Each run flags which target domains changed since the last run. Paid once, $18 for the term ($0.6/check); no refund of unused runs; cancel any time with citation_tracker_monitor_cancel. Retains the prompt, domains and results until 30 days after the last run or until cancelled.
| Argument | Type | Description |
|---|---|---|
| prompt* | string | The prompt to send to the search assistant(s), verbatim. 1 to 4000 characters. |
| cadence* | string | How often to re-run the check. |
| engines* | array | 1 to 4 search assistants to run on every check. |
| targets* | array | 1 to 10 target domains to check for a citation. |
{
"type": "object",
"required": [
"prompt",
"targets",
"engines",
"cadence"
],
"properties": {
"prompt": {
"type": "string",
"maxLength": 4000,
"minLength": 1,
"description": "The prompt to send to the search assistant(s), verbatim. 1 to 4000 characters."
},
"cadence": {
"enum": [
"daily",
"weekly"
],
"type": "string",
"description": "How often to re-run the check."
},
"engines": {
"type": "array",
"items": {
"enum": [
"perplexity",
"openai",
"anthropic",
"gemini"
],
"type": "string"
},
"maxItems": 4,
"minItems": 1,
"description": "1 to 4 search assistants to run on every check.",
"uniqueItems": true
},
"targets": {
"type": "array",
"items": {
"type": "string",
"pattern": "^(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\\.)+[a-z]{2,63}$",
"maxLength": 253,
"minLength": 1,
"description": "A normalized domain, e.g. example.com (no scheme, no path, no whitespace, lowercase)."
},
"maxItems": 10,
"minItems": 1,
"description": "1 to 10 target domains to check for a citation."
}
},
"additionalProperties": false
}Buys a monitor: 7 recurring runs of citation_tracker_check for one prompt and 1 to 10 target domains, daily or weekly. The first run happens now and is returned. Later runs are read with citation_tracker_monitor_status using the returned monitor_id (the only credential; it is not recoverable). Each run flags which target domains changed since the last run. Paid once, $4.2 for the term ($0.6/check); no refund of unused runs; cancel any time with citation_tracker_monitor_cancel. Retains the prompt, domains and results until 30 days after the last run or until cancelled.
| Argument | Type | Description |
|---|---|---|
| prompt* | string | The prompt to send to the search assistant(s), verbatim. 1 to 4000 characters. |
| cadence* | string | How often to re-run the check. |
| engines* | array | 1 to 4 search assistants to run on every check. |
| targets* | array | 1 to 10 target domains to check for a citation. |
{
"type": "object",
"required": [
"prompt",
"targets",
"engines",
"cadence"
],
"properties": {
"prompt": {
"type": "string",
"maxLength": 4000,
"minLength": 1,
"description": "The prompt to send to the search assistant(s), verbatim. 1 to 4000 characters."
},
"cadence": {
"enum": [
"daily",
"weekly"
],
"type": "string",
"description": "How often to re-run the check."
},
"engines": {
"type": "array",
"items": {
"enum": [
"perplexity",
"openai",
"anthropic",
"gemini"
],
"type": "string"
},
"maxItems": 4,
"minItems": 1,
"description": "1 to 4 search assistants to run on every check.",
"uniqueItems": true
},
"targets": {
"type": "array",
"items": {
"type": "string",
"pattern": "^(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\\.)+[a-z]{2,63}$",
"maxLength": 253,
"minLength": 1,
"description": "A normalized domain, e.g. example.com (no scheme, no path, no whitespace, lowercase)."
},
"maxItems": 10,
"minItems": 1,
"description": "1 to 10 target domains to check for a citation."
}
},
"additionalProperties": false
}Stops a monitor and deletes its prompt, domains and results. Unused runs are not refunded. Free. Needs the monitor_id.
| Argument | Type | Description |
|---|---|---|
| monitor_id* | string | The monitor id returned by citation_tracker_monitor_7 or _30. It is the only credential; keep it. |
{
"type": "object",
"required": [
"monitor_id"
],
"properties": {
"monitor_id": {
"type": "string",
"pattern": "^ctm_[A-Za-z0-9_-]+$",
"maxLength": 64,
"minLength": 8,
"description": "The monitor id returned by citation_tracker_monitor_7 or _30. It is the only credential; keep it."
}
},
"additionalProperties": false
}Reads a monitor: remaining runs, next run time, and every run so far (most recent first) with the same per-engine rows as citation_tracker_check plus changed_since_last per target domain. Free. Needs the monitor_id.
| Argument | Type | Description |
|---|---|---|
| monitor_id* | string | The monitor id returned by citation_tracker_monitor_7 or _30. It is the only credential; keep it. |
{
"type": "object",
"required": [
"monitor_id"
],
"properties": {
"monitor_id": {
"type": "string",
"pattern": "^ctm_[A-Za-z0-9_-]+$",
"maxLength": 64,
"minLength": 8,
"description": "The monitor id returned by citation_tracker_monitor_7 or _30. It is the only credential; keep it."
}
},
"additionalProperties": false
}Checks whether ChatGPT would search the web for one prompt and whether its first search query names any of your supplied brand or product terms (whole-word match). Use it to gate a prompt before spending on citation_tracker_check. Paid, $0.20/call; read-only and safe to retry.
| Argument | Type | Description |
|---|---|---|
| prompt* | string | The prompt to send to the search assistant(s), verbatim. 1 to 4000 characters. |
| brand_terms* | array | 1 to 20 brand terms to look for in the first search query. |
| product_terms | array | 0 to 50 product terms to look for in the first search query. |
{
"type": "object",
"required": [
"prompt",
"brand_terms"
],
"properties": {
"prompt": {
"type": "string",
"maxLength": 4000,
"minLength": 1,
"description": "The prompt to send to the search assistant(s), verbatim. 1 to 4000 characters."
},
"brand_terms": {
"type": "array",
"items": {
"type": "string",
"maxLength": 100,
"minLength": 1
},
"maxItems": 20,
"minItems": 1,
"description": "1 to 20 brand terms to look for in the first search query."
},
"product_terms": {
"type": "array",
"items": {
"type": "string",
"maxLength": 100,
"minLength": 1
},
"default": [],
"maxItems": 50,
"minItems": 0,
"description": "0 to 50 product terms to look for in the first search query."
}
},
"additionalProperties": false
}