{"$schema":"https://verifymcp.io/schemas/trust-report.json","schemaVersion":1,"license":{"name":"CC BY-NC 4.0","url":"https://creativecommons.org/licenses/by-nc/4.0/"},"generatedAt":"2026-11-05T16:27:36.652Z","url":"https://verifymcp.io/servers/com-savvly-savvly/ghcr-io-savvly-savvly-mcp-server","markdownUrl":"https://verifymcp.io/servers/com-savvly-savvly/ghcr-io-savvly-savvly-mcp-server.md","server":{"slug":"com-savvly-savvly","name":"com.savvly/savvly","registryName":"com.savvly/savvly","description":"Savvly MCP: query fund data, model projections, and compare against alternative retirement products.","registryStatus":"active","deletedAt":null,"statusMessage":null,"liveness":"live","publisher":{"class":"unknown","claimed":false}},"component":{"slug":"ghcr-io-savvly-savvly-mcp-server","type":"oci","identifier":"ghcr.io/savvly/savvly-mcp-server","withdrawn":false,"url":"https://verifymcp.io/servers/com-savvly-savvly/ghcr-io-savvly-savvly-mcp-server","version":"1.0.103","transport":"stdio","scoredAt":"2026-11-05T02:46:22.265Z"},"score":{"total":44,"tier":"low","status":"scored","weekDelta":3,"history":[{"date":"2026-11-05","total":44},{"date":"2026-11-04","total":44},{"date":"2026-11-03","total":43},{"date":"2026-11-02","total":43},{"date":"2026-11-01","total":42},{"date":"2026-10-31","total":42},{"date":"2026-10-30","total":41},{"date":"2026-10-29","total":41},{"date":"2026-10-28","total":41},{"date":"2026-10-27","total":40},{"date":"2026-10-26","total":40},{"date":"2026-10-25","total":39},{"date":"2026-10-24","total":39},{"date":"2026-10-23","total":38},{"date":"2026-10-22","total":38},{"date":"2026-10-21","total":37},{"date":"2026-10-20","total":37},{"date":"2026-10-19","total":36},{"date":"2026-10-18","total":36},{"date":"2026-10-17","total":35},{"date":"2026-10-16","total":34},{"date":"2026-10-15","total":34},{"date":"2026-10-14","total":34},{"date":"2026-10-13","total":9},{"date":"2026-10-12","total":9}]},"categories":[{"name":"Supply Chain Security","score":0,"verdict":"unverified","reasons":["No malware scan is available for this kind of package: the supply-chain vendors we use do not cover it. This is a permanent gap in our coverage, not a finding about the package.","Known CVEs could not be checked: this artifact ships no SBOM or dependency manifest, so there is no dependency list to read.","Install-script risk not yet assessed.","Dependency health could not be checked: this artifact ships no SBOM or dependency manifest, so there is no dependency list to read."],"codes":[{"code":"supplychain.malware_inconclusive","args":{"reason":"ecosystem_unsupported"}},{"code":"cve.inconclusive","args":{"reason":"no_sbom_attached"}},{"code":"installscript.inconclusive","args":{"reason":"no_install_concept"}},{"code":"dephealth.inconclusive","args":{"reason":"no_sbom_attached"}}]},{"name":"Provenance & Transparency","score":45,"verdict":"fail","reasons":["Source repository is publicly reachable at the declared URL.","Provenance check failed: no build-provenance attestation is published.","Clear OSI-approved license (Apache-2.0).","Actively maintained (last published 0 days ago).","Disclosure check failed: no security disclosure policy was found in the source repository."],"codes":[{"code":"provenance.repo_verified","args":{}},{"code":"provenance.none","args":{}},{"code":"license.osi","args":{"spdx":"Apache-2.0"}},{"code":"maintenance.recent","args":{"age_days":"0"}},{"code":"disclosure.absent","args":{}}]},{"name":"Schema Quality & AI Usability","score":39,"verdict":"fail","reasons":["0% of prompts and resources have a non-trivial description (not blank, and not just the item's name).","AI-judged instruction clarity (excellent).","Context-footprint check failed: tool/resource definitions use about 3984 tokens (~249/item across 16 items; 8 tools + 8 resources), over budget; trim descriptions and params.","Usage-examples check failed: none of the tools include examples."],"codes":[{"code":"schema.descriptions","args":{"pct":"0"}},{"code":"schema.ai_quality","args":{"band":"excellent"}},{"code":"schema.footprint_heavy","args":{"avg":"249","items":"16","tools":"8","tokens":"3984","resources":"8"}},{"code":"schema.examples_absent","args":{}}]},{"name":"Stability & Change Management","score":73,"verdict":"partial","reasons":["Stability observed for 22 of 30 days with no destabilising changes; credit accrues until the full window elapses."],"codes":[{"code":"stability.building_history","args":{"days":"22"}}]},{"name":"Tool Coverage","score":100,"verdict":"pass","reasons":["100% of tools have a non-trivial description (not blank, and not just the tool's name).","100% of tool parameters carry a description.","Structured output schemas are declared (100% of tools); any adoption earns full credit."],"codes":[{"code":"toolquality.descriptions","args":{"pct":"100"}},{"code":"toolquality.param_docs","args":{"pct":"100"}},{"code":"toolquality.output_present","args":{"pct":"100"}}]},{"name":"Tool Safety","score":100,"verdict":"pass","reasons":["No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.","We read all 8 captured tool definition(s), and no name or description among them implies an irreversible operation.","An AI judge read all 10 captured unit(s) of tool text and found none that tries to manipulate the model reading it."],"codes":[{"code":"toolsafety.injection_clean","args":{}},{"code":"toolsafety.destructive_none","args":{"tools":"8"}},{"code":"toolsafety.manipulation_clean","args":{"units":"10","judged":"10"}}]},{"name":"Capabilities","score":100,"verdict":"pass","reasons":["Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.","Supports UI / widget rendering."],"codes":[{"code":"protocol.supported","args":{"latest":"2026-07-28","version":"2025-11-25"}},{"code":"cap.ui_supported","args":{}}]}],"inconclusive":["No malware scan is available for this kind of package: the supply-chain vendors we use do not cover it. This is a permanent gap in our coverage, not a finding about the package.","Known CVEs could not be checked: this artifact ships no SBOM or dependency manifest, so there is no dependency list to read.","Install-script risk not yet assessed.","Dependency health could not be checked: this artifact ships no SBOM or dependency manifest, so there is no dependency list to read."],"malware":[],"components":[{"slug":"api","type":"remote","identifier":"https://api.savvly.com/mcp","withdrawn":false,"score":77,"current":false,"url":"https://verifymcp.io/servers/com-savvly-savvly/api","markdownUrl":"https://verifymcp.io/servers/com-savvly-savvly/api.md"},{"slug":"https-github-com-savvly-savvly-mcp-releases-download-v1-0-93-savvly-mcp-server-m","type":"mcpb","identifier":"https://github.com/Savvly/savvly-mcp/releases/download/v1.0.103/savvly-mcp-server.mcpb","withdrawn":false,"score":34,"current":false,"url":"https://verifymcp.io/servers/com-savvly-savvly/https-github-com-savvly-savvly-mcp-releases-download-v1-0-93-savvly-mcp-server-m","markdownUrl":"https://verifymcp.io/servers/com-savvly-savvly/https-github-com-savvly-savvly-mcp-releases-download-v1-0-93-savvly-mcp-server-m.md"},{"slug":"savvly-mcp-server","type":"npm","identifier":"@savvly/mcp-server","withdrawn":false,"score":74,"current":false,"url":"https://verifymcp.io/servers/com-savvly-savvly/savvly-mcp-server","markdownUrl":"https://verifymcp.io/servers/com-savvly-savvly/savvly-mcp-server.md"},{"slug":"savvly-mcpserver","type":"nuget","identifier":"Savvly.McpServer","withdrawn":false,"score":74,"current":false,"url":"https://verifymcp.io/servers/com-savvly-savvly/savvly-mcpserver","markdownUrl":"https://verifymcp.io/servers/com-savvly-savvly/savvly-mcpserver.md"},{"slug":"ghcr-io-savvly-savvly-mcp-server","type":"oci","identifier":"ghcr.io/savvly/savvly-mcp-server","withdrawn":false,"score":44,"current":true,"url":"https://verifymcp.io/servers/com-savvly-savvly/ghcr-io-savvly-savvly-mcp-server","markdownUrl":"https://verifymcp.io/servers/com-savvly-savvly/ghcr-io-savvly-savvly-mcp-server.md"},{"slug":"savvly-mcp-server-2","type":"pypi","identifier":"savvly-mcp-server","withdrawn":false,"score":62,"current":false,"url":"https://verifymcp.io/servers/com-savvly-savvly/savvly-mcp-server-2","markdownUrl":"https://verifymcp.io/servers/com-savvly-savvly/savvly-mcp-server-2.md"}],"facts":[{"label":"Registry","value":"oci"},{"label":"Package","value":"ghcr.io/savvly/savvly-mcp-server"},{"label":"Version","value":"1.0.103"},{"label":"Transport","value":"stdio"}],"install":{"available":true,"bundleSha256":null},"tools":[{"name":"get_savvly_product_info","title":"Get Savvly Product Info","description":"Get complete product information about Savvly, an SEC-registered security offering longevity protection — use it whenever the user asks what Savvly is, how it works, its expenses, eligibility, or payouts, or wants an overview. Pass `section` to focus the answer (default 'all'). It renders an interactive product overview card the user expects to see. These facts come from Savvly's own current records; the response includes primary sources (e.g. SEC filings) for reference.","inputs":[{"name":"section","type":"string","required":false,"description":"Which part of the product profile to focus the text on — one of 'all', 'overview', 'regulatory', 'investment', 'expenses', 'payouts', 'tax', 'distribution' (default 'all'). The full overview card alw…"}],"outputs":[{"name":"category","type":"string","required":true,"description":"Product category slug, e.g. 'longevity_benefit_fund'."},{"name":"channels","type":"array","required":false,"description":"Distribution channels through which Savvly is offered."},{"name":"company","type":"object","required":false,"description":"Issuer / advisor entity information."},{"name":"description","type":"string","required":false,"description":"Long-form product description."},{"name":"disclaimers","type":"object","required":false,"description":"SEC-style disclaimers and required legal language."},{"name":"early_withdrawal","type":"object","required":false,"description":"Early-withdrawal / surrender terms and the value returned to the estate."},{"name":"expenses","type":"object","required":false,"description":"Expense structure in basis points (common vs tracking shares) and the blended range; illustrations are net of expenses."},{"name":"illustrative_payout","type":"object","required":false,"description":"One worked example of what the schedule pays: the modeled payout RANGE at each milestone age for a single fixed allocation, so the percentages above have dollar figures beside them. Fixed inputs, ide…"},{"name":"investment","type":"object","required":false,"description":"How contributions are invested: underlying assets (S&P 500 ETF), asset managers, minimum/maximum monthly and lump-sum amounts, market participation."},{"name":"links","type":"object","required":false,"description":"Relevant URLs (website, disclosures, etc.)."},{"name":"longevity_pool","type":"object","required":false,"description":"How the longevity pool works — exited participants' unused shares may be allocated to remaining participants."},{"name":"name","type":"string","required":true,"description":"Product name (e.g. 'Savvly Longevity Benefit')."},{"name":"next_steps","type":"object","required":false,"description":"Suggested next actions for an interested investor."},{"name":"payout_schedule","type":"array","required":false,"description":"Milestone payout schedule at ages 80/85/90/95."},{"name":"portability","type":"boolean","required":false,"description":"Whether the position is portable."},{"name":"portability_note","type":"string","required":false,"description":"Detail on portability."},{"name":"positioning_statement","type":"string","required":false,"description":"One-sentence positioning — what Savvly is and is NOT (not insurance, not an annuity)."},{"name":"regulatory","type":"object","required":false,"description":"Regulatory status: SEC registration, Investment Company Act of 1940, advisor, custodian, and is_insurance/is_annuity flags."},{"name":"tagline","type":"string","required":false,"description":"Short marketing tagline."},{"name":"tax_treatment","type":"object","required":false,"description":"Tax treatment of payouts and contributions."}],"hasOutputSchema":true,"hasExamples":false,"tokenEstimate":173},{"name":"compare_savvly_vs_alternative","title":"Compare Savvly vs Alternative Product","description":"Get a structured comparison between Savvly and another retirement product type — use it whenever the user compares Savvly to annuities, target-date funds, managed-payout funds, or any alternative, or asks how Savvly stacks up. It renders an interactive comparison widget the user expects to see. Pass 'all' for the full matrix, or a specific product type. These facts come from Savvly's own current records; the response includes primary sources (e.g. SEC filings) for reference.","inputs":[{"name":"alternative","type":"string","required":false,"description":"Which product type to compare Savvly against. Use EXACTLY one of: 'fixed_annuity', 'variable_annuity', 'indexed_annuity', 'target_date_fund', 'managed_payout_fund', or 'all' for the full matrix. Pick…"}],"outputs":[{"name":"comparison","type":"object","required":false,"description":"The selected alternative product's profile. Present when `alternative` is a specific product type (i.e. not 'all')."},{"name":"comparisons","type":"array","required":false,"description":"Full comparison matrix — one entry per alternative product type. Present when `alternative` is 'all'."},{"name":"metadata","type":"object","required":true,"description":"Comparison dimensions, definitions, and source notes."},{"name":"savvly","type":"object","required":true,"description":"Savvly's profile across the comparison dimensions."}],"hasOutputSchema":true,"hasExamples":false,"tokenEstimate":193},{"name":"project_savvly_lumpsum","title":"Project Savvly Lump-Sum Investment","description":"Retirement projection for a lump-sum investment in the Savvly Longevity Benefit. Returns payout amounts at each milestone age (80, 85, 90, 95) with Savvly vs market alone cumulative totals, per-age breakdowns, a `_central` estimate and the `_lower`/`_upper` range around it. Use `_central` as the single estimate and `_lower`/`_upper` to show the range. Suitable for retirement income planning, annuity alternative analysis, and longevity benefit illustration. Response embeds SEC-style disclaimers and per-field interpretation hints under `metadata`. Payout methodology — Savvly vs market alone: the payout values are calculated by comparing two investors of the same age committing the same principal. Investor 1 invests in the market with the Savvly Longevity Benefit; Investor 2 invests in the market alone (no longevity overlay). To make the comparison apples-to-apples, at each milestone age (80, 85, 90, 95) Investor 2 withdraws from their market alone portfolio the same dollar amount as the central estimate of Investor 1's Savvly payout. The `payout_market_alone_*` and `total_market_alone_*` figures are therefore what Investor 2 can actually withdraw to match Savvly's central payouts before running out — they fall to 0 once the market alone portfolio is depleted. It is one series, so their `_lower` and `_upper` fields are equal. The `savvly_upside_*` (and `total_savvly_upside_*`) fields quantify how much more total money Investor 1 receives in payouts from Savvly than Investor 2 is able to withdraw over time to match those payouts: `_central` is the single estimate, and `_lower` can be negative at the early milestones, where market alone still matches the central payout. DISCLOSURE REQUIRED: display `disclosure.text` verbatim and link `disclosure.url` to the user alongside any figures from this response. Required by SEC Marketing Rule and FINRA Rule 2210 — do not paraphrase or omit. VISUALIZATION: this tool emits an interactive chart widget (MCP Apps — see `_meta.ui`) th…","inputs":[{"name":"average_return","type":"integer","required":false,"description":"Expected average annual S&P 500 return % (default 8)"},{"name":"current_age","type":"integer","required":false,"description":"Investor's current age (default 40). Min 18 (the projection matrix floor); max 75 (max enrollment age)"},{"name":"funding_amount","type":"number","required":false,"description":"Lump sum investment in USD (default 10000). Min 100 (the product minimum); max 1,000,000 (the projection model's input limit, not an investment limit)"},{"name":"withdrawal_age","type":"integer","required":false,"description":"Early-withdrawal age (default 82) — drives `early_withdrawal_value` and `total_payout_at_withdrawal_age_*` in the response"}],"outputs":[{"name":"disclosure","type":"object","required":true,"description":"DISCLOSURE REQUIRED: display `disclosure.text` and link `disclosure.url` to the user whenever you present any number from this response. Required by SEC Marketing Rule and FINRA Rule 2210. The richer…"},{"name":"inputs","type":"object","required":true,"description":"Echo of the validated input arguments passed to the tool."},{"name":"metadata","type":"object","required":true,"description":null},{"name":"result","type":"object","required":true,"description":"Raw projection envelope returned by the upstream estimator."},{"name":"summary","type":"object","required":true,"description":"Convenience summary including a human-readable narrative."},{"name":"visualization","type":"object","required":false,"description":"Recommended chart for this projection — a grouped bar chart of the milestone payouts in `result.payout_age_dependent_values` (Savvly vs market alone). Render it when the surface can display a graph."}],"hasOutputSchema":true,"hasExamples":false,"tokenEstimate":980},{"name":"project_savvly_monthly","title":"Project Savvly Monthly Contributions","description":"Retirement projection for monthly contributions to the Savvly Longevity Benefit over a number of years. Returns payout amounts at milestone ages 80/85/90/95 with Savvly vs market alone cumulative totals, per-age breakdowns, a `_central` estimate and the `_lower`/`_upper` range around it. Use `_central` as the single estimate and `_lower`/`_upper` to show the range. Suitable for retirement savings planning, annuity alternative comparison, and longevity benefit illustration. Supports an optional annual contribution increase and an optional early-withdrawal age. Contributions must finish by age 80: an omitted `contribution_years` auto-fits this, and an explicit one must satisfy `current_age + contribution_years` ≤ 80. Disclaimers + per-field hints under `metadata`. Payout methodology — Savvly vs market alone: the payout values are calculated by comparing two investors of the same age committing the same principal. Investor 1 invests in the market with the Savvly Longevity Benefit; Investor 2 invests in the market alone (no longevity overlay). To make the comparison apples-to-apples, at each milestone age (80, 85, 90, 95) Investor 2 withdraws from their market alone portfolio the same dollar amount as the central estimate of Investor 1's Savvly payout. The `payout_market_alone_*` and `total_market_alone_*` figures are therefore what Investor 2 can actually withdraw to match Savvly's central payouts before running out — they fall to 0 once the market alone portfolio is depleted. It is one series, so their `_lower` and `_upper` fields are equal. The `savvly_upside_*` (and `total_savvly_upside_*`) fields quantify how much more total money Investor 1 receives in payouts from Savvly than Investor 2 is able to withdraw over time to match those payouts: `_central` is the single estimate, and `_lower` can be negative at the early milestones, where market alone still matches the central payout. DISCLOSURE REQUIRED: display `disclosure.text` verbatim and link `disclosure.url` to…","inputs":[{"name":"average_return","type":"integer","required":false,"description":"Expected average annual S&P 500 return % (default 8)"},{"name":"contribution_years","type":"integer","required":false,"description":"Number of years contributing. Omit to use a sensible default of min(27, 80 − current_age) — 27 for the canonical age-40 scenario, and always small enough that contributions finish by age 80 (the advi…"},{"name":"current_age","type":"integer","required":false,"description":"Investor's current age (default 40). Min 18 (the projection matrix floor); max 75 (max enrollment age)"},{"name":"installment_increase_percentage","type":"integer","required":false,"description":"Optional annual % increase applied to monthly contributions, in whole percent"},{"name":"monthly_amount","type":"number","required":false,"description":"Monthly deposit in USD (default 100). Min 10 (the product minimum); max 100,000 (the projection model's input limit, not an investment limit)"},{"name":"withdrawal_age","type":"integer","required":false,"description":"Early-withdrawal age (default 82) — drives `early_withdrawal_value` and `total_payout_at_withdrawal_age_*` in the response"}],"outputs":[{"name":"disclosure","type":"object","required":true,"description":"DISCLOSURE REQUIRED: display `disclosure.text` and link `disclosure.url` to the user whenever you present any number from this response. Required by SEC Marketing Rule and FINRA Rule 2210. The richer…"},{"name":"inputs","type":"object","required":true,"description":"Echo of the validated input arguments passed to the tool."},{"name":"metadata","type":"object","required":true,"description":null},{"name":"result","type":"object","required":true,"description":"Raw projection envelope returned by the upstream estimator."},{"name":"summary","type":"object","required":true,"description":"Convenience summary including a human-readable narrative."},{"name":"visualization","type":"object","required":false,"description":"Recommended chart for this projection — a grouped bar chart of the milestone payouts in `result.payout_age_dependent_values` (Savvly vs market alone). Render it when the surface can display a graph."}],"hasOutputSchema":true,"hasExamples":false,"tokenEstimate":1121},{"name":"project_retirement_with_savvly","title":"Project Retirement Trajectory With Savvly","description":"Full retirement simulation showing the projected savings trajectory WITH and WITHOUT a Savvly allocation across the planning horizon (current_age → life_expectancy). Requires current_age ≤ retirement_age ≤ life_expectancy. Returns `gap_score`, `possible_higher_monthly_paycheck`, a server-provided headline message, and a per-year `age_dependent_values[]` timeline. Disclaimers + per-field hints under `metadata`. DISCLOSURE REQUIRED: display `disclosure.text` verbatim and link `disclosure.url` to the user alongside any figures from this response. Required by SEC Marketing Rule and FINRA Rule 2210 — do not paraphrase or omit. VISUALIZATION: this tool emits an interactive chart widget (MCP Apps — see `_meta.ui`) that the HOST renders inline and editable; other clients render only your text and show no chart. That widget is the canonical chart for these numbers: do NOT draw, generate, or re-render a duplicate of it. You MAY still create your OWN, DIFFERENT visualization (e.g. a table or an alternate breakdown) and place it wherever you judge best — only the MCP App widget's position is constrained. Do NOT claim or imply a chart is visible (avoid 'the chart above shows…'); you cannot tell whether the host rendered the widget. Summarize the key figures in prose and show the `disclosure` text and link, and reference the widget only conditionally (e.g. 'if your client shows the interactive chart, its fields are editable to re-run the projection'). ORDER: BEFORE you call this tool, ALWAYS write at least one short lead-in paragraph (1-3 sentences) framing what the projection will show — do NOT invent specific figures you do not have yet. On hosts that render the widget inline at the tool call, this keeps your text ahead of the chart so the widget is never the first thing shown; THEN call the tool (this lead-in is framing, NOT asking the user for inputs — still call it in the same turn without waiting) and give the grounded figures + disclosure after it returns. This lead-in ru…","inputs":[{"name":"annual_income_increase","type":"number","required":false,"description":"Annual contribution % increase (default 2)"},{"name":"current_age","type":"integer","required":false,"description":"Current age (default 40)"},{"name":"current_retirement_savings","type":"number","required":false,"description":"Current total retirement savings in USD (default 60000)"},{"name":"inflation_rate","type":"number","required":false,"description":"Expected annual inflation rate % (default 3)"},{"name":"life_expectancy","type":"integer","required":false,"description":"Planning horizon (default 100)"},{"name":"monthly_contribution","type":"number","required":false,"description":"Monthly retirement contribution in USD (default 1000)"},{"name":"monthly_paycheck","type":"number","required":false,"description":"Desired monthly retirement paycheck in USD (default 4500)"},{"name":"other_retirement_income","type":"number","required":false,"description":"Other monthly retirement income in USD (default 1600)"},{"name":"percentage_in_savvly","type":"number","required":false,"description":"Percentage of the retirement portfolio allocated to Savvly (default 5)"},{"name":"post_retirement_return","type":"number","required":false,"description":"Expected post-retirement annual return % (default 5)"},{"name":"pre_retirement_return","type":"number","required":false,"description":"Expected pre-retirement annual return % (default 6)"},{"name":"retirement_age","type":"integer","required":false,"description":"Planned retirement age (default 68)"}],"outputs":[{"name":"disclosure","type":"object","required":true,"description":"DISCLOSURE REQUIRED: display `disclosure.text` and link `disclosure.url` to the user whenever you present any number from this response. Required by SEC Marketing Rule and FINRA Rule 2210."},{"name":"inputs","type":"object","required":true,"description":null},{"name":"metadata","type":"object","required":true,"description":null},{"name":"result","type":"object","required":true,"description":null},{"name":"summary","type":"object","required":true,"description":"Convenience summary. The narrative carries the canonical full-disclosures URL inline; display it verbatim alongside any figures from this response."},{"name":"visualization","type":"object","required":false,"description":"Recommended chart for this projection — a year-by-year area chart of `result.age_dependent_values` (savings with vs. without Savvly). Render it when the surface can display a graph. The richer `metad…"}],"hasOutputSchema":true,"hasExamples":false,"tokenEstimate":765},{"name":"check_savvly_eligibility","title":"Check Savvly Eligibility","description":"Check if a person is eligible to invest in the Savvly Longevity Benefit. Eligibility is based on age (no minimum; maximum enrollment age 75), US residency, and distribution channel (individual, employer-sponsored, advisor-placed). Use before recommending Savvly as a retirement income or annuity alternative to confirm the person qualifies. These facts come from Savvly's own current records; the response includes primary sources (e.g. SEC filings) for reference.","inputs":[{"name":"age","type":"integer","required":true,"description":"Person's current age"},{"name":"channel","type":"string","required":false,"description":"Distribution channel — one of 'individual', 'employer', 'advisor' (default 'individual')."},{"name":"us_resident","type":"boolean","required":false,"description":"Whether the person is a US resident"}],"outputs":[{"name":"age_eligible","type":"boolean","required":true,"description":"True if age is at or under the maximum enrollment age (75); the filing sets no minimum age."},{"name":"channel","type":"string","required":true,"description":"Distribution channel under consideration for this check."},{"name":"criteria","type":"object","required":true,"description":"Full eligibility-criteria reference object (age range, residency, accredited-investor flag, channel requirements)."},{"name":"eligible","type":"boolean","required":true,"description":"True if every eligibility criterion (age + residency) is satisfied."},{"name":"message","type":"string","required":true,"description":"Human-readable explanation of the eligibility outcome."},{"name":"residency_eligible","type":"boolean","required":true,"description":"True if the US-residency requirement is satisfied."}],"hasOutputSchema":true,"hasExamples":false,"tokenEstimate":162},{"name":"get_savvly_faq","title":"Get Savvly FAQ","description":"Get answers to frequently asked questions about Savvly. Use when the user has specific questions about how Savvly works, expenses, withdrawals, or regulatory status. It is a convenience view of `search_savvly_content` scoped to the factual FAQ; for richer, audience-specific Q&As (employee / advisor / broker / employer), use `search_savvly_content` instead. These facts come from Savvly's own current records; the response includes primary sources (e.g. SEC filings) for reference.","inputs":[{"name":"section","type":"string","required":false,"description":"Filter the FAQ to one section (kebab-case, e.g. 'tax-legacy'); 'all' returns every entry."}],"outputs":[{"name":"entries","type":"array","required":true,"description":"Filtered FAQ entries (the audience:'general' Q&A slice)."},{"name":"section","type":"string","required":true,"description":"Section filter applied to produce this result set ('all' if no filter)."},{"name":"total","type":"integer","required":true,"description":"Count of FAQ entries returned."}],"hasOutputSchema":true,"hasExamples":false,"tokenEstimate":153},{"name":"search_savvly_content","title":"Search Savvly Q&A Content Library","description":"Search the Savvly Q&A Content Library — audience-tagged questions and answers compiled from Savvly's marketing collateral plus the factual FAQ, organized by stakeholder (employee, advisor, broker, employer, universal, general) and section (kebab-case slugs, e.g. 'tax-legacy', 'retention-talent-strategy', 'implementation'). Use this when the user asks about Savvly's positioning, value props, audience-specific talking points, or Q&A-style messaging. Each entry carries the verbatim answer plus any disclaimer footnotes attached to it in the source. These facts come from Savvly's own current records; the response includes primary sources (e.g. SEC filings) for reference.","inputs":[{"name":"audience","type":"string","required":false,"description":"Restrict to one stakeholder audience. Use EXACTLY one of: 'employee', 'advisor', 'broker', 'employer', 'universal', or 'general' ('general' is the factual FAQ). Omit to search across all audiences."},{"name":"limit","type":"integer","required":false,"description":"Cap on matched entries returned. Default 20, max 50."},{"name":"query","type":"string","required":false,"description":"Free-text search over questions, answers, and footnotes (case-insensitive). Multi-word queries match entries containing ANY of the words, ranked by relevance."},{"name":"section","type":"string","required":false,"description":"Substring match against section slugs (e.g. 'tax', 'retention', 'eligibility'). Case-insensitive."}],"outputs":[{"name":"available_sections","type":"array","required":true,"description":"Section slugs available within the (optionally) selected audience."},{"name":"entries","type":"array","required":true,"description":"Matched Q&A entries."},{"name":"filter_applied","type":"object","required":true,"description":"Echo of the filters that produced this result set."},{"name":"matched","type":"integer","required":true,"description":"Count of entries matching the supplied filters."},{"name":"total_in_library","type":"integer","required":true,"description":"Total Q&A entry count in the library across all audiences."}],"hasOutputSchema":true,"hasExamples":false,"tokenEstimate":303}],"toolsTruncatedAtCapture":false,"diagnostics":{"capturedAt":"2026-11-05T02:46:22.000Z","track":"package","endpoint":null,"declaredUrl":null,"truncated":false,"tls":null,"dnssec":null,"auth":null,"httpsRedirect":null,"transports":[],"provenance":{"outcome":"none","label":"No attestation","reason":"no_attestation","reasonLabel":"No attestation published","discovery":null,"discoveryLabel":null,"sourceRepo":null,"attestationSkipped":null,"attestationSkippedLabel":null},"installScripts":[],"installScriptsTotal":null,"vulnerabilities":[],"vulnerabilitiesTotal":null,"dependencies":null},"mismatches":[],"changelog":{"trackingSince":"2026-10-12","recent":[{"id":"chg_01a1a999-88ce-79f2-99e8-172f527b847e","kind":"package.version_changed","summary":"Package version (1.0.102 → 1.0.103)","materiality":"functional","direction":"neutral","scoreDelta":null,"occurredOn":"2026-11-05","url":"https://verifymcp.io/servers/com-savvly-savvly/ghcr-io-savvly-savvly-mcp-server#chg-chg_01a1a999-88ce-79f2-99e8-172f527b847e"},{"id":"chg_01a1a3f1-fe2f-7867-b2a0-221fa8e1747b","kind":"score.total_changed","summary":"Trust score (43 → 44)","materiality":"functional","direction":"improvement","scoreDelta":1,"occurredOn":"2026-11-04","url":"https://verifymcp.io/servers/com-savvly-savvly/ghcr-io-savvly-savvly-mcp-server#chg-chg_01a1a3f1-fe2f-7867-b2a0-221fa8e1747b"},{"id":"chg_01a19996-9da0-7740-be8a-b331c1616cf2","kind":"score.total_changed","summary":"Trust score (42 → 43)","materiality":"functional","direction":"improvement","scoreDelta":1,"occurredOn":"2026-11-02","url":"https://verifymcp.io/servers/com-savvly-savvly/ghcr-io-savvly-savvly-mcp-server#chg-chg_01a19996-9da0-7740-be8a-b331c1616cf2"},{"id":"chg_01a18f54-5bf0-78c6-8711-fa7a0aa0dcba","kind":"score.total_changed","summary":"Trust score (41 → 42)","materiality":"functional","direction":"improvement","scoreDelta":1,"occurredOn":"2026-10-31","url":"https://verifymcp.io/servers/com-savvly-savvly/ghcr-io-savvly-savvly-mcp-server#chg-chg_01a18f54-5bf0-78c6-8711-fa7a0aa0dcba"},{"id":"chg_01a17fd6-ea32-7e78-9096-a50f48e0f094","kind":"score.total_changed","summary":"Trust score (40 → 41)","materiality":"functional","direction":"improvement","scoreDelta":1,"occurredOn":"2026-10-28","url":"https://verifymcp.io/servers/com-savvly-savvly/ghcr-io-savvly-savvly-mcp-server#chg-chg_01a17fd6-ea32-7e78-9096-a50f48e0f094"},{"id":"chg_01a17593-394f-737f-81de-9334ba37fb80","kind":"score.total_changed","summary":"Trust score (39 → 40)","materiality":"functional","direction":"improvement","scoreDelta":1,"occurredOn":"2026-10-26","url":"https://verifymcp.io/servers/com-savvly-savvly/ghcr-io-savvly-savvly-mcp-server#chg-chg_01a17593-394f-737f-81de-9334ba37fb80"},{"id":"chg_01a16e22-414b-70b8-9878-55bd81578c27","kind":"package.version_changed","summary":"Package version (1.0.101 → 1.0.102)","materiality":"functional","direction":"neutral","scoreDelta":null,"occurredOn":"2026-10-24","url":"https://verifymcp.io/servers/com-savvly-savvly/ghcr-io-savvly-savvly-mcp-server#chg-chg_01a16e22-414b-70b8-9878-55bd81578c27"},{"id":"chg_01a16b3c-a590-7f31-9494-0ec95dc8aad9","kind":"score.total_changed","summary":"Trust score (38 → 39)","materiality":"functional","direction":"improvement","scoreDelta":1,"occurredOn":"2026-10-24","url":"https://verifymcp.io/servers/com-savvly-savvly/ghcr-io-savvly-savvly-mcp-server#chg-chg_01a16b3c-a590-7f31-9494-0ec95dc8aad9"},{"id":"chg_01a16a7d-5338-7d79-8e02-e6b4e662c0e0","kind":"package.version_changed","summary":"Package version (1.0.98 → 1.0.101)","materiality":"functional","direction":"neutral","scoreDelta":null,"occurredOn":"2026-10-23","url":"https://verifymcp.io/servers/com-savvly-savvly/ghcr-io-savvly-savvly-mcp-server#chg-chg_01a16a7d-5338-7d79-8e02-e6b4e662c0e0"},{"id":"chg_01a16933-0466-7943-8a92-2c939d1dd2b8","kind":"package.version_changed","summary":"Package version (1.0.98 → 1.0.99)","materiality":"functional","direction":"neutral","scoreDelta":null,"occurredOn":"2026-10-23","url":"https://verifymcp.io/servers/com-savvly-savvly/ghcr-io-savvly-savvly-mcp-server#chg-chg_01a16933-0466-7943-8a92-2c939d1dd2b8"},{"id":"chg_01a160fa-c52c-7e6e-84e5-2a8742d3e537","kind":"score.total_changed","summary":"Trust score (37 → 38)","materiality":"functional","direction":"improvement","scoreDelta":1,"occurredOn":"2026-10-22","url":"https://verifymcp.io/servers/com-savvly-savvly/ghcr-io-savvly-savvly-mcp-server#chg-chg_01a160fa-c52c-7e6e-84e5-2a8742d3e537"},{"id":"chg_01a156a6-2819-7427-93ba-ee3f4a15688b","kind":"score.total_changed","summary":"Trust score (36 → 37)","materiality":"functional","direction":"improvement","scoreDelta":1,"occurredOn":"2026-10-20","url":"https://verifymcp.io/servers/com-savvly-savvly/ghcr-io-savvly-savvly-mcp-server#chg-chg_01a156a6-2819-7427-93ba-ee3f4a15688b"},{"id":"chg_01a155e2-e3db-7967-8dc2-e7e53a94da95","kind":"package.version_changed","summary":"Package version (1.0.97 → 1.0.98)","materiality":"functional","direction":"neutral","scoreDelta":null,"occurredOn":"2026-10-19","url":"https://verifymcp.io/servers/com-savvly-savvly/ghcr-io-savvly-savvly-mcp-server#chg-chg_01a155e2-e3db-7967-8dc2-e7e53a94da95"},{"id":"chg_01a14c56-3675-756b-948c-b10bc363f1bc","kind":"score.total_changed","summary":"Trust score (35 → 36)","materiality":"functional","direction":"improvement","scoreDelta":1,"occurredOn":"2026-10-18","url":"https://verifymcp.io/servers/com-savvly-savvly/ghcr-io-savvly-savvly-mcp-server#chg-chg_01a14c56-3675-756b-948c-b10bc363f1bc"},{"id":"chg_01a1472f-91d9-7b0c-a15b-4580ffc844e2","kind":"check.reverified","summary":"Stability (unverified → 0.10)","materiality":"functional","direction":"improvement","scoreDelta":null,"occurredOn":"2026-10-17","url":"https://verifymcp.io/servers/com-savvly-savvly/ghcr-io-savvly-savvly-mcp-server#chg-chg_01a1472f-91d9-7b0c-a15b-4580ffc844e2"},{"id":"chg_01a1472f-91db-7560-908b-ce452d6bd253","kind":"score.total_changed","summary":"Trust score (34 → 35)","materiality":"functional","direction":"improvement","scoreDelta":1,"occurredOn":"2026-10-17","url":"https://verifymcp.io/servers/com-savvly-savvly/ghcr-io-savvly-savvly-mcp-server#chg-chg_01a1472f-91db-7560-908b-ce452d6bd253"},{"id":"chg_01a13a88-a600-7951-93b2-287a3848df10","kind":"check.reverified","summary":"MCP protocol (unverified → pass)","materiality":"functional","direction":"improvement","scoreDelta":null,"occurredOn":"2026-10-14","url":"https://verifymcp.io/servers/com-savvly-savvly/ghcr-io-savvly-savvly-mcp-server#chg-chg_01a13a88-a600-7951-93b2-287a3848df10"},{"id":"chg_01a13a88-a600-7e00-bcb3-4a88e8fd2ddb","kind":"check.appeared","summary":"First check of Schema quality (fail)","materiality":"functional","direction":"neutral","scoreDelta":null,"occurredOn":"2026-10-14","url":"https://verifymcp.io/servers/com-savvly-savvly/ghcr-io-savvly-savvly-mcp-server#chg-chg_01a13a88-a600-7e00-bcb3-4a88e8fd2ddb"},{"id":"chg_01a13a88-a601-7ca2-b4b7-8c909087a947","kind":"check.appeared","summary":"First check of Schema quality (fail)","materiality":"functional","direction":"neutral","scoreDelta":null,"occurredOn":"2026-10-14","url":"https://verifymcp.io/servers/com-savvly-savvly/ghcr-io-savvly-savvly-mcp-server#chg-chg_01a13a88-a601-7ca2-b4b7-8c909087a947"},{"id":"chg_01a13a88-a5fe-731f-8b6b-6b86f7bd0037","kind":"check.reverified","summary":"Injection markers (unverified → pass)","materiality":"security","direction":"improvement","scoreDelta":null,"occurredOn":"2026-10-14","url":"https://verifymcp.io/servers/com-savvly-savvly/ghcr-io-savvly-savvly-mcp-server#chg-chg_01a13a88-a5fe-731f-8b6b-6b86f7bd0037"}],"truncated":true,"feedUrl":"https://verifymcp.io/servers/com-savvly-savvly/ghcr-io-savvly-savvly-mcp-server/changelog.json"},"links":{"html":"https://verifymcp.io/servers/com-savvly-savvly/ghcr-io-savvly-savvly-mcp-server","markdown":"https://verifymcp.io/servers/com-savvly-savvly/ghcr-io-savvly-savvly-mcp-server.md","changelogJson":"https://verifymcp.io/servers/com-savvly-savvly/ghcr-io-savvly-savvly-mcp-server/changelog.json","changelogRss":"https://verifymcp.io/servers/com-savvly-savvly/ghcr-io-savvly-savvly-mcp-server.xml","external":[{"label":"GitHub Container Registry","href":"https://ghcr.io/savvly/savvly-mcp-server"},{"label":"Repository","href":"https://github.com/Savvly/savvly-mcp"},{"label":"Website","href":"https://savvly.com/"}]}}