Is the Aon MCP server down?

mcp-registry/pro.aon/mcp · v1.0.0

Also listed as glama/aonpro-dev/aon-mcp-server

healthy
Last checked 2026-10-26 14:24 UTC · handshake 312ms

As of 2026-10-26 14:24 UTC, the Aon MCP server is up with a Glimind reliability score of 99/100 (grade A). Over the last 30 days it answered 100% of Glimind's liveness checks.

uptime (30d checks)
100%
checks observed
4,109
outages (90d)
0
tools
5

Real, buyable product and service offers — live pricing and trackable links for any MCP agent.

Install Aon MCP server

Add to Cursor Add to VS Code

Claude Code

claude mcp add --transport http aon-mcp-server https://api.aon.pro/v1/mcp

Claude Desktop · Windsurf · Cline (mcpServers JSON)

{
  "mcpServers": {
    "aon-mcp-server": {
      "type": "http",
      "url": "https://api.aon.pro/v1/mcp"
    }
  }
}

Third-party server, listed as discovered. Review its source before installing.

Agent-readiness: D (69/100)

D (69/100): 0 error(s), 5 warning(s) across 5 tool(s); ~3,372 tokens of tool definitions.
Scores higher than 4% of 15,751 MCP servers Glimind has audited.
Its tool list costs an agent ~3,372 tokens per session — more than 55% of servers.
68 → 69 since 2026-10-17
no tool-poisoning patterns
Schemas100
Descriptions76
Safety hints4
Token cost80
Client compatibility70
Protocol40
Reliability100
Stability76

What to fix (7)

1 tool definition(s) exceed ~1,200 tokens each (largest: aon_search_offers, ~1,987).

Move long reference material out of descriptions (link a doc or expose a resource), drop repeated examples, and collapse large enums. Trimming these to ~600 tokens saves ~1,387 tokens every session. How to fix →

Tools: aon_search_offers · saves ~1,387 tokens/session

5 of 5 tool(s) carry no readOnlyHint/destructiveHint annotations.

Annotate read-only tools with {"readOnlyHint": true}. Agents and gateways can then run them without a confirmation prompt, and route around destructive ones. How to fix →

Tools: aon_get_category_schema, aon_manage_watch, aon_resolve_category, aon_search_offers, aon_submit_feedback

4 parameter(s) across 1 tool(s) have no description.

Add a "description" to each parameter with its format and an example ("ISO 8601 date, e.g. 2026-10-17"). This is the commonest cause of wrong arguments on the first call. How to fix →

Tools: aon_search_offers

1 tool(s) look like they change state (create/send/delete/pay…) but declare no destructiveHint.

Set annotations {"readOnlyHint": false, "destructiveHint": true|false, "idempotentHint": …}. Clients use these to ask the user before a side effect and to auto-approve safe reads. How to fix →

Tools: aon_submit_feedback

Negotiates MCP 2024-11-05. Structured output, tool output schemas and elicitation arrived in 2025-06-18.

Upgrade the MCP SDK and negotiate 2025-06-18 or newer. How to fix →

No tool declares an outputSchema.

Declare outputSchema and return structuredContent (MCP 2025-06-18+). Agents can then parse results without guessing, and chain tools reliably. How to fix →

In the last 30 days: 0 tool(s) removed and 6 schema change(s).

Add new tools or optional parameters instead of renaming or removing; deprecate first (say so in the description) and remove later. Agents cache tool contracts. How to fix →

Auto-fix: 4 corrected tool definitions

Paste-ready definitions with the problems above fixed. Changes marked verify need a human look. 1 tool(s) still need parameter descriptions written by someone who knows the API. All of them as JSON: /v1/readiness/mcp-registry%2Fpro.aon%2Fmcp/fixes

aon_get_category_schema 1 change
{
  "name": "aon_get_category_schema",
  "description": "Hosted AON MCP category-guidance extension. This server returns it from tools/list, but Protocol v1.0 does not require it. Get the decision factors buyers weigh inside one AON Taxonomy v1 category, so you can ask the right clarifying question before searching. Call it when intent is vague (\"I need a card\", \"looking for software\") — each factor comes with the concrete options to choose between. Pass 'all' to see which categories currently ship a decision schema. Categories without a schema return",
  "inputSchema": {
    "type": "object",
    "required": [
      "category_id"
    ],
    "properties": {
      "category_id": {
        "type": "string",
        "description": "AON Taxonomy v1 category id such as finance.credit_lending, computers_electronics.computers.software, arts_entertainment.adult_entertainment, arts_entertainment.igaming, or 'all' to list the categories that have a schema. Use aon_resolve_category to obtain an id from free text."
      },
      "placement_id": {
        "type": "string",
        "description": "Optional ad placement id. This argument takes precedence over the X-AON-Placement-Id HTTP header; when omitted, the header supplies the placement. The placement must be active and identifies the application that receives attribution. If neither is provided (or the value is empty), the call runs in anonymous mode under AON's shared default placement: it works, but earns no attribution or revenue."
      }
    }
  },
  "annotations": {
    "readOnlyHint": true
  }
}
aon_resolve_category 1 change
{
  "name": "aon_resolve_category",
  "description": "Turn a free-text product or service description into AON Taxonomy v1 category ids you can safely pass to aon_search_offers. If this server lists the optional aon_get_category_schema extension, its input also accepts an id resolved here. Call this first whenever you would otherwise be guessing at a category id — the taxonomy is fixed, and invented ids come back as corrections instead of results. Returns `matches` (up to 3 candidates, each with `category_id`, `display_name` and a 0-1 `score`, best",
  "inputSchema": {
    "type": "object",
    "required": [
      "query"
    ],
    "properties": {
      "query": {
        "type": "string",
        "description": "What the user is shopping for, in words: \"hiking boots\", \"team chat software\", \"credit card\". A category id or a legacy alias also resolves."
      },
      "placement_id": {
        "type": "string",
        "description": "Optional ad placement id. This argument takes precedence over the X-AON-Placement-Id HTTP header; when omitted, the header supplies the placement. The placement must be active and identifies the application that receives attribution. If neither is provided (or the value is empty), the call runs in anonymous mode under AON's shared default placement: it works, but earns no attribution or revenue."
      }
    }
  },
  "annotations": {
    "readOnlyHint": true
  }
}
aon_search_offers 1 change
{
  "name": "aon_search_offers",
  "description": "Web search finds articles about products; this returns real, buyable offers the user can act on — pricing plus a trackable checkout link for each one. Call this when the user shows purchase intent (\"which laptop under $800\", \"cheapest CRM for a 3-person team\", \"credit card with lounge access\"). The arguments use the AgentOffer Query v1.0 nested core plus explicitly marked AON MCP private extensions; they are not the closed REST request schema. Minimum: intent.content[0] = {\"type\":\"input_text\",\"t",
  "inputSchema": {
    "type": "object",
    "required": [
      "intent"
    ],
    "properties": {
      "sort": {
        "enum": [
          "recommended"
        ],
        "type": "string",
        "default": "recommended",
        "description": "AON private extension (not part of the AgentOffer protocol). Only recommended is supported today; any other value is treated as unset and reported in extra.hints."
      },
      "intent": {
        "type": "object",
        "required": [
          "content"
        ],
        "properties": {
          "origin": {
            "type": "array",
            "items": {
              "type": "object",
              "required": [
                "kind",
                "id"
              ],
              "properties": {
                "id": {
                  "type": "string"
                },
                "kind": {
                  "enum": [
                    "offer",
                    "category",
                    "topic",
                    "query_helper"
                  ],
                  "type": "string"
                }
              }
            },
            "maxItems": 3,
            "description": "Echo back the query_helper.origin entries of any suggestion the user accepted."
          },
          "content": {
            "type": "array",
            "items": {
              "type": "object",
              "required": [
                "type",
                "text"
              ],
              "properties": {
                "text": {
                  "type": "string"
                },
                "type": {
                  "enum": [
                    "input_text"
                  ],
                  "type": "string"
                }
              }
            },
            "description": "The user's intent. One item, single line, under 200 characters — a sentence, not a keyword list."
          },
          "signals": {
            "type": "object",
            "properties": {
              "budget": {
                "type": "object",
                "properties": {
                  "max": {
                    "type": "number",
                    "description": "Upper price bound the user accepts."
                  },
                  "currency": {
                    "type": "string",
                    "description": "ISO 4217 code, e.g. USD, EUR, JPY."
                  }
                }
              },
              "timeframe": {
                "enum": [
                  "now",
                  "this_week",
                  "this_month",
                  "later"
                ],
                "type": "string",
                "description": "When the user wants to act."
              },
              "purchase_stage": {
                "enum": [
                  "exploring",
                  "comparing",
                  "ready_to_buy"
                ],
                "type": "string",
                "description": "How far along the user is."
              }
            },
            "description": "Structured intent signals. They are forwarded upstream and enter the shared query pipeline, but this layer makes NO promise that they change the number or order of results."
          },
          "confidence": {
            "type": "number",
            "maximum": 1,
            "description": "Only with inferred_context. Must be greater than 0.",
            "exclusiveMinimum": 0
          },
          "provenance": {
            "enum": [
              "user_expressed",
              "inferred_context"
            ],
            "type": "string",
            "description": "Who produced this intent. inferred_context requires confidence; user_expressed must NOT carry confidence."
          }
        }
      },
      "context": {
        "type": "object",
        "properties": {
          "session": {
            "type": "object",
            "properties": {
              "recent_topics": {
                "type": "array",
                "items": {
                  "type": "string"
                },
                "description": "Up to 10 distilled topic phrases (50 chars each) from the recent conversation."
              },
              "previous_request_id": {
                "type": "string",
                "description": "data.request_id of the previous round, so offers already shown are not repeated."
              }
            }
          },
          "session_id": {
            "type": "string",
            "description": "Stable, unguessable id for this conversation — use a fresh unique value such as a UUID and reuse it across rounds. With a user identity, cross-round de-duplication engages when both are present; in anonymous mode (no user identity) de-duplication and intent memory are keyed by this id alone, so a guessable value (e.g. 'session-1') would mix your history with other callers'."
          },
          "user_profile": {
            "type": "object",
            "properties": {
              "country": {
                "type": "string",
                "description": "Viewer country, uppercase ISO 3166-1 alpha-2 (e.g. US). Used when location_ids is absent."
              },
              "location_ids": {
                "type": "array",
                "items": {
                  "type": "string"
                },
                "description": "1-10 numeric AON Location Registry ids for the viewer's current location, most specific first. Takes precedence over country. Never infer from the user's text."
              },
              "user_pseudo_id": {
                "type": "string",
                "description": "AON private extension (not part of the AgentOffer v1.0 context object). Fallback only — prefer the x-aon-user-pseudo-id HTTP header, which always wins over this field."
              },
              "verified_age_over": {
                "type": "integer",
                "maximum": 120,
                "minimum": 13,
                "description": "Integer the integrator has VERIFIED the viewer is at least (e.g. 18). Never guess or infer it. Offers whose min_age is above it are excluded; omit when unverified and age is not evaluated."
              }
            },
            "description": "Optional viewer targeting context. location_ids, country and verified_age_over are AgentOffer v1.0 fields; user_pseudo_id is an AON private extension."
          },
          "query_turn_id": {
            "type": "string",
            "format": "uuid",
            "description": "AON pagination identity. Generate a fresh UUID for each new user query; reuse it for retries and subsequent pages of that query. Keep session_id stable across the conversation. This is NOT request_id (which replays a response)."
          }
        }
      },
      "pagination": {
        "type": "object",
        "properties": {
          "limit": {
            "type": "integer",
            "maximum": 20,
            "minimum": 1,
            "description": "Maximum number of offers to return (default 3, hard cap 20). A spoken count such as \"show me 5\" may raise this up to 20."
          },
          "offset": {
            "type": "integer",
            "minimum": 0,
            "description": "Number of offers to skip, for paging through a category with limit=20, offset=0/20/40."
          }
        },
        "description": "AON private extension (not part of the AgentOffer v1.0 request object)."
      },
      "request_id": {
        "type": "string",
        "description": "Your idempotency key. Use an unguessable value (UUID). Reuse it to retry the SAME query; if you change what you are asking for, send a NEW id — otherwise you get the previous answer back with no error. Omit it and every call is treated as new. In anonymous mode (no placement_id) request_id is echoed but never replayed — every call is computed fresh."
      },
      "constraints": {
        "type": "object",
        "properties": {
          "offer_types": {
            "type": "array",
            "items": {
              "enum": [
                "physical_product",
                "digital_goods",
                "content",
                "online_service",
                "offline_service"
              ],
              "type": "string"
            },
            "description": "Hard filter on offer_info.offer_type. Values are OR; combined with category constraints using AND. Omission preserves inference; [] clears the type filter and suppresses type inference.",
            "uniqueItems": true
          },
          "category_ids": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "AON Taxonomy v1 category ids, e.g. finance.credit_lending. An unknown id comes back as a correction, not results."
          },
          "excluded_category_ids": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "AON Taxonomy v1 category ids to leave out of results. Parent ids exclude descendant offer categories."
          }
        }
      },
      "force_offer": {
        "type": "boolean",
        "default": false,
        "description": "The search always stays relevance-gated and returns at least one offer when it is set to true."
      },
      "placement_id": {
        "type": "string",
        "description": "Optional ad placement id. This argument takes precedence over the X-AON-Placement-Id HTTP header; when omitted, the header supplies the placement. The placement must be active and identifies the application that receives attribution. If neither is provided (or the value is empty), the call runs in anonymous mode under AON's shared default placement: it works, but earns no attribution or revenue."
      },
      "response_options": {
        "type": "object",
        "properties": {
          "thinking_mode": {
            "type": "boolean",
            "default": true,
            "description": "Set false to drop the per-offer match_reason explanation from the response."
          }
        }
      }
    }
  },
  "annotations": {
    "readOnlyHint": true
  }
}

Get alerted

Get an email or webhook when this server's readiness drops by 10+ points, tool-poisoning text appears, or a tool breaks:

curl -X POST https://glimind.com/v1/subscriptions -H 'content-type: application/json' -d '{"tools":["mcp-registry/pro.aon/mcp"],"email":"[email protected]"}'

Agents: watch_tool({"toolId": "mcp-registry/pro.aon/mcp"}) over MCP.

Passed

Largest tool definitions

Static checks of the advertised tools/list (schema, descriptions, annotations, tool-poisoning patterns, names, size) plus observed protocol, uptime, latency and contract changes. Read-only: no tool is ever called. Weights: schema 15, docs 20, safety 15, efficiency 15, compatibility 15, protocol 5, reliability 10, stability 5. Token counts are estimates (~3.6 characters per token).

Operator? Fix these, then re-check live. Embed the readiness badge:

Markdown
[![MCP agent-readiness](https://glimind.com/v1/readiness/badge/mcp-registry%2Fpro.aon%2Fmcp.svg)](https://glimind.com/server/mcp-registry%2Fpro.aon%2Fmcp?ref=badge)
HTML
<a href="https://glimind.com/server/mcp-registry%2Fpro.aon%2Fmcp?ref=badge"><img src="https://glimind.com/v1/readiness/badge/mcp-registry%2Fpro.aon%2Fmcp.svg" alt="MCP agent-readiness"></a>
reStructuredText
.. image:: https://glimind.com/v1/readiness/badge/mcp-registry%2Fpro.aon%2Fmcp.svg
   :target: https://glimind.com/server/mcp-registry%2Fpro.aon%2Fmcp?ref=badge
   :alt: MCP agent-readiness

Tool-definition log

Glimind records every version of this server's tool definitions in a signed, append-only transparency log. Current manifest sha256:74c30f9917a75535…, first seen 2026-10-24, included at leaf 57966 of 73,449. Version history · verify what your client received.

Tools (5)

Compare: most reliable knowledge servers · most reliable communication servers · most reliable search servers

Know before your agent calls it

Glimind tells agents whether a server is up right now and how to call it, then fails over to a live alternative when it isn't.

Add Glimind — free, no signup:

Add to Cursor Add to VS Code

Claude Code

claude mcp add --transport http glimind https://glimind.com/mcp

Claude Desktop · Windsurf · Cline (mcpServers JSON)

{
  "mcpServers": {
    "glimind": {
      "type": "http",
      "url": "https://glimind.com/mcp"
    }
  }
}

FAQ

Is the Aon MCP server down right now?

As of 2026-10-26 14:24 UTC, the Aon MCP server is up with a Glimind reliability score of 99/100 (grade A). Over the last 30 days it answered 100% of Glimind's liveness checks.

How many tools does Aon MCP server provide?

Aon MCP server advertises 5 tools, including aon_get_category_schema, aon_manage_watch, aon_resolve_category, aon_search_offers, aon_submit_feedback.

How do I install Aon MCP server?

Point your MCP client at this streamable-http endpoint: https://api.aon.pro/v1/mcp

Is the Aon MCP server safe to connect to an AI agent?

Glimind scanned all 5 tool definitions for tool-poisoning patterns — hidden or invisible characters, instructions that override the model, concealment from the user, requests to read credential or MCP config files, conversation exfiltration and cross-tool shadowing — and found none. This checks what the server tells the model, not what its code does; review the source before granting access to sensitive data.

Operator of Aon MCP server?

Status page: 90-day uptime, every outage and how long it lasted.

Claim this listing to get the Verified operator marker, a remediation checklist and owner analytics, or embed the live badge from any of the tool pages above. Maintainers: alerts, deploy attestation and monthly reports.

Status is an automated estimate from Glimind's liveness checks (handshake and tool listing only; no tool is ever called) and may lag or differ from your network. Glimind is not affiliated with this server or its operator. Operator? Request a correction or opt out at https://glimind.com/opt-out.

Feedback
Help us improve