oddly
Server Details
The world, on the record. AI infrastructure built on the observed web.
- Status
- Healthy
- Uptime
- 100.0% over 18 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-06-18
- URL
TDQS
Scored across 6 tools
Each tool targets a distinct function, and the descriptions actively steer usage (benchmark_categories explicitly says call it before benchmark_lookup). The only mild overlap is between benchmark_lookup and record_answer, which both return observed values for a subject/category, but their scopes (aggregate market band vs single attribute value) are clearly differentiated.
Names follow a namespaced prefix_action pattern (benchmark_*, record_*, store_audit) that is predictable and readable throughout. Minor deviation: benchmark_categories is a noun while benchmark_lookup is a verb, so the suffix style isn't perfectly uniform.
Six tools is well-scoped for a benchmark-and-record data service, with each covering a distinct step (discover, lookup, answer, history, verify, audit). No tool feels redundant or padding.
The surface covers discovery, lookup, history, verification, and audit lifecycle well. The gap is symmetry: benchmark_categories offers discovery for the benchmark corpus, but there is no equivalent discovery for the record's subjects/attributes, forcing agents to guess those inputs.
Available Tools
6 toolsbenchmark_categoriesList covered categoriesARead-onlyInspect
List the product categories the oddly corpus currently covers, with how many observations and metrics back each one. Call this FIRST to discover valid category paths before calling benchmark_lookup, rather than guessing a path.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=false, so safety is covered by structured data. The description adds genuinely useful behavioral context beyond that: it is a discovery/entry-point call, and the response includes per-category observation and metric counts. It does not describe auth, rate limits, or exact response shape, keeping it short of a 5.
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?
Two sentences, no filler: the first describes the output, the second front-loads the ordering constraint and the alternative. Every clause earns its place.
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 no parameters and no output schema, the description must carry both the return-content hint (categories plus observation/metric counts) and the workflow role (call before benchmark_lookup). It does both, which is exactly what an agent needs to invoke this 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?
The tool takes zero parameters, so there is nothing for the description to disambiguate beyond confirming the call is argument-free. Baseline 4 applies for a 0-param tool.
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?
Specific verb ("List") plus specific resource ("product categories the oddly corpus currently covers"), and it goes further by stating what each entry carries (observation and metric counts). It is clearly distinguishable from benchmark_lookup, which it names explicitly.
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?
Explicit when-to-use instruction: "Call this FIRST to discover valid category paths before calling benchmark_lookup, rather than guessing a path." It names the alternative tool and the failure mode being avoided, 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.
benchmark_lookupLook up observed category benchmarksARead-onlyInspect
Observed price and assortment benchmarks for a product category: the median and the p25-p75 band across real public storefront listings, with the sample size, the currency, and the exact scope of each figure. Figures are observed market reference, not targets or advice. Returns an honest empty answer when a category has too little data to serve; it never estimates or fills a gap. This corpus does NOT hold conversion rates, revenue, or AOV, so do not ask it for those.
| Name | Required | Description | Default |
|---|---|---|---|
| market | No | Optional ISO 3166-1 alpha-2 market filter, e.g. 'NZ', 'US'. Omit for the all-markets aggregate. | |
| metric | No | Optional metric filter, e.g. 'price.romper'. Omit to get every servable metric for the category. | |
| category | Yes | Category path, e.g. 'commerce/baby/clothing'. Use benchmark_categories to list valid paths. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=false, so safety is covered; the description adds real behavioral substance on top — it returns an honest empty answer when data is insufficient and never estimates or fills gaps, and it discloses the corpus's content boundaries. No rate limits or latency context, which keeps it below a 5.
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 payload (observed benchmarks and the statistics returned), then the guarantees (honest empty answer, no estimation), then the exclusion. Dense but each sentence carries distinct information; the negative-scope sentence is slightly ancillary but defensive and useful.
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?
There is no output schema, so the description bears the burden of describing returns — it does so precisely (median, p25-p75 band, sample size, currency, scope, and the empty-answer case). Combined with the 100%-covered input schema and read-only annotations, an agent has everything needed to call and interpret 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?
Schema description coverage is 100%, so market, metric, and category are already fully documented in the schema (including the pointer to benchmark_categories). The description adds only the notion that each returned figure carries an exact scope, which is output-side rather than parameter meaning. Baseline 3 is appropriate.
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?
Specific verb+resource: it returns observed price and assortment benchmarks for a product category, and it names the exact figures returned (median, p25-p75 band, sample size, currency, scope). It also carves out its boundaries by stating what the corpus does NOT hold, which lets an agent separate it from analysis/advice-style siblings.
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?
Clear usage context: query a category for market reference figures, omit filters for aggregates (schema), and an explicit exclusion — do not ask it for conversion rates, revenue, or AOV. It does not restate the sibling routing in the description (benchmark_categories appears only in the schema), so it stops short of full when/when-not/alternatives coverage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
record_answerOne question answered from the recordARead-onlyInspect
Answer one question from oddly's record: the newest observed value of one attribute of one subject, with its figure, both clocks, its source, its receipt and its scope. The figure is what the source published when oddly looked, not an estimate, a forecast or advice. Rate: meter data.answer, US$0.001 per answer, first 100 per month free. An unanswered question (a subject or attribute the record has not observed) is never metered.
| Name | Required | Description | Default |
|---|---|---|---|
| attribute | Yes | The attribute to answer, exactly as record_subject_history lists it. | |
| subject_key | Yes | The subject key exactly as the record prints it on /record/subject?key=..., e.g. 'benchmark-cell:commerce/baby/clothing|SG|*|local|*|*'. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnly/openWorld annotations, the description discloses pricing and metering behavior (US$0.001 per answer, first 100/month free) and the important edge case that unanswered questions are never metered. It also clarifies the returned figure is a published observation, not an estimate, forecast or advice.
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 core purpose is front-loaded and each sentence carries distinct information (what it returns, what the figure is not, rate/metering, unanswered-question rule). Dense but with no obvious filler; the pricing detail is the only part that could be trimmed.
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 no output schema, the description carries the return-value burden and does so by listing the components of an answer (figure, both clocks, source, receipt, scope). Combined with the metering and unanswered-question rules, it is complete enough for an agent 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 100%, so the two required parameters (subject_key, attribute) are already fully documented in the schema. The description's framing (one attribute of one subject) reinforces this but adds no syntax or format beyond the schema, making the baseline 3 appropriate.
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+resource: answering one question (the newest observed value of one attribute of one subject) from oddly's record, and enumerates what comes back (figure, both clocks, source, receipt, scope). It is unambiguous what the tool does, though it never names a sibling to differentiate from (e.g. record_subject_history) directly.
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?
Usage is implied rather than stated: the tool answers a specific point-in-time value, and the metering/unanswered-question notes hint at when it is and isn't appropriate. There is no explicit when-to-use versus alternatives such as record_subject_history or record_verify_receipt.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
record_subject_historyA subject's history on the recordARead-onlyInspect
One subject's change history and current state from oddly's record, with both clocks on every row: observed_at (when the source says it was true) and fetched_at (when oddly looked), and the receipt hash of each row so any value can be checked with record_verify_receipt. Rate: meter data.history, US$0, attribution required (cite oddly and the subject). Returns an honest empty answer for a subject the record has never observed, which is never metered.
| Name | Required | Description | Default |
|---|---|---|---|
| subject_key | Yes | The subject key exactly as the record prints it on /record/subject?key=..., e.g. 'benchmark-cell:commerce/baby/clothing|SG|*|local|*|*'. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only cover read-only and closed-world, so the description carries real weight and delivers: it explains both timestamp semantics per row, disclosures the receipt hash linkage, states the rate meter ('data.history, US$0, attribution required'), and specifies the empty-result behavior is never metered. That is concrete operational context beyond 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?
Front-loads what is returned, then clocks, receipts, rate, and empty-case handling in a compact package. It is a dense run-on that could be broken into sentences, but every clause carries distinct information with 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 no output schema, the description must describe the return shape, and it does: rows containing observed_at, fetched_at, and a per-row receipt hash. Combined with rate/attribution and empty-result semantics, an agent has everything needed to call and interpret this tool.
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 coverage is 100% and the single parameter is fully documented with an example format, so the baseline is 3. The description adds little about the parameter itself beyond reinforcing that subject_key must match what the record prints, which the schema already says.
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 scope: 'One subject's change history and current state from oddly's record,' which is clearly distinct from siblings like record_answer (single answer) and record_verify_receipt (verification). The two-clock row model (observed_at vs fetched_at) further pins down the resource being returned.
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?
Usage is implied rather than stated: an agent can infer it should call this to see a subject's history, and the description points to record_verify_receipt for validating row values. But there is no explicit when-to-use vs when-not, and no comparison against record_answer or the other siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
record_verify_receiptVerify a receipt against the recordARead-onlyInspect
Recompute and check one receipt end to end: the row's receipt hash recomputed from its own sealed document, the link to the row before it, the day root its day folds into, and that root's anchor state (confirmed with a block height, or pending). Every check is named in the verdict, and a check that could not run says so rather than passing. Rate: never metered (verification is on the price book's never_metered list).
| Name | Required | Description | Default |
|---|---|---|---|
| receipt_hash | Yes | The 64-character hex receipt hash, as printed on a receipt or returned by the other record tools. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=false, so safety is covered; the description goes further by disclosing granular failure semantics ('a check that could not run says so rather than passing'), the structure of the verdict, and the rate policy (never metered). This is meaningful behavioral context beyond the structured fields, though return shape details remain sparse.
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 operation and then the enumerated checks, with no filler sentences. It is dense and slightly long for a single-parameter tool, but each clause (checks performed, verdict naming, failure handling, rate) carries distinct information.
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 no output schema, the description usefully characterizes the verdict as naming every check and flagging checks that could not run, which is the return information an agent needs. Combined with the annotation-covered safety profile and full schema coverage, an agent has enough to call and interpret it, though the concrete verdict format is still not fully specified.
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 100% and there is a single required parameter, so the schema already documents the 64-character hex format. The description references 'the row's receipt hash' but adds no syntax, format, or sourcing detail beyond what the schema provides, making the baseline 3 appropriate.
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 ('recompute and check') and resource ('one receipt'), and enumerates exactly what is validated (receipt hash, prior-row link, day root, anchor state), so the agent knows precisely what the tool does. It does not explicitly differentiate itself from siblings like store_audit or record_subject_history, which are plausibly adjacent, so it stops short of a 5.
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 usage is implied — you call it with a receipt hash to validate a receipt — but there is no explicit when-to-use/when-not statement or named alternative among the record/audit siblings. The 'never metered' note is a cost hint rather than routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
store_auditAudit a public storefrontARead-onlyInspect
Run oddly's free storefront audit against a public ecommerce domain and return the findings: detected platform, the checks that failed, and how the store's catalogue compares to observed category norms where the corpus can say. Reads the store's own public pages only, obeys robots.txt, and is rate limited. Use the bare domain (example.com). Never pass an internal host or an IP address.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | The storefront domain or URL to audit, e.g. 'example.com'. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and openWorldHint, so the safety profile is partly covered; the description goes further by disclosing robots.txt compliance, rate limiting, and that only the store's own public pages are read. That is real added behavioral context (rate limits, crawl etiquette, no credential or internal access). It does not say whether the audit is synchronous, how long it takes, or what happens on failure, so it is strong rather than exhaustive.
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?
Three tight sentences, front-loaded with the action and outcome, then behavior, then input constraint. Every clause carries information; nothing is restated from the title or annotations.
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 no output schema, the description correctly spends words enumerating what is returned (platform, failed checks, benchmark comparison). Input constraints and operational limits are both covered, so an agent can call this correctly on the first attempt without further context.
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 coverage is 100%, so the single `url` parameter is already documented as a domain or URL. The description adds non-obvious semantic constraints not in the schema: pass the bare domain (example.com), never an internal host or IP address. This meaningfully shapes how the value must be formed.
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 ('Run oddly's free storefront audit against a public ecommerce domain') and explicitly enumerates the returned findings: detected platform, failed checks, and catalogue comparison to category norms. The scope word 'public ecommerce domain' cleanly separates it from benchmark_* and record_* siblings, which operate on stored benchmark/answer data rather than live storefronts.
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 clear context for when this tool applies ('a public ecommerce domain') and a hard exclusion ('Never pass an internal host or an IP address'), which prevents misuse on private infrastructure. It stops short of naming an alternative tool or stating what to do when the corpus cannot say (the hedged 'where the corpus can say'), so it is clear but not fully routing-aware.
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.
3 tool updates
- Added
record_answer - Added
record_subject_history - Added
record_verify_receipt
3 tool updates
- First observed
benchmark_categories - First observed
benchmark_lookup - First observed
store_audit
Publisher details
- Operator
- Oddly Even Group Pte. Ltd. · Publisher source
- Operator website
- https://myoddly.com · Publisher source
- Vendor relationship
- First-party · Publisher source
- Documentation
- https://myoddly.com/developers · Publisher source
- Trust center
- https://oddlytrust.com · Publisher source
- Restrictions
- None to connect: anonymous, no key, no account. Free to read with attribution under a rate; bulk and history free with attribution. · Publisher source
Related MCP Connectors
- mcpOAuthcom.sequentum
Turn the web into structured, reliable, actionable enterprise data for AI Agents
Structured, cited, real-world data from 300+ sources and the open web for your AI agents.
Captured web interfaces, screenshots, flows and structured evidence for AI coding agents.
Public AI web-readiness scanner and machine-facing observability discovery service.
Related MCP Servers
- AlicenseAqualityBmaintenanceProvenance-first web access for AI agents, delivering clean content with verifiable source metadata and SEC EDGAR financial data.8114 npmMIT

Anakinofficial
AlicenseAqualityBmaintenanceWeb data for AI agents: scrape, crawl, search, deep research, site monitoring, browser automation2248 npm3Apache 2.0
siteglass-mcpofficial
AlicenseNot gradedqualityCmaintenanceEnables archival of any public URL as interactive snapshot (rrweb, PDF, PNG) and autonomous web QA for apps (register, scan, generate and run end-to-end flows).26 npmMIT- FlicenseNot gradedqualityBmaintenanceArchives live web pages for offline replay with full interactivity, enabling AI agents to analyze page structure and behavior.1-
Glama MCP Gateway
Add one secure layer between your agents and this server.