Skip to main content
Glama

Get recorded conditions of a plan or product

get_details
Read-onlyIdempotent

Use this when: you need every recorded condition, pricing rule and source sentence of one plan or product found by search or named by the user. Do not use this when: you want to compare plans against a workload (use search or check_conditions). Get every recorded condition for one API plan or product: value, which plans it applies to, exceptions, official source sentence, check date and purchase link. A product too long for one response comes with one source sentence per fact. recent_changes lists the facts of the plan or product that changed in the last 30 days, with the previous and the new value and sentence and the date, and the facts whose sentence the daily re-check could not find again, each with its origin (provider: the provider's page changed; catalog: our own correction or fill); it is left out when there are none. Each plan's link url is its sign-up page; the evidence sources are the pages that state a condition. Example: every recorded condition of 1 plan found by search.

Tool call template

This tool declares no required parameters. Add optional parameters from the input schema as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {},
    "name": "get_details"
  }
}

Input Schema

NameRequiredDescriptionDefault
offer_idNoA plan id, e.g. "firecrawl-standard".
product_idNoA product id, e.g. "firecrawl-api".

Output Schema

NameRequiredDescriptionDefault
as_ofYes
offersYes
productYes
providerYes
link_notesNoThe note of each link level (link.link_level) of the plans in this result, stated once.
engine_versionNoThe engine version that produced this answer, e.g. "pc-engine 2026.11.01-r1".
recent_changesNoPresent only when a fact of this plan or product (or of its provider) changed in the last 30 days or its source sentence could not be found again, newest first, at most 20.
evidence_detailNoPresent when the product was too long for one response: each fact carries one source sentence. Ask for a plan by offer_id for every sentence.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • addedOutput schema / properties / recent_changes / items / properties / origin
      Added value: +{
      +  "description": "provider: the provider's official page changed (the previous sentence was no longer found on it just before the change, or it could not be found again); catalog: we corrected a value or filled an empty cell, which is not a change by the provider.",
      +  "enum": [
      +    "provider",
      +    "catalog"
      +  ],
      +  "type": "string"
      +}
    • changedOutput schema / properties / recent_changes / items / required
      Previous value: -[
      -  "provider_id",
      -  "provider_name",
      -  "offer_id",
      -  "offer_name",
      -  "product_id",
      -  "key",
      -  "kind",
      -  "date",
      -  "before",
      -  "after"
      -]New value: +[
      +  "provider_id",
      +  "provider_name",
      +  "offer_id",
      +  "offer_name",
      +  "product_id",
      +  "key",
      +  "kind",
      +  "origin",
      +  "date",
      +  "before",
      +  "after"
      +]
  2. Changed1 schema field changed
    • addedOutput schema / properties / engine_version
      Added value: +{
      +  "description": "The engine version that produced this answer, e.g. \"pc-engine 2026.11.01-r1\".",
      +  "type": "string"
      +}
  3. Changed1 schema field changed
    • addedOutput schema / properties / offers / items / properties / link / properties / sign_up_url
      Added value: +{
      +  "description": "The same address with the token in the path, /go/<offer_id>/<token>: the sign-up address of this plan to give the user.",
      +  "type": "string"
      +}
  4. Changed1 schema field changed
    • addedOutput schema / properties / recent_changes
      Added value: +{
      +  "description": "Present only when a fact of this plan or product (or of its provider) changed in the last 30 days or its source sentence could not be found again, newest first, at most 20.",
      +  "items": {
      +    "properties": {
      +      "after": {
      +        "description": "One version of the fact: its value, its source sentence(s), the date it was checked and its status. null when the fact did not exist (before) or the sentence could not be found again (after).",
      +        "properties": {
      +          "checked_at": {
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "exceptions": {
      +            "type": "array"
      +          },
      +          "quote": {
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "status": {
      +            "enum": [
      +              "TRUE",
      +              "FALSE",
      +              "NOT_SUPPORTED",
      +              "UNKNOWN",
      +              "CONFLICT"
      +            ],
      +            "type": "string"
      +          },
      +          "value": {
      +            "type": [
      +              "number",
      +              "string",
      +              "boolean",
      +              "object",
      +              "array",
      +              "null"
      +            ]
      +          }
      +        },
      +        "type": [
      +          "object",
      +          "null"
      +        ]
      +      },
      +      "before": {
      +        "description": "One version of the fact: its value, its source sentence(s), the date it was checked and its status. null when the fact did not exist (before) or the sentence could not be found again (after).",
      +        "properties": {
      +          "checked_at": {
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "exceptions": {
      +            "type": "array"
      +          },
      +          "quote": {
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "status": {
      +            "enum": [
      +              "TRUE",
      +              "FALSE",
      +              "NOT_SUPPORTED",
      +              "UNKNOWN",
      +              "CONFLICT"
      +            ],
      +            "type": "string"
      +          },
      +          "value": {
      +            "type": [
      +              "number",
      +              "string",
      +              "boolean",
      +              "object",
      +              "array",
      +              "null"
      +            ]
      +          }
      +        },
      +        "type": [
      +          "object",
      +          "null"
      +        ]
      +      },
      +      "date": {
      +        "description": "YYYY-MM-DD: the day the record changed, or the day the re-check could not find the sentence.",
      +        "type": "string"
      +      },
      +      "key": {
      +        "description": "The fact key, for example price_monthly.",
      +        "type": "string"
      +      },
      +      "kind": {
      +        "description": "changed: the recorded value or sentence differs from the one before; added: a cell that had no recorded fact before is filled (before is null); not_found_again: the daily re-check could not find the recorded sentence on the official page.",
      +        "enum": [
      +          "changed",
      +          "added",
      +          "not_found_again"
      +        ],
      +        "type": "string"
      +      },
      +      "offer_id": {
      +        "description": "The plan, when the fact is recorded for one plan; null for a product or provider fact (it applies to the plans below it).",
      +        "type": [
      +          "string",
      +          "null"
      +        ]
      +      },
      +      "offer_name": {
      +        "type": [
      +          "string",
      +          "null"
      +        ]
      +      },
      +      "product_id": {
      +        "type": [
      +          "string",
      +          "null"
      +        ]
      +      },
      +      "provider_id": {
      +        "type": "string"
      +      },
      +      "provider_name": {
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "provider_id",
      +      "provider_name",
      +      "offer_id",
      +      "offer_name",
      +      "product_id",
      +      "key",
      +      "kind",
      +      "date",
      +      "before",
      +      "after"
      +    ],
      +    "type": "object"
      +  },
      +  "type": "array"
      +}
  5. Changed1 schema field changed
    • addedOutput schema / properties / offers / items / properties / plan_page
      Added value: +{
      +  "description": "The link to give the user with this plan, as a markdown link named \"<provider> <plan> — plan page\" (its pricing and sign-up page). The evidence sources under the conditions are for citing a condition.",
      +  "type": "string"
      +}
  6. Changed12 schema fields changed
    • addedOutput schema / properties / offers / items / properties / facts / items / properties / at_limit / properties / evidence / properties / source
      Added value: +{
      +  "type": "string"
      +}
    • removedOutput schema / properties / offers / items / properties / facts / items / properties / at_limit / properties / evidence / properties / url
      Removed value: -{
      -  "type": "string"
      -}
    • addedOutput schema / properties / offers / items / properties / facts / items / properties / evidence / items / properties / source
      Added value: +{
      +  "description": "Official page the sentence was found on.",
      +  "type": "string"
      +}
    • removedOutput schema / properties / offers / items / properties / facts / items / properties / evidence / items / properties / url
      Removed value: -{
      -  "description": "Official page the sentence was found on.",
      -  "type": "string"
      -}
    • changedOutput schema / properties / offers / items / properties / facts / items / properties / evidence / items / required
      Previous value: -[
      -  "url",
      -  "quote"
      -]New value: +[
      +  "source",
      +  "quote"
      +]
    • changedOutput schema / properties / offers / items / properties / link / properties / provider_url / description
      Previous value: -"The provider page itself, when url is this service's address that forwards to it."New value: +"The provider page itself. Only in a page made for a browser, where url is this service's address that forwards to it; MCP and REST results do not carry it."
    • addedOutput schema / properties / offers / items / properties / link / properties / url / description
      Added value: +"The only address to visit the plan: this service's /go/<offer_id>?r=<token> address, which forwards to the provider page. The token is made for this response and holds nothing about you."
    • addedOutput schema / properties / product / properties / facts / items / properties / at_limit / properties / evidence / properties / source
      Added value: +{
      +  "type": "string"
      +}
    • removedOutput schema / properties / product / properties / facts / items / properties / at_limit / properties / evidence / properties / url
      Removed value: -{
      -  "type": "string"
      -}
    • addedOutput schema / properties / product / properties / facts / items / properties / evidence / items / properties / source
      Added value: +{
      +  "description": "Official page the sentence was found on.",
      +  "type": "string"
      +}
    • removedOutput schema / properties / product / properties / facts / items / properties / evidence / items / properties / url
      Removed value: -{
      -  "description": "Official page the sentence was found on.",
      -  "type": "string"
      -}
    • changedOutput schema / properties / product / properties / facts / items / properties / evidence / items / required
      Previous value: -[
      -  "url",
      -  "quote"
      -]New value: +[
      +  "source",
      +  "quote"
      +]
  7. Changed4 schema fields changed
    • addedOutput schema / properties / offers / items / properties / facts / items / properties / at_limit
      Added value: +{
      +  "description": "Present for a plan with no automatic extra usage: what the official page says happens at the limit (kind no_extra_usage or restart_by_hand), with its sentence. With a workload that needs restarts, restarts gives their count, the price of each and the total, the numbers of monthly_cost.explanation.",
      +  "properties": {
      +    "evidence": {
      +      "properties": {
      +        "quote": {
      +          "type": "string"
      +        },
      +        "url": {
      +          "type": "string"
      +        }
      +      },
      +      "type": "object"
      +    },
      +    "kind": {
      +      "enum": [
      +        "no_extra_usage",
      +        "restart_by_hand"
      +      ]
      +    },
      +    "restarts": {
      +      "properties": {
      +        "count": {
      +          "properties": {
      +            "high": {
      +              "type": "integer"
      +            },
      +            "low": {
      +              "type": "integer"
      +            }
      +          },
      +          "type": "object"
      +        },
      +        "total_usd": {
      +          "properties": {
      +            "high": {
      +              "type": "number"
      +            },
      +            "low": {
      +              "type": "number"
      +            }
      +          },
      +          "type": "object"
      +        },
      +        "usd_each": {
      +          "type": "number"
      +        }
      +      },
      +      "type": "object"
      +    },
      +    "text": {
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "kind",
      +    "text",
      +    "evidence"
      +  ],
      +  "type": "object"
      +}
    • addedOutput schema / properties / offers / items / properties / facts / items / properties / concurrency_unit
      Added value: +{
      +  "description": "get_details, concurrency only: the unit the page states the value in (unit, text such as \"100 threads\"). Against concurrent requests: equals_requests (value, text and the official line of the unit rule) when the unit rule counts this unit as requests, else note \"not the same unit as concurrent requests\"; \"unit not stated\" when the page names none.",
      +  "type": "object"
      +}
    • addedOutput schema / properties / product / properties / facts / items / properties / at_limit
      Added value: +{
      +  "description": "Present for a plan with no automatic extra usage: what the official page says happens at the limit (kind no_extra_usage or restart_by_hand), with its sentence. With a workload that needs restarts, restarts gives their count, the price of each and the total, the numbers of monthly_cost.explanation.",
      +  "properties": {
      +    "evidence": {
      +      "properties": {
      +        "quote": {
      +          "type": "string"
      +        },
      +        "url": {
      +          "type": "string"
      +        }
      +      },
      +      "type": "object"
      +    },
      +    "kind": {
      +      "enum": [
      +        "no_extra_usage",
      +        "restart_by_hand"
      +      ]
      +    },
      +    "restarts": {
      +      "properties": {
      +        "count": {
      +          "properties": {
      +            "high": {
      +              "type": "integer"
      +            },
      +            "low": {
      +              "type": "integer"
      +            }
      +          },
      +          "type": "object"
      +        },
      +        "total_usd": {
      +          "properties": {
      +            "high": {
      +              "type": "number"
      +            },
      +            "low": {
      +              "type": "number"
      +            }
      +          },
      +          "type": "object"
      +        },
      +        "usd_each": {
      +          "type": "number"
      +        }
      +      },
      +      "type": "object"
      +    },
      +    "text": {
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "kind",
      +    "text",
      +    "evidence"
      +  ],
      +  "type": "object"
      +}
    • addedOutput schema / properties / product / properties / facts / items / properties / concurrency_unit
      Added value: +{
      +  "description": "get_details, concurrency only: the unit the page states the value in (unit, text such as \"100 threads\"). Against concurrent requests: equals_requests (value, text and the official line of the unit rule) when the unit rule counts this unit as requests, else note \"not the same unit as concurrent requests\"; \"unit not stated\" when the page names none.",
      +  "type": "object"
      +}
  8. Changed1 schema field changed
    • addedOutput schema / properties / offers / items / properties / link / properties / provider_url
      Added value: +{
      +  "description": "The provider page itself, when url is this service's address that forwards to it.",
      +  "type": "string"
      +}
  9. Changed2 schema fields changed
    • addedOutput schema / properties / link_notes
      Added value: +{
      +  "additionalProperties": {
      +    "type": "string"
      +  },
      +  "description": "The note of each link level (link.link_level) of the plans in this result, stated once.",
      +  "type": "object"
      +}
    • removedOutput schema / properties / offers / items / properties / link / properties / note
      Removed value: -{
      -  "type": [
      -    "string",
      -    "null"
      -  ]
      -}
  10. Changed2 schema fields changed
    • changedOutput schema / properties / offers / items / properties / facts / items / properties / applies_to / description
      Previous value: -"get_details only: billing options the fact is limited to."New value: +"get_details only: billing options (billing) or search engines (search_engines) the fact is limited to."
    • changedOutput schema / properties / product / properties / facts / items / properties / applies_to / description
      Previous value: -"get_details only: billing options the fact is limited to."New value: +"get_details only: billing options (billing) or search engines (search_engines) the fact is limited to."
  11. First observed

TDQS

A4.4/5.0
Behavior5/5

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

Beyond the readOnlyHint/idempotentHint annotations, it discloses truncation behavior ('a product too long for one response comes with one source sentence per fact'), the semantics of the recent_changes block including why an entry may be absent, the distinction between provider and catalog origins, and what 'link url' and 'evidence sources' mean.

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

Conciseness3/5

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

The when/when-not routing is well front-loaded, but the middle section is a long run-on chain describing returned fields ('with the previous and the new value and sentence and the date, and the facts whose sentence the daily re-check could not find again') that an output schema already covers. Several sentences could be condensed without losing selection-relevant information.

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 two-parameter read-only lookup, the description covers selection, exclusivity of ids, truncation, and the recent_changes block. Since an output schema exists, the detailed field-by-field return narration is partly redundant but no essential calling information is missing.

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 itself already enforces 'exactly one of offer_id or product_id' with example ids. The description only restates the one-plan-or-product scope without adding format, lookup, or edge-case guidance for the parameters, so the schema does the heavy lifting.

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 ('Get every recorded condition for one API plan or product') and enumerates the returned content (value, applicable plans, exceptions, source sentence, check date, purchase link). It is clearly distinguishable from search and check_conditions, which the description names explicitly.

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 'Use this when' and 'Do not use this when' clauses, with named alternatives (search, check_conditions) for the excluded comparison workflow. An agent can route correctly without inspecting sibling schemas.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources