protogrid

Search / sg.cashew/mcp

Cashew

R0· no sign-in

Live Singapore mortgage rates, package recommendations and home-loan calculators.

v1.4.0 · active · repository · website · descriptor JSON · versions

An agent can connect right now, no human step.Remote endpoint, no authentication, reachable on the last probe.
Quality72needs work
Trust95of 100
Uptime, 30 days97%
Latency p501106 ms

Connect

8 clients · secrets stay placeholders
{
  "mcpServers": {
    "cashew": {
      "type": "http",
      "url": "https://www.cashew.sg/mcp"
    }
  }
}
claude mcp add --transport http cashew https://www.cashew.sg/mcp
[mcp_servers.cashew]
url = "https://www.cashew.sg/mcp"
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "cashew": {
      "type": "remote",
      "url": "https://www.cashew.sg/mcp",
      "enabled": true
    }
  }
}
{
  "mcpServers": {
    "cashew": {
      "type": "http",
      "url": "https://www.cashew.sg/mcp"
    }
  },
  "deeplink": "cursor://anysphere.cursor-deeplink/mcp/install?name=cashew&config=eyJ0eXBlIjoiaHR0cCIsInVybCI6Imh0dHBzOi8vd3d3LmNhc2hldy5zZy9tY3AifQ%3D%3D"
}
{
  "servers": {
    "cashew": {
      "type": "http",
      "url": "https://www.cashew.sg/mcp"
    }
  }
}
{
  "mcpServers": {
    "cashew": {
      "httpUrl": "https://www.cashew.sg/mcp"
    }
  }
}
extensions:
  "cashew":
    enabled: true
    name: "cashew"
    type: streamable_http
    uri: "https://www.cashew.sg/mcp"
    timeout: 300

Quality 72 / 100needs work

protocol75 · weight 25
  • warn
    protocol.modernnewest supported version is 2025-11-25; 2026-07-28 not supported, older versions are deprecated until 2027-07-28
  • n/a
    protocol.statelessonly applies to 2026-07-28 servers
  • pass
    protocol.transportstreamable HTTP
  • n/a
    protocol.list_ttlonly applies to 2026-07-28 servers
authorizationn/a · weight 15
  • n/a
    auth.prm, auth.as_metadata, auth.cimdno remote uses OAuth
  • n/a
    auth.secret_in_urlno templated URL
tool hygiene93 · weight 30
  • pass
    tools.descriptionsevery tool has a description
  • pass
    tools.description_lengthdescriptions are concise
  • pass
    tools.schemasevery tool has an object input schema
  • pass
    tools.annotations23 of 23 tools declare readOnlyHint or destructiveHint
  • pass
    tools.directory_hintsevery tool declares readOnlyHint, destructiveHint, idempotentHint and openWorldHint
  • warn
    tools.token_costabout 14,405 tokens to load every tool
  • pass
    tools.api_dumptools are not a one-to-one API dump
stability25 · weight 15
  • warn
    stability.changes56 tool changes in 30 days
  • fail
    stability.rug_pull5 tools kept their name but changed most of their description in 30 days; review before trusting them
dependenciesn/a · weight 15
  • n/a
    deps.known_vulns, deps.mcp_sdk_version, deps.resolvableno npm or PyPI package

23 tools, about 14,405 tokens to load them all · tool set fef6c15f8065 · tools last changed 2026-11-06 · checked 2026-11-07 17:28 UTC

Tool changes

  • calculate_package_schedulechangeddescription, input schema, output schema
    before

    Compute the amortisation schedule for a specific mortgage package using that package's real effective rates. Returns loan facts (`context`), the per-tier breakdown (`periods`), rate structure, totals and the per-year schedule (`annual`). Required: `packageId` from `recommend_packages`, `loanAmount` (SGD) and `tenureYears`. Optional: `includeMonthly: true` fills `monthly`; `formats` (`["pdf"]`, `["xlsx"]` or both) adds download URLs under `documents`; `firstPaymentDate` (YYYY-MM-DD, defaults to next month). Not for hypothetical rates: use `calculate_mortgage_repayment` for a what-if rate the borrower holds no package for.

    after · 86% of words in common

    Compute the amortisation schedule for a specific mortgage package using that package's real effective rates. Returns loan facts (`context`), the per-tier breakdown (`periods`), rate structure, totals and the per-year schedule (`annual`). Required: `packageId` from `recommend_packages`, `loanAmount` (SGD) and `tenureYears`. Optional: `includeMonthly: true` fills `monthly`; `firstPaymentDate` (YYYY-MM-DD, defaults to next month). Not for hypothetical rates: use `calculate_mortgage_repayment` for a what-if rate the borrower holds no package for.

  • compare_packageschangeddescription, input schema, output schema
    before

    Compare 2–3 specific mortgage packages side by side: average rate over the lock-in, benchmark index, effective rate and monthly instalment per year, interest paid per year, and flexibility terms (prepayment, free conversion, sale waiver, penalties, minimum loan). Required: `packageIds` from `recommend_packages` and `loanAmount` (SGD). Optional: `tenureYears` (default 25); `dealKind`/`propertyType`/`propertyStatus` only label the report header; `formats: ["pdf"]` adds a one-page document (URL under `documents.pdfUrl`). Not for finding packages: it has no borrower context, so use `recommend_packages` for a personalised ranking. `verdicts`/`recommendedId` only carry over reasoning from a prior `recommend_packages` call; never author them.

    after · 86% of words in common

    Compare 2–3 specific mortgage packages side by side: average rate over the lock-in, benchmark index, effective rate and monthly instalment per year, interest paid per year, and flexibility terms (prepayment, free conversion, sale waiver, penalties, minimum loan). Required: `packageIds` from `recommend_packages` and `loanAmount` (SGD). Optional: `tenureYears` (default 25); `dealKind`/`propertyType`/`propertyStatus` only label the comparison header. Not for finding packages: it has no borrower context, so use `recommend_packages` for a personalised ranking. `verdicts`/`recommendedId` only carry over reasoning from a prior `recommend_packages` call; never author them.

  • recommend_packageschangeddescription, input schema, output schema
    before

    Rank live Singapore mortgage packages for one borrower and loan. Returns `recommended` (up to 3 picks with `reasoning`), `lowestRateIds` (cheapest eligible first), `isPersonalised` and `packages` (full details by id). Required: `dealKind` (PURCHASE | REFINANCE), `propertyType` (HDB | PRIVATE | COMMERCIAL), `propertyStatus`, `loanAmount` (SGD); for REFINANCE also `currentBankId` from `list_banks`. Ask for missing facts; do not guess. Valid statuses: HDB: COMPLETED or BTO; PRIVATE: COMPLETED or BUC; COMMERCIAL: OWNEROCCUPIED, INVESTMENT or PERSONAL. Optional: `ratesType` (FIXED | FLOATING), `userContext` (free-text priorities), `formats: ["pdf"]` for a comparison document (URL under `documents`), `tenureYears` (default 25). Call again with the full input set whenever anything changes. Not for what-if rates (use `calculate_mortgage_repayment`).

    after · 88% of words in common

    Rank live Singapore mortgage packages for one borrower and loan. Returns `recommended` (up to 3 picks with `reasoning`), `lowestRateIds` (cheapest eligible first), `isPersonalised` and `packages` (full details by id). Required: `dealKind` (PURCHASE | REFINANCE), `propertyType` (HDB | PRIVATE | COMMERCIAL), `propertyStatus`, `loanAmount` (SGD); for REFINANCE also `currentBankId` from `list_banks`. Ask for missing facts; do not guess. Valid statuses: HDB: COMPLETED or BTO; PRIVATE: COMPLETED or BUC; COMMERCIAL: OWNEROCCUPIED, INVESTMENT or PERSONAL. Optional: `ratesType` (FIXED | FLOATING), `userContext` (free-text priorities). Call again with the full input set whenever anything changes. Not for what-if rates (use `calculate_mortgage_repayment`).

  • analyze_decouplingchangeddescriptionmeaning changed
    before

    Analyse decoupling: the cost versus benefit of transferring one co-owner's share so a borrower is freed up for another purchase (including stamp duty).

    after · 24% of words in common

    Analyse decoupling, where one co-owner of a Singapore property transfers their share to the other: the seller's cash proceeds (after loan, CPF refund, SSD and legal fees), the buyer's financing of the share, BSD and ABSD, and the cost of each option for a planned next purchase. All amounts in SGD.

  • check_eligibilitychangedoutput schema
  • calculate_seller_stamp_dutychangeddescription
    before

    Compute Seller's Stamp Duty (SSD) from the sale price/value and how long the property has been held.

    after · 58% of words in common

    Compute Singapore Seller's Stamp Duty (SSD, in SGD) from the sale price or value and how long the residential property has been held. For net cash from a sale, use `calculate_sales_proceeds`.

  • calculate_mortgage_stamp_dutychangeddescriptionmeaning changed
    before

    Compute the stamp duty payable on a mortgage/loan facility.

    after · 42% of words in common

    Compute the Singapore stamp duty (SGD) payable on a mortgage or loan facility from the loan amount. Not for purchases: use `calculate_residential_stamp_duty` for BSD and ABSD.

  • calculate_rental_stamp_dutychangeddescription
    before

    Compute the stamp duty payable on a property lease from the rent and lease term.

    after · 52% of words in common

    Compute the Singapore stamp duty (SGD) payable on a property lease or tenancy from the rent and lease term. Not for purchases: use `calculate_residential_stamp_duty` for BSD and ABSD.

  • calculate_residential_stamp_dutychangeddescription
    before

    Compute Buyer's Stamp Duty (BSD) and Additional Buyer's Stamp Duty (ABSD) for a Singapore residential purchase, given price/value, buyer type (singaporean | pr | foreigner | entity | trust) and the number of residential properties already owned.

    after · 78% of words in common

    Compute Buyer's Stamp Duty (BSD) and Additional Buyer's Stamp Duty (ABSD) in SGD for a Singapore residential purchase, given the price or value, buyer type (singaporean | pr | foreigner | entity | trust) and the number of residential properties already owned. For the full upfront cost of a purchase, use `calculate_purchase_cost`.

  • calculate_refinance_savingschangeddescription
    before

    Compare a borrower's existing mortgage against a new rate and report monthly savings, total savings and break-even months. Set `mode` to 'original' (supply the original loan amount, tenure and start date) or 'remaining' (supply the current outstanding balance and remaining tenure).

    after · 79% of words in common

    Compare a borrower's existing mortgage against a new rate and report monthly savings, total savings (SGD) and break-even months. Set `mode` to 'original' (supply the original loan amount, tenure and start date) or 'remaining' (supply the current outstanding balance and remaining tenure). Not for finding the new package: use `recommend_packages` for that.

Showing the latest 10. Full history: list_changes · trend: quality JSON.

Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed. How it is computed.

Trust 95 / 100

provenance85
liveness99
freshness100
hygiene100

+repository +dns-namespace +website +reachable +uptime-97% +updated-1d-ago

Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed. How it is computed.

Endpoints

remoteauthreachableuptime 30dp50protocollast ok
https://www.cashew.sg/mcp streamable-httpnoneyes97%1106 ms2025-11-252026-11-07

Tools (23)

analyze_decouplingread-onlyAnalyse decoupling, where one co-owner of a Singapore property transfers their share to the other: the seller's cash proceeds (after loan, CPF refund, SSD and legal fees), the buyer's financing of the share, BSD and ABSD, and the cost of each option for a planned next purchase. All amounts in SGD.
analyze_sell_one_buy_tworead-onlyAnalyse a 'sell one, buy two' plan where two co-owners sell their joint home. Returns the sale proceeds (cash after loan, CPF refunds, SSD and legal fees) and each buyer's resulting cash and CPF. With `buy1`, it compares buying one replacement jointly or under either buyer alone; with `buy2Property1` and `buy2Property2`, each buyer buying one property (both pairings). Every option is given at 30- and 35-year tenures with max loan, LTV, instalment, downpayment, stamp duties, cash/CPF shortfalls, TDSR used and an affordability verdict.
calculate_affordabilityread-onlyEstimate the maximum loan and property price (SGD) a borrower can afford from monthly income, existing debt commitments and tenure, applying Singapore TDSR/MSR limits. Use this when you know the income and want the budget; for the income a target price needs, use `calculate_required_income`. For joint borrowers with assets and liabilities in detail, use `check_eligibility`.
calculate_hdb_resale_timelineread-onlyGenerate a step-by-step dated timeline for an HDB resale purchase, from securing the Option to Purchase through to completion and key collection. Returns the ordered steps (what happens, the date, any payment due and its CPF/cash split), a summary (total payments, CPF and cash totals, completion date, duration in days), BSD and ABSD, the funding split (LTV, downpayment, minimum cash, cash-or-CPF remainder, monthly instalment when a rate and tenure are given), the completion date used, and self-checks.
calculate_mortgage_repaymentread-onlyCompute the monthly repayment, total interest and total cost (SGD) for a hypothetical loan from a loan amount, tenure and an interest rate you supply (standard amortisation). Use this for what-if rates; for the real rates of a specific package, use `calculate_package_schedule` instead.
calculate_mortgage_stamp_dutyread-onlyCompute the Singapore stamp duty (SGD) payable on a mortgage or loan facility from the loan amount. Not for purchases: use `calculate_residential_stamp_duty` for BSD and ABSD.
calculate_package_scheduleread-onlyCompute the amortisation schedule for a specific mortgage package using that package's real effective rates. Returns loan facts (`context`), the per-tier breakdown (`periods`), rate structure, totals and the per-year schedule (`annual`). Required: `packageId` from `recommend_packages`, `loanAmount` (SGD) and `tenureYears`. Optional: `includeMonthly: true` fills `monthly`; `firstPaymentDate` (YYYY-MM-DD, defaults to next month). Not for hypothetical rates: use `calculate_mortgage_repayment` for a what-if rate the borrower holds no package for.
calculate_private_resale_timelineread-onlyGenerate a step-by-step dated timeline for a private (non-HDB) resale purchase, with the 1% option fee, 4% exercise payment, stamp duties and completion payment at the right steps. Exercise date defaults to 14 calendar days inclusive of the option date if not entered.
calculate_progressive_paymentread-onlyModel the monthly instalment profile of a Singapore Building Under Construction (BUC) property loan across progressive payment stages. Handles fixed and floating rate packages, per-stage cash/CPF/loan funding split, drawdown timing, rate stepping by year, and optional prepayments. Set includeSchedule to true for the full month-by-month amortisation schedule (summary is always included).
calculate_purchase_costread-onlyCalculate the full upfront cost of purchasing a Singapore residential property (HDB or private resale), with each cost line attributed to its funding source (cash, CPF or bank loan). Returns option fee, exercise fee, stamp duties (BSD and ABSD), downpayment breakdown, and a sufficiency check against available funds.
calculate_refinance_savingsread-onlyCompare a borrower's existing mortgage against a new rate and report monthly savings, total savings (SGD) and break-even months. Set `mode` to 'original' (supply the original loan amount, tenure and start date) or 'remaining' (supply the current outstanding balance and remaining tenure). Not for finding the new package: use `recommend_packages` for that.
calculate_rental_stamp_dutyread-onlyCompute the Singapore stamp duty (SGD) payable on a property lease or tenancy from the rent and lease term. Not for purchases: use `calculate_residential_stamp_duty` for BSD and ABSD.
calculate_required_incomeread-onlyReverse affordability: work out the gross monthly income (SGD) needed to support a target property price under Singapore TDSR/MSR limits. Use this when you know the target price; for the budget a known income supports, use `calculate_affordability`.
calculate_residential_stamp_dutyread-onlyCompute Buyer's Stamp Duty (BSD) and Additional Buyer's Stamp Duty (ABSD) in SGD for a Singapore residential purchase, given the price or value, buyer type (singaporean | pr | foreigner | entity | trust) and the number of residential properties already owned. For the full upfront cost of a purchase, use `calculate_purchase_cost`.
calculate_sales_proceedsread-onlyWork out what a seller walks away with when selling a property: cash proceeds after redeeming the outstanding loan, refunding each owner’s CPF (principal plus accrued interest, 1 to 4 owners), and paying agent commission (with 9% GST), legal and miscellaneous fees. Flags a negative sale when the deductions exceed the selling price.
calculate_seller_stamp_dutyread-onlyCompute Singapore Seller's Stamp Duty (SSD, in SGD) from the sale price or value and how long the residential property has been held. For net cash from a sale, use `calculate_sales_proceeds`.
check_eligibilityread-onlyRun the regulatory affordability gate for one main borrower and up to three joint borrowers. Given each borrower's income, rental, pledged/unpledged assets and liabilities plus a proposed loan, returns the qualifying income (after MAS haircuts), the TDSR and MSR for the proposed loan, the income-weighted average age (IWAA), and the maximum loan under both HDB/EC and private property rules. Use this upstream of `recommend_packages` to confirm what a borrower can qualify for.
compare_packagesread-onlyCompare 2–3 specific mortgage packages side by side: average rate over the lock-in, benchmark index, effective rate and monthly instalment per year, interest paid per year, and flexibility terms (prepayment, free conversion, sale waiver, penalties, minimum loan). Required: `packageIds` from `recommend_packages` and `loanAmount` (SGD). Optional: `tenureYears` (default 25); `dealKind`/`propertyType`/`propertyStatus` only label the comparison header. Not for finding packages: it has no borrower context, so use `recommend_packages` for a personalised ranking. `verdicts`/`recommendedId` only carry over reasoning from a prior `recommend_packages` call; never author them.
get_index_quotesread-onlyReturn historical quotes (rate by date) for a market benchmark index such as SORA. Requires `marketIndexId` from `list_market_indices`. Optional `startDate`/`endDate` (YYYY-MM-DD) narrow the range; results are paginated, newest first. Quote `rate` values are decimal fractions (0.0356 = 3.56% p.a.). Not a package rate: use `recommend_packages` for those.
get_property_valuationread-onlyIndicative valuation (SGD) for a Singapore residential unit from an external valuation source. Requires `postalCode` and `unitNumber` in FF-SS format (e.g. "04-02"). `propertyType` ("Condo" or "HDB") and `areaSqft` are optional; without `propertyType` both are tried and `propertyTypeUsed` says which valued the unit. `valued: false` means the unit could not be valued: a valid answer, not an error. An estimate, not a formal bank valuation.
list_banksread-onlyList active banks and lenders (id and name), sorted by name. Use it to resolve a borrower's current lender to the `currentBankId` that `recommend_packages` requires for refinance deals. Not a rate source.
list_market_indicesread-onlyList market benchmark indices (id, slug, name, currency), sorted by slug. Use this to resolve a benchmark name like 'SORA' into the `marketIndexId` required by `get_index_quotes`.
recommend_packagesread-onlyRank live Singapore mortgage packages for one borrower and loan. Returns `recommended` (up to 3 picks with `reasoning`), `lowestRateIds` (cheapest eligible first), `isPersonalised` and `packages` (full details by id). Required: `dealKind` (PURCHASE | REFINANCE), `propertyType` (HDB | PRIVATE | COMMERCIAL), `propertyStatus`, `loanAmount` (SGD); for REFINANCE also `currentBankId` from `list_banks`. Ask for missing facts; do not guess. Valid statuses: HDB: COMPLETED or BTO; PRIVATE: COMPLETED or BUC; COMMERCIAL: OWNEROCCUPIED, INVESTMENT or PERSONAL. Optional: `ratesType` (FIXED | FLOATING), `userContext` (free-text priorities). Call again with the full input set whenever anything changes. Not for what-if rates (use `calculate_mortgage_repayment`).

Schemas: list_tools.

Similar MCP servers

Official server.json
{
  "name": "sg.cashew/mcp",
  "icons": [
    {
      "src": "https://www.cashew.sg/logo-cashew-gunmetal.svg",
      "sizes": [
        "any"
      ],
      "theme": "light",
      "mimeType": "image/svg+xml"
    },
    {
      "src": "https://www.cashew.sg/logo-cashew-inchworm.svg",
      "sizes": [
        "any"
      ],
      "theme": "dark",
      "mimeType": "image/svg+xml"
    }
  ],
  "title": "Cashew",
  "$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
  "remotes": [
    {
      "url": "https://www.cashew.sg/mcp",
      "type": "streamable-http"
    }
  ],
  "version": "1.4.0",
  "repository": {
    "url": "https://github.com/cashew-sg/cashew-mcp",
    "source": "github"
  },
  "websiteUrl": "https://www.cashew.sg/intro-to-mcp",
  "description": "Live Singapore mortgage rates, package recommendations and home-loan calculators."
}