AOPX
Server Details
Selects between supported SEARCH providers for ECONOMY or CRITICAL mode.
- Status
- Healthy
- Uptime
- 94.3% over 21 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 4 tools
Each tool targets a distinct operation: recommend_provider creates a recommendation, report_outcome records its execution, public_outcomes reads individual reported outcomes, and public_stats reads aggregate telemetry. The boundary between public_outcomes and public_stats is clearly described (raw records vs. aggregates), and recommendation vs. reporting actions are unambiguous.
All names use consistent snake_case. The two read-only public data tools share a 'public_' prefix, while the action tools follow a verb_noun pattern (recommend_provider, report_outcome), which is a coherent but not uniform convention across the entire set.
Four tools are well-scoped for a recommendation and evidence system: one to get a recommendation, one to report its outcome, and two to read public outcomes and statistics. Each tool serves a clear purpose without redundancy or extreme thinness.
The core lifecycle is covered: recommend a provider, report the outcome, and read both detailed and aggregate public evidence. Minor gaps exist (e.g., no way to retrieve a specific past recommendation by ID or list a provider's details beyond public aliases), but these are not blocking for the stated pilot purpose.
Available Tools
4 toolspublic_outcomesGet recent public AOPX outcomesARead-onlyInspect
Read recent caller-reported production outcomes from the AOPX public evidence surface. Use this to inspect what was reported after real recommendations were executed, not to request a new recommendation. Provider identities are exposed only through public aliases. LAB benchmarks, tests, shadow runs and replays are not returned here, and reported outcomes are not described as independently verified.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=false, and the description adds meaningful context beyond those: outcomes are 'caller-reported', provider identities are exposed 'only through public aliases', and outcomes are 'not described as independently verified'. These are important trust and privacy caveats that an agent cannot infer from the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four sentences, each adding distinct value: purpose, usage boundary, identity handling, and content/verification caveats. The core purpose is front-loaded, and there is no fluff or repetition of schema details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's low parameter complexity, existing annotations, and the presence of an output schema, the description is complete. It covers what the tool returns, what it is for, what it excludes, and important data-quality caveats, so an agent has enough to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description does not mention the 'limit' parameter. However, the schema's optional integer parameter with default 100 makes the semantics reasonably self-evident: it limits how many recent outcomes are returned. The description adds no narrative around the parameter, but the single parameter is simple enough that this is not a serious deficiency.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Read'), a specific resource ('recent caller-reported production outcomes from the AOPX public evidence surface'), and explicitly scopes it away from recommendation ('not to request a new recommendation'). It clearly separates the tool from recommend_provider and report_outcome even though it does not directly contrast with public_stats.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives an explicit use case ('Use this to inspect what was reported after real recommendations were executed') and an explicit negative case ('not to request a new recommendation'), routing agents away from the recommendation sibling. It also states content exclusions (LAB benchmarks, tests, shadow runs, replays), making the tool's boundaries clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
public_statsGet public AOPX statisticsARead-onlyInspect
Read aggregate public statistics from the AOPX production pilot, including consultation and reported-outcome activity. Use this for public telemetry, not for provider recommendation. LAB benchmarks, tests, shadow runs and replay events are excluded from these production statistics.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so the read-only nature is known. The description adds valuable behavioral context beyond the annotation: it specifies that statistics are from the production pilot and that LAB benchmarks, tests, shadow runs, and replay events are excluded. This clarifies data scoping and potential availability limitations, which is useful for the agent. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely efficient: two sentences with no fluff. The core purpose ('Read aggregate public statistics...') is front-loaded, and the exclusions and usage guidance are provided in the second sentence. Every word adds value, making it a model of concise, structured documentation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given that there are no parameters, an output schema exists (so return values are covered), and annotations already declare readOnlyHint, the description completes the picture by defining the data scope and usage boundaries. Nothing an agent needs to decide whether to call this tool is missing: it knows what it does, what data it excludes, and when not to use it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so schema coverage is 100% (vacuously). With no parameters to document, the baseline for parameter semantics is 4, and the description doesn't need to add anything. The description introduces no parameter-related info, which is appropriate because there are no parameters to explain.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Read' and the specific resource: 'aggregate public statistics from the AOPX production pilot'. It enumerates what is included (consultation and reported-outcome activity) and explicitly excludes LAB benchmarks, tests, shadow runs, and replay events, making the scope unambiguous. It also differentiates from siblings by stating it is for public telemetry, not provider recommendation, distinguishing it from recommend_provider.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit usage guidance: 'Use this for public telemetry, not for provider recommendation.' This tells the agent when to use it and what it is not for. It also adds context by listing excluded data categories, which helps avoid misuse. While it does not name alternative tools explicitly, the clear exclusion of provider recommendation implies a different tool for that purpose, so guidance is strong but not exhaustive.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
recommend_providerRecommend a search providerAInspect
Use when a software agent needs an AOPX recommendation for the SEARCH category instead of hard-coding a single supported provider. Supported modes are ECONOMY and CRITICAL. Returns a primary provider and, when applicable, a fallback provider plus a recommendation_id. AOPX does not execute the search and does not handle payment; the caller executes the provider path externally. After a real execution, call report_outcome with the same recommendation_id. max_cost_eur and max_latency_ms are accepted and recorded by the current v0 interface but are not enforced as hard routing constraints.
| Name | Required | Description | Default |
|---|---|---|---|
| mode | Yes | ||
| client_id | No | ||
| max_cost_eur | No | ||
| max_latency_ms | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Adds substantial context beyond the annotations: AOPX does not execute the search or handle payment, the caller executes externally, and max_cost_eur/max_latency_ms are recorded but not enforced as routing constraints. The annotations (readOnlyHint=false, idempotentHint=false, destructiveHint=false, openWorldHint=false) leave the side-effect profile ambiguous, and the description's note that this is a recommendation, not an execution, helps. However, it claims only ECONOMY and CRITICAL modes are supported while the schema enum also contains BALANCED, an internal inconsistency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the usage condition and efficient throughout; every sentence carries information about scope, return shape, follow-up, or parameter caveats. Slightly dense, but no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, the description need not enumerate return fields, yet it usefully summarizes the primary/fallback/recommendation_id result and the report_outcome loop. The gaps are the unexplained client_id and the mode mismatch with the schema enum, which leave the caller with ambiguity on a required parameter.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description has to carry parameter meaning. It does explain that max_cost_eur and max_latency_ms are accepted and recorded but not enforced, which the schema does not say, but it never mentions client_id, and its mode guidance omits (and effectively contradicts) the BALANCED enum value. Partial compensation only.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource (return an AOPX provider recommendation for the SEARCH category) and clarifies the scope of the result: a primary provider, an optional fallback, and a recommendation_id. It is clearly distinguishable from the sibling report_outcome, which it explicitly positions as a downstream step.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives a concrete trigger ('Use when a software agent needs an AOPX recommendation ... instead of hard-coding a single supported provider') and names the follow-up action (call report_outcome with the same recommendation_id). It does not state any when-not condition or negative case, so it falls short of a full 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
report_outcomeReport a production outcomeAInspect
Use only after a real external execution of a provider path returned by recommend_provider. Records the caller-reported production outcome for that recommendation_id. The recommendation must exist, only one outcome is accepted per recommendation, and provider attempts must match the recommended primary/fallback path. Reported outcomes are production evidence supplied by the caller; they are not described as independently verified outcomes.
| Name | Required | Description | Default |
|---|---|---|---|
| attempts | Yes | ||
| recommendation_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are all false, so the description carries full burden. It discloses that outcomes are caller-reported, not independently verified, and that only one outcome per recommendation is accepted. It also states the requirement that attempts match the recommended path. These are meaningful behavioral traits beyond what annotations convey, providing clear expectations about data provenance and constraints.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the critical precondition, and each sentence adds necessary context without redundancy. It is tightly written and avoids any fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers preconditions and constraints but does not explain how to structure the attempts array beyond matching the path. It does not mention that cost_eur, latency_ms, etc. are optional or what error_type means. Given the nested object with multiple fields, more guidance would help. An output schema exists, so return value is not needed, but the attempt payload semantics are partially underspecified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It gives context for recommendation_id and attempts by stating they must match the recommendation and path, but it does not explain individual fields like cost_eur, latency_ms, or quality_score. The nested ProviderAttempt structure has multiple optional fields with no semantic guidance. The description adds value but leaves the agent to infer details from parameter names and types.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action (records the caller-reported production outcome) on a specific resource (recommendation_id), and explicitly ties it to recommend_provider. It clearly distinguishes this from sibling tools that read outcomes or stats, and the precondition 'Use only after a real external execution' makes its purpose unmistakable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides an explicit usage condition: 'Use only after a real external execution of a provider path returned by recommend_provider.' It also lists constraints (recommendation must exist, one outcome per recommendation, attempts must match path). While it does not name alternative tools, the precondition and the write-vs-read contrast with siblings make usage clear. Lacks explicit 'when not to use' or alternatives, hence 4.
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 tool update
- Changed
recommend_provider1 field changed- changed
Input schema / properties / mode / enumPrevious value: -[ - "ECONOMY", - "CRITICAL" -]New value: +[ + "ECONOMY", + "BALANCED", + "CRITICAL" +]
4 tool updates
- First observed
public_outcomes - First observed
public_stats - First observed
recommend_provider - First observed
report_outcome
Publisher details
- Operator
- https://aopx.fr · Publisher source
- Operator website
- https://aopx.fr · Publisher source
- Vendor relationship
- Not available
- Documentation
- https://api.aopx.fr/docs · Publisher source
- Trust center
- Not available
- Restrictions
- Public pilot. No authentication required. Billing disabled. Current production category: SEARCH. Supported modes: ECONOMY and CRITICAL. · Publisher source
Related MCP Connectors
Multi-engine search for AI agents. Trust scoring, local corpus, MCP-native. Self-hostable, BYOK.
Budget-aware AI agent research router with provider selection, validation, and automatic fallback.
Web search for AI agents — one tool across 6 engines, routed to the cheapest + cached.
Search and compare MCP servers, agent tools, and skills using current maintenance signals.
Related MCP Servers
- AlicenseNot gradedqualityAmaintenanceEnables AI clients to perform unified web searches across multiple search providers with automatic key rotation, failover, and circuit breaking, and to inspect provider status and capabilities.98 npm3MIT
- AlicenseNot gradedqualityBmaintenanceReplaces DSH's built-in web_search with pluggable MCP search backends such as Tavily, Brave, Exa, Perplexity, DuckDuckGo, or custom HTTP/stdio servers. Users configure providers in the settings UI with secure credential references, while the model keeps calling the native web_search tool.MIT
- AlicenseBqualityAmaintenanceOne endpoint, five search providers. Search broker for AI agents with automatic fallback, RRF ranking, and budget enforcement. The LiteLLM of web search.1368 PyPI5MIT
- AlicenseAqualityAmaintenanceEnables AI agents to perform reliable web searches through multiple vendors with automatic failover, keyless-first access, TTL caching, and concurrent request coalescing.1MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.