Skip to content

com.vhishongkong/vhis

by vhishongkong.com · remote · no sign-in to list tools · v1.0.0 · published by com.vhishongkong

Price all 579 VHIS certified plans in Hong Kong, read filed terms, see premium increases since 2021

Changes · 10

16 tools: 10 change things and 6 only read.

Scanned Oct 21, 2026

No check matched anything in the tool definitions. No finding is not a safety guarantee. How the checks work.

claude mcp add --transport http vhis https://mcp.vhishongkong.com/mcp

Tools

Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.

16 tools

Changes things 10Claude Code: ask
  • adviser_notesCurated notes from licensed advisers and the scheme rules: how underwriting works, what usually happens with common conditions, switching, claims practice, tax.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    Curated notes from licensed advisers and the scheme rules: how underwriting works, what usually happens with common conditions, switching, claims practice, tax. Guidance, not plan terms.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • create_leadPass the person to a licensed adviser: saves the enquiry, emails them their shortlist, emails the adviser and returns a WhatsApp link and a reference.No findings

    Why it is in this group

    • The name "create_lead" says "create": a word for a change.
    Description, as the server wrote it
    Pass the person to a licensed adviser: saves the enquiry, emails them their shortlist, emails the adviser and returns a WhatsApp link and a reference. Only call it once they have given a name and a phone number or email and have said they want to be contacted. Never put a health detail in the note; the adviser asks directly. Needs a key on the public server; without one it returns key_required and tells the user where to get one.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: true
  • estimate_renewalThe premium at age plus one on the current schedule, which is certain unless the insurer refiles, plus a low, mid and high range built from this plan's own rate changes since 2021.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    The premium at age plus one on the current schedule, which is certain unless the insurer refiles, plus a low, mid and high range built from this plan's own rate changes since 2021. Needs a key on the public server; without one it returns key_required and tells the user where to get one.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • insurer_increasesAn insurer's rate record across all its VHIS plans since 2021, by year, alongside the market table with every insurer ranked from lowest average annual change to highest.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    An insurer's rate record across all its VHIS plans since 2021, by year, alongside the market table with every insurer ranked from lowest average annual change to highest.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • plan_coverageWhat one plan actually pays, item by item from its own Benefit Schedule: full cover or the published cap on room and board, hospital charges, surgeon's fee, imaging, cancer treatme…No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    What one plan actually pays, item by item from its own Benefit Schedule: full cover or the published cap on room and board, hospital charges, surgeon's fee, imaging, cancer treatment and psychiatric care, plus the annual and lifetime limits, room class, territory, extras and a coverage score. Use it for "what does this cover", "is surgery covered in full", "does it include outpatient".

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • plan_optionsEvery option sold under one certification number, with its room class, deductible and area, priced at this age when an age is given, plus what the premium becomes every five years …No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    Every option sold under one certification number, with its room class, deductible and area, priced at this age when an age is given, plus what the premium becomes every five years to twenty years out.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • plan_termsThe plan's terms as filed with the Health Bureau, field by field with the page each came from: guaranteed renewal age, entry ages, pre-existing condition schedule, waiting period, …No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    The plan's terms as filed with the Health Bureau, field by field with the page each came from: guaranteed renewal age, entry ages, pre-existing condition schedule, waiting period, room class and higher-room rule, territory, full cover, limits, deductible basis, coinsurance, outpatient, psychiatric, cancer, extras, cancellation, switching and exclusions beyond the standard list. Use it for "does it cover X", "what is the rule on Y" and terms comparisons; cite the page.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • premium_historyHow a plan's premium has moved since 2021: every schedule the insurer filed, the premium at this age under each one with the age held constant, the year-on-year changes and the ave…No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    How a plan's premium has moved since 2021: every schedule the insurer filed, the premium at this age under each one with the age held constant, the year-on-year changes and the average. Use it for "has this gone up" and "is this insurer stable".

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • price_plansEvery matching plan ranked by annual premium alone, with no view on coverage.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    Every matching plan ranked by annual premium alone, with no view on coverage. Use it when someone asks for the cheapest, for a full list, or for one insurer's prices. When what the plan covers matters, use find_plans. Needs a key on the public server; without one it returns key_required and tells the user where to get one.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • treatment_costWhat Hong Kong private hospitals published they actually billed for a procedure, hospital by hospital, with the doctor's fee and the hospital's charge separately, and what a named …No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    What Hong Kong private hospitals published they actually billed for a procedure, hospital by hospital, with the doctor's fee and the hospital's charge separately, and what a named plan would pay of it. From the government's price transparency platform, not an estimate. Bills differ several-fold between hospitals, so never quote a single figure for Hong Kong without saying which hospital it belongs to.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
Only reads 6Claude Code: allow
  • compare_plansSide by side on what actually differs: premium now and at 65, next-year range, deductible, room class, limits, area and each insurer's rate record.No findings

    Why it is in this group

    • The name "compare_plans" says "compare": a word for reading.
    Description, as the server wrote it
    Side by side on what actually differs: premium now and at 65, next-year range, deductible, room class, limits, area and each insurer's rate record. Use it for "which is better" and "why is one cheaper"; state the trade-off and let the person choose. Needs a key on the public server; without one it returns key_required and tells the user where to get one.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • fetchThe full record behind a search id: what the plan pays and every term as filed, with the page of each clause.No findings

    Why it is in this group

    • The name "fetch" says "fetch": a word for reading.
    Description, as the server wrote it
    The full record behind a search id: what the plan pays and every term as filed, with the page of each clause.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • find_plansThe plan finder.No findings

    Why it is in this group

    • The name "find_plans" says "find": a word for reading.
    Description, as the server wrote it
    The plan finder. Ranks every eligible VHIS plan on what it covers and what it really costs, and returns three explained picks (lowest cost over the period, best coverage for the money, most comprehensive) with a ranked list behind them. Coverage is read from each plan's Benefit Schedule; cost is the published premium for every year from this age, and the same again with the insurer's own filed rate changes applied. Age is the only thing it needs; pass whatever else the person has actually said.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • list_insurersEvery insurer this server can price, with how many certified plans and rate tables each has loaded.No findings

    Why it is in this group

    • The name "list_insurers" says "list": a word for reading.
    Description, as the server wrote it
    Every insurer this server can price, with how many certified plans and rate tables each has loaded.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • search_plan_termsSearch the official Terms and Benefits of the certified plans and return the clauses, each with the plan, Part, Section, page and a link to that page.No findings

    Why it is in this group

    • The name "search_plan_terms" says "search": a word for reading.
    Description, as the server wrote it
    Search the official Terms and Benefits of the certified plans and return the clauses, each with the plan, Part, Section, page and a link to that page. Use it for exclusions, waiting periods, limits, room class rules, territorial scope, definitions, renewal and cancellation. Never state what a plan says without it.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false

This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.

Install

Pinned to version 1.0.0. Values in angle brackets are yours to fill in.

claude mcp add --transport http vhis https://mcp.vhishongkong.com/mcp

Run in a terminal.

Claude Code permissions

Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.

.claude/settings.json
{
  "permissions": {
    "allow": [
      "mcp__vhis__find_plans",
      "mcp__vhis__compare_plans",
      "mcp__vhis__search_plan_terms",
      "mcp__vhis__list_insurers",
      "mcp__vhis__search",
      "mcp__vhis__fetch"
    ],
    "ask": [
      "mcp__vhis__price_plans",
      "mcp__vhis__plan_coverage",
      "mcp__vhis__plan_terms",
      "mcp__vhis__plan_options",
      "mcp__vhis__premium_history",
      "mcp__vhis__insurer_increases",
      "mcp__vhis__estimate_renewal",
      "mcp__vhis__adviser_notes",
      "mcp__vhis__treatment_cost",
      "mcp__vhis__create_lead"
    ],
    "deny": []
  }
}

Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as vhis. Review it before you use it.