Skip to main content
Glama

Authority answers on the record

authority_answer
Read-onlyIdempotent

What a national pension institution told us in writing, as published on our answers page, with the institution, the date of the reply and the link. The question is free text, matched to the questions we hold answers to.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "country": "<country>",
      "question": "<question>"
    },
    "name": "authority_answer"
  }
}

Input Schema

NameRequiredDescriptionDefault
countryYesA country: English or native name, alias or ISO code, for example NL or Netherlands.
languageNoOptional. Language of our own sentences, default en: en, ar, da, de, es, fa, fr, hi, id, it, ja, ko, nb, nl, pl, pt, pt-BR, ro, ru, sv, th, tl, tr, zh, vi, uk, bg. Facts stay as stored.
questionYesThe question in plain words, for example "What do heirs need?".
include_offerNoOptional, default false. Set true to add next_step, our report offer for this country. The offer the person sees comes from check_work_history (one offer for the whole history) or create_order_link.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • addedInput schema / properties / include_offer
      Added value: +{
      +  "default": false,
      +  "description": "Optional, default false. Set true to add next_step, our report offer for this country. The offer the person sees comes from check_work_history (one offer for the whole history) or create_order_link.",
      +  "type": "boolean"
      +}
  2. Changed4 schema fields changed
    • changedInput schema / properties / country / description
      Previous value: -"One country, as an English name, a native name, a common alias or an ISO 3166 alpha-2 or alpha-3 code, in any case. Examples: Netherlands, Nederland, Holland, NL, NLD; United Kingdom, UK, GB, Britain; Germany, Deutschland, DE."New value: +"A country: English or native name, alias or ISO code, for example NL or Netherlands."
    • changedInput schema / properties / language / description
      Previous value: -"Optional. The language for our own sentences (notes, offer, labels, gap and register sentences), as an ISO 639-1 code: en, ar, da, de, es, fa, fr, hi, id, it, ja, ko, nb, nl, pl, pt, pt-BR, ro, ru, sv, th, tl, tr, zh, vi, uk, bg. Default en. pt is European Portuguese, pt-BR Brazilian, zh Simplified Chinese. Facts, numbers, dates, names and authority answers stay exactly as stored; a fact translation appears only from our committed table, marked translation: true. An unknown code is answered in English with a note."New value: +"Optional. Language of our own sentences, default en: en, ar, da, de, es, fa, fr, hi, id, it, ja, ko, nb, nl, pl, pt, pt-BR, ro, ru, sv, th, tl, tr, zh, vi, uk, bg. Facts stay as stored."
    • changedInput schema / properties / question / description
      Previous value: -"The question in plain words, for example \"Can I deal with this without travelling there?\", \"What do heirs need?\" or \"Do they publish figures on unpaid pensions?\". Matched by keywords to the questions we hold answers to."New value: +"The question in plain words, for example \"What do heirs need?\"."
    • changedOutput schema / (root)
      Previous value: -{
      -  "additionalProperties": false,
      -  "properties": {
      -    "answers": {
      -      "items": {
      -        "additionalProperties": false,
      -        "properties": {
      -          "answer": {
      -            "additionalProperties": false,
      -            "description": "The answer exactly as published, with the institution as source and the reply date as read date. Null when the passage gives a contact detail, which we publish only on the answers page.",
      -            "properties": {
      -              "read": {
      -                "description": "The date we read the source, for example 7 October 2026.",
      -                "type": "string"
      -              },
      -              "source": {
      -                "description": "The publisher or document the fact comes from.",
      -                "type": "string"
      -              },
      -              "text": {
      -                "type": "string"
      -              },
      -              "translated": {
      -                "additionalProperties": false,
      -                "description": "A translation of the fact above, present only when our committed table holds one for that exact text. The original text stays in text.",
      -                "properties": {
      -                  "language": {
      -                    "enum": [
      -                      "en",
      -                      "ar",
      -                      "da",
      -                      "de",
      -                      "es",
      -                      "fa",
      -                      "fr",
      -                      "hi",
      -                      "id",
      -                      "it",
      -                      "ja",
      -                      "ko",
      -                      "nb",
      -                      "nl",
      -                      "pl",
      -                      "pt",
      -                      "pt-BR",
      -                      "ro",
      -                      "ru",
      -                      "sv",
      -                      "th",
      -                      "tl",
      -                      "tr",
      -                      "zh",
      -                      "vi",
      -                      "uk",
      -                      "bg"
      -                    ],
      -                    "type": "string"
      -                  },
      -                  "text": {
      -                    "type": "string"
      -                  },
      -                  "translation": {
      -                    "enum": [
      -                      true
      -                    ],
      -                    "type": "boolean"
      -                  }
      -                },
      -                "required": [
      -                  "language",
      -                  "text",
      -                  "translation"
      -                ],
      -                "type": "object"
      -              }
      -            },
      -            "required": [
      -              "text",
      -              "source",
      -              "read"
      -            ],
      -            "type": [
      -              "object",
      -              "null"
      -            ]
      -          },
      -          "date": {
      -            "description": "The date of the reply, as published.",
      -            "type": "string"
      -          },
      -          "institution": {
      -            "description": "The institution that replied. Never a person.",
      -            "type": "string"
      -          },
      -          "question": {
      -            "type": "string"
      -          },
      -          "questionAsPublished": {
      -            "description": "True when the question is worded as published on the answers page; false when it is our plain summary of what the passage answers.",
      -            "type": "boolean"
      -          },
      -          "questionKey": {
      -            "type": "string"
      -          },
      -          "translation": {
      -            "description": "Our English translation, exactly as published, where the answer is in another language or quotes the original. Ours, not the institution's.",
      -            "type": [
      -              "string",
      -              "null"
      -            ]
      -          },
      -          "url": {
      -            "description": "The answer on https://pensionhunter.ai/answers, with its anchor.",
      -            "format": "uri",
      -            "type": "string"
      -          },
      -          "withheld": {
      -            "description": "Why the passage is served only on the answers page, or null.",
      -            "type": [
      -              "string",
      -              "null"
      -            ]
      -          },
      -          "wording": {
      -            "enum": [
      -              "verbatim",
      -              "approved by the institution",
      -              "our translation",
      -              "our summary"
      -            ],
      -            "type": "string"
      -          },
      -          "wordingNote": {
      -            "type": "string"
      -          }
      -        },
      -        "required": [
      -          "institution",
      -          "questionKey",
      -          "question",
      -          "questionAsPublished",
      -          "answer",
      -          "translation",
      -          "wording",
      -          "wordingNote",
      -          "withheld",
      -          "date",
      -          "url"
      -        ],
      -        "type": "object"
      -      },
      -      "type": "array"
      -    },
      -    "answersPage": {
      -      "description": "Our answers page, https://pensionhunter.ai/answers.",
      -      "format": "uri",
      -      "type": "string"
      -    },
      -    "askedInstitution": {
      -      "description": "The institution that letter went to. Never a person. Null when none.",
      -      "type": [
      -        "string",
      -        "null"
      -      ]
      -    },
      -    "askedOn": {
      -      "description": "ISO date of our most recent dated letter to the country, or null.",
      -      "type": [
      -        "string",
      -        "null"
      -      ]
      -    },
      -    "country": {
      -      "type": "string"
      -    },
      -    "iso2": {
      -      "type": [
      -        "string",
      -        "null"
      -      ]
      -    },
      -    "language": {
      -      "additionalProperties": false,
      -      "description": "Present when language was sent: the language served, its own name, and labels for source, read date, translation and original in that language. Our sentences in this result are translations of our own wording, review recommended.",
      -      "properties": {
      -        "facts": {
      -          "description": "In the served language: facts, numbers and dates are served exactly as stored.",
      -          "type": "string"
      -        },
      -        "labels": {
      -          "additionalProperties": false,
      -          "properties": {
      -            "original": {
      -              "type": "string"
      -            },
      -            "read": {
      -              "type": "string"
      -            },
      -            "source": {
      -              "type": "string"
      -            },
      -            "translation": {
      -              "type": "string"
      -            }
      -          },
      -          "required": [
      -            "source",
      -            "read",
      -            "translation",
      -            "original"
      -          ],
      -          "type": "object"
      -        },
      -        "name": {
      -          "type": "string"
      -        },
      -        "note": {
      -          "description": "Why the result is in English, when the language sent is not one we serve.",
      -          "type": [
      -            "string",
      -            "null"
      -          ]
      -        },
      -        "ourWording": {
      -          "description": "In the served language: these are translations of our own wording, review recommended.",
      -          "type": "string"
      -        },
      -        "requested": {
      -          "description": "The language as sent, when it reads as a language tag; empty otherwise.",
      -          "type": "string"
      -        },
      -        "served": {
      -          "enum": [
      -            "en",
      -            "ar",
      -            "da",
      -            "de",
      -            "es",
      -            "fa",
      -            "fr",
      -            "hi",
      -            "id",
      -            "it",
      -            "ja",
      -            "ko",
      -            "nb",
      -            "nl",
      -            "pl",
      -            "pt",
      -            "pt-BR",
      -            "ro",
      -            "ru",
      -            "sv",
      -            "th",
      -            "tl",
      -            "tr",
      -            "zh",
      -            "vi",
      -            "uk",
      -            "bg"
      -          ],
      -          "type": "string"
      -        },
      -        "supported": {
      -          "description": "False when the language sent is not one of ours; the result is then in English.",
      -          "type": "boolean"
      -        }
      -      },
      -      "required": [
      -        "requested",
      -        "served",
      -        "name",
      -        "supported",
      -        "note",
      -        "ourWording",
      -        "facts",
      -        "labels"
      -      ],
      -      "type": "object"
      -    },
      -    "localName": {
      -      "description": "The country name in the language served, from Unicode CLDR. Present only for a language other than English.",
      -      "type": "string"
      -    },
      -    "matched": {
      -      "description": "True when the question matched at least one published answer.",
      -      "type": "boolean"
      -    },
      -    "next_step": {
      -      "additionalProperties": false,
      -      "description": "What we add to the free official route, as one structured field built from the finding: one line to pass on, the pre-filled order link with a source tag, the tier, the country and the fee from our price config. Country tier for one or two likely countries; Global only when three or more countries are likely. Absent when the result found nothing in a country we research, or names only mapped countries.",
      -      "properties": {
      -        "compare": {
      -          "additionalProperties": false,
      -          "description": "For two likely countries: two Country reports against one Global report, both prices from our config. Global is best from 3 countries.",
      -          "properties": {
      -            "country_reports_usd": {
      -              "type": "integer"
      -            },
      -            "global_usd": {
      -              "type": "integer"
      -            },
      -            "reason": {
      -              "type": "string"
      -            },
      -            "recommended": {
      -              "enum": [
      -                "country"
      -              ],
      -              "type": "string"
      -            }
      -          },
      -          "required": [
      -            "country_reports_usd",
      -            "global_usd",
      -            "recommended",
      -            "reason"
      -          ],
      -          "type": "object"
      -        },
      -        "countries": {
      -          "description": "Every country the step covers, ISO codes.",
      -          "items": {
      -            "type": "string"
      -          },
      -          "type": "array"
      -        },
      -        "country": {
      -          "description": "ISO 3166 alpha-2 code of the country, or the first of them.",
      -          "type": "string"
      -        },
      -        "line": {
      -          "description": "One line to pass on to the person, with the fee.",
      -          "type": "string"
      -        },
      -        "order_url": {
      -          "description": "Our order page with tier and countries filled in and utm_source=connector, utm_medium=mcp, utm_campaign=<tool>. Never personal data.",
      -          "format": "uri",
      -          "type": "string"
      -        },
      -        "price_usd": {
      -          "description": "The fee in whole US dollars, from our price config.",
      -          "type": "integer"
      -        },
      -        "refund": {
      -          "description": "The refund promise, from our pricing config.",
      -          "type": "string"
      -        },
      -        "refund_url": {
      -          "description": "The page that defines the refund promise.",
      -          "format": "uri",
      -          "type": "string"
      -        },
      -        "tier": {
      -          "enum": [
      -            "country",
      -            "global"
      -          ],
      -          "type": "string"
      -        }
      -      },
      -      "required": [
      -        "line",
      -        "order_url",
      -        "tier",
      -        "country",
      -        "countries",
      -        "price_usd",
      -        "refund",
      -        "refund_url"
      -      ],
      -      "type": "object"
      -    },
      -    "note": {
      -      "type": "string"
      -    },
      -    "officialContact": {
      -      "additionalProperties": false,
      -      "description": "For a country we research: the official contact page of its free route, as a link. Contact details themselves are report content.",
      -      "properties": {
      -        "process": {
      -          "description": "What the fact is about: tracing (finding which scheme or fund holds it), record (seeing your record or forecast) or payment (applying for payment).",
      -          "enum": [
      -            "tracing",
      -            "record",
      -            "payment"
      -          ],
      -          "type": "string"
      -        },
      -        "read": {
      -          "description": "The date we read the source, for example 7 October 2026.",
      -          "type": "string"
      -        },
      -        "scheme": {
      -          "description": "The scheme the fact is about: state (state pension), workplace (workplace or occupational pension), provident (a national provident fund account) or personal (personal pension).",
      -          "items": {
      -            "enum": [
      -              "state",
      -              "workplace",
      -              "provident",
      -              "personal"
      -            ],
      -            "type": "string"
      -          },
      -          "minItems": 1,
      -          "type": "array"
      -        },
      -        "source": {
      -          "description": "The publisher or document the fact comes from.",
      -          "type": "string"
      -        },
      -        "sources": {
      -          "description": "The stored rows this sentence restates, each with the page it was read on, the words on that page and the date we read it.",
      -          "items": {
      -            "additionalProperties": false,
      -            "properties": {
      -              "quote": {
      -                "description": "Verbatim words from the source.",
      -                "type": "string"
      -              },
      -              "read": {
      -                "type": "string"
      -              },
      -              "source": {
      -                "type": "string"
      -              },
      -              "text": {
      -                "type": "string"
      -              },
      -              "translated": {
      -                "additionalProperties": false,
      -                "description": "A translation of the fact above, present only when our committed table holds one for that exact text. The original text stays in text.",
      -                "properties": {
      -                  "language": {
      -                    "enum": [
      -                      "en",
      -                      "ar",
      -                      "da",
      -                      "de",
      -                      "es",
      -                      "fa",
      -                      "fr",
      -                      "hi",
      -                      "id",
      -                      "it",
      -                      "ja",
      -                      "ko",
      -                      "nb",
      -                      "nl",
      -                      "pl",
      -                      "pt",
      -                      "pt-BR",
      -                      "ro",
      -                      "ru",
      -                      "sv",
      -                      "th",
      -                      "tl",
      -                      "tr",
      -                      "zh",
      -                      "vi",
      -                      "uk",
      -                      "bg"
      -                    ],
      -                    "type": "string"
      -                  },
      -                  "text": {
      -                    "type": "string"
      -                  },
      -                  "translation": {
      -                    "enum": [
      -                      true
      -                    ],
      -                    "type": "boolean"
      -                  }
      -                },
      -                "required": [
      -                  "language",
      -                  "text",
      -                  "translation"
      -                ],
      -                "type": "object"
      -              },
      -              "url": {
      -                "format": "uri",
      -                "type": "string"
      -              }
      -            },
      -            "required": [
      -              "text",
      -              "source",
      -              "url",
      -              "read"
      -            ],
      -            "type": "object"
      -          },
      -          "type": "array"
      -        },
      -        "text": {
      -          "type": "string"
      -        },
      -        "translated": {
      -          "additionalProperties": false,
      -          "description": "A translation of the fact above, present only when our committed table holds one for that exact text. The original text stays in text.",
      -          "properties": {
      -            "language": {
      -              "enum": [
      -                "en",
      -                "ar",
      -                "da",
      -                "de",
      -                "es",
      -                "fa",
      -                "fr",
      -                "hi",
      -                "id",
      -                "it",
      -                "ja",
      -                "ko",
      -                "nb",
      -                "nl",
      -                "pl",
      -                "pt",
      -                "pt-BR",
      -                "ro",
      -                "ru",
      -                "sv",
      -                "th",
      -                "tl",
      -                "tr",
      -                "zh",
      -                "vi",
      -                "uk",
      -                "bg"
      -              ],
      -              "type": "string"
      -            },
      -            "text": {
      -              "type": "string"
      -            },
      -            "translation": {
      -              "enum": [
      -                true
      -              ],
      -              "type": "boolean"
      -            }
      -          },
      -          "required": [
      -            "language",
      -            "text",
      -            "translation"
      -          ],
      -          "type": "object"
      -        },
      -        "url": {
      -          "description": "The official contact page.",
      -          "format": "uri",
      -          "type": "string"
      -        }
      -      },
      -      "required": [
      -        "text",
      -        "source",
      -        "read",
      -        "scheme"
      -      ],
      -      "type": [
      -        "object",
      -        "null"
      -      ]
      -    },
      -    "query": {
      -      "description": "The country string as sent.",
      -      "type": "string"
      -    },
      -    "question": {
      -      "description": "The question as sent.",
      -      "type": "string"
      -    },
      -    "questionKey": {
      -      "description": "The question topic matched.",
      -      "type": [
      -        "string",
      -        "null"
      -      ]
      -    },
      -    "questions": {
      -      "description": "When nothing matched: the questions we hold answers to for this country.",
      -      "items": {
      -        "additionalProperties": false,
      -        "properties": {
      -          "institution": {
      -            "type": "string"
      -          },
      -          "question": {
      -            "type": "string"
      -          },
      -          "questionAsPublished": {
      -            "type": "boolean"
      -          },
      -          "questionKey": {
      -            "type": "string"
      -          },
      -          "url": {
      -            "format": "uri",
      -            "type": "string"
      -          }
      -        },
      -        "required": [
      -          "questionKey",
      -          "question",
      -          "questionAsPublished",
      -          "institution",
      -          "url"
      -        ],
      -        "type": "object"
      -      },
      -      "type": "array"
      -    },
      -    "recognised": {
      -      "description": "False when the string is not a country we can read.",
      -      "type": "boolean"
      -    },
      -    "sample_report": {
      -      "description": "Our sample report, to read what a report holds before ordering.",
      -      "format": "uri",
      -      "type": "string"
      -    },
      -    "status": {
      -      "description": "Where our written questions to the country stand: answered when our answers page publishes an answer from an institution there; asked_no_answer_yet when asked on askedOn, no answer yet; asked_no_answer_published when asked on askedOn and the answer is not published; replied_no_answer_published when the institution replied and nothing is published; not_asked when no dated letter is on our record. Null when the country is not recognised.",
      -      "enum": [
      -        "answered",
      -        "asked_no_answer_yet",
      -        "asked_no_answer_published",
      -        "replied_no_answer_published",
      -        "not_asked",
      -        null
      -      ],
      -      "type": [
      -        "string",
      -        "null"
      -      ]
      -    }
      -  },
      -  "required": [
      -    "query",
      -    "question",
      -    "country",
      -    "iso2",
      -    "recognised",
      -    "matched",
      -    "status",
      -    "askedOn",
      -    "askedInstitution",
      -    "answers",
      -    "questions",
      -    "answersPage"
      -  ],
      -  "type": "object"
      -}New value: +null
  3. Changed2 schema fields changed
    • changedOutput schema / properties / next_step / properties / compare / description
      Previous value: -"For two likely countries: two Country reports against one Global report, both prices from our config. Global is recommended from three countries."New value: +"For two likely countries: two Country reports against one Global report, both prices from our config. Global is best from 3 countries."
    • addedOutput schema / properties / officialContact / properties / sources
      Added value: +{
      +  "description": "The stored rows this sentence restates, each with the page it was read on, the words on that page and the date we read it.",
      +  "items": {
      +    "additionalProperties": false,
      +    "properties": {
      +      "quote": {
      +        "description": "Verbatim words from the source.",
      +        "type": "string"
      +      },
      +      "read": {
      +        "type": "string"
      +      },
      +      "source": {
      +        "type": "string"
      +      },
      +      "text": {
      +        "type": "string"
      +      },
      +      "translated": {
      +        "additionalProperties": false,
      +        "description": "A translation of the fact above, present only when our committed table holds one for that exact text. The original text stays in text.",
      +        "properties": {
      +          "language": {
      +            "enum": [
      +              "en",
      +              "ar",
      +              "da",
      +              "de",
      +              "es",
      +              "fa",
      +              "fr",
      +              "hi",
      +              "id",
      +              "it",
      +              "ja",
      +              "ko",
      +              "nb",
      +              "nl",
      +              "pl",
      +              "pt",
      +              "pt-BR",
      +              "ro",
      +              "ru",
      +              "sv",
      +              "th",
      +              "tl",
      +              "tr",
      +              "zh",
      +              "vi",
      +              "uk",
      +              "bg"
      +            ],
      +            "type": "string"
      +          },
      +          "text": {
      +            "type": "string"
      +          },
      +          "translation": {
      +            "enum": [
      +              true
      +            ],
      +            "type": "boolean"
      +          }
      +        },
      +        "required": [
      +          "language",
      +          "text",
      +          "translation"
      +        ],
      +        "type": "object"
      +      },
      +      "url": {
      +        "format": "uri",
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "text",
      +      "source",
      +      "url",
      +      "read"
      +    ],
      +    "type": "object"
      +  },
      +  "type": "array"
      +}
  4. Changed6 schema fields changed
    • addedOutput schema / properties / next_step / properties / compare
      Added value: +{
      +  "additionalProperties": false,
      +  "description": "For two likely countries: two Country reports against one Global report, both prices from our config. Global is recommended from three countries.",
      +  "properties": {
      +    "country_reports_usd": {
      +      "type": "integer"
      +    },
      +    "global_usd": {
      +      "type": "integer"
      +    },
      +    "reason": {
      +      "type": "string"
      +    },
      +    "recommended": {
      +      "enum": [
      +        "country"
      +      ],
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "country_reports_usd",
      +    "global_usd",
      +    "recommended",
      +    "reason"
      +  ],
      +  "type": "object"
      +}
    • addedOutput schema / properties / next_step / properties / refund
      Added value: +{
      +  "description": "The refund promise, from our pricing config.",
      +  "type": "string"
      +}
    • addedOutput schema / properties / next_step / properties / refund_url
      Added value: +{
      +  "description": "The page that defines the refund promise.",
      +  "format": "uri",
      +  "type": "string"
      +}
    • changedOutput schema / properties / next_step / required
      Previous value: -[
      -  "line",
      -  "order_url",
      -  "tier",
      -  "country",
      -  "countries",
      -  "price_usd"
      -]New value: +[
      +  "line",
      +  "order_url",
      +  "tier",
      +  "country",
      +  "countries",
      +  "price_usd",
      +  "refund",
      +  "refund_url"
      +]
    • addedOutput schema / properties / officialContact
      Added value: +{
      +  "additionalProperties": false,
      +  "description": "For a country we research: the official contact page of its free route, as a link. Contact details themselves are report content.",
      +  "properties": {
      +    "process": {
      +      "description": "What the fact is about: tracing (finding which scheme or fund holds it), record (seeing your record or forecast) or payment (applying for payment).",
      +      "enum": [
      +        "tracing",
      +        "record",
      +        "payment"
      +      ],
      +      "type": "string"
      +    },
      +    "read": {
      +      "description": "The date we read the source, for example 7 October 2026.",
      +      "type": "string"
      +    },
      +    "scheme": {
      +      "description": "The scheme the fact is about: state (state pension), workplace (workplace or occupational pension), provident (a national provident fund account) or personal (personal pension).",
      +      "items": {
      +        "enum": [
      +          "state",
      +          "workplace",
      +          "provident",
      +          "personal"
      +        ],
      +        "type": "string"
      +      },
      +      "minItems": 1,
      +      "type": "array"
      +    },
      +    "source": {
      +      "description": "The publisher or document the fact comes from.",
      +      "type": "string"
      +    },
      +    "text": {
      +      "type": "string"
      +    },
      +    "translated": {
      +      "additionalProperties": false,
      +      "description": "A translation of the fact above, present only when our committed table holds one for that exact text. The original text stays in text.",
      +      "properties": {
      +        "language": {
      +          "enum": [
      +            "en",
      +            "ar",
      +            "da",
      +            "de",
      +            "es",
      +            "fa",
      +            "fr",
      +            "hi",
      +            "id",
      +            "it",
      +            "ja",
      +            "ko",
      +            "nb",
      +            "nl",
      +            "pl",
      +            "pt",
      +            "pt-BR",
      +            "ro",
      +            "ru",
      +            "sv",
      +            "th",
      +            "tl",
      +            "tr",
      +            "zh",
      +            "vi",
      +            "uk",
      +            "bg"
      +          ],
      +          "type": "string"
      +        },
      +        "text": {
      +          "type": "string"
      +        },
      +        "translation": {
      +          "enum": [
      +            true
      +          ],
      +          "type": "boolean"
      +        }
      +      },
      +      "required": [
      +        "language",
      +        "text",
      +        "translation"
      +      ],
      +      "type": "object"
      +    },
      +    "url": {
      +      "description": "The official contact page.",
      +      "format": "uri",
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "text",
      +    "source",
      +    "read",
      +    "scheme"
      +  ],
      +  "type": [
      +    "object",
      +    "null"
      +  ]
      +}
    • addedOutput schema / properties / sample_report
      Added value: +{
      +  "description": "Our sample report, to read what a report holds before ordering.",
      +  "format": "uri",
      +  "type": "string"
      +}
  5. Changed3 schema fields changed
    • addedOutput schema / properties / next_step
      Added value: +{
      +  "additionalProperties": false,
      +  "description": "What we add to the free official route, as one structured field built from the finding: one line to pass on, the pre-filled order link with a source tag, the tier, the country and the fee from our price config. Country tier for one or two likely countries; Global only when three or more countries are likely. Absent when the result found nothing in a country we research, or names only mapped countries.",
      +  "properties": {
      +    "countries": {
      +      "description": "Every country the step covers, ISO codes.",
      +      "items": {
      +        "type": "string"
      +      },
      +      "type": "array"
      +    },
      +    "country": {
      +      "description": "ISO 3166 alpha-2 code of the country, or the first of them.",
      +      "type": "string"
      +    },
      +    "line": {
      +      "description": "One line to pass on to the person, with the fee.",
      +      "type": "string"
      +    },
      +    "order_url": {
      +      "description": "Our order page with tier and countries filled in and utm_source=connector, utm_medium=mcp, utm_campaign=<tool>. Never personal data.",
      +      "format": "uri",
      +      "type": "string"
      +    },
      +    "price_usd": {
      +      "description": "The fee in whole US dollars, from our price config.",
      +      "type": "integer"
      +    },
      +    "tier": {
      +      "enum": [
      +        "country",
      +        "global"
      +      ],
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "line",
      +    "order_url",
      +    "tier",
      +    "country",
      +    "countries",
      +    "price_usd"
      +  ],
      +  "type": "object"
      +}
    • removedOutput schema / properties / offer
      Removed value: -{
      -  "description": "The report offer, with prices, delivery time and refund terms. Absent when the result names mapped countries and no researched one.",
      -  "type": "string"
      -}
    • removedOutput schema / properties / orderUrl
      Removed value: -{
      -  "description": "Order page for the countries in this result: tier=country&country=<ISO> for one covered country, tier=global for several. It never carries personal data. Absent when the result names mapped countries and no researched one.",
      -  "format": "uri",
      -  "type": "string"
      -}
  6. Changed3 schema fields changed
    • changedInput schema / properties / language / description
      Previous value: -"Optional. The language for our own sentences (notes, offer, labels, gap and register sentences), as an ISO 639-1 code: en, ar, da, de, es, fa, fr, hi, id, it, ja, ko, nb, nl, pl, pt, pt-BR, ro, ru, sv, th, tl, tr, zh. Default en. pt is European Portuguese, pt-BR Brazilian, zh Simplified Chinese. Facts, numbers, dates, names and authority answers stay exactly as stored; a fact translation appears only from our committed table, marked translation: true. An unknown code is answered in English with a note."New value: +"Optional. The language for our own sentences (notes, offer, labels, gap and register sentences), as an ISO 639-1 code: en, ar, da, de, es, fa, fr, hi, id, it, ja, ko, nb, nl, pl, pt, pt-BR, ro, ru, sv, th, tl, tr, zh, vi, uk, bg. Default en. pt is European Portuguese, pt-BR Brazilian, zh Simplified Chinese. Facts, numbers, dates, names and authority answers stay exactly as stored; a fact translation appears only from our committed table, marked translation: true. An unknown code is answered in English with a note."
    • changedOutput schema / properties / answers / items / properties / answer / properties / translated / properties / language / enum
      Previous value: -[
      -  "en",
      -  "ar",
      -  "da",
      -  "de",
      -  "es",
      -  "fa",
      -  "fr",
      -  "hi",
      -  "id",
      -  "it",
      -  "ja",
      -  "ko",
      -  "nb",
      -  "nl",
      -  "pl",
      -  "pt",
      -  "pt-BR",
      -  "ro",
      -  "ru",
      -  "sv",
      -  "th",
      -  "tl",
      -  "tr",
      -  "zh"
      -]New value: +[
      +  "en",
      +  "ar",
      +  "da",
      +  "de",
      +  "es",
      +  "fa",
      +  "fr",
      +  "hi",
      +  "id",
      +  "it",
      +  "ja",
      +  "ko",
      +  "nb",
      +  "nl",
      +  "pl",
      +  "pt",
      +  "pt-BR",
      +  "ro",
      +  "ru",
      +  "sv",
      +  "th",
      +  "tl",
      +  "tr",
      +  "zh",
      +  "vi",
      +  "uk",
      +  "bg"
      +]
    • changedOutput schema / properties / language / properties / served / enum
      Previous value: -[
      -  "en",
      -  "ar",
      -  "da",
      -  "de",
      -  "es",
      -  "fa",
      -  "fr",
      -  "hi",
      -  "id",
      -  "it",
      -  "ja",
      -  "ko",
      -  "nb",
      -  "nl",
      -  "pl",
      -  "pt",
      -  "pt-BR",
      -  "ro",
      -  "ru",
      -  "sv",
      -  "th",
      -  "tl",
      -  "tr",
      -  "zh"
      -]New value: +[
      +  "en",
      +  "ar",
      +  "da",
      +  "de",
      +  "es",
      +  "fa",
      +  "fr",
      +  "hi",
      +  "id",
      +  "it",
      +  "ja",
      +  "ko",
      +  "nb",
      +  "nl",
      +  "pl",
      +  "pt",
      +  "pt-BR",
      +  "ro",
      +  "ru",
      +  "sv",
      +  "th",
      +  "tl",
      +  "tr",
      +  "zh",
      +  "vi",
      +  "uk",
      +  "bg"
      +]
  7. Changed4 schema fields changed
    • addedOutput schema / properties / askedInstitution
      Added value: +{
      +  "description": "The institution that letter went to. Never a person. Null when none.",
      +  "type": [
      +    "string",
      +    "null"
      +  ]
      +}
    • addedOutput schema / properties / askedOn
      Added value: +{
      +  "description": "ISO date of our most recent dated letter to the country, or null.",
      +  "type": [
      +    "string",
      +    "null"
      +  ]
      +}
    • addedOutput schema / properties / status
      Added value: +{
      +  "description": "Where our written questions to the country stand: answered when our answers page publishes an answer from an institution there; asked_no_answer_yet when asked on askedOn, no answer yet; asked_no_answer_published when asked on askedOn and the answer is not published; replied_no_answer_published when the institution replied and nothing is published; not_asked when no dated letter is on our record. Null when the country is not recognised.",
      +  "enum": [
      +    "answered",
      +    "asked_no_answer_yet",
      +    "asked_no_answer_published",
      +    "replied_no_answer_published",
      +    "not_asked",
      +    null
      +  ],
      +  "type": [
      +    "string",
      +    "null"
      +  ]
      +}
    • changedOutput schema / required
      Previous value: -[
      -  "query",
      -  "question",
      -  "country",
      -  "iso2",
      -  "recognised",
      -  "matched",
      -  "answers",
      -  "questions",
      -  "answersPage"
      -]New value: +[
      +  "query",
      +  "question",
      +  "country",
      +  "iso2",
      +  "recognised",
      +  "matched",
      +  "status",
      +  "askedOn",
      +  "askedInstitution",
      +  "answers",
      +  "questions",
      +  "answersPage"
      +]
  8. Changed4 schema fields changed
    • addedInput schema / properties / language
      Added value: +{
      +  "description": "Optional. The language for our own sentences (notes, offer, labels, gap and register sentences), as an ISO 639-1 code: en, ar, da, de, es, fa, fr, hi, id, it, ja, ko, nb, nl, pl, pt, pt-BR, ro, ru, sv, th, tl, tr, zh. Default en. pt is European Portuguese, pt-BR Brazilian, zh Simplified Chinese. Facts, numbers, dates, names and authority answers stay exactly as stored; a fact translation appears only from our committed table, marked translation: true. An unknown code is answered in English with a note.",
      +  "maxLength": 35,
      +  "minLength": 2,
      +  "type": "string"
      +}
    • addedOutput schema / properties / answers / items / properties / answer / properties / translated
      Added value: +{
      +  "additionalProperties": false,
      +  "description": "A translation of the fact above, present only when our committed table holds one for that exact text. The original text stays in text.",
      +  "properties": {
      +    "language": {
      +      "enum": [
      +        "en",
      +        "ar",
      +        "da",
      +        "de",
      +        "es",
      +        "fa",
      +        "fr",
      +        "hi",
      +        "id",
      +        "it",
      +        "ja",
      +        "ko",
      +        "nb",
      +        "nl",
      +        "pl",
      +        "pt",
      +        "pt-BR",
      +        "ro",
      +        "ru",
      +        "sv",
      +        "th",
      +        "tl",
      +        "tr",
      +        "zh"
      +      ],
      +      "type": "string"
      +    },
      +    "text": {
      +      "type": "string"
      +    },
      +    "translation": {
      +      "enum": [
      +        true
      +      ],
      +      "type": "boolean"
      +    }
      +  },
      +  "required": [
      +    "language",
      +    "text",
      +    "translation"
      +  ],
      +  "type": "object"
      +}
    • addedOutput schema / properties / language
      Added value: +{
      +  "additionalProperties": false,
      +  "description": "Present when language was sent: the language served, its own name, and labels for source, read date, translation and original in that language. Our sentences in this result are translations of our own wording, review recommended.",
      +  "properties": {
      +    "facts": {
      +      "description": "In the served language: facts, numbers and dates are served exactly as stored.",
      +      "type": "string"
      +    },
      +    "labels": {
      +      "additionalProperties": false,
      +      "properties": {
      +        "original": {
      +          "type": "string"
      +        },
      +        "read": {
      +          "type": "string"
      +        },
      +        "source": {
      +          "type": "string"
      +        },
      +        "translation": {
      +          "type": "string"
      +        }
      +      },
      +      "required": [
      +        "source",
      +        "read",
      +        "translation",
      +        "original"
      +      ],
      +      "type": "object"
      +    },
      +    "name": {
      +      "type": "string"
      +    },
      +    "note": {
      +      "description": "Why the result is in English, when the language sent is not one we serve.",
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "ourWording": {
      +      "description": "In the served language: these are translations of our own wording, review recommended.",
      +      "type": "string"
      +    },
      +    "requested": {
      +      "description": "The language as sent, when it reads as a language tag; empty otherwise.",
      +      "type": "string"
      +    },
      +    "served": {
      +      "enum": [
      +        "en",
      +        "ar",
      +        "da",
      +        "de",
      +        "es",
      +        "fa",
      +        "fr",
      +        "hi",
      +        "id",
      +        "it",
      +        "ja",
      +        "ko",
      +        "nb",
      +        "nl",
      +        "pl",
      +        "pt",
      +        "pt-BR",
      +        "ro",
      +        "ru",
      +        "sv",
      +        "th",
      +        "tl",
      +        "tr",
      +        "zh"
      +      ],
      +      "type": "string"
      +    },
      +    "supported": {
      +      "description": "False when the language sent is not one of ours; the result is then in English.",
      +      "type": "boolean"
      +    }
      +  },
      +  "required": [
      +    "requested",
      +    "served",
      +    "name",
      +    "supported",
      +    "note",
      +    "ourWording",
      +    "facts",
      +    "labels"
      +  ],
      +  "type": "object"
      +}
    • addedOutput schema / properties / localName
      Added value: +{
      +  "description": "The country name in the language served, from Unicode CLDR. Present only for a language other than English.",
      +  "type": "string"
      +}
  9. Added

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already cover readOnly, idempotent, non-destructive, and closed-world behavior, so the bar is lower. The description adds real value by disclosing the lookup is a match against a held set of questions, which implies potentially empty results, but it does not say what happens on no-match or whether matching is exact or fuzzy.

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

Conciseness4/5

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

Two dense sentences that front-load what is returned before the matching caveat. Slightly run-on in the first sentence listing outputs, but nothing is wasted.

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?

With no output schema, the description takes on the burden of describing returns and does so (institution, date, link), and explains the question matching. Missing only fallback behavior on no match, which for a read-only retrieval tool with full annotation coverage is a minor gap.

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%, so the schema fully documents all four parameters, including country, language, and include_offer with its sibling-tool interplay. The description only adds that the question is free text matched against stored questions, which is marginal beyond the schema's own example ('What do heirs need?'). Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the resource being retrieved: written answers from a national pension institution, returned with the institution, reply date, and link, plus the free-text matching behavior of the question. It is specific enough to identify the tool's function, but it never distinguishes itself from siblings like country_pension_facts or gpfr_info, leaving overlap ambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no explicit when-to-use or when-not-to-use guidance and no named alternative. The phrase 'matched to the questions we hold answers to' implies the corpus is fixed and results may be empty, but the agent is left to infer when this tool beats country_pension_facts or deadline_check.

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.