{"$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-05T18:26:00.913Z","url":"https://verifymcp.io/servers/currencyfreaks-currencyfreaks-mcp/currencyfreaks-mcp","markdownUrl":"https://verifymcp.io/servers/currencyfreaks-currencyfreaks-mcp/currencyfreaks-mcp.md","server":{"slug":"currencyfreaks-currencyfreaks-mcp","name":"CurrencyFreaks","registryName":"io.github.CurrencyFreaks/currencyfreaks-mcp","description":"Real-time and historical exchange rates and currency conversion for 1000+ currencies.","registryStatus":"active","deletedAt":null,"statusMessage":null,"liveness":"live","publisher":{"class":"unknown","claimed":false}},"component":{"slug":"currencyfreaks-mcp","type":"npm","identifier":"@currencyfreaks/mcp","withdrawn":false,"url":"https://verifymcp.io/servers/currencyfreaks-currencyfreaks-mcp/currencyfreaks-mcp","version":"1.0.1","transport":"stdio","scoredAt":"2026-11-05T06:13:58.735Z"},"score":{"total":64,"tier":"medium","status":"scored","weekDelta":0,"history":[{"date":"2026-11-05","total":64},{"date":"2026-11-04","total":64},{"date":"2026-11-03","total":64},{"date":"2026-11-02","total":64},{"date":"2026-11-01","total":64},{"date":"2026-10-31","total":64},{"date":"2026-10-30","total":64},{"date":"2026-10-29","total":64},{"date":"2026-10-28","total":64},{"date":"2026-10-27","total":49}]},"categories":[{"name":"Supply Chain Security","score":81,"verdict":"fail","reasons":["No malware found by supply-chain analysis.","CVE check failed: a known high-severity CVE affects zod 3.25.76, a direct dependency. A fixed version is available.","No install/post-install scripts declared.","30 of 93 dependencies flagged as unhealthy."],"codes":[{"code":"supplychain.malware_clean","args":{}},{"code":"cve.direct","args":{"package":"zod","version":"3.25.76","severity":"high"}},{"code":"installscript.none","args":{}},{"code":"dephealth.assessed","args":{"deps":"93","unhealthy":"30"}}]},{"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 (MIT).","Actively maintained (last published 8 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":"MIT"}},{"code":"maintenance.recent","args":{"age_days":"8"}},{"code":"disclosure.absent","args":{}}]},{"name":"Schema Quality & AI Usability","score":71,"verdict":"fail","reasons":["AI-judged instruction clarity (excellent).","Context-footprint check failed: tool/resource definitions use about 1274 tokens (~182/item across 7 items; 7 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":"182","items":"7","tools":"7","tokens":"1274","resources":"0"}},{"code":"schema.examples_absent","args":{}}]},{"name":"Stability & Change Management","score":0,"verdict":"unverified","reasons":["Stability not yet verified: not enough scan history yet (needs a 30-day window)."],"codes":[{"code":"stability.insufficient_history","args":{}}]},{"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 7 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":"7"}},{"code":"toolsafety.manipulation_clean","args":{"units":"7","judged":"7"}}]},{"name":"Capabilities","score":100,"verdict":"pass","reasons":["Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28."],"codes":[{"code":"protocol.supported","args":{"latest":"2026-07-28","version":"2025-11-25"}}]}],"inconclusive":["Stability not yet verified: not enough scan history yet (needs a 30-day window)."],"malware":[],"components":[{"slug":"currencyfreaks-mcp","type":"npm","identifier":"@currencyfreaks/mcp","withdrawn":false,"score":64,"current":true,"url":"https://verifymcp.io/servers/currencyfreaks-currencyfreaks-mcp/currencyfreaks-mcp","markdownUrl":"https://verifymcp.io/servers/currencyfreaks-currencyfreaks-mcp/currencyfreaks-mcp.md"}],"facts":[{"label":"Registry","value":"npm"},{"label":"Package","value":"@currencyfreaks/mcp"},{"label":"Version","value":"1.0.1"},{"label":"Transport","value":"stdio"}],"install":{"available":true,"bundleSha256":null},"tools":[{"name":"list_currencies","title":"List supported currencies","description":"Returns the currencies supported by CurrencyFreaks: 1000+ fiat currencies, cryptocurrencies, and precious metals (XAU gold, XAG silver, XPT platinum, XPD palladium). Use it to find a currency code before calling rate or conversion tools. No API key needed. By default returns a compact code → name map. Pass 'search' to filter by code, name, or country (e.g. 'rupee', 'PK', 'bitcoin'). Pass detailed=true for country, status (AVAILABLE/DEPRECATED), and the availableFrom/availableUntil date range of historical data per currency — combine with 'search' because the full detailed catalogue is very large.","inputs":[{"name":"detailed","type":"boolean","required":false,"description":"Return full details per currency (country, status, historical availability range, icon). Default false."},{"name":"search","type":"string","required":false,"description":"Case-insensitive substring to match against currency code, name, or (with detailed=true) country name."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":199},{"name":"get_latest_rates","title":"Get latest exchange rates","description":"Returns the latest exchange rates for one or more currencies against a base currency (USD by default). Covers fiat, crypto, and metals. Rates are returned as strings; refresh frequency depends on the plan (daily on Developer/free, hourly on Starter, every 10 minutes on Growth, every 60 seconds on Professional). Omit 'symbols' to get all 1000+ currencies.","inputs":[{"name":"base","type":"string","required":false,"description":"Base currency code the rates are expressed against (e.g. 'EUR'). Default is USD. Changing the base requires the Starter plan or above (any paid plan)."},{"name":"symbols","type":"string","required":false,"description":"Comma-separated currency codes to return, e.g. 'EUR,GBP,PKR' or 'BTC,ETH' or 'XAU,XAG'. Case-insensitive. Omit to get every supported currency (1000+ entries) — prefer passing symbols to keep respons…"}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":199},{"name":"convert_currency","title":"Convert an amount between currencies","description":"Converts an amount from one currency to another using the latest rate, or the rate on a past date if 'date' is given. Returns the rate used, the given amount, and the converted amount. Starter plan and above (any paid plan).","inputs":[{"name":"amount","type":"number","required":false,"description":"Amount to convert. Must be greater than 0. Default is 1.0."},{"name":"date","type":"string","required":false,"description":"Optional past date (YYYY-MM-DD) to convert at that day's rate instead of the latest rate."},{"name":"from","type":"string","required":true,"description":"Currency code to convert from, e.g. 'USD'."},{"name":"to","type":"string","required":true,"description":"Currency code to convert to, e.g. 'EUR'."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":144},{"name":"get_historical_rates","title":"Get historical exchange rates","description":"Returns exchange rates for a specific past date. Major fiat currencies go back to 1984-11-28; newer currencies and crypto start from their own listing date (see list_currencies with detailed=true). Starter plan and above (any paid plan).","inputs":[{"name":"base","type":"string","required":false,"description":"Base currency code the rates are expressed against (e.g. 'EUR'). Default is USD. Changing the base requires the Starter plan or above (any paid plan)."},{"name":"date","type":"string","required":true,"description":"Date in YYYY-MM-DD format."},{"name":"symbols","type":"string","required":false,"description":"Comma-separated currency codes to return, e.g. 'EUR,GBP,PKR' or 'BTC,ETH' or 'XAU,XAG'. Case-insensitive. Omit to get every supported currency (1000+ entries) — prefer passing symbols to keep respons…"}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":187},{"name":"get_time_series","title":"Get daily exchange rate time series","description":"Returns daily exchange rates for one or more currencies between two dates, one entry per day. Professional plan and above.","inputs":[{"name":"base","type":"string","required":false,"description":"Base currency code the rates are expressed against (e.g. 'EUR'). Default is USD. Changing the base requires the Starter plan or above (any paid plan)."},{"name":"endDate","type":"string","required":true,"description":"End date in YYYY-MM-DD format."},{"name":"startDate","type":"string","required":true,"description":"Start date in YYYY-MM-DD format."},{"name":"symbols","type":"string","required":false,"description":"Comma-separated currency codes to return, e.g. 'EUR,GBP,PKR' or 'BTC,ETH' or 'XAU,XAG'. Case-insensitive. Omit to get every supported currency (1000+ entries) — prefer passing symbols to keep respons…"}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":175},{"name":"get_fluctuation","title":"Get exchange rate fluctuation","description":"Returns how currencies moved between two dates: start rate, end rate, absolute change, and percent change for each symbol against the base. Note the sign convention: change = startRate - endRate, so a POSITIVE change means fewer units per base, i.e. the symbol currency strengthened against the base, and a NEGATIVE change means the rate rose and the symbol currency weakened. Professional plan and above.","inputs":[{"name":"base","type":"string","required":false,"description":"Base currency code the rates are expressed against (e.g. 'EUR'). Default is USD. Changing the base requires the Starter plan or above (any paid plan)."},{"name":"endDate","type":"string","required":false,"description":"End date in YYYY-MM-DD format. Defaults to the day before today."},{"name":"startDate","type":"string","required":true,"description":"Start date in YYYY-MM-DD format."},{"name":"symbols","type":"string","required":false,"description":"Comma-separated currency codes to return, e.g. 'EUR,GBP,PKR' or 'BTC,ETH' or 'XAU,XAG'. Case-insensitive. Omit to get every supported currency (1000+ entries) — prefer passing symbols to keep respons…"}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":242},{"name":"ip_to_currency","title":"Convert to the local currency of an IP address","description":"Resolves the local currency from an IP address's geolocation and converts an amount into it using the latest rate. Useful for localizing prices for a visitor. The target currency is returned in the 'to' field. Growth plan and above.","inputs":[{"name":"amount","type":"number","required":false,"description":"Amount to convert. Must be greater than 0. Default is 1.0."},{"name":"from","type":"string","required":true,"description":"Currency code to convert from, e.g. 'USD'."},{"name":"ip","type":"string","required":false,"description":"IPv4 or IPv6 address to geolocate. Omit to use the caller's own IP address."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":128}],"toolsTruncatedAtCapture":false,"diagnostics":{"capturedAt":"2026-11-05T06:13:58.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":null,"reasonLabel":null,"discovery":null,"discoveryLabel":null,"sourceRepo":null,"attestationSkipped":null,"attestationSkippedLabel":null},"installScripts":[],"installScriptsTotal":null,"vulnerabilities":[{"id":"GHSA-mrhx-c7xc-m3w5","cve":"CVE-2023-54404","severity":"high","fixAvailable":true}],"vulnerabilitiesTotal":1,"dependencies":{"nodes":93,"partial":false,"deprecated":null,"stale":30,"noRepo":null}},"mismatches":[],"changelog":{"trackingSince":"2026-10-27","recent":[{"id":"chg_01a1811f-85ce-73be-8a6f-5d6c4cc98d63","kind":"check.reverified","summary":"Malware scan (unverified → pass)","materiality":"security","direction":"improvement","scoreDelta":null,"occurredOn":"2026-10-28","url":"https://verifymcp.io/servers/currencyfreaks-currencyfreaks-mcp/currencyfreaks-mcp#chg-chg_01a1811f-85ce-73be-8a6f-5d6c4cc98d63"},{"id":"chg_01a1811f-85d2-7761-8ba1-547198f20831","kind":"score.total_changed","summary":"Trust score (49 → 64)","materiality":"functional","direction":"improvement","scoreDelta":15,"occurredOn":"2026-10-28","url":"https://verifymcp.io/servers/currencyfreaks-currencyfreaks-mcp/currencyfreaks-mcp#chg-chg_01a1811f-85d2-7761-8ba1-547198f20831"},{"id":"chg_01a17d5e-1016-7404-92e3-cf182deadd58","kind":"score.first_scored","summary":"First indexed and scored","materiality":"functional","direction":"neutral","scoreDelta":null,"occurredOn":"2026-10-27","url":"https://verifymcp.io/servers/currencyfreaks-currencyfreaks-mcp/currencyfreaks-mcp#chg-chg_01a17d5e-1016-7404-92e3-cf182deadd58"}],"truncated":false,"feedUrl":"https://verifymcp.io/servers/currencyfreaks-currencyfreaks-mcp/currencyfreaks-mcp/changelog.json"},"links":{"html":"https://verifymcp.io/servers/currencyfreaks-currencyfreaks-mcp/currencyfreaks-mcp","markdown":"https://verifymcp.io/servers/currencyfreaks-currencyfreaks-mcp/currencyfreaks-mcp.md","changelogJson":"https://verifymcp.io/servers/currencyfreaks-currencyfreaks-mcp/currencyfreaks-mcp/changelog.json","changelogRss":"https://verifymcp.io/servers/currencyfreaks-currencyfreaks-mcp/currencyfreaks-mcp.xml","external":[{"label":"npm package","href":"https://www.npmjs.com/package/@currencyfreaks/mcp"},{"label":"Socket report","href":"https://socket.dev/npm/package/@currencyfreaks/mcp"},{"label":"Repository","href":"https://github.com/CurrencyFreaks/currencyfreaks-mcp"},{"label":"Website","href":"https://currencyfreaks.com/"}]}}