{"$schema":"https://static.modelcontextprotocol.io/schemas/mcp-server-card/v1.json","version":"1.0","protocolVersion":"2025-06-18","serverInfo":{"name":"aeometer","version":"0.4.4","title":"AEOmeter"},"description":"Read and manage AI visibility tracking: brands, competitor sets, buyer prompts, browser check runs, and the captured ChatGPT, Claude, Perplexity and Google AI Overviews answers with their citations.","websiteUrl":"https://aeometer.com/","documentationUrl":"https://aeometer.com/features/mcp","transport":{"type":"streamable-http","endpoint":"https://aeometer.com/mcp"},"capabilities":{"tools":{"listChanged":false}},"authentication":{"required":true,"schemes":["oauth2"],"protectedResourceMetadata":"https://aeometer.com/.well-known/oauth-protected-resource/mcp","scopes":["mcp:tools"]},"tools":[{"name":"cancel_job","description":"Cancel a queued (not yet started) or attention-state job in an owned project. Cannot cancel actively collecting jobs.","annotations":{"readOnlyHint":false,"destructiveHint":true}},{"name":"cancel_queued_jobs","description":"Cancel all queued jobs no browser has started yet in an owned project, optionally only for one run. Running and finished jobs are untouched.","annotations":{"readOnlyHint":false,"destructiveHint":true}},{"name":"retry_failed_checks","description":"Queue a fresh check for each failed prompt × engine in an owned brand whose newest attempt failed (last 7 days), optionally only for one engine or one job. Answered, queued and running checks are left alone.","annotations":{"readOnlyHint":false,"destructiveHint":false}},{"name":"get_analytics","description":"Inspect owned-project visibility, competitor comparisons, matched trends, cited domains/pages, answer history and collection counts. Use cohort=current for current brand and exact prompt definitions; all includes historical definitions. Rates describe captured answers, not market demand.","annotations":{"readOnlyHint":true,"destructiveHint":false}},{"name":"get_overview","description":"Read period and engine-scoped brand visibility and citation rates, daily observations, latest prompt/engine misses, competitor-cited domains and failed checks. Only successful captured answers contribute to answer metrics; no-overview and failed jobs are not misses.","annotations":{"readOnlyHint":true,"destructiveHint":false}},{"name":"get_prompt_matrix","description":"Read each enabled prompt's latest completed or no-overview result by engine, with all-answer visibility rates. Failed jobs and no-overview outcomes are excluded from answer denominators.","annotations":{"readOnlyHint":true,"destructiveHint":false}},{"name":"get_prompt_detail","description":"Read period-scoped visibility and citation rates, latest engine results, competitor mentions and paginated captured-answer history for one exact prompt.","annotations":{"readOnlyHint":true,"destructiveHint":false}},{"name":"reanalyze_project","description":"Recompute derived analyses from immutable answers using their original run brand snapshots. Does not change raw answers or apply current brand definitions to historical captures.","annotations":{"readOnlyHint":false,"destructiveHint":false}},{"name":"get_answer","description":"Inspect an original captured answer with brand highlights, citations, capture context, warnings and source inspection status in an owned project.","annotations":{"readOnlyHint":true,"destructiveHint":false}},{"name":"get_browser_status","description":"Read your authorized browsers, advertised engine permissions, collection-enabled state and recent contact. Availability does not guarantee engine login or a fresh answer.","annotations":{"readOnlyHint":true,"destructiveHint":false}},{"name":"get_engine_health","description":"Per engine, whether the organization's newest finished check answered (ok), was blocked by a sign-in, verification or usage limit, or failed otherwise, with the failure count since the last answer.","annotations":{"readOnlyHint":true,"destructiveHint":false}},{"name":"update_project","description":"Replace an organization's brand definitions. Preserve brand IDs; designate one own brand with role=brand and others competitor. Name, role and website edits start a new current measurement baseline; alias edits also apply to saved answers. Saved answers remain intact.","annotations":{"readOnlyHint":false,"destructiveHint":true}},{"name":"update_answer_checks","description":"Set the traits to look for in how AI answers describe each tracked brand (for example \"expensive\", \"easy to use\") and a short fact sheet about the own brand that answers should not contradict. Applies to answers from the last 90 days; changing them starts a fresh set of results.","annotations":{"readOnlyHint":false,"destructiveHint":false}},{"name":"suggest_brand_names","description":"Suggest other names AI answers may use for a brand (spacing variants, misspellings, abbreviations, former names) so they can be added as aliases. With a projectId and brandId, also returns names found in saved answers that mention the brand under an untracked name. Changes nothing.","annotations":{"readOnlyHint":true,"destructiveHint":false}},{"name":"list_projects","description":"List brands in an organization the authenticated user belongs to.","annotations":{"readOnlyHint":true,"destructiveHint":false}},{"name":"create_project","description":"Create a brand in an organization the authenticated user belongs to. Daily checks start on, on every engine, at 09:00 in the given timezone (UTC by default).","annotations":{"readOnlyHint":false,"destructiveHint":false}},{"name":"get_project","description":"Read a brand in an organization the authenticated user belongs to.","annotations":{"readOnlyHint":true,"destructiveHint":false}},{"name":"list_organizations","description":"List organizations and the current user’s role in each.","annotations":{"readOnlyHint":true,"destructiveHint":false}},{"name":"add_starter_prompts","description":"Generate about 8 starter prompts for an owned brand (discovery, branded and comparison questions), add them as enabled prompts, and by default queue a first run on the brand's scheduled engines for connected browsers. Skips exact duplicates.","annotations":{"readOnlyHint":false,"destructiveHint":false}},{"name":"import_prompts","description":"Import reviewed exact prompts and tags into an owned project atomically, skipping exact duplicates. Limit 200 total project prompts including paused prompts. Does not submit prompts to engines.","annotations":{"readOnlyHint":false,"destructiveHint":false}},{"name":"bulk_update_prompts","description":"Atomically enable/pause selected owned-project prompts or add tags without removing existing tags. Pausing affects future runs, not already queued checks.","annotations":{"readOnlyHint":false,"destructiveHint":false}},{"name":"update_prompt","description":"Replace exact text, tags and enabled state of an owned-project prompt. Text edits start a new baseline; previous answers remain saved. Pausing affects future runs.","annotations":{"readOnlyHint":false,"destructiveHint":true}},{"name":"list_prompts","description":"List exact prompts configured for a project you own.","annotations":{"readOnlyHint":true,"destructiveHint":false}},{"name":"create_prompt","description":"Add an exact monitoring prompt to an owned project. This does not submit it to AI engines.","annotations":{"readOnlyHint":false,"destructiveHint":false}},{"name":"get_schedule","description":"Read an owned project daily schedule, timezone, engines and next queue time. A schedule queues work; an available browser and engine sessions are required to collect.","annotations":{"readOnlyHint":true,"destructiveHint":false}},{"name":"update_schedule","description":"Configure or disable daily monitoring for a brand in an organization you belong to.","annotations":{"readOnlyHint":false,"destructiveHint":false}},{"name":"list_runs","description":"List recent browser monitoring runs, including job completion and failures.","annotations":{"readOnlyHint":true,"destructiveHint":false}},{"name":"create_run","description":"Snapshot enabled prompts and brands into a browser run. Eligible connected browsers claim jobs; this API does not scrape engines.","annotations":{"readOnlyHint":false,"destructiveHint":false}},{"name":"list_observations","description":"Review recent captured answers, citations, mentioned URLs, and privacy evidence for an owned project.","annotations":{"readOnlyHint":true,"destructiveHint":false}}]}