Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

PensionHunter

REMOTE · MCP.PENSIONHUNTER.AI

Cross-border pension facts: country coverage, sourced rules, dated deadlines and employer lookups.

72 Trust /100

Last scanned (22 hours ago)

Scores higher than 63% of remote servers

Reachable. Last reached 16 Oct 2026.

Category Finance and Payments

Trust breakdown (7 categories)

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score → Why this is hard to score →

Endpoint Security80
Transport & Reachability100
Schema Quality & AI Usability59
  • AI-judged instruction clarity (excellent).Pass
  • Context-footprint check failed: tool/resource definitions use about 4065 tokens (~369/item across 11 items; 11 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management10
  • Stability observed for 3 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage100
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 100% of tool parameters carry a description.Pass
  • Structured output schemas are declared (100% of tools); any adoption earns full credit.Pass
Tool Safety100
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • We read all 11 captured tool definition(s), and no name or description among them implies an irreversible operation.Pass
  • An AI judge read all 12 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
  • Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 16 Oct 26 +1
    • The server rewrote its instructions, which are the text every model session reads security
    • Tool “check_work_history” rewrote its description, which is the text the model reads security
    • Tool “country_pension_facts” rewrote its description, which is the text the model reads security
    • Tool “resolve_employer” rewrote its description, which is the text the model reads security
    • Schema quality: 2235 → 4065 ▼ functional
    • Schema quality: good → excellent functional
    • Server version: 1.8.0 → 1.10.0 functional
    • New tool “deadline_check” functional
    • New tool “gpfr_fund_count” functional
    • New tool “gpfr_info” functional
    • New tool “gpfr_register” functional
    • New tool “gpfr_status” functional
    • “check_work_history” added an optional parameter “question” cosmetic
    • “country_pension_facts” added an optional parameter “pensionType” cosmetic
    • “country_pension_facts” added an optional parameter “question” cosmetic
  • 15 Oct 26 0
    • The server rewrote its instructions, which are the text every model session reads security
    • Tool “list_covered_countries” rewrote its description, which is the text the model reads security
    • “authority_answer” reworded the description of “language” cosmetic
    • “check_work_history” reworded the description of “language” cosmetic
    • “country_pension_facts” reworded the description of “language” cosmetic
    • “create_order_link” reworded the description of “language” cosmetic
    • “list_covered_countries” reworded the description of “language” cosmetic
    • “resolve_employer” reworded the description of “language” cosmetic
  • 14 Oct 26 −2
    • The server rewrote its instructions, which are the text every model session reads security
    • Tool “authority_answer” rewrote its description, which is the text the model reads security
    • Tool “create_order_link” rewrote its description, which is the text the model reads security
    • Tool “check_work_history” rewrote its description, which is the text the model reads security
    • Tool “country_pension_facts” rewrote its description, which is the text the model reads security
    • Tool “list_covered_countries” rewrote its description, which is the text the model reads security
    • Tool “resolve_employer” rewrote its description, which is the text the model reads security
    • Schema quality: pass → fail ▼ functional
    • Stability: unverified → 0.03 ▲ functional
    • Server version: 1.6.0 → 1.8.0 functional
    • Server version: 1.1.1 → 1.6.0 functional
    • New tool “authority_answer” functional
    • New tool “create_order_link” functional
    • “check_work_history” added an optional parameter “language” cosmetic
    • “country_pension_facts” added an optional parameter “language” cosmetic
    • “list_covered_countries” added an optional parameter “language” cosmetic
    • “resolve_employer” added an optional parameter “language” cosmetic
    • “create_order_link” reworded the description of “tier” cosmetic
  • 13 Oct 26 73

    First indexed and scored.

Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 16 Oct 2026 · Probed https://mcp.pensionhunter.ai

TLS valid

Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .

Subject Issuer Valid from Valid until Key Signature Serial
CN=mcp.pensionhunter.ai CN=YE1,O=Let's Encrypt,C=US 13 Oct 2026 11 Jan 2027 ECDSA 256 ECDSA-SHA384 6cae028dd9e28ea84cd053a95845481eed1
SANs: mcp.pensionhunter.ai
CN=YE1,O=Let's Encrypt,C=US (CA) CN=Root YE,O=ISRG,C=US 3 Sept 2025 2 Sept 2028 ECDSA 384 ECDSA-SHA384 5ddd70dd31f801c85c186a7a04b80afe
CN=Root YE,O=ISRG,C=US (CA) CN=ISRG Root X2,O=Internet Security Research Group,C=US 13 May 2026 2 Sept 2032 ECDSA 384 ECDSA-SHA384 872165fc34b6e5fba8add5b3705fb53a
CN=ISRG Root X2,O=Internet Security Research Group,C=US (CA) CN=ISRG Root X1,O=Internet Security Research Group,C=US 13 May 2026 2 Sept 2032 ECDSA 384 SHA256-RSA 6c8f1dc727c7117f7baf853ac980f9cd

Background: What to check on a remote MCP endpoint →

DNSSEC insecure

Validation of mcp.pensionhunter.ai. — Not signed

Zone DS Keys Algorithms Outcome
. trust_anchor 20326, 38696 8, 8 Verified
ai. present 3799 8 Verified
pensionhunter.ai. absent Unsigned (proven) parent-signed NSEC/NSEC3 proves an unsigned delegation
Authentication No authorisation required

The endpoint answered without asking for a token. Anyone who knows the URL can reach it.

Result No authorisation required
HTTP status 200
Header Value
strict-transport-security max-age=31536000; includeSubDomains; preload

Background: How OAuth 2.1 works in the 2026 MCP spec →

Transports 2 probes
Transport URL Outcome Status Location
streamable-http https://mcp.pensionhunter.ai Verified 200
http (plaintext) http://mcp.pensionhunter.ai HTTPS enforced 301 https://mcp.pensionhunter.ai/
MCP tools · 11 exposed · ~3,943 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

Tool Tokens
authority_answer ~426

What a national pension institution told us in writing, as published on our answers page: the institution, its answer exactly as published, any translation marked as ours, the date of the reply and the link to that answer on pensionhunter.ai/answers. The question is free text, matched to the questions we hold answers to for that country; when nothing matches, the result lists those questions. When we wrote to the country and hold no answer yet, the status says so with the date we asked, from our record of letters sent. Institutions only, never a person. A passage that gives a contact detail stays on the answers page and is returned with its link and the reason. Accepts names, native names, aliases and ISO codes.

NameTypeReqDescription
countrystringyesOne 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…
languagestring–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, s…
questionstringyesThe 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…
NameTypeReqDescription
answersarrayyes–
answersPagestringyesOur answers page, https://pensionhunter.ai/answers.
askedInstitutionstring|nullyesThe institution that letter went to. Never a person. Null when none.
askedOnstring|nullyesISO date of our most recent dated letter to the country, or null.
countrystringyes–
iso2string|nullyes–
languageobject–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 ow…
localNamestring–The country name in the language served, from Unicode CLDR. Present only for a language other than English.
matchedbooleanyesTrue when the question matched at least one published answer.
next_stepobject–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 pr…
notestring––
querystringyesThe country string as sent.
questionstringyesThe question as sent.
questionKeystring|null–The question topic matched.
questionsarrayyesWhen nothing matched: the questions we hold answers to for this country.
recognisedbooleanyesFalse when the string is not a country we can read.
statusstring|nullyesWhere 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_answ…

No examples provided.

check_work_history ~393

For each country in a work history: whether a pension is likely to exist and why, with a verdict that says what it depends on (Singapore CPF depends on citizen, permanent resident or pass holder status), why self service fails from abroad, a dated obligation only where it applies, the dates that would change the answer, where dormant money moves to an unclaimed money body, the workplace pension plan for an employer we researched, and the free official route with contact details. Years may be exact, rough ("around 2005", "late 1990s", "the 1990s") or unknown; we never refuse for missing years. A mapped country carries its institution and official route instead, and a call with only mapped countries carries no next step. Countries accept names, native names, aliases and ISO codes. Nothing sent is stored.

NameTypeReqDescription
entriesarrayyesOne entry per period of work in a country.
languagestring–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, s…
questionstring–Optional. The person's question in plain words; used only to tell which kind of pension it is about.
subjectobject–Optional facts about the person, used only to decide which dated obligations apply.
NameTypeReqDescription
countriesarrayyes–
languageobject–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 ow…
next_stepobject–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 pr…

No examples provided.

country_pension_facts ~448

One country's stored facts: what the money is worth, why the free route fails from abroad, and dated obligations, each with source and read date, then the free official route: the official bodies with website, email and phone read from their own contact pages. Pass the person's question, or pensionType, and the answer is about that kind of pension (state, workplace, provident or personal): facts about another kind are left out and named. Accepts names, native names, aliases and ISO codes. A mapped country returns tier: mapped with its institution, official route and agreements, and no next step. Any other country outside our coverage returns covered: false with a note.

NameTypeReqDescription
countrystringyesOne 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…
languagestring–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, s…
pensionTypestring–Optional. The kind of pension asked about, when known: state, workplace, provident or personal. Overrides the question.
questionstring–Optional. The person's question in plain words, for example "Where is my workplace pension from Merrill Lynch?" or "Do I still have money in my EPF account?". Used only to tell which kind of pension…
NameTypeReqDescription
answersForobject–The kind of pension this answer is about: state, workplace, provident (a provident fund account such as EPF or CPF) or personal, read from pensionType, the question, or a named employer.
contactAbroadobject|null–A contact route for people abroad that the institution has told us in writing we may publish, with that written reply as its source. Null otherwise.
countrystringyesThe country it was read as.
coveredbooleanyes–
datedObligationsarray––
freeOfficialRoutearray–The free official route first: the official bodies for this country and this kind of pension, with website, email, phone and the date we read their contact page. Our report is only what we add on top.
iso2string|nullyes–
languageobject–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 ow…
localNamestring–The country name in the language served, from Unicode CLDR. Present only for a language other than English.
mappedobject–For a mapped country only: the institution that pays the contributory old age pension, its website as a bare domain, its official route to contact it from abroad, and which researched countries it ha…
next_stepobject–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 pr…
notestring––
pendingstring––
querystringyesThe country string as sent.
recognisedbooleanyesFalse when the string is not a country we can read.
schemeRegisterobject|null–For a workplace pension question: where the country lists occupational pension funds.
tierstring–Present for a mapped country: one we have mapped but not yet researched in depth.
whatTheMoneyIsWorthobject|null–A stored fact with the source it came from and the date we read that source. Null when we hold no sourced line.
whyTheFreeRouteFailsFromAbroadobject|null–A stored fact with the source it came from and the date we read that source. Null when we hold no sourced line.

No examples provided.

create_order_link ~551

Opens a secure Stripe checkout for one of our reports, for the countries the person chose, and returns its link, which works for about 24 hours. Call it only when the person asks to order. Send only the countries and the tier, never a name, email address or any other personal detail; Stripe asks for the email at checkout. Prices: Country Pension Identification Report $99 per country, one report covering every country you tick; Enhanced Pension Identification Report $199 for one country; Global Pension Identification Report $299 for two or more, in one report. The Country report: Identification only: we name who holds each pension in every country you tick, with the sourced contact route. The Enhanced report: For one country: every fund identified, a complete, ready-to-send information request for each one, and our team of experts with you until the end, through every reply. The Global report: For every country you worked in, in one report: every fund identified, a complete, ready-to-send information request for each one, and our team of experts with you until the end, through every reply. You send each request to the pension body yourself; we never contact a fund for you. Only countries we cover can be ordered. If a checkout cannot be opened, the result is our order page with the same choices filled in.

NameTypeReqDescription
countriesarrayyesThe countries to order for, each a name, native name, alias or ISO code, for example ["NL", "United Kingdom"]. Only countries we cover; call list_covered_countries when unsure.
languagestring–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, s…
tierstringyesThe report to order. "country": the Country Pension Identification Report, $99 per country, one report covering every country you tick, one or more countries. "enhanced": the Enhanced Pension Identif…
NameTypeReqDescription
checkoutUrlstring|nullyesThe Stripe checkout link, or null when none could be opened.
countriesarrayyesISO 3166 alpha-2 codes of the countries ordered.
expiresAtstring|nullyesWhen the checkout link stops working, ISO 8601 UTC, or null.
feestringyesThe fee, from our published prices.
languageobject–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 ow…
notestringyesOne line to pass on to the person.
offerstringyesThe report offer, with the fee and refund terms.
orderUrlstringyesOur order page with the same tier and countries filled in. It never carries personal data.
productstringyesThe report name.
statusstringyescheckout_opened when checkoutUrl is a live Stripe checkout; order_page when a checkout could not be opened and orderUrl is the way to order.
tierstringyes–

No examples provided.

deadline_check ~383

For a country the person left, and the date they left or, where the clock runs from a death, the date of death: the date our deadline register's rule gives, by adding the period stated in the register row to that date. The free official route comes first, with the official source page, the verbatim quote and the date we read it. Rows whose start event is not stated, or is not the date given, are returned as rules without a date. Send only the country and the date; nothing is stored. Identification only: we do not advise, and the official body decides.

NameTypeReqDescription
countrystringyesThe country left: ISO 3166 alpha-2 code or English name, for example "JP" or "Japan". Call with any value to get the list of countries we hold.
datestringyesThe date, YYYY-MM-DD, not after today.
eventstring–"left": the date the person left that country. "died": the date of death, for clocks that run from a death. Optional when the country has only one.
languagestring–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, s…
NameTypeReqDescription
arithmeticstringyesHow the date is worked out.
clocksarrayyesDates computed from register rows that state both the start event and the period.
countrystringyes–
datestringyesThe date sent, YYYY-MM-DD.
eventstringyes–
iso2stringyes–
languageobject–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 ow…
next_stepobjectyesWhat 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 pr…
notestringyesIdentification only; the official body decides.
rulesWithoutDatearrayyesRules we hold for this country and event whose start is not stated or is not the date given: shown with their source, no date.
todaystringyesThe day the result was computed, UTC, YYYY-MM-DD.

No examples provided.

gpfr_fund_count ~168

For fund-side agents: how many confirmed, plausible people are registered for a pension fund, shown from 10 upwards, otherwise "fewer than 10". An aggregate only: no registrant is ever listed or identifiable.

NameTypeReqDescription
fundstringyesA GPFR fund key (from gpfr_info) or the fund's name.
languagestring–Optional. ISO 639-1 code for our sentences and the consent text: 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. Any other language is a…
NameTypeReqDescription
countinteger|nullyes–
fundstringyes–
keystring|nullyes–
languagestring––
languageNotestring–Present only when the language asked for is not a GPFR language: why the answer and the consent text are in English.
notestringyes–
shownstringyes–
thresholdintegeryes–

No examples provided.

gpfr_info ~227

What GPFR, the Global Pension Finding Register is, in the caller's language: a free register where people who worked abroad add themselves once and pension funds look for the members they cannot reach. Free for people; funds and trustees pay per confirmed match. Nothing is shared unless the person and the fund both say yes. Returns the register page in that language, the consent text and its version (show it to the person before gpfr_register), and, with a country, the pension fund pages we publish for it. Read only.

NameTypeReqDescription
countrystring–Optional. A country name or ISO code; returns our fund pages for it.
languagestring–Optional. ISO 639-1 code for our sentences and the consent text: 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. Any other language is a…
NameTypeReqDescription
agentRulestringyes–
ambitionstringyesAn ambition, stated as one.
consentobjectyes–
consentFlowstringyes–
countrystring|nullyes–
emailPromisestringyes–
freestringyes–
fundPagesarrayyes–
languagestringyes–
languageNotestring–Present only when the language asked for is not a GPFR language: why the answer and the consent text are in English.
livestringyesWhat is live, exactly as it stands.
matchingstringyes–
namestringyes–
registerUrlstringyes–
truststringyes–
whatstringyes–

No examples provided.

gpfr_register ~502

Registers a person in GPFR. First show the person the consent sentence from gpfr_info (consent.text), word for word, in their language, and ask whether they agree. Call this only after they say yes, with consent.consent_text_version equal to the consent.version you showed and person_said_yes: true. Send their email, full name, date of birth, work periods (country, years, optional employer and fund), optional earlier names and national number, and the consent object {consent_text_version, person_said_yes: true, timestamp, client: {name, version}}. Without the consent object, without the yes, or with a version we did not issue, the call is refused and nothing is stored. Name, earlier names, date of birth, national number and employer names reach our server as text; we turn them into codes on receipt and keep only the codes, never the text; nothing is logged or returned. The registration stays pending until the person clicks the link in the one confirmation email we send. You never give the second yes: sharing with a fund is agreed only through the link in our match email. The result is a status and a reference, never a personal detail.

NameTypeReqDescription
consentobjectyesRequired. The yes the person gave after you showed them the gpfr_info consent sentence in their language.
date_of_birthstringyesYYYY-MM-DD. Hashed on receipt.
earlier_namesarray–Optional earlier full names (maiden or former). Hashed on receipt.
emailstringyesThe person's email address. We send one email to confirm it; nothing happens until they click it.
languagestring–Optional. ISO 639-1 code for our sentences and the consent text: 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. Any other language is a…
namestringyesThe person's full name, as an employer or fund would hold it. Hashed on receipt.
national_numberobject–Optional national number and its issuing country. Hashed on receipt.
periodsarrayyesWhere the person worked: country, years, optional employer and fund.
NameTypeReqDescription
languagestring––
languageNotestring–Present only when the language asked for is not a GPFR language: why the answer and the consent text are in English.
notestringyes–
referencestringyesR-XXXX-XXXX-XXXX, for gpfr_status. Not personal data.
statusstringyes–

No examples provided.

gpfr_status ~226

The status of a GPFR registration. Call it with the reference from gpfr_register: we email a one-time code to the registered address, and the answer is the same whether the reference exists or not. Call again with the reference and the code the person reads out: the answer is one of pending_email_confirmation, registered, possible_match_awaiting_your_yes or confirmed_by_fund. Nothing else is returned. The yes to a fund is never given here.

NameTypeReqDescription
codestring–Optional. The six-digit code from our email to the registered address.
languagestring–Optional. ISO 639-1 code for our sentences and the consent text: 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. Any other language is a…
referencestringyesThe reference gpfr_register returned.
NameTypeReqDescription
codeSentboolean––
languagestring––
languageNotestring–Present only when the language asked for is not a GPFR language: why the answer and the consent text are in English.
notestringyes–
statusstring––

No examples provided.

list_covered_countries ~222

The countries PensionHunter covers, each with its ISO code and one sourced line on what exists there, and separately the countries we have mapped but not yet researched, each with the institution that pays its old age pension. Takes one optional input, language, for our own sentences in any of 27 languages.

NameTypeReqDescription
languagestring–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, s…
NameTypeReqDescription
countriesarrayyes–
countryCountintegeryes–
languageobject–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 ow…
mappedarrayyesCountries we have mapped but not researched; not counted in countryCount. Mapped: we name the institution and the official route; we have not yet researched this country in depth.

No examples provided.

resolve_employer ~397

Three things about an employer name, typed however the person remembers it. First, the country it implies, from evidence in the name: a country name, a city (from our sourced city table, so "London" places it in the United Kingdom and "Kuala Lumpur" in Malaysia), a nationality word or a national legal form. Second, the employers we hold that the name may mean, matched after setting aside city, legal form (Ltd, plc, International, Sdn Bhd, Pte, GmbH, B.V., N.V.), punctuation and case, each with a confidence from 0 to 1, across every country when the name carries none. Third, what the employer is called now, from official registers, and for employers we researched by hand, the group it became and its workplace pension plan, each fact with its source page, verbatim quote and read date, the plan's published contact, and the free official route. Legal entities only, never people.

NameTypeReqDescription
languagestring–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, s…
namestringyesThe employer name as the person knows it, ideally with its legal form and city, for example "Shell Nederland B.V." or "Deutsche Bank Frankfurt".
NameTypeReqDescription
candidatesarrayyesCountries the evidence allows when it does not settle on one.
citySourceobject–The cities read in the name and where we read their country.
countrystring|nullyes–
coveredbooleanyesTrue when the country is one we cover.
currentEntityobjectyesWhat the employer is called now, read from official registers (the Global LEI Index, then a national register): renamed, merged, unchanged, ambiguous when several entities carry exactly that name, no…
evidencearrayyes–
freeOfficialRoutearray–The free official route first: the official bodies for this country and this kind of pension, with website, email, phone and the date we read their contact page. Our report is only what we add on top.
iso2string|nullyes–
languageobject–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 ow…
localNamestring–The country name in the language served, from Unicode CLDR. Present only for a language other than English.
matchesarray–Employers we hold that the name may mean, best first, each with its confidence and the register facts it carries.
namestringyes–
next_stepobject–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 pr…
normalisedNamestring–The name as we compare it: no city, country, legal form, punctuation or case. The name sent is kept as sent.
reasonstringyes–
resolvedbooleanyes–
schemeRegisterobject|nullyesWhere the employer's country lists occupational pension funds, or that it has no such public register. Null when the country is not settled.
workplacePensionobject–For an employer we researched by hand: what the employer became and the workplace pension plan for its people, each fact with its source page, verbatim quote and read date, the plan's published conta…

No examples provided.

Install

How do I install the PensionHunter MCP server?

PensionHunter is a hosted endpoint at https://mcp.pensionhunter.ai/, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

remote · mcp.pensionhunter.ai

# add to Claude Code
claude mcp add --transport http ai-pensionhunter-pensionhunter 'https://mcp.pensionhunter.ai/'
Common questions

What is the PensionHunter MCP server?

PensionHunter is an MCP server listed in the public MCP registry as ai.pensionhunter/pensionhunter. Cross-border pension facts: country coverage, sourced rules, dated deadlines and employer lookups. This page covers its hosted endpoint (https://mcp.pensionhunter.ai).

Is the PensionHunter MCP server safe to use?

PensionHunter scores 72 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

What tools does the PensionHunter MCP server expose?

PensionHunter exposes 11 tools: list_covered_countries, country_pension_facts, check_work_history, resolve_employer, authority_answer, and 6 more. Their descriptions and schemas cost roughly 3,943 tokens of context every time the server is loaded.

Does the PensionHunter MCP server require authentication?

No. We connected to PensionHunter without credentials and it answered, so anything it exposes is reachable by anyone who knows the address.

Is the PensionHunter MCP server still maintained?

PensionHunter is still listed as active in the MCP registry. We last reached this channel on 16 October 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.