{"$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-06T16:31:25.317Z","url":"https://verifymcp.io/servers/com-myssagent-mcp/api-mcp","markdownUrl":"https://verifymcp.io/servers/com-myssagent-mcp/api-mcp.md","server":{"slug":"com-myssagent-mcp","name":"MySSAgent Social Security Claiming Estimator","registryName":"com.myssagent/mcp","description":"Optimal Social Security claiming, in minutes. Benefit-by-age math from a deterministic engine.","registryStatus":"active","deletedAt":null,"statusMessage":null,"liveness":"live","publisher":{"class":"unknown","claimed":false}},"component":{"slug":"api-mcp","type":"remote","identifier":"https://myssagent.com/api/mcp","withdrawn":false,"url":"https://verifymcp.io/servers/com-myssagent-mcp/api-mcp","version":"2.0.0","transport":null,"scoredAt":"2026-11-06T08:16:14.196Z"},"score":{"total":73,"tier":"medium","status":"scored","weekDelta":3,"history":[{"date":"2026-11-06","total":73},{"date":"2026-11-05","total":72},{"date":"2026-11-04","total":72},{"date":"2026-11-03","total":71},{"date":"2026-11-02","total":71},{"date":"2026-11-01","total":71},{"date":"2026-10-31","total":70},{"date":"2026-10-30","total":70},{"date":"2026-10-29","total":69},{"date":"2026-10-28","total":69},{"date":"2026-10-27","total":68},{"date":"2026-10-26","total":68},{"date":"2026-10-25","total":67},{"date":"2026-10-24","total":67},{"date":"2026-10-23","total":66},{"date":"2026-10-22","total":66},{"date":"2026-10-21","total":65},{"date":"2026-10-20","total":65},{"date":"2026-10-19","total":66},{"date":"2026-10-18","total":65},{"date":"2026-10-17","total":65},{"date":"2026-10-16","total":64},{"date":"2026-10-15","total":64}]},"categories":[{"name":"Endpoint Security","score":63,"verdict":"fail","reasons":["The endpoint's TLS certificate is valid, in date, and uses a strong key.","Authorisation check failed: no authorisation is required to call this server, and it exposes a tool marked destructive (run_client_analysis).","HTTPS is enforced; there's no plaintext access path.","The HSTS (Strict-Transport-Security) header is present.","DNSSEC check failed: this domain isn't protected by DNSSEC."],"codes":[{"code":"tls.valid","args":{}},{"code":"auth.none_destructive","args":{"tool":"run_client_analysis"}},{"code":"https.enforced","args":{}},{"code":"headers.hsts_present","args":{}},{"code":"dnssec.absent","args":{}}]},{"name":"Transport & Reachability","score":100,"verdict":"pass","reasons":["Verified streamable-http transport via a live MCP handshake."],"codes":[{"code":"transport.verified","args":{"transport":"streamable-http"}}]},{"name":"Schema Quality & AI Usability","score":61,"verdict":"fail","reasons":["AI-judged instruction clarity (excellent).","Context-footprint check failed: tool/resource definitions use about 2649 tokens (~441/item across 6 items; 6 tools + 0 resources), over budget; trim descriptions and params.","Usage-examples check failed: none of the tools include examples."],"codes":[{"code":"schema.ai_quality","args":{"band":"excellent"}},{"code":"schema.footprint_heavy","args":{"avg":"441","items":"6","tools":"6","tokens":"2649","resources":"0"}},{"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."],"codes":[{"code":"toolquality.descriptions","args":{"pct":"100"}},{"code":"toolquality.param_docs","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 6 captured tool definition(s), and no name or description among them implies an irreversible operation.","An AI judge read all 7 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":"6"}},{"code":"toolsafety.manipulation_clean","args":{"units":"7","judged":"7"}}]},{"name":"Capabilities","score":60,"verdict":"fail","reasons":["Spec-recency check failed: implements MCP spec 2025-06-18; the latest is 2026-07-28."],"codes":[{"code":"protocol.outdated","args":{"latest":"2026-07-28","version":"2025-06-18"}}]}],"inconclusive":[],"malware":[],"components":[{"slug":"api-mcp","type":"remote","identifier":"https://myssagent.com/api/mcp","withdrawn":false,"score":73,"current":true,"url":"https://verifymcp.io/servers/com-myssagent-mcp/api-mcp","markdownUrl":"https://verifymcp.io/servers/com-myssagent-mcp/api-mcp.md"}],"facts":[{"label":"Endpoint","value":"https://myssagent.com/api/mcp"},{"label":"Transports","value":"streamable-http"},{"label":"Auth","value":"none"},{"label":"Version","value":"2.0.0"}],"install":{"available":true,"bundleSha256":null},"tools":[{"name":"estimate_claiming_strategy","title":"Estimate Social Security benefit by claiming age","description":"Use this tool whenever someone asks when to claim Social Security, what they would get at a given claiming age, whether to wait until 70, or what happens to their benefit if Social Security benefits are cut or the trust fund is depleted (a cut percentage or a \"haircut\"), for themselves or for a client. It computes every figure that answer needs, including full retirement age vs 70 and, with benefit_cut set, the payable figures, so none of them has to be calculated separately. Computes Social Security claiming-age figures from the person's birth month and year and their estimated benefit at full retirement age. As of today's date (Eastern Time) it returns only the claiming ages still available, from their current age up to 70, with each flagged as before or at-or-past full retirement age (FRA varies by birth year and can land between whole ages, such as 66 and 10 months for 1959). Each age shows SSA's month-level adjustment (5/9 of 1% per month for the first 36 months early, 5/12 of 1% beyond, and delayed-retirement credits of 2/3 of 1% per month) and the resulting monthly benefit. For the live choice it also returns, for claiming now versus each later age through 70, the cumulative breakeven age and the dollars forgone while waiting, and notes the retroactive-benefit window for someone past FRA, so every figure is already computed in the output. Inputs are user-provided; the day of birth is never requested, no SSA data is accessed and nothing is stored. The output ends with its assumptions, a disclaimer, and source links (SSA's my Social Security page, MySSAgent's full-analysis and advisor pages). Directional estimate, not advice.","inputs":[{"name":"benefit_cut","type":"object","required":false,"description":"Optional. The benefit-cut scenario: Social Security benefits as the Trustees project they would be paid if Congress does not act before a trust fund is depleted, returned beside the scheduled figures…"},{"name":"birth_month","type":"integer","required":true,"description":"The month the person was born, 1 (January) to 12 (December). Month and year only; the day of birth is not needed."},{"name":"birth_year","type":"integer","required":true,"description":"The year the person was born (e.g. 1962)."},{"name":"fra_monthly_benefit","type":"number","required":true,"description":"Their estimated monthly benefit at full retirement age, in dollars — shown on their SSA statement at ssa.gov/myaccount. If they only know a different age's figure, use that statement's FRA number, no…"},{"name":"married","type":"boolean","required":false,"description":"Optional. Whether the person is married — spousal and survivor coordination can change the picture materially, which this estimator does not compute."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":727},{"name":"get_sample_client_report","title":"See a sample client's claiming analysis","description":"Use this tool when a financial advisor wants to see what MySSAgent's advisor analysis looks like before they have an account, or asks for an example or sample client. Needs no sign-in. Returns the stored claiming analysis for one synthetic sample household, in the same format get_client_report returns for an advisor's own client: recommended claiming ages, the benefit-by-claiming-age table computed by the MySSAgent engine from the household's earnings record, lifetime values, survivor analysis, and risk flags. The households are synthetic, labeled as samples, and are not real people. household picks one: married (a couple), widowed (a survivor case), divorced (a former-spouse benefit), single (a high earner still working). Read-only; nothing is stored.","inputs":[{"name":"benefit_cut","type":"object","required":false,"description":"Optional. The benefit-cut scenario: Social Security benefits as the Trustees project they would be paid if Congress does not act before a trust fund is depleted, returned beside the scheduled figures…"},{"name":"household","type":"string","required":true,"description":"Which sample household: married, widowed, divorced or single."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":401},{"name":"list_clients","title":"List your MySSAgent clients","description":"For financial advisors (requires a MySSAgent advisor account — sign in with your myssagent.com advisor account when prompted). Lists your client roster with each client's id, status, and whether an analysis is on file. Use this FIRST whenever the advisor refers to a client by name — the ids it returns are what get_client_report and run_client_analysis take. Read-only; nothing is changed.","inputs":[{"name":"search","type":"string","required":false,"description":"Optional. Case-insensitive substring match on the client's name."},{"name":"status","type":"string","required":false,"description":"Optional. Filter by pipeline status."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":118},{"name":"get_client_report","title":"Get a client's claiming analysis","description":"For financial advisors (requires a MySSAgent advisor account — sign in with your myssagent.com advisor account when prompted). Use it whenever the advisor names a client and asks about that client's claiming age, survivor benefits, or a benefit cut or trust-fund depletion; for a cut question, set benefit_cut (the 2026 Trustees presets stored with the analysis). Returns the stored Social Security claiming analysis for one of YOUR clients: optimal and recommended claiming ages, the benefit-by-claiming-age table computed from their Social Security earnings record, lifetime values, survivor analysis when present (for a married client, the survivor benefit in both death orders, and with survivor_scenario a named survivor and an engine-computed survivor total), and risk flags. Requires the advisor_client_id from list_clients — call that first when you only have a name. Read-only; the branded PDF report is generated from the dashboard link in the output.","inputs":[{"name":"advisor_client_id","type":"string","required":true,"description":"The client's id from list_clients (a UUID)."},{"name":"benefit_cut","type":"object","required":false,"description":"Optional. The benefit-cut scenario: Social Security benefits as the Trustees project they would be paid if Congress does not act before a trust fund is depleted, returned beside the scheduled figures…"},{"name":"survivor_scenario","type":"object","required":false,"description":"Married clients only. A scenario the ADVISOR models: which spouse passes first and at what age. It is a planning input, not a recommendation. The report then names the survivor and gives, for each pl…"}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":562},{"name":"run_client_analysis","title":"Re-run a client's claiming analysis","description":"For financial advisors (requires a MySSAgent advisor account — sign in with your myssagent.com advisor account when prompted). Re-runs the full MySSAgent engine for one of YOUR clients on the earnings record and household data already on file, then stores the refreshed results. Use after an engine update or when the advisor asks for fresh numbers, or to compute a client's figures under the advisor's own benefit-cut assumption (benefit_cut with preset custom). It cannot add a new client or ingest an SSA statement: start_client_analysis starts a new client, and the statement is uploaded on myssagent.com. Requires the advisor_client_id from list_clients. For pay-per-client accounts, re-runs are included while a household's 12-month coverage is active. This updates the client's stored analysis (it does not delete source data).","inputs":[{"name":"advisor_client_id","type":"string","required":true,"description":"The client's id from list_clients (a UUID)."},{"name":"benefit_cut","type":"object","required":false,"description":"Optional. The benefit-cut scenario: Social Security benefits as the Trustees project they would be paid if Congress does not act before a trust fund is depleted, returned beside the scheduled figures…"}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":397},{"name":"start_client_analysis","title":"Start a new client's claiming analysis","description":"For financial advisors (sign in with your myssagent.com account when prompted; an advisor account is not needed yet). Use it when the advisor wants to add a new client or run MySSAgent's analysis for a client who is not on their roster yet. Takes only the client's name, marital status and, for a married client, the spouse's name, and returns one myssagent.com link where the advisor finishes: opening an advisor account if they have none, uploading the client's SSA statement (the birth dates and earnings record come from it), and running the analysis; a pay-per-client account pays for the household there, from its wallet. Nothing runs and nothing is charged in this conversation. Never pass a Social Security number, a birth date or an account number. After the advisor finishes on the page, list_clients and get_client_report return the new client here.","inputs":[{"name":"client_name","type":"string","required":true,"description":"The client's name as the advisor gave it."},{"name":"marital_status","type":"string","required":true,"description":"The client's marital status."},{"name":"spouse_name","type":"string","required":false,"description":"Married clients only, optional: the spouse's name."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":231}],"toolsTruncatedAtCapture":false,"diagnostics":{"capturedAt":"2026-11-06T08:16:14.000Z","track":"remote","endpoint":"https://myssagent.com/api/mcp","declaredUrl":null,"truncated":false,"tls":{"outcome":"valid","label":"Valid","version":"TLS 1.3","cipherSuite":"TLS_AES_128_GCM_SHA256","chainError":null,"certificates":[{"subject":"CN=myssagent.com","issuer":"CN=YR2,O=Let's Encrypt,C=US","notBefore":"2026-10-30T08:10:37Z","notAfter":"2027-01-28T08:10:36Z","keyType":"RSA","keyBits":2048,"isCa":false},{"subject":"CN=YR2,O=Let's Encrypt,C=US","issuer":"CN=Root YR,O=ISRG,C=US","notBefore":"2025-09-03T00:00:00Z","notAfter":"2028-09-02T23:59:59Z","keyType":"RSA","keyBits":2048,"isCa":true},{"subject":"CN=Root YR,O=ISRG,C=US","issuer":"CN=ISRG Root X1,O=Internet Security Research Group,C=US","notBefore":"2026-05-13T00:00:00Z","notAfter":"2032-09-02T23:59:59Z","keyType":"RSA","keyBits":4096,"isCa":true}]},"dnssec":{"result":"insecure","label":"Not signed","name":"myssagent.com.","steps":[{"zone":".","outcome":"verified","label":"Verified"},{"zone":"com.","outcome":"verified","label":"Verified"},{"zone":"myssagent.com.","outcome":"insecure_proven","label":"Unsigned (proven)"}]},"auth":{"outcome":"none","label":"No authorisation required","gate":null,"gateLabel":null,"status":200,"authorizationServers":[]},"httpsRedirect":{"outcome":"https_enforced","label":"HTTPS enforced","status":308},"transports":[{"transport":"streamable-http","outcome":"verified","label":"Verified","status":200,"followed":false}],"provenance":null,"installScripts":[],"installScriptsTotal":null,"vulnerabilities":[],"vulnerabilitiesTotal":null,"dependencies":null},"mismatches":[],"changelog":{"trackingSince":"2026-10-15","recent":[{"id":"chg_01a1afee-0589-7b37-a9cd-650e50a405ac","kind":"score.rubric_changed","summary":"We updated how we score, so this day's move reflects our rubric, not a change to the server","materiality":"functional","direction":"neutral","scoreDelta":null,"occurredOn":"2026-11-06","url":"https://verifymcp.io/servers/com-myssagent-mcp/api-mcp#chg-chg_01a1afee-0589-7b37-a9cd-650e50a405ac"},{"id":"chg_01a1a5a0-9f8e-7cd9-98b3-ab7b42aa5189","kind":"score.total_changed","summary":"Trust score (71 → 72)","materiality":"functional","direction":"improvement","scoreDelta":1,"occurredOn":"2026-11-04","url":"https://verifymcp.io/servers/com-myssagent-mcp/api-mcp#chg-chg_01a1a5a0-9f8e-7cd9-98b3-ab7b42aa5189"},{"id":"chg_01a19630-2ac3-7328-a75f-85b4d2c781fb","kind":"score.total_changed","summary":"Trust score (70 → 71)","materiality":"functional","direction":"improvement","scoreDelta":1,"occurredOn":"2026-11-01","url":"https://verifymcp.io/servers/com-myssagent-mcp/api-mcp#chg-chg_01a19630-2ac3-7328-a75f-85b4d2c781fb"},{"id":"chg_01a19108-d852-7339-a78d-3e37718b7b32","kind":"check.measure","summary":"Schema quality (1954 → 2649)","materiality":"functional","direction":"regression","scoreDelta":null,"occurredOn":"2026-10-31","url":"https://verifymcp.io/servers/com-myssagent-mcp/api-mcp#chg-chg_01a19108-d852-7339-a78d-3e37718b7b32"},{"id":"chg_01a19108-d853-73ed-8fa7-0550ad2d20b2","kind":"tool.description_changed","summary":"Tool “run_client_analysis” rewrote its description, which is the text the model reads","materiality":"security","direction":"neutral","scoreDelta":null,"occurredOn":"2026-10-31","url":"https://verifymcp.io/servers/com-myssagent-mcp/api-mcp#chg-chg_01a19108-d853-73ed-8fa7-0550ad2d20b2"},{"id":"chg_01a19108-d853-7db7-99ae-4e28aad3f8af","kind":"tool.added","summary":"New tool “get_sample_client_report”","materiality":"functional","direction":"neutral","scoreDelta":null,"occurredOn":"2026-10-31","url":"https://verifymcp.io/servers/com-myssagent-mcp/api-mcp#chg-chg_01a19108-d853-7db7-99ae-4e28aad3f8af"},{"id":"chg_01a19108-d854-743c-a27c-30794ed55855","kind":"tool.added","summary":"New tool “start_client_analysis”","materiality":"functional","direction":"neutral","scoreDelta":null,"occurredOn":"2026-10-31","url":"https://verifymcp.io/servers/com-myssagent-mcp/api-mcp#chg-chg_01a19108-d854-743c-a27c-30794ed55855"},{"id":"chg_01a19108-d854-7984-8be0-de72ed81bca1","kind":"server.instructions_changed","summary":"The server rewrote its instructions, which are the text every model session reads","materiality":"security","direction":"neutral","scoreDelta":null,"occurredOn":"2026-10-31","url":"https://verifymcp.io/servers/com-myssagent-mcp/api-mcp#chg-chg_01a19108-d854-7984-8be0-de72ed81bca1"},{"id":"chg_01a18be3-51c1-7eff-8d5f-7e408986bfe0","kind":"tool.description_changed","summary":"Tool “get_client_report” rewrote its description, which is the text the model reads","materiality":"security","direction":"neutral","scoreDelta":null,"occurredOn":"2026-10-30","url":"https://verifymcp.io/servers/com-myssagent-mcp/api-mcp#chg-chg_01a18be3-51c1-7eff-8d5f-7e408986bfe0"},{"id":"chg_01a18be3-51c2-7ece-bbe8-85fc1facd4d3","kind":"param.added_optional","summary":"“get_client_report” added an optional parameter “survivor_scenario”","materiality":"cosmetic","direction":"neutral","scoreDelta":null,"occurredOn":"2026-10-30","url":"https://verifymcp.io/servers/com-myssagent-mcp/api-mcp#chg-chg_01a18be3-51c2-7ece-bbe8-85fc1facd4d3"},{"id":"chg_01a18be3-51c3-77ef-ba54-93c86bbcd8b3","kind":"score.total_changed","summary":"Trust score (69 → 70)","materiality":"functional","direction":"improvement","scoreDelta":1,"occurredOn":"2026-10-30","url":"https://verifymcp.io/servers/com-myssagent-mcp/api-mcp#chg-chg_01a18be3-51c3-77ef-ba54-93c86bbcd8b3"},{"id":"chg_01a18194-819b-75d2-8841-39f327d1a88a","kind":"score.total_changed","summary":"Trust score (68 → 69)","materiality":"functional","direction":"improvement","scoreDelta":1,"occurredOn":"2026-10-28","url":"https://verifymcp.io/servers/com-myssagent-mcp/api-mcp#chg-chg_01a18194-819b-75d2-8841-39f327d1a88a"},{"id":"chg_01a17747-cade-75e3-9ade-7a870756a2fa","kind":"score.total_changed","summary":"Trust score (67 → 68)","materiality":"functional","direction":"improvement","scoreDelta":1,"occurredOn":"2026-10-26","url":"https://verifymcp.io/servers/com-myssagent-mcp/api-mcp#chg-chg_01a17747-cade-75e3-9ade-7a870756a2fa"},{"id":"chg_01a16cfc-696b-7493-88ed-9cb2b0d65fb4","kind":"score.total_changed","summary":"Trust score (66 → 67)","materiality":"functional","direction":"improvement","scoreDelta":1,"occurredOn":"2026-10-24","url":"https://verifymcp.io/servers/com-myssagent-mcp/api-mcp#chg-chg_01a16cfc-696b-7493-88ed-9cb2b0d65fb4"},{"id":"chg_01a162b0-a971-76ae-9949-287b27b135ba","kind":"score.total_changed","summary":"Trust score (65 → 66)","materiality":"functional","direction":"improvement","scoreDelta":1,"occurredOn":"2026-10-22","url":"https://verifymcp.io/servers/com-myssagent-mcp/api-mcp#chg-chg_01a162b0-a971-76ae-9949-287b27b135ba"},{"id":"chg_01a1585d-2b1c-772b-8863-427054293b1b","kind":"check.measure","summary":"Schema quality (250 → 450)","materiality":"functional","direction":"regression","scoreDelta":null,"occurredOn":"2026-10-20","url":"https://verifymcp.io/servers/com-myssagent-mcp/api-mcp#chg-chg_01a1585d-2b1c-772b-8863-427054293b1b"},{"id":"chg_01a1585d-2b1e-71b8-be58-b371ed675fd0","kind":"tool.description_changed","summary":"Tool “estimate_claiming_strategy” rewrote its description, which is the text the model reads","materiality":"security","direction":"neutral","scoreDelta":null,"occurredOn":"2026-10-20","url":"https://verifymcp.io/servers/com-myssagent-mcp/api-mcp#chg-chg_01a1585d-2b1e-71b8-be58-b371ed675fd0"},{"id":"chg_01a1585d-2b1f-7180-9fde-9e3b43dceb92","kind":"param.added_optional","summary":"“estimate_claiming_strategy” added an optional parameter “benefit_cut”","materiality":"cosmetic","direction":"neutral","scoreDelta":null,"occurredOn":"2026-10-20","url":"https://verifymcp.io/servers/com-myssagent-mcp/api-mcp#chg-chg_01a1585d-2b1f-7180-9fde-9e3b43dceb92"},{"id":"chg_01a1585d-2b1f-7897-90cb-c807aadd8687","kind":"tool.description_changed","summary":"Tool “get_client_report” rewrote its description, which is the text the model reads","materiality":"security","direction":"neutral","scoreDelta":null,"occurredOn":"2026-10-20","url":"https://verifymcp.io/servers/com-myssagent-mcp/api-mcp#chg-chg_01a1585d-2b1f-7897-90cb-c807aadd8687"},{"id":"chg_01a1585d-2b20-74aa-90d4-2f7f07c05ca8","kind":"param.added_optional","summary":"“get_client_report” added an optional parameter “benefit_cut”","materiality":"cosmetic","direction":"neutral","scoreDelta":null,"occurredOn":"2026-10-20","url":"https://verifymcp.io/servers/com-myssagent-mcp/api-mcp#chg-chg_01a1585d-2b20-74aa-90d4-2f7f07c05ca8"}],"truncated":true,"feedUrl":"https://verifymcp.io/servers/com-myssagent-mcp/api-mcp/changelog.json"},"links":{"html":"https://verifymcp.io/servers/com-myssagent-mcp/api-mcp","markdown":"https://verifymcp.io/servers/com-myssagent-mcp/api-mcp.md","changelogJson":"https://verifymcp.io/servers/com-myssagent-mcp/api-mcp/changelog.json","changelogRss":"https://verifymcp.io/servers/com-myssagent-mcp/api-mcp.xml","external":[{"label":"Remote endpoint","href":"https://myssagent.com/api/mcp"},{"label":"Website","href":"https://myssagent.com/mcp"}]}}