{"$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:27.150Z","url":"https://verifymcp.io/servers/app-compoundsim-compoundsim/compoundsim","markdownUrl":"https://verifymcp.io/servers/app-compoundsim-compoundsim/compoundsim.md","server":{"slug":"app-compoundsim-compoundsim","name":"compoundsim","registryName":"app.compoundsim/compoundsim","description":"Compound interest and Monte Carlo simulators for investing, retirement and past asset returns.","registryStatus":"active","deletedAt":null,"statusMessage":null,"liveness":"live","publisher":{"class":"unknown","claimed":false}},"component":{"slug":"compoundsim","type":"remote","identifier":"https://compoundsim.app/mcp","withdrawn":false,"url":"https://verifymcp.io/servers/app-compoundsim-compoundsim/compoundsim","version":"1.0.0","transport":null,"scoredAt":"2026-11-06T07:33:19.987Z"},"score":{"total":70,"tier":"medium","status":"scored","weekDelta":null,"history":[{"date":"2026-11-06","total":70},{"date":"2026-11-05","total":69},{"date":"2026-11-04","total":69},{"date":"2026-11-03","total":68},{"date":"2026-11-02","total":68},{"date":"2026-11-01","total":68}]},"categories":[{"name":"Endpoint Security","score":74,"verdict":"fail","reasons":["The endpoint's TLS certificate is valid, in date, and uses a strong key.","No authorisation is required to call this server. Nothing on it is marked destructive, but we can't show that an anonymous caller can only read: full credit needs the server to list at least one tool and every tool to be verifiably read-only. We use a best-effort check of tool names and descriptions to tell read-only tools from tools that change things, so some genuinely read-only tools may not get full credit. Names that start with a read verb (get, list, read, search and similar) and accurate readOnlyHint annotations help. Meet that to earn full credit, or require authorisation.","HTTPS is enforced; there's no plaintext access path.","HSTS check failed: the Strict-Transport-Security header is absent.","DNSSEC check failed: this domain isn't protected by DNSSEC."],"codes":[{"code":"tls.valid","args":{}},{"code":"auth.none_no_destructive","args":{}},{"code":"https.enforced","args":{}},{"code":"headers.hsts_absent","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":54,"verdict":"fail","reasons":["AI-judged instruction clarity (good).","Context-footprint check failed: tool/resource definitions use about 1792 tokens (~358/item across 5 items; 5 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":"good"}},{"code":"schema.footprint_heavy","args":{"avg":"358","items":"5","tools":"5","tokens":"1792","resources":"0"}},{"code":"schema.examples_absent","args":{}}]},{"name":"Stability & Change Management","score":17,"verdict":"partial","reasons":["Stability observed for 5 of 30 days with no destabilising changes; credit accrues until the full window elapses."],"codes":[{"code":"stability.building_history","args":{"days":"5"}}]},{"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 5 captured tool definition(s), and no name or description among them implies an irreversible operation.","An AI judge read all 6 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":"5"}},{"code":"toolsafety.manipulation_clean","args":{"units":"6","judged":"6"}}]},{"name":"Capabilities","score":100,"verdict":"pass","reasons":["Implements a current MCP spec version (2026-07-28)."],"codes":[{"code":"protocol.current","args":{"version":"2026-07-28"}}]}],"inconclusive":[],"malware":[],"components":[{"slug":"compoundsim","type":"remote","identifier":"https://compoundsim.app/mcp","withdrawn":false,"score":70,"current":true,"url":"https://verifymcp.io/servers/app-compoundsim-compoundsim/compoundsim","markdownUrl":"https://verifymcp.io/servers/app-compoundsim-compoundsim/compoundsim.md"}],"facts":[{"label":"Endpoint","value":"https://compoundsim.app/mcp"},{"label":"Transports","value":"streamable-http"},{"label":"Auth","value":"none"},{"label":"Version","value":"1.0.0"}],"install":{"available":true,"bundleSha256":null},"tools":[{"name":"simulate_portfolio","title":"Simulate monthly investing in a portfolio","description":"Monte Carlo simulation of investing monthly (plus an optional starting sum) in one asset or a mix rebalanced monthly. Returns the range of outcomes by year (10th to 90th percentile), the deepest fall along the way, the mix's own past return and volatility, and a compoundsim.app url that shows the same scenario.","inputs":[{"name":"currency","type":"string","required":false,"description":"Currency of every amount, in and out. In a currency other than USD the paths carry its exchange-rate swings against the dollar (trend removed). Defaults to the language's currency."},{"name":"history","type":"string","required":false,"description":"The span of past monthly returns the model is fitted to: the last 5, 10 or 20 years, or all the data. An asset with less data than the span asked for uses all of its own."},{"name":"history_from","type":"integer","required":false,"description":"First calendar year of a custom span (with history_to); replaces history."},{"name":"history_to","type":"integer","required":false,"description":"Last calendar year of a custom span."},{"name":"inflation_percent","type":"number","required":false,"description":"Annual inflation. When given, every amount out is in today's money at this rate; omitted, amounts are nominal."},{"name":"initial","type":"number","required":false,"description":"Starting sum invested at once."},{"name":"language","type":"string","required":false,"description":"Language of the page the returned url opens; match the user's language."},{"name":"monthly","type":"number","required":true,"description":"Amount invested at the end of every month."},{"name":"portfolio","type":null,"required":true,"description":"A preset name or weights in percent by asset (any total; they are scaled to 100). Assets: sp500 = S&P 500, ndx100 = Nasdaq 100, sox = SOX (Semiconductors), schd = US dividend stocks (SCHD), acwi = MS…"},{"name":"years","type":"integer","required":false,"description":"Years of investing."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":471},{"name":"compare_portfolios","title":"Compare portfolios side by side","description":"Runs the same monthly-investing plan through 2 to 4 portfolios (the same simulation as simulate_portfolio) and returns each one's final outcome range, deepest fall, past return and volatility, and url, for questions like 'S&P 500 or all-country stocks?'.","inputs":[{"name":"currency","type":"string","required":false,"description":"Currency of every amount, in and out. In a currency other than USD the paths carry its exchange-rate swings against the dollar (trend removed). Defaults to the language's currency."},{"name":"history","type":"string","required":false,"description":"The span of past monthly returns the model is fitted to: the last 5, 10 or 20 years, or all the data. An asset with less data than the span asked for uses all of its own."},{"name":"history_from","type":"integer","required":false,"description":"First calendar year of a custom span (with history_to); replaces history."},{"name":"history_to","type":"integer","required":false,"description":"Last calendar year of a custom span."},{"name":"inflation_percent","type":"number","required":false,"description":"Annual inflation. When given, every amount out is in today's money at this rate; omitted, amounts are nominal."},{"name":"initial","type":"number","required":false,"description":"Starting sum invested at once."},{"name":"language","type":"string","required":false,"description":"Language of the page the returned url opens; match the user's language."},{"name":"monthly","type":"number","required":true,"description":"Amount invested at the end of every month."},{"name":"portfolios","type":"array","required":true,"description":"The portfolios to compare."},{"name":"years","type":"integer","required":false,"description":"Years of investing."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":293},{"name":"simulate_withdrawal","title":"Simulate spending down a portfolio in retirement","description":"Monte Carlo simulation of withdrawing a yearly percentage of a starting balance, raised with inflation every month, from a portfolio (the 4% rule and its variants). Returns the share of paths that still had money at the end, when the others ran out, the remaining balance range in today's money, the success rate at withdrawal rates from 2% to 8%, and a compoundsim.app url.","inputs":[{"name":"balance","type":"number","required":true,"description":"Starting balance."},{"name":"currency","type":"string","required":false,"description":"Currency of every amount, in and out. In a currency other than USD the paths carry its exchange-rate swings against the dollar (trend removed). Defaults to the language's currency."},{"name":"history","type":"string","required":false,"description":"The span of past monthly returns the model is fitted to: the last 5, 10 or 20 years, or all the data. An asset with less data than the span asked for uses all of its own."},{"name":"history_from","type":"integer","required":false,"description":"First calendar year of a custom span (with history_to); replaces history."},{"name":"history_to","type":"integer","required":false,"description":"Last calendar year of a custom span."},{"name":"inflation_percent","type":"number","required":false,"description":"Annual inflation the withdrawals rise with; balances are in today's money."},{"name":"language","type":"string","required":false,"description":"Language of the page the returned url opens; match the user's language."},{"name":"portfolio","type":null,"required":true,"description":"A preset name or weights in percent by asset (any total; they are scaled to 100). Assets: sp500 = S&P 500, ndx100 = Nasdaq 100, sox = SOX (Semiconductors), schd = US dividend stocks (SCHD), acwi = MS…"},{"name":"withdrawal_rate_pct","type":"number","required":false,"description":"First year's withdrawal as a percentage of the starting balance."},{"name":"years","type":"integer","required":false,"description":"Years the money has to last."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":479},{"name":"simulate_fixed_rate","title":"Compound interest at a fixed rate","description":"Deterministic compound growth of monthly contributions (plus an optional starting sum) at a fixed annual return. Returns contributions, gains and total by year, and a compoundsim.app url. Use simulate_portfolio for the range of outcomes of real assets.","inputs":[{"name":"annual_return_pct","type":"number","required":false,"description":"Effective annual return (CAGR), applied as the equivalent monthly rate."},{"name":"currency","type":"string","required":false,"description":"Currency of every amount, in and out. In a currency other than USD the paths carry its exchange-rate swings against the dollar (trend removed). Defaults to the language's currency."},{"name":"inflation_percent","type":"number","required":false,"description":"Annual inflation. When given, every amount out is in today's money at this rate; omitted, amounts are nominal."},{"name":"initial","type":"number","required":false,"description":"Starting sum invested at once."},{"name":"language","type":"string","required":false,"description":"Language of the page the returned url opens; match the user's language."},{"name":"monthly","type":"number","required":true,"description":"Amount invested at the end of every month."},{"name":"years","type":"integer","required":false,"description":"Years of investing."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":210},{"name":"get_asset_returns","title":"Past annualised returns of assets","description":"Annualised past returns of the assets compoundsim simulates, over the last 5, 10 or 20 years, all the data, or a calendar span: total return with dividends reinvested, price return, the dividends' share, volatility, and the return after US inflation (in USD) or the exchange rate's share of the return (in another currency).","inputs":[{"name":"assets","type":"array","required":false,"description":"Assets to include; all of them when omitted."},{"name":"currency","type":"string","required":false,"description":"Currency of every amount, in and out. In a currency other than USD the paths carry its exchange-rate swings against the dollar (trend removed). Defaults to the language's currency."},{"name":"language","type":"string","required":false,"description":"Language of the page the returned url opens; match the user's language."},{"name":"period","type":"string","required":false,"description":"The span measured: the last 5, 10 or 20 years, or all the data. An asset with less data than the span asked for uses all of its own."},{"name":"period_from","type":"integer","required":false,"description":"First calendar year of a custom span (with period_to); replaces period."},{"name":"period_to","type":"integer","required":false,"description":"Last calendar year of a custom span."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":243}],"toolsTruncatedAtCapture":false,"diagnostics":{"capturedAt":"2026-11-06T07:33:19.000Z","track":"remote","endpoint":"https://compoundsim.app/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=compoundsim.app","issuer":"CN=WE1,O=Google Trust Services,C=US","notBefore":"2026-10-14T09:52:08Z","notAfter":"2027-01-12T10:52:06Z","keyType":"ECDSA","keyBits":256,"isCa":false},{"subject":"CN=WE1,O=Google Trust Services,C=US","issuer":"CN=GTS Root R4,O=Google Trust Services LLC,C=US","notBefore":"2023-12-13T09:00:00Z","notAfter":"2029-02-20T14:00:00Z","keyType":"ECDSA","keyBits":256,"isCa":true},{"subject":"CN=GTS Root R4,O=Google Trust Services LLC,C=US","issuer":"CN=GlobalSign Root CA,OU=Root CA,O=GlobalSign nv-sa,C=BE","notBefore":"2023-11-15T03:43:21Z","notAfter":"2028-01-28T00:00:42Z","keyType":"ECDSA","keyBits":384,"isCa":true}]},"dnssec":{"result":"insecure","label":"Not signed","name":"compoundsim.app.","steps":[{"zone":".","outcome":"verified","label":"Verified"},{"zone":"app.","outcome":"verified","label":"Verified"},{"zone":"compoundsim.app.","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":301},"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-11-01","recent":[{"id":"chg_01a1afc6-be08-761b-925c-9046e723d1c0","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/app-compoundsim-compoundsim/compoundsim#chg-chg_01a1afc6-be08-761b-925c-9046e723d1c0"},{"id":"chg_01a1a579-eba2-7569-89c6-526650b1b733","kind":"score.total_changed","summary":"Trust score (68 → 69)","materiality":"functional","direction":"improvement","scoreDelta":1,"occurredOn":"2026-11-04","url":"https://verifymcp.io/servers/app-compoundsim-compoundsim/compoundsim#chg-chg_01a1a579-eba2-7569-89c6-526650b1b733"},{"id":"chg_01a19b2d-e24e-7ac3-8a59-19643754cbc9","kind":"check.reverified","summary":"Stability (unverified → 0.03)","materiality":"functional","direction":"improvement","scoreDelta":null,"occurredOn":"2026-11-02","url":"https://verifymcp.io/servers/app-compoundsim-compoundsim/compoundsim#chg-chg_01a19b2d-e24e-7ac3-8a59-19643754cbc9"},{"id":"chg_01a19b2d-e24f-772a-b67c-94b49d168261","kind":"param.description_changed","summary":"“simulate_fixed_rate” reworded the description of “annual_return_pct”","materiality":"cosmetic","direction":"neutral","scoreDelta":null,"occurredOn":"2026-11-02","url":"https://verifymcp.io/servers/app-compoundsim-compoundsim/compoundsim#chg-chg_01a19b2d-e24f-772a-b67c-94b49d168261"},{"id":"chg_01a1980e-3ab4-7b79-bb03-595a0040f410","kind":"score.first_scored","summary":"First indexed and scored","materiality":"functional","direction":"neutral","scoreDelta":null,"occurredOn":"2026-11-01","url":"https://verifymcp.io/servers/app-compoundsim-compoundsim/compoundsim#chg-chg_01a1980e-3ab4-7b79-bb03-595a0040f410"}],"truncated":false,"feedUrl":"https://verifymcp.io/servers/app-compoundsim-compoundsim/compoundsim/changelog.json"},"links":{"html":"https://verifymcp.io/servers/app-compoundsim-compoundsim/compoundsim","markdown":"https://verifymcp.io/servers/app-compoundsim-compoundsim/compoundsim.md","changelogJson":"https://verifymcp.io/servers/app-compoundsim-compoundsim/compoundsim/changelog.json","changelogRss":"https://verifymcp.io/servers/app-compoundsim-compoundsim/compoundsim.xml","external":[{"label":"Remote endpoint","href":"https://compoundsim.app/mcp"},{"label":"Website","href":"https://compoundsim.app/mcp"}]}}