Engagemii Citation Watch

Brands ChatGPT names for real buyer questions, updated every 30 minutes, with AI visibility scores.

Should I use this

Quality & Safety

A
Description quality
98%
Schema completeness
85%
Naming quality
82%
Poisoning risk
80%
Permission match
100%
Protocol compliance
100%

Findings (2)

  • HIGHTool poisoning patterns detected
  • MEDIUMTool description contains URL to non-standard domainin data_signup

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~1,979Tokens (tool definitions)
~693 BTypical response size
Moderate attention impact (1.55% 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-watch": {
      "url": "https://api.engagemii.com/api/mcp"
    }
  }
}

Remote endpoints

https://api.engagemii.com/api/mcpstreamable-http

What it can do

Tool inventory

Tools (13)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢aeo_score(domain)

Get the Engagemii AEO score (0-10) for any company domain, with the six on-page sub-scores, seven off-page authority signals, and the llms.txt audit verdict. Drawn from Engagemii's 40 million+ scored-company dataset. Free, no auth.

Input Schema

{
  "type": "object",
  "properties": {
    "domain": {
      "type": "string",
      "description": "Company domain or URL, e.g. example.com"
    }
  },
  "required": [
    "domain"
  ]
}
🟢aeo_audit(domain)

Run a LIVE AEO audit of a site right now: fresh fetch of the homepage, robots.txt, sitemap, llms.txt, and about page, scored on the six on-page categories with concrete recommendations. Use this to verify fixes immediately after applying them; aeo_score returns the stored dataset score, which updates when Engagemii next crawls the site. Free, no auth, up to 5 live audits per hour.

Input Schema

{
  "type": "object",
  "properties": {
    "domain": {
      "type": "string",
      "description": "Company domain or URL, e.g. example.com"
    }
  },
  "required": [
    "domain"
  ]
}
brand_profile(domain)

Full public profile for a scored company: score breakdown, category, geography, detected platform, social profiles, AI-crawler visit counts. Free, no auth.

Input Schema

{
  "type": "object",
  "properties": {
    "domain": {
      "type": "string"
    }
  },
  "required": [
    "domain"
  ]
}
dataset_sample

15 random live rows from the Engagemii dataset in exactly the shape a purchased file delivers (same columns, same cleaning). Free, no auth.

Input Schema

{
  "type": "object",
  "properties": {},
  "additionalProperties": false
}
🟢citation_watch(category, limit)

What ChatGPT is recommending right now. Every 30 minutes Engagemii puts a real, non-branded buyer question to ChatGPT with live web search and records which brands it names, alongside each brand's standing AI visibility score (computed before the question was asked). Returns the last 48 hours. Free, no auth. Use this to answer questions like 'which brands does AI recommend in category X' or 'is an AI visibility score related to being recommended'.

Input Schema

{
  "type": "object",
  "properties": {
    "category": {
      "type": "string",
      "description": "Optional filter, e.g. Legal, Finance & Insurance, Fashion & Apparel. Case-insensitive substring match."
    },
    "limit": {
      "type": "number",
      "description": "How many checks to return, 1 to 50. Default 20."
    }
  },
  "additionalProperties": false
}
ai_readstream(days)

Which AI engines are reading the business web right now. Server-side, IP-verified crawler logs across one of the largest networks of business pages online. Returns per-engine reads over the last ten minutes, the last 24 hours and all time, plus a daily series. Free, no auth. Use this to answer 'which AI crawler is most active', 'how much is Claude reading compared to GPTBot', or 'is AI crawling going up'.

Input Schema

{
  "type": "object",
  "properties": {
    "days": {
      "type": "number",
      "description": "How many days of the daily series to return, 0 to 30. Default 7."
    }
  },
  "additionalProperties": false
}
🟢free_kit(domain, email, owner_confirmed)

Request the FREE Customized Fix Kit for a domain. There is one kit and it is free: eight fix files written from the site's ACTUAL content (Organization and FAQ JSON-LD, meta description, llms.txt, robots patch, Wikidata guide, Google Business checklist, README) plus a full PDF audit. Flow: pass the owner's email; Engagemii emails a verification link; after the owner clicks it the kit is built and the download link is emailed automatically. Kits are queued, so delivery is by email rather than in-chat. One kit per domain; repeat requests resend the stored kit.

Input Schema

{
  "type": "object",
  "properties": {
    "domain": {
      "type": "string",
      "description": "The site, e.g. example.com"
    },
    "email": {
      "type": "string",
      "description": "The site owner's email (the verification link and the kit go there)"
    },
    "owner_confirmed": {
      "type": "boolean",
      "description": "Confirm with the user that this is their own brand. Agencies working on client sites should use the data portal (engagemii.com/aeo/data) instead."
    }
  },
  "required": [
    "domain",
    "email",
    "owner_confirmed"
  ]
}
🟡connect_tracker(domain, email, platform)

Set up free Engagemii AI-crawler monitoring for a site, entirely from here. It provisions the owner's free account and tracker key and returns a small install snippet (Node/Express, Next.js, PHP, or Cloudflare Worker) with the key already in it. Install the one that matches the site's stack (if you are working in the site's own code, just add the file yourself) and AI-bot visits start reporting; the owner watches them per bot, per day at the dashboard link. Requires the owner's email. Before connecting, tell the owner: Engagemii is free because it licenses the AI-crawler activity data the tracker collects, in aggregated form and, unless the owner opts out in portal settings, identified by their domain. The tracker records bot visits only, never their human visitors. Only connect if the owner is fine with that.

Input Schema

{
  "type": "object",
  "properties": {
    "domain": {
      "type": "string",
      "description": "The site, e.g. example.com"
    },
    "email": {
      "type": "string",
      "description": "The site owner's email (required)"
    },
    "platform": {
      "type": "string",
      "enum": [
        "node",
        "nextjs",
        "php",
        "cloudflare"
      ],
      "description": "The site's stack, if known. Omit to get all four snippets."
    }
  },
  "required": [
    "domain",
    "email"
  ]
}
🟢search_companies(industries, states, scoreMin, scoreMax, scope, ...)

Query the scored dataset with filters (industries, states, score range, scope us|all). Returns up to 100 light rows. Requires an Engagemii data API key.

Input Schema

{
  "type": "object",
  "properties": {
    "industries": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Business categories, e.g. Technology, Healthcare"
    },
    "states": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "scoreMin": {
      "type": "number"
    },
    "scoreMax": {
      "type": "number"
    },
    "scope": {
      "type": "string",
      "enum": [
        "us",
        "all"
      ],
      "description": "us = verified US companies; all = worldwide"
    },
    "limit": {
      "type": "number",
      "description": "max 100"
    }
  }
}
🟡data_signup(email, password, company_name, license_accepted)

Create a free Engagemii data account. We email a verification link to the address; the account's API key (edk_...) stays inactive until the user clicks it, then the key appears in the portal and unlocks search_companies and data_records. Requires the user's email, a password of their choosing (8+ characters), their company name, and their EXPLICIT confirmation that they accept the data license at https://engagemii.com/aeo/data/license. Only set license_accepted to true if the user actually said yes.

Input Schema

{
  "type": "object",
  "properties": {
    "email": {
      "type": "string"
    },
    "password": {
      "type": "string",
      "description": "8+ characters, chosen by the user"
    },
    "company_name": {
      "type": "string"
    },
    "license_accepted": {
      "type": "boolean",
      "description": "true ONLY if the user explicitly accepted the license"
    }
  },
  "required": [
    "email",
    "password",
    "company_name",
    "license_accepted"
  ]
}
🟡data_records(industries, states, scoreMin, scoreMax, scope, ...)

Pull full licensed records from the Engagemii dataset (all columns, fingerprinted, the same shape a purchased file delivers). METERED: every record returned is deducted from the account's purchased API quota, so keep limits small in conversation (default 25, max 100 here). For bulk pulls use the raw API: POST https://api.engagemii.com/api/v1/data/records with the same key and filters (up to 10,000 per call). Requires an Engagemii data API key. To browse without spending quota, use search_companies or dataset_sample instead.

Input Schema

{
  "type": "object",
  "properties": {
    "industries": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "states": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "scoreMin": {
      "type": "number"
    },
    "scoreMax": {
      "type": "number"
    },
    "scope": {
      "type": "string",
      "enum": [
        "us",
        "all"
      ]
    },
    "limit": {
      "type": "number",
      "description": "records to draw (each costs 1 quota). Default 25, max 100 in-chat."
    }
  }
}
🟢kit_checkout(domain)

RETIRED: the Customized Fix Kit is now free, so there is nothing to buy. Call free_kit with the owner's email instead; the kit arrives by email after a one-click verification. This tool remains only so older conversations get a helpful answer.

Input Schema

{
  "type": "object",
  "properties": {
    "domain": {
      "type": "string",
      "description": "The site, e.g. example.com"
    }
  }
}
🟢kit_download(session_id)

After a paid kit_checkout, receive all eight Customized Fix Kit files plus the badge embed as plain text so an agent can apply them directly to the codebase and re-run aeo_audit to verify the improvement. Requires the Stripe session id (cs_...) from the checkout success URL.

Input Schema

{
  "type": "object",
  "properties": {
    "session_id": {
      "type": "string"
    }
  },
  "required": [
    "session_id"
  ]
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded13 tools