citation-tracker

Checks whether AI search engines cite your domain for a prompt. From $0.15/call via x402 or Stripe.

Should I use this

Quality & Safety

A
Description quality
98%
Schema completeness
100%
Naming quality
70%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Findings (4)

  • LOWTool 'citation_tracker_check_perplexity' name length outside 3-30 rangein citation_tracker_check_perplexity
  • LOWTool 'citation_tracker_shortlist_gate' name length outside 3-30 rangein citation_tracker_shortlist_gate
  • LOWTool 'citation_tracker_monitor_status' name length outside 3-30 rangein citation_tracker_monitor_status
  • LOWTool 'citation_tracker_monitor_cancel' name length outside 3-30 rangein citation_tracker_monitor_cancel

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~2,223Tokens (tool definitions)
~1.9 KBTypical response size
Moderate attention impact (1.74% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "citation-tracker": {
      "url": "https://citation-tracker.pixelcove.co/mcp"
    }
  }
}

Remote endpoints

https://citation-tracker.pixelcove.co/mcpstreamable-http

What it can do

Tool inventory

Tools (8)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢citation_tracker_check(prompt, engines, targets)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "prompt": {
      "type": "string",
      "minLength": 1,
      "maxLength": 4000,
      "description": "The prompt to send to the search assistant(s), verbatim. 1 to 4000 characters."
    },
    "engines": {
      "type": "array",
      "items": {
        "type": "string",
        "enum": [
          "perplexity",
          "openai",
          "anthropic",
          "gemini"
        ]
      },
      "minItems": 1,
      "maxItems": 4,
      "uniqueItems": true,
      "description": "1 to 4 distinct engines to check, from perplexity, openai, anthropic, gemini."
    },
    "targets": {
      "type": "array",
      "items": {
        "type": "string",
        "minLength": 1,
        "maxLength": 253,
        "pattern": "^(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\\.)+[a-z]{2,63}$",
        "description": "A normalized domain, e.g. example.com (no scheme, no path, no whitespace, lowercase)."
      },
      "minItems": 1,
      "maxItems": 10,
      "description": "1 to 10 target domains to check for a citation."
    }
  },
  "required": [
    "prompt",
    "engines",
    "targets"
  ],
  "additionalProperties": false
}
🟢citation_tracker_check_one(prompt, engines, targets)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "prompt": {
      "type": "string",
      "minLength": 1,
      "maxLength": 4000,
      "description": "The prompt to send to the search assistant(s), verbatim. 1 to 4000 characters."
    },
    "engines": {
      "type": "array",
      "items": {
        "type": "string",
        "enum": [
          "perplexity",
          "openai",
          "gemini"
        ]
      },
      "minItems": 1,
      "maxItems": 1,
      "description": "Exactly one engine: perplexity, openai, or gemini."
    },
    "targets": {
      "type": "array",
      "items": {
        "type": "string",
        "minLength": 1,
        "maxLength": 253,
        "pattern": "^(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\\.)+[a-z]{2,63}$",
        "description": "A normalized domain, e.g. example.com (no scheme, no path, no whitespace, lowercase)."
      },
      "minItems": 1,
      "maxItems": 10,
      "description": "1 to 10 target domains to check for a citation."
    }
  },
  "required": [
    "prompt",
    "engines",
    "targets"
  ],
  "additionalProperties": false
}
🟢citation_tracker_check_perplexity(prompt, targets)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "prompt": {
      "type": "string",
      "minLength": 1,
      "maxLength": 4000,
      "description": "The prompt to send to the search assistant(s), verbatim. 1 to 4000 characters."
    },
    "targets": {
      "type": "array",
      "items": {
        "type": "string",
        "minLength": 1,
        "maxLength": 253,
        "pattern": "^(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\\.)+[a-z]{2,63}$",
        "description": "A normalized domain, e.g. example.com (no scheme, no path, no whitespace, lowercase)."
      },
      "minItems": 1,
      "maxItems": 10,
      "description": "1 to 10 target domains to check for a citation."
    }
  },
  "required": [
    "prompt",
    "targets"
  ],
  "additionalProperties": false
}
🟢citation_tracker_shortlist_gate(prompt, brand_terms, product_terms)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "prompt": {
      "type": "string",
      "minLength": 1,
      "maxLength": 4000,
      "description": "The prompt to send to the search assistant(s), verbatim. 1 to 4000 characters."
    },
    "brand_terms": {
      "type": "array",
      "items": {
        "type": "string",
        "minLength": 1,
        "maxLength": 100
      },
      "minItems": 1,
      "maxItems": 20,
      "description": "1 to 20 brand terms to look for in the first search query."
    },
    "product_terms": {
      "type": "array",
      "items": {
        "type": "string",
        "minLength": 1,
        "maxLength": 100
      },
      "minItems": 0,
      "maxItems": 50,
      "default": [],
      "description": "0 to 50 product terms to look for in the first search query."
    }
  },
  "required": [
    "prompt",
    "brand_terms"
  ],
  "additionalProperties": false
}
🔴citation_tracker_monitor_7(prompt, targets, engines, cadence)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "prompt": {
      "type": "string",
      "minLength": 1,
      "maxLength": 4000,
      "description": "The prompt to send to the search assistant(s), verbatim. 1 to 4000 characters."
    },
    "targets": {
      "type": "array",
      "items": {
        "type": "string",
        "minLength": 1,
        "maxLength": 253,
        "pattern": "^(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\\.)+[a-z]{2,63}$",
        "description": "A normalized domain, e.g. example.com (no scheme, no path, no whitespace, lowercase)."
      },
      "minItems": 1,
      "maxItems": 10,
      "description": "1 to 10 target domains to check for a citation."
    },
    "engines": {
      "type": "array",
      "items": {
        "type": "string",
        "enum": [
          "perplexity",
          "openai",
          "anthropic",
          "gemini"
        ]
      },
      "minItems": 1,
      "maxItems": 4,
      "uniqueItems": true,
      "description": "1 to 4 search assistants to run on every check."
    },
    "cadence": {
      "type": "string",
      "enum": [
        "daily",
        "weekly"
      ],
      "description": "How often to re-run the check."
    }
  },
  "required": [
    "prompt",
    "targets",
    "engines",
    "cadence"
  ],
  "additionalProperties": false
}
🔴citation_tracker_monitor_30(prompt, targets, engines, cadence)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "prompt": {
      "type": "string",
      "minLength": 1,
      "maxLength": 4000,
      "description": "The prompt to send to the search assistant(s), verbatim. 1 to 4000 characters."
    },
    "targets": {
      "type": "array",
      "items": {
        "type": "string",
        "minLength": 1,
        "maxLength": 253,
        "pattern": "^(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\\.)+[a-z]{2,63}$",
        "description": "A normalized domain, e.g. example.com (no scheme, no path, no whitespace, lowercase)."
      },
      "minItems": 1,
      "maxItems": 10,
      "description": "1 to 10 target domains to check for a citation."
    },
    "engines": {
      "type": "array",
      "items": {
        "type": "string",
        "enum": [
          "perplexity",
          "openai",
          "anthropic",
          "gemini"
        ]
      },
      "minItems": 1,
      "maxItems": 4,
      "uniqueItems": true,
      "description": "1 to 4 search assistants to run on every check."
    },
    "cadence": {
      "type": "string",
      "enum": [
        "daily",
        "weekly"
      ],
      "description": "How often to re-run the check."
    }
  },
  "required": [
    "prompt",
    "targets",
    "engines",
    "cadence"
  ],
  "additionalProperties": false
}
🟢citation_tracker_monitor_status(monitor_id)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "monitor_id": {
      "type": "string",
      "minLength": 8,
      "maxLength": 64,
      "pattern": "^ctm_[A-Za-z0-9_-]+$",
      "description": "The monitor id returned by citation_tracker_monitor_7 or _30. It is the only credential; keep it."
    }
  },
  "required": [
    "monitor_id"
  ],
  "additionalProperties": false
}
🔴citation_tracker_monitor_cancel(monitor_id)

Stops a monitor and deletes its prompt, domains and results. Unused runs are not refunded. Free. Needs the monitor_id.

Input Schema

{
  "type": "object",
  "properties": {
    "monitor_id": {
      "type": "string",
      "minLength": 8,
      "maxLength": 64,
      "pattern": "^ctm_[A-Za-z0-9_-]+$",
      "description": "The monitor id returned by citation_tracker_monitor_7 or _30. It is the only credential; keep it."
    }
  },
  "required": [
    "monitor_id"
  ],
  "additionalProperties": false
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded8 tools
verifiedversion not recorded8 tools
verifiedversion not recorded7 tools