mcpField
A
AON — Agent Offer Network

AON — Agent Offer Network

Remote
docs.aon.proBusiness & Marketing0Updated 2w ago

About AON — Agent Offer Network

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

Configuration

Remote servers need no local install. Pick your client, then copy the config or install in one click.

Endpointhttps://api.aon.pro/v1/mcp
Copy install command
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

Run commands in a terminal; paste JSON into the client’s MCP config and restart. Servers that need sign-in will prompt on first connect.

All endpoints
Streamable HTTPhttps://api.aon.pro/v1/mcpAuth required

Tools

5
ParameterTypeRequiredDescription
sortenumNoAON 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.recommended
intentobjectYes
intent.originarrayNoEcho back the query_helper.origin entries of any suggestion the user accepted.
intent.contentarrayYesThe user's intent. One item, single line, under 200 characters — a sentence, not a keyword list.
intent.signalsobjectNoStructured 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.
intent.signals.budgetobjectNo
intent.signals.budget.maxnumberNoUpper price bound the user accepts.
intent.signals.budget.currencystringNoISO 4217 code, e.g. USD, EUR, JPY.
intent.signals.timeframeenumNoWhen the user wants to act.now | this_week | this_month | later
intent.signals.purchase_stageenumNoHow far along the user is.exploring | comparing | ready_to_buy
intent.confidencenumberNoOnly with inferred_context. Must be greater than 0.
intent.provenanceenumNoWho produced this intent. inferred_context requires confidence; user_expressed must NOT carry confidence.user_expressed | inferred_context
contextobjectNo
context.sessionobjectNo
context.session.recent_topicsarrayNoUp to 10 distilled topic phrases (50 chars each) from the recent conversation.
context.session.previous_request_idstringNodata.request_id of the previous round, so offers already shown are not repeated.
context.session_idstringNoStable, 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'.
context.user_profileobjectNoOptional viewer targeting context. location_ids, country and verified_age_over are AgentOffer v1.0 fields; user_pseudo_id is an AON private extension.
context.user_profile.countrystringNoViewer country, uppercase ISO 3166-1 alpha-2 (e.g. US). Used when location_ids is absent.
context.user_profile.location_idsarrayNo1-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.
context.user_profile.user_pseudo_idstringNoAON 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.
context.user_profile.verified_age_overintegerNoInteger 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.
paginationobjectNoAON private extension (not part of the AgentOffer v1.0 request object).
pagination.limitintegerNoMaximum number of offers to return (default 3, hard cap 20). A spoken count such as "show me 5" may raise this up to 20.
pagination.offsetintegerNoNumber of offers to skip, for paging through a category with limit=20, offset=0/20/40.
request_idstringNoYour 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.
constraintsobjectNo
constraints.category_idsarrayNoAON Taxonomy v1 category ids, e.g. finance.credit_lending. An unknown id comes back as a correction, not results.
constraints.excluded_category_idsarrayNoAON Taxonomy v1 category ids to leave out of results. Parent ids exclude descendant offer categories.
force_offerbooleanNoThe search always stays relevance-gated and returns at least one offer when it is set to true.
placement_idstringNoOptional 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_optionsobjectNo
response_options.thinking_modebooleanNoSet false to drop the per-offer match_reason explanation from the response.

Details

The maintainer has not added details yet. Check the README in the repository.

Comments

Markdown supported

New to MCP?

From what the protocol is to installing your first server, these answers cover most first questions.

An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.