Skip to main content
Glama

Dante IX — Brand & GEO Intelligence

Server Details

Hosted Streamable HTTP MCP gateway for 9-Circle Brand Reputation, Social Listening (Reddit, HN, Web) & Multi-Model GEO Audits across ChatGPT, Claude, and Perplexity, plus Technical GEO Shield generation (JSON-LD, llms.txt, Fact-Sheet).

If you are the author of this connector, you can claim ownership by verifying the domain or GitHub account it belongs to. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Last Tested
Transport
Streamable HTTP · MCP 2024-11-05
URL

TDQS

A4.7/5.0

Scored across 5 tools

Disambiguation5/5

Each tool targets a distinct workflow: artifact generation, AI share measurement, tenant vault querying, hallucination remediation, and comprehensive audit. The descriptions include explicit cross-references and 'use X instead' guidance, which resolves the main potential overlaps between probe_geo_share and run_audit, and between forge_geo_shield and remediate_hallucination.

Naming Consistency5/5

All tool names use the same dante. prefix followed by a snake_case verb_noun pattern: forge_geo_shield, probe_geo_share, query_street_friction, remediate_hallucination, and run_audit. The convention is predictable and easy to parse.

Tool Count5/5

Five tools is well-scoped for a brand and GEO intelligence server. Each tool corresponds to a meaningful capability area without redundant endpoints or a bloated surface.

Completeness4/5

The surface covers core workflows: audit, share measurement, internal signal querying, GEO artifact generation, and hallucination remediation. Minor gaps remain, such as retrieving or listing prior audit snapshots by audit_id and managing competitor sets explicitly, but agents can largely work around these.

Available Tools

5 tools
dante.forge_geo_shieldForge Technical GEO Shield (llms.txt & Schema.org JSON-LD)A
Read-onlyIdempotent
Inspect

Generate production-ready technical Generative Engine Optimization (GEO) artifacts for a brand domain: /llms.txt manifest, /.well-known/ai-catalog.json, Schema.org JSON-LD (Organization, Service, FAQPage), and robots.txt rules for AI crawlers (GPTBot, OAI-SearchBot, ClaudeBot, PerplexityBot, Google-Extended). Returns a JSON bundle (llms_txt_content, ai_catalog_json, json_ld_script, robots_txt_snippet, and domain_seal_sha256). Side effects & latency: Read-only deterministic synthesis (<300ms); never modifies external websites and makes zero LLM calls. Constraints: brand_name must match the stem of domain_url, and URLs in official_facts must belong to domain_url. Auth & quota: Consumes 0 live audit credits. Without DANTE_API_KEY, returns a 30% preview at $0 cost; with a paid dnt_live_ key (PRO_INHOUSE 1 domain or AGENCY_PARTNER 10 domains), returns 100% deployable files sealed for that domain. When to use: Use dante.forge_geo_shield to generate /llms.txt and JSON-LD files for AI crawler discovery. Use dante.remediate_hallucination instead when countering a specific false AI claim.

NameRequiredDescriptionDefault
langNoLanguage for generated `/llms.txt` and `JSON-LD` descriptions: 'en' for English or 'es' for Spanish (defaults to 'es').es
brand_nameYesOfficial brand or organization name (2 to 80 characters; must correspond to the root stem of `domain_url`, e.g. 'Acme Cloud').
domain_urlYesCanonical HTTPS website URL for the brand (e.g. 'https://acmecloud.com'). Bound to the license's allowed domain slots.
competitorsNoOptional list of competitor names for semantic disambiguation in `disambiguatingDescription` (0 to 15 strings).
official_factsYesNon-empty list of verified ground-truth facts, pricing, certifications, or SLAs (1 to 30 strings; any embedded URLs must belong to `domain_url`).
industry_contextYesPrimary industry category, target audience, and market positioning (4 to 240 characters).
products_or_servicesYesNon-empty list of core products, services, or clinical/technical offerings (1 to 25 strings).

Output Schema

NameRequiredDescription
brand_nameNoCanonical brand name.
domain_urlNoNormalized HTTPS domain URL.
json_ld_scriptNoHTML `<script type='application/ld+json'>` block.
ai_catalog_jsonNoJSON payload for `/.well-known/ai-catalog.json`.
llms_txt_contentNoComplete `/llms.txt` markdown manifest for AI crawlers.
domain_seal_sha256No64-character hex SHA-256 authenticity seal verifiable at `https://danteix.com/api/mcp/verify-seal`.
robots_txt_snippetNoCrawler allow rules for `robots.txt`.

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive, and the description still adds material context beyond them: deterministic synthesis under 300ms, zero LLM calls, never touches external sites, consumes no live audit credits, and degrades to a 30% preview without an API key versus full sealed output with a paid key. Tier/domain-slot limits are also disclosed, which annotations cannot express.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the artifact list, then organized into labeled sections (Side effects & latency, Constraints, Auth & quota, When to use) that scan well. It is long and restates return keys that the existing output schema already documents, which is the only waste.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a multi-input synthesis tool with auth tiers and cross-field constraints, everything an agent needs to call it correctly is present: required inputs, constraint invariants, cost/credit behavior, latency, and the preview-vs-full-key distinction. Return values are covered by the output schema, so the description needn't go further.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3; the description earns above that by documenting cross-field constraints not in the schema — `brand_name` must match the stem of `domain_url`, and URLs inside `official_facts` must belong to `domain_url`. It doesn't add per-parameter guidance beyond those invariants, so not a 5.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (Generate) and a concrete set of resources (`/llms.txt`, `/.well-known/ai-catalog.json`, Schema.org JSON-LD types, robots.txt AI-crawler rules), so an agent knows exactly what artifact comes back. It is clearly separable from siblings like `dante.run_audit` or `dante.remediate_hallucination`, which are named.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicit 'When to use' clause plus an explicit alternative with its triggering condition ('use `dante.remediate_hallucination` instead when countering a specific false AI claim'). This is routing guidance an agent can act on without opening either schema.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

dante.probe_geo_shareProbe AI Search Share of Model (GEO)A
Read-onlyIdempotent
Inspect

Measure Generative Engine Optimization (GEO) Share of Model (SoM) and First-Choice Win Rate for a brand across OpenAI (ChatGPT), Google Gemini, and Perplexity. Returns a structured JSON object (target_name, som_score, win_rate, consensus_quorum, oracle_breakdown, and tier_mode). Side effects & latency: Strictly read-only (readOnlyHint=true) and non-destructive; does not mutate customer records. Completes in <1s when live=false or 4-12s when live=true. Auth & quota: Runs at $0 cost in 30% preview mode when DANTE_API_KEY is omitted (live defaults to false). Setting live=true requires a valid dnt_live_ API key and consumes 1 monthly live probe credit. When to use: Use dante.probe_geo_share when you only need a fast, read-only check of how often AI assistants recommend a brand versus its competitors. Use dante.run_audit instead when you also need social sentiment, sarcasm calibration, and bot detection, or dante.remediate_hallucination when an AI engine is stating a specific false claim about the brand.

NameRequiredDescriptionDefault
langNoPrompt and response language: 'en' for English or 'es' for Spanish (defaults to 'es').es
liveNoSet to true to query live AI models over the network (4-12s latency, requires a paid DANTE_API_KEY; false returns an instant <1s deterministic benchmark).
target_nameYesBrand, company, or product name to benchmark across AI answer engines (2 to 120 characters).
vertical_modeNoDomain prompt template selector: 'COMMERCIAL_BRAND' (buyer recommendation prompts), 'INTERNAL_PROJECT' (technical adoption prompts), or 'POLITICAL_WAR_ROOM' (public trust prompts).COMMERCIAL_BRAND
industry_or_contextYesCategory, buyer intent query context, and geographic region (3 to 240 characters, e.g. 'Cloud CRM for mid-market sales teams in the US').

Output Schema

NameRequiredDescription
win_rateNoPrimary recommendation win rate across AI engines.
som_scoreNoShare of Model ratio formatted to 4 decimal places.
tier_modeNoActive license tier ('FREE_TRIAL_30PCT_PREVIEW', 'PRO_INHOUSE', or 'AGENCY_PARTNER').
target_nameNoEvaluated brand or entity name.
oracle_breakdownNoPer-model citation and recommendation verdicts.

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover read-only, idempotent, open-world and non-destructive traits, but the description goes well beyond them: sub-1s vs 4-12s latency, $0 preview mode when DANTE_API_KEY is omitted, and the 1-credit monthly quota for live probes. These are the operational details an agent needs before spending a paid credit.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the purpose, then segmented into 'Side effects & latency', 'Auth & quota', and 'When to use' labels, which scan well. It is on the long side and briefly restates the readOnlyHint annotation, but no sentence is filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

A live, quota-consuming probe with an output schema and 5 parameters is well served here: latency, cost, auth requirements, output fields, and sibling routing are all covered. An agent can call it correctly without checking anything else.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with enum descriptions for lang and vertical_mode, so the baseline is 3. The description adds real value by explaining the cost/latency consequence of live=true and the preview-mode fallback, though it does not touch on vertical_mode selection beyond what the enum labels already say.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb-and-resource pair ('Measure GEO Share of Model and First-Choice Win Rate') with named engines (OpenAI, Gemini, Perplexity), so the agent knows exactly what is produced. It also explicitly tells the agent how this differs from dante.run_audit and dante.remediate_hallucination.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The 'When to use' paragraph names two alternatives with the exact conditions that select them: run_audit when social sentiment/sarcasm/bot detection is needed, and remediate_hallucination when a specific false claim must be fixed. No inference is left to the agent.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

dante.query_street_frictionQuery Customer Friction & Social Signal VaultA
Read-onlyIdempotent
Inspect

Search the caller's isolated tenant signal vault for customer complaints, sarcasm/irony-calibrated sentiment records, coordinated bot anomaly alerts, and unmet competitor gaps. Returns a JSON object (query, voice_filter, matched_count, records, and tier_mode). Side effects & latency: Strictly read-only (readOnlyHint=true), deterministic, and zero external LLM cost; executes in <200ms against the isolated tenant index. Never accesses or leaks signals belonging to other tenants. Auth & quota: Consumes 0 live audit credits. Without DANTE_API_KEY, searches the isolated free-trial sandbox vault and returns a 30% preview; with a paid dnt_live_ key, searches the caller's dedicated private tenant vault and returns full records. When to use: Use dante.query_street_friction to inspect specific recurring customer pain points (e.g. 'pricing OR billing OR delay') after running dante.run_audit. Do not use this tool to query live external LLMs (use dante.probe_geo_share instead) or to generate website schema files (use dante.forge_geo_shield instead).

NameRequiredDescriptionDefault
limitNoMaximum number of matching signal records to return (integer between 1 and 100, defaults to 10).
queryYesSearch keywords or boolean expression to match against indexed social and customer signals (2 to 240 chars, e.g. 'pricing OR support OR latency').
voice_filterNoFilter records by source voice category: 'ALL' (every source), 'OWN_VOICE' (official brand channels), 'ALLY_ADVERSARY_VOICE' (competitors/press/affiliates), or 'SECTOR_STREET_VOICE' (organic customers).ALL

Output Schema

NameRequiredDescription
queryNoExecuted search query string.
recordsNoList of attested customer signal records with sentiment and bot-risk flags.
tier_modeNoActive license tier.
voice_filterNoApplied voice category filter.
matched_countNoNumber of matching records returned.

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the safety profile, but the description goes well beyond them: sub-200ms latency, determinism, zero external LLM cost, zero audit-credit consumption, and explicit tenant isolation ('never accesses or leaks signals belonging to other tenants'). Critically, it discloses the credential-dependent behavior — without DANTE_API_KEY a free-trial sandbox returns a 30% preview, while a dnt_live_ key returns full records — which materially changes how an agent should interpret matched_count and result completeness.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Long but deliberately segmented into labelled blocks (Returns, Side effects & latency, Auth & quota, When to use) that let an agent jump to the relevant clause. Every sentence carries routing, safety, or quota information with no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 3-parameter read tool this covers the decision-relevant surface: scope, cost, latency, tenant isolation, and the credential tier that determines result completeness. The only slack is that it enumerates return fields (`query`, `voice_filter`, `matched_count`, `records`, `tier_mode`) that an output schema already declares, which is mild duplication rather than an information gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the schema already documents all three parameters including the voice_filter enum values and limit bounds, so the description need not compensate. The description adds only a runnable boolean query example ('pricing OR billing OR delay'); it says nothing about how voice_filter or limit affect results, so it earns baseline rather than above it.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The first sentence names a specific verb (search) and a precisely scoped resource (the caller's isolated tenant signal vault) and enumerates the record types returned (complaints, calibrated sentiment, bot alerts, competitor gaps). It also explicitly excludes sibling responsibilities, so an agent can distinguish it from dante.probe_geo_share and dante.forge_geo_shield without opening either schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides an explicit 'When to use' trigger (inspecting recurring pain points after running dante.run_audit) and a 'Do not use' clause that names the two alternative tools for the excluded cases. Both the positive and negative routing conditions are stated, leaving nothing to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

dante.remediate_hallucinationRemediate AI Hallucination with ClaimReview CounterweightsA
Read-onlyIdempotent
Inspect

Synthesize structured semantic counterweight artifacts to correct an inaccurate or outdated claim (hallucination) made by an AI assistant (ChatGPT, Perplexity, or Google Gemini) about a brand. Returns a JSON package (markdown_counterweight_block, html_claim_review_snippet, faq_json_ld_script, verification_prompts, and domain_seal_sha256). Side effects & latency: Purely deterministic, read-only synthesis (<300ms) with zero external LLM calls and zero destructive behavior. Security & parameter constraints: brand_name must match the stem of domain_url, and verified_fact must not contain third-party foreign URLs. Auth & quota: Consumes 0 live audit credits. Runs in 30% preview mode at $0 cost when DANTE_API_KEY is omitted; returns 100% unredacted ClaimReview and FAQPage artifacts when called with a paid dnt_live_ license key. When to use: Use dante.remediate_hallucination when an AI assistant is actively stating false pricing, wrong features, or outdated ownership about a brand and you need an authoritative Schema.org ClaimReview + FAQPage correction block. Use dante.forge_geo_shield instead for general site-wide /llms.txt and Organization schema generation, or dante.probe_geo_share to check current AI citations.

NameRequiredDescriptionDefault
langNoLanguage for generated `ClaimReview` HTML, `FAQPage JSON-LD`, and verification prompts: 'en' for English or 'es' for Spanish (defaults to 'es').es
brand_nameYesOfficial brand or organization name (2 to 80 characters; must align with `domain_url`).
domain_urlYesCanonical HTTPS URL of the official brand website where the correction will be published (e.g. 'https://acmecloud.com').
target_oracleYesName of the AI assistant exhibiting the inaccurate claim (e.g. 'ChatGPT', 'Perplexity', 'Gemini', or 'Claude').
verified_factYesAuthoritative, verifiable ground-truth correction supported by first-party evidence on `domain_url` (10 to 1200 characters).
hallucination_claimYesExact inaccurate, fabricated, or outdated statement currently produced by the AI engine (10 to 600 characters).
source_url_to_counterNoOptional outdated third-party article or directory URL that the AI assistant is erroneously citing as its source.

Output Schema

NameRequiredDescription
brand_nameNoOfficial brand name.
target_oracleNoTarget AI engine remediated.
domain_seal_sha256No64-character hex SHA-256 cryptographic authenticity seal.
faq_json_ld_scriptNo`Schema.org FAQPage` JSON-LD script overriding the false claim.
verification_promptsNoFollow-up prompts to verify the AI assistant has updated its answer.
html_claim_review_snippetNoSemantic HTML + microdata `ClaimReview` fact-check block.
markdown_counterweight_blockNoMarkdown correction block for `/llms.txt` and documentation pages.

TDQS

A4.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations, the description discloses latency (<300ms), determinism, no external LLM calls, zero destructive behavior, credit consumption, and preview-mode behavior depending on API key. These are meaningful operational behaviors not captured by annotations alone.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is dense but well structured, using inline labels for side effects, security constraints, auth, and when-to-use. It is front-loaded with the purpose and return package, and every sentence contributes actionable context.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite having an output schema, the description still clarifies return artifacts and modes of operation. Combined with auth, quota, security constraints, and sibling-tool routing, it gives an agent everything needed to invoke the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema already documents individual parameters. The description adds cross-parameter constraints the schema does not convey: brand_name must match the stem of domain_url, and verified_fact must not contain third-party foreign URLs.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a precise verb and resource: 'Synthesize structured semantic counterweight artifacts to correct an inaccurate or outdated claim' about a brand. It explicitly names the output artifacts and distinguishes itself from sibling tools like dante.forge_geo_shield and dante.probe_geo_share.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It states exactly when to use this tool: when an AI assistant actively states false pricing, wrong features, or outdated ownership about a brand. It also names alternative tools for different scenarios, such as forge_geo_shield for site-wide generation and probe_geo_share for citation checking.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

dante.run_auditRun Full Brand Reputation & Multi-Model GEO AuditA
Idempotent
Inspect

Execute a comprehensive 9-dimension brand reputation, social sentiment, and Generative Engine Optimization (GEO) audit across ChatGPT, Google Gemini, and Perplexity. Returns a structured JSON report (audit_id, fsm_state, som_score, win_rate, own_voice_count, ally_adversary_count, sector_street_count, recalibrated_count, suspected_bot_count, and cryptographic SHA-256 attestation). Side effects & latency: Non-destructive; persists an isolated audit snapshot in the caller's tenant vault so subsequent calls to dante.query_street_friction can search the indexed signals. Completes in <1s when live_geo=false (deterministic baseline) or 5-15s when live_geo=true (live multi-LLM network queries). Auth & quota: If DANTE_API_KEY is omitted, runs in free 30% preview mode at $0 cost (live_geo is forced to false). With a paid dnt_live_ key (PRO_INHOUSE 25/mo or AGENCY_PARTNER 100/mo), returns 100% unredacted results and consumes 1 monthly quota unit when live_geo=true. When to use: Use dante.run_audit for a complete end-to-end diagnostic combining social sentiment, bot detection, and AI search share. Use dante.probe_geo_share instead when you only need a fast AI citation Share-of-Model check without social listening, or dante.forge_geo_shield when you already know your brand facts and want to generate /llms.txt and Schema.org JSON-LD.

NameRequiredDescriptionDefault
langNoReport and prompt language code: 'en' for English or 'es' for Spanish (defaults to 'es').es
csv_pathNoOptional relative path to a local CSV social signal dataset for offline evaluation (omit for cloud gateway audits).
live_geoNoSet to true to execute live network queries against ChatGPT, Gemini, and Perplexity (takes 5-15s and requires a paid DANTE_API_KEY; defaults to false for <1s deterministic baseline).
target_nameYesBrand, product, organization, or public figure name to audit (2 to 120 characters, e.g. 'Stripe' or 'Mayo Clinic').
vertical_modeNoEvaluation rubric mode: 'COMMERCIAL_BRAND' for B2B/B2C companies, 'INTERNAL_PROJECT' for software/product launches, or 'POLITICAL_WAR_ROOM' for public figures and civic campaigns.COMMERCIAL_BRAND
industry_or_contextYesIndustry vertical, competitive niche, and geographic market context (3 to 240 characters, e.g. 'B2B payment processing in North America').

Output Schema

NameRequiredDescription
audit_idNoUnique audit identifier (e.g. AUD-...).
win_rateNoFirst-choice recommendation win rate across queried AI models.
fsm_stateNoTerminal execution state of the audit pipeline.
som_scoreNoFixed-point Share of Model score in [0.0000, 1.0000].
tier_modeNoActive license tier ('FREE_TRIAL_30PCT_PREVIEW', 'PRO_INHOUSE', or 'AGENCY_PARTNER').
target_nameNoAudited brand or entity name.

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes well beyond the annotations (which only say openWorld=true, destructive=false, idempotent=true) by disclosing the persistence side effect — an isolated snapshot written to the caller's tenant vault that later feeds dante.query_street_friction. It also quantifies latency under both live_geo modes and explains auth/quota: unauthenticated runs force live_geo=false with 30% redacted preview at $0, while paid keys consume one monthly quota unit per live call.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with purpose, then side effects and latency, then auth, then tool routing — a sensible reading order that lets an agent stop early. Docked one point because the parenthetical enumeration of return fields (audit_id, fsm_state, som_score, ...) duplicates the output schema it already has.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a costly, network-touching, tenant-persisting operation this covers everything an agent must know before calling: cost model, latency, side effects, redaction, and sibling routing. Return values are covered by the output schema and the description need not restate them.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3; the description earns an extra point by adding cross-parameter behavior the schema cannot express — notably that omitting DANTE_API_KEY overrides live_geo to false regardless of the caller's value, and that live_geo drives the <1s vs 5-15s cost. It does not elaborate on csv_path or vertical_mode beyond what the enum descriptions already give.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (Execute) and a precisely scoped resource: a 9-dimension brand reputation, social sentiment, and GEO audit across ChatGPT, Gemini, and Perplexity. An agent can distinguish this full diagnostic from the narrower siblings (a citation-only probe, an asset generator) without opening any schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Includes an explicit 'When to use' clause plus two named alternatives with the exact conditions that select them: dante.probe_geo_share for a fast Share-of-Model check without social listening, dante.forge_geo_shield when brand facts are already known. Exclusion criteria and alternatives are both spelled out.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 5 tool updates
    • Changeddante.forge_geo_shield20 fields changed
      • changedInput schema / properties / brand_name / description
        Previous value: -"Official brand or organization name (2..80 chars)"New value: +"Official brand or organization name (2 to 80 characters; must correspond to the root stem of `domain_url`, e.g. 'Acme Cloud')."
      • addedInput schema / properties / brand_name / maxLength
        Added value: +80
      • addedInput schema / properties / brand_name / minLength
        Added value: +2
      • changedInput schema / properties / competitors / description
        Previous value: -"Optional list of compared competitors"New value: +"Optional list of competitor names for semantic disambiguation in `disambiguatingDescription` (0 to 15 strings)."
      • addedInput schema / properties / competitors / maxItems
        Added value: +15
      • changedInput schema / properties / domain_url / description
        Previous value: -"Canonical website URL (e.g. https://mimarca.com)"New value: +"Canonical HTTPS website URL for the brand (e.g. 'https://acmecloud.com'). Bound to the license's allowed domain slots."
      • addedInput schema / properties / domain_url / maxLength
        Added value: +253
      • addedInput schema / properties / domain_url / minLength
        Added value: +8
      • changedInput schema / properties / industry_context / description
        Previous value: -"Industry category and market positioning"New value: +"Primary industry category, target audience, and market positioning (4 to 240 characters)."
      • addedInput schema / properties / industry_context / maxLength
        Added value: +240
      • addedInput schema / properties / industry_context / minLength
        Added value: +4
      • changedInput schema / properties / lang / description
        Previous value: -"Output language: 'es' or 'en'"New value: +"Language for generated `/llms.txt` and `JSON-LD` descriptions: 'en' for English or 'es' for Spanish (defaults to 'es')."
      • addedInput schema / properties / lang / enum
        Added value: +[
        +  "es",
        +  "en"
        +]
      • changedInput schema / properties / official_facts / description
        Previous value: -"Verified ground-truth facts, SLAs, pricing, or certifications"New value: +"Non-empty list of verified ground-truth facts, pricing, certifications, or SLAs (1 to 30 strings; any embedded URLs must belong to `domain_url`)."
      • addedInput schema / properties / official_facts / maxItems
        Added value: +30
      • addedInput schema / properties / official_facts / minItems
        Added value: +1
      • changedInput schema / properties / products_or_services / description
        Previous value: -"List of core products, services, or technical capabilities"New value: +"Non-empty list of core products, services, or clinical/technical offerings (1 to 25 strings)."
      • addedInput schema / properties / products_or_services / maxItems
        Added value: +25
      • addedInput schema / properties / products_or_services / minItems
        Added value: +1
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "ai_catalog_json": {
        +      "description": "JSON payload for `/.well-known/ai-catalog.json`.",
        +      "type": "string"
        +    },
        +    "brand_name": {
        +      "description": "Canonical brand name.",
        +      "type": "string"
        +    },
        +    "domain_seal_sha256": {
        +      "description": "64-character hex SHA-256 authenticity seal verifiable at `https://danteix.com/api/mcp/verify-seal`.",
        +      "type": "string"
        +    },
        +    "domain_url": {
        +      "description": "Normalized HTTPS domain URL.",
        +      "type": "string"
        +    },
        +    "json_ld_script": {
        +      "description": "HTML `<script type='application/ld+json'>` block.",
        +      "type": "string"
        +    },
        +    "llms_txt_content": {
        +      "description": "Complete `/llms.txt` markdown manifest for AI crawlers.",
        +      "type": "string"
        +    },
        +    "robots_txt_snippet": {
        +      "description": "Crawler allow rules for `robots.txt`.",
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changeddante.probe_geo_share12 fields changed
      • changedInput schema / properties / industry_or_context / description
        Previous value: -"Industry category or domain context"New value: +"Category, buyer intent query context, and geographic region (3 to 240 characters, e.g. 'Cloud CRM for mid-market sales teams in the US')."
      • addedInput schema / properties / industry_or_context / maxLength
        Added value: +240
      • addedInput schema / properties / industry_or_context / minLength
        Added value: +3
      • changedInput schema / properties / lang / description
        Previous value: -"Language: 'es' or 'en'"New value: +"Prompt and response language: 'en' for English or 'es' for Spanish (defaults to 'es')."
      • addedInput schema / properties / lang / enum
        Added value: +[
        +  "es",
        +  "en"
        +]
      • changedInput schema / properties / live / description
        Previous value: -"Execute live AI Oracle queries"New value: +"Set to true to query live AI models over the network (4-12s latency, requires a paid DANTE_API_KEY; false returns an instant <1s deterministic benchmark)."
      • changedInput schema / properties / target_name / description
        Previous value: -"Target brand or entity to evaluate across AI Oracles"New value: +"Brand, company, or product name to benchmark across AI answer engines (2 to 120 characters)."
      • addedInput schema / properties / target_name / maxLength
        Added value: +120
      • addedInput schema / properties / target_name / minLength
        Added value: +2
      • changedInput schema / properties / vertical_mode / description
        Previous value: -"Vertical mode: 'INTERNAL_PROJECT', 'COMMERCIAL_BRAND', or 'POLITICAL_WAR_ROOM'"New value: +"Domain prompt template selector: 'COMMERCIAL_BRAND' (buyer recommendation prompts), 'INTERNAL_PROJECT' (technical adoption prompts), or 'POLITICAL_WAR_ROOM' (public trust prompts)."
      • addedInput schema / properties / vertical_mode / enum
        Added value: +[
        +  "COMMERCIAL_BRAND",
        +  "INTERNAL_PROJECT",
        +  "POLITICAL_WAR_ROOM"
        +]
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "oracle_breakdown": {
        +      "description": "Per-model citation and recommendation verdicts.",
        +      "type": "array"
        +    },
        +    "som_score": {
        +      "description": "Share of Model ratio formatted to 4 decimal places.",
        +      "type": "string"
        +    },
        +    "target_name": {
        +      "description": "Evaluated brand or entity name.",
        +      "type": "string"
        +    },
        +    "tier_mode": {
        +      "description": "Active license tier ('FREE_TRIAL_30PCT_PREVIEW', 'PRO_INHOUSE', or 'AGENCY_PARTNER').",
        +      "type": "string"
        +    },
        +    "win_rate": {
        +      "description": "Primary recommendation win rate across AI engines.",
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changeddante.query_street_friction9 fields changed
      • changedInput schema / properties / limit / description
        Previous value: -"Maximum records to return (1 to 100)"New value: +"Maximum number of matching signal records to return (integer between 1 and 100, defaults to 10)."
      • addedInput schema / properties / limit / maximum
        Added value: +100
      • addedInput schema / properties / limit / minimum
        Added value: +1
      • changedInput schema / properties / query / description
        Previous value: -"Search keywords (e.g. 'pricing OR support OR latency')"New value: +"Search keywords or boolean expression to match against indexed social and customer signals (2 to 240 chars, e.g. 'pricing OR support OR latency')."
      • addedInput schema / properties / query / maxLength
        Added value: +240
      • addedInput schema / properties / query / minLength
        Added value: +2
      • changedInput schema / properties / voice_filter / description
        Previous value: -"Voice filter: 'ALL', 'OWN_VOICE', 'ALLY_ADVERSARY_VOICE', or 'SECTOR_STREET_VOICE'"New value: +"Filter records by source voice category: 'ALL' (every source), 'OWN_VOICE' (official brand channels), 'ALLY_ADVERSARY_VOICE' (competitors/press/affiliates), or 'SECTOR_STREET_VOICE' (organic customers)."
      • addedInput schema / properties / voice_filter / enum
        Added value: +[
        +  "ALL",
        +  "OWN_VOICE",
        +  "ALLY_ADVERSARY_VOICE",
        +  "SECTOR_STREET_VOICE"
        +]
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "matched_count": {
        +      "description": "Number of matching records returned.",
        +      "type": "integer"
        +    },
        +    "query": {
        +      "description": "Executed search query string.",
        +      "type": "string"
        +    },
        +    "records": {
        +      "description": "List of attested customer signal records with sentiment and bot-risk flags.",
        +      "type": "array"
        +    },
        +    "tier_mode": {
        +      "description": "Active license tier.",
        +      "type": "string"
        +    },
        +    "voice_filter": {
        +      "description": "Applied voice category filter.",
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changeddante.remediate_hallucination20 fields changed
      • changedInput schema / properties / brand_name / description
        Previous value: -"Official brand name"New value: +"Official brand or organization name (2 to 80 characters; must align with `domain_url`)."
      • addedInput schema / properties / brand_name / maxLength
        Added value: +80
      • addedInput schema / properties / brand_name / minLength
        Added value: +2
      • changedInput schema / properties / domain_url / description
        Previous value: -"Canonical website URL"New value: +"Canonical HTTPS URL of the official brand website where the correction will be published (e.g. 'https://acmecloud.com')."
      • addedInput schema / properties / domain_url / maxLength
        Added value: +253
      • addedInput schema / properties / domain_url / minLength
        Added value: +8
      • changedInput schema / properties / hallucination_claim / description
        Previous value: -"The inaccurate or outdated claim made by the AI (10..600 chars)"New value: +"Exact inaccurate, fabricated, or outdated statement currently produced by the AI engine (10 to 600 characters)."
      • addedInput schema / properties / hallucination_claim / maxLength
        Added value: +600
      • addedInput schema / properties / hallucination_claim / minLength
        Added value: +10
      • changedInput schema / properties / lang / description
        Previous value: -"Output language: 'es' or 'en'"New value: +"Language for generated `ClaimReview` HTML, `FAQPage JSON-LD`, and verification prompts: 'en' for English or 'es' for Spanish (defaults to 'es')."
      • addedInput schema / properties / lang / enum
        Added value: +[
        +  "es",
        +  "en"
        +]
      • changedInput schema / properties / source_url_to_counter / description
        Previous value: -"Optional stale third-party URL being cited by the AI"New value: +"Optional outdated third-party article or directory URL that the AI assistant is erroneously citing as its source."
      • addedInput schema / properties / source_url_to_counter / maxLength
        Added value: +500
      • changedInput schema / properties / target_oracle / description
        Previous value: -"AI Oracle exhibiting the hallucination (e.g. ChatGPT, Perplexity, Gemini)"New value: +"Name of the AI assistant exhibiting the inaccurate claim (e.g. 'ChatGPT', 'Perplexity', 'Gemini', or 'Claude')."
      • addedInput schema / properties / target_oracle / maxLength
        Added value: +60
      • addedInput schema / properties / target_oracle / minLength
        Added value: +2
      • changedInput schema / properties / verified_fact / description
        Previous value: -"The verified official ground-truth fact (10..1200 chars)"New value: +"Authoritative, verifiable ground-truth correction supported by first-party evidence on `domain_url` (10 to 1200 characters)."
      • addedInput schema / properties / verified_fact / maxLength
        Added value: +1200
      • addedInput schema / properties / verified_fact / minLength
        Added value: +10
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "brand_name": {
        +      "description": "Official brand name.",
        +      "type": "string"
        +    },
        +    "domain_seal_sha256": {
        +      "description": "64-character hex SHA-256 cryptographic authenticity seal.",
        +      "type": "string"
        +    },
        +    "faq_json_ld_script": {
        +      "description": "`Schema.org FAQPage` JSON-LD script overriding the false claim.",
        +      "type": "string"
        +    },
        +    "html_claim_review_snippet": {
        +      "description": "Semantic HTML + microdata `ClaimReview` fact-check block.",
        +      "type": "string"
        +    },
        +    "markdown_counterweight_block": {
        +      "description": "Markdown correction block for `/llms.txt` and documentation pages.",
        +      "type": "string"
        +    },
        +    "target_oracle": {
        +      "description": "Target AI engine remediated.",
        +      "type": "string"
        +    },
        +    "verification_prompts": {
        +      "description": "Follow-up prompts to verify the AI assistant has updated its answer.",
        +      "type": "array"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changeddante.run_audit14 fields changed
      • changedInput schema / properties / csv_path / description
        Previous value: -"Optional path to CSV fixture"New value: +"Optional relative path to a local CSV social signal dataset for offline evaluation (omit for cloud gateway audits)."
      • addedInput schema / properties / csv_path / maxLength
        Added value: +260
      • changedInput schema / properties / industry_or_context / description
        Previous value: -"Industry vertical, market niche, or regional context"New value: +"Industry vertical, competitive niche, and geographic market context (3 to 240 characters, e.g. 'B2B payment processing in North America')."
      • addedInput schema / properties / industry_or_context / maxLength
        Added value: +240
      • addedInput schema / properties / industry_or_context / minLength
        Added value: +3
      • changedInput schema / properties / lang / description
        Previous value: -"Output language: 'es' or 'en'"New value: +"Report and prompt language code: 'en' for English or 'es' for Spanish (defaults to 'es')."
      • addedInput schema / properties / lang / enum
        Added value: +[
        +  "es",
        +  "en"
        +]
      • changedInput schema / properties / live_geo / description
        Previous value: -"Whether to run live AI Oracle sweeps"New value: +"Set to true to execute live network queries against ChatGPT, Gemini, and Perplexity (takes 5-15s and requires a paid DANTE_API_KEY; defaults to false for <1s deterministic baseline)."
      • changedInput schema / properties / target_name / description
        Previous value: -"Brand, organization, product, or public entity"New value: +"Brand, product, organization, or public figure name to audit (2 to 120 characters, e.g. 'Stripe' or 'Mayo Clinic')."
      • addedInput schema / properties / target_name / maxLength
        Added value: +120
      • addedInput schema / properties / target_name / minLength
        Added value: +2
      • changedInput schema / properties / vertical_mode / description
        Previous value: -"Vertical mode: 'INTERNAL_PROJECT', 'COMMERCIAL_BRAND', or 'POLITICAL_WAR_ROOM'"New value: +"Evaluation rubric mode: 'COMMERCIAL_BRAND' for B2B/B2C companies, 'INTERNAL_PROJECT' for software/product launches, or 'POLITICAL_WAR_ROOM' for public figures and civic campaigns."
      • addedInput schema / properties / vertical_mode / enum
        Added value: +[
        +  "COMMERCIAL_BRAND",
        +  "INTERNAL_PROJECT",
        +  "POLITICAL_WAR_ROOM"
        +]
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "audit_id": {
        +      "description": "Unique audit identifier (e.g. AUD-...).",
        +      "type": "string"
        +    },
        +    "fsm_state": {
        +      "description": "Terminal execution state of the audit pipeline.",
        +      "type": "string"
        +    },
        +    "som_score": {
        +      "description": "Fixed-point Share of Model score in [0.0000, 1.0000].",
        +      "type": "string"
        +    },
        +    "target_name": {
        +      "description": "Audited brand or entity name.",
        +      "type": "string"
        +    },
        +    "tier_mode": {
        +      "description": "Active license tier ('FREE_TRIAL_30PCT_PREVIEW', 'PRO_INHOUSE', or 'AGENCY_PARTNER').",
        +      "type": "string"
        +    },
        +    "win_rate": {
        +      "description": "First-choice recommendation win rate across queried AI models.",
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
  2. 5 tool updates
    • First observeddante.forge_geo_shield
    • First observeddante.probe_geo_share
    • First observeddante.query_street_friction
    • First observeddante.remediate_hallucination
    • First observeddante.run_audit

Related MCP Servers

  • A
    license
    Not graded
    quality
    C
    maintenance
    Remote MCP server that lets AI assistants read tracked competitive intelligence — competitor news, reviews, website changes, social posts and ads — and act on it by managing projects, competitors, battle cards, reports and canvases. Every answer carries a source and a date, and write actions only publish when explicitly shared.
    MIT
  • A
    license
    A
    quality
    C
    maintenance
    Enables brand visibility monitoring across major AI platforms like ChatGPT, Claude, Gemini, and Perplexity. It allows users to track visibility scores, analyze competitor data, and receive actionable insights to improve AI-generated brand recommendations.
    16
    18 npm
    1
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Browse IndustryLens's published competitive-intelligence reports and head-to-head competitor comparisons from any AI agent — real, source-backed data.
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources