accueil / serveurs / Finance & Paiement / com.currencyguard/guard-pricing
com.currencyguard/guard-pricing
serveur MCP (Model Context Protocol) · CurrencyGuard Guard Pricing 1.0.0
Référencé dans l'annuaire. Seul le pentest comportemental fait foi, et il n'a pas encore été exécuté sur ce serveur.
Est-ce que com.currencyguard/guard-pricing est sûr ?
Au dernier audit MCP Hub, le serveur MCP « com.currencyguard/guard-pricing » est classé « Non encore testé ». Référencé dans l'annuaire. Seul le pentest comportemental fait foi, et il n'a pas encore été exécuté sur ce serveur. Le verdict est réévalué en continu ; consultez la fiche pour l'état à jour.
Méthode : MCP Hub analyse la description de chaque outil (couche 1) et, pour le verdict fort, exécute le serveur dans une micro-VM isolée avec leurres et réseau bloqué (couche 2). On publie des noms et des compteurs, jamais le contenu brut renvoyé par un outil.
Les 11 outils
- compare_guard_with_forward≈ 1464 tokens
Use when a user asks whether a Guard is worth it, how it compares with a forward contract from their bank or provider, or what happens if they do nothing. ASK BEFORE YOU CALL. The forward side of this comparison should be the customer's own numbers, not CurrencyGuard's guesses. Ask three things first: (1) the forward rate their provider last quoted them for this payment, (2) whether the provider gives them an unsecured line with no deposit, or asks for an initial margin and at what percentage, and (3) at what adverse move the provider demands more cash. Pass what they give you as providerForwardRate, initialMarginPct (0 for an unsecured line) and marginCallThresholdPct. Only call with none of them when the customer cannot answer, and then say in your answer that the forward figures are illustrative defaults. DO NOT RANK. Present every row in the order the output gives it: rates, home-currency amount, cash up front, cash demanded under adverse moves, outcomes under favourable and adverse moves, cancellation, market improvement, worst case. Do not say which one wins, which looks bad, which is cheaper overall, or which the customer should choose. State the numbers. The decision is the customer's. cashNature says what kind of money each figure is: the Guard fee is spent, a forward's deposit and margin calls are held and returned at settlement. Say so when you show them. Held cash is not a cost. outcomes runs each move in both directions. In the favourable rows the Guard lapses and the fee is spent for nothing, and the forward is locked out of the better rate. Show both directions, not only the adverse one. READ OUT comparability.protection AND comparability.pricing beside the cost row, every time. A Guard and a forward are different kinds of protection, and the Guard rate here is mid-market while a payment provider may apply a margin to it or to the fee. The cost row is therefore not a like-for-like price comparison. If a tenor like '3 months' is given, call resolve_settlement_date first. DO NOT ALSO CALL price_guard. This returns the Guard rate, fee and amount itself, priced in the same moment as the forward it is compared against. Calling both prices the Guard twice seconds apart, and the market moves between them — the answer then shows two different fees for one Guard. In the cost row, QUOTE THE ALL-IN COST, NOT THE RATE ROW. homeCurrencyAmount.forward already contains the provider margin, because the margin is in the rate, but homeCurrencyAmount.guard does NOT contain the Guard fee. Compare homeCurrencyAmount.guardAllIn with homeCurrencyAmount.forward: those two both carry every cost of their own product. Comparing guard with forward overstates the Guard, by the whole fee. rates.effectiveRate is the same all-in figure expressed as a rate, for setting beside a provider's quoted rate. assumptions.source says, figure by figure, whether the forward side is the customer's data (CUSTOMER, PROVIDER_QUOTE) or ours (DEFAULT, MARKET_CURVE_PLUS_MARGIN). Read assumptions.note out with the answer. Say "your provider's rate" for the customer's figures and "an assumed 5% deposit" for ours. Never present a default as a quote. The Guard figures are indicative, because a Guard is bought through the customer's payment provider, who sets the final rate and fee. Say that reason when you say "indicative".
Paramètres, retour & exemple (10)
ParamètrespayReceive· string · requis · PAY | RECEIVE
PAY if paying foreign currency, RECEIVE if receiving itforeignAmount· number · requis
Amount in foreign currency to protectguardCurrency· string · requis
Home/base currency ISO code, e.g. GBPsettlementDate· string · requis
Settlement date in ISO format YYYY-MM-DDforeignCurrency· string · requis
Foreign currency ISO code, e.g. USDforwardMarginPct· number · optionnel
Margin a provider embeds in a forward rate, as a percentage. Used only when providerForwardRate is absent. Default 1. Only set it if the user knows theirs.initialMarginPct· number · optionnel
Deposit a provider demands at the start, as a percentage of the forward amount. Ask for it. Pass 0 when the provider gives the customer an unsecured line with no deposit. Default 5 when the customer does not know.scenarioMovesPct· array · optionnel
Adverse market moves to show, as percentages. Default 3, 5, 10.providerForwardRate· number · optionnel
The forward rate the customer's own provider last quoted them, as foreign currency per unit of home currency, e.g. 1.3122 for GBPUSD. Ask for it. When given, it replaces the market curve estimate and forwardMarginPct is ignored, because a provider's quote already has the margin inside it.marginCallThresholdPct· number · optionnel
The adverse move, as a percentage, at which the provider starts to demand more cash. Ask for it. Below it the scenarios show no cash call on the forward. Leave empty when the customer does not know; the comparison then shows a call on every move, which is the conservative reading.
Exemple d'appel{"name": "compare_guard_with_forward", "arguments": {"payReceive": "PAY", "foreignAmount": 1, "guardCurrency": "texte", "settlementDate": "texte", "foreignCurrency": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - explain_guard_product≈ 124 tokens
Explain the Guard product using CurrencyGuard's approved product and FAQ content. Covers: what the Guard is, how it works, who it is for, how it compares to forwards or options, and legal, regulatory, accounting, or eligibility questions.
Paramètres, retour & exemple (0)
Exemple d'appel{"name": "explain_guard_product", "arguments": {}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - get_forward_rate≈ 380 tokens
Use when you need a forward FX rate. tenor accepts either a period such as 1W, 1M, 3M, 6M, 1Y, or an exact date in ISO form YYYY-MM-DD. Use an exact date whenever you need the forward for the same day a Guard settles: a period resolves to the forward curve's own date, which can be several days away, and a comparison across two different dates is misleading. Rates are taken from the market forward curve, rounded, and for illustration purposes only — not for execution. Returns: forwardRate (indicative mid outright = spot + forward points), forwardPoints (in pips, e.g. -3.1 means the forward rate is 3.1 pips below spot), spotMid (indicative spot mid rate for comparison), settlementDate (the date the rate is for). Negative forward points mean the forward rate is below spot; positive means above. Example: base=GBP, quote=USD, tenor=2026-12-29 returns the GBPUSD forward for that day.
Paramètres, retour & exemple (3)
Paramètresbase· string · requis
Base currency ISO code, e.g. GBPquote· string · requis
Quote currency ISO code, e.g. USDtenor· string · requis
Tenor period such as 1W, 1M, 3M, 6M, 1Y, or an exact date as YYYY-MM-DD
Exemple d'appel{"name": "get_forward_rate", "arguments": {"base": "texte", "quote": "texte", "tenor": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - get_historic_best_worst≈ 549 tokens
Analyze historic best/worst FX performance for a currency pair over a Guard's duration. Uses Bank of England historic rates. Returns a 'performances' array with 6 entries — BEST and WORST for each of three lookback periods (5, 10, 25 years). Each entry contains: type, lookbackYears, startDate/endDate, startRate/endRate, performancePercentage, startAmount, finalAmount, deltaAmount. For Guard-Pay: negative delta = cost decreased = BEST; positive delta = cost increased = WORST. For Guard-Receive: positive delta = receipt increased = BEST; negative delta = receipt decreased = WORST. Parameters must match the values used in the preceding price_guard call, including payReceive (PAY or RECEIVE).
Paramètres, retour & exemple (6)
ParamètrespayReceive· string · requis · PAY | RECEIVE
MUST be the exact same payReceive value you used in price_guard (PAY or RECEIVE). Do NOT change it.guardAmount· number · optionnel
Guard amount in base/home currency from the Guard quote (the guardAmount field from the price_guard response). Optional: leave it empty when there is no quote, and the tool uses today's indicative mid spot rate instead, so a risk question needs no price first.foreignAmount· number · requis
Amount in foreign currency — MUST match foreignAmount from price_guardguardCurrency· string · requis
Home/base currency ISO code — MUST match guardCurrency from price_guardsettlementDate· string · requis
Settlement date in ISO format YYYY-MM-DD — MUST match settlementDate from price_guardforeignCurrency· string · requis
Foreign currency ISO code — MUST match foreignCurrency from price_guard
Exemple d'appel{"name": "get_historic_best_worst", "arguments": {"payReceive": "PAY", "foreignAmount": 1, "guardCurrency": "texte", "settlementDate": "texte", "foreignCurrency": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - get_spot_rate≈ 174 tokens
Get an indicative spot FX rate for a currency pair. Returns rounded bid, ask, and mid rates for illustration purposes only — not for execution. Example: base=GBP, quote=USD returns the GBPUSD rate.
Paramètres, retour & exemple (2)
Paramètresbase· string · requis
Base currency ISO code, e.g. GBPquote· string · requis
Quote currency ISO code, e.g. USD
Exemple d'appel{"name": "get_spot_rate", "arguments": {"base": "texte", "quote": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - list_supported_currencies≈ 110 tokens
List the currency pairs currently available for Guard pricing. Always call this rather than assuming which pairs are supported — the list is configuration-driven and changes.
Paramètres, retour & exemple (0)
Exemple d'appel{"name": "list_supported_currencies", "arguments": {}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - net_exposure≈ 1294 tokens
Net an SME's open foreign-currency bills and invoices, so that a receipt due on or before a payment in the same currency is shown as funding it. Returns the residual on every bill and invoice, a trace of which invoice funds which bill and for how much, per-bucket totals, dependency statements, and series for a ladder chart. It prices nothing: call price_guard on each residual separately, with the item's own due date as settlementDate. Never offsets across currencies. Items in base_currency are ignored. Cancelled items are excluded. Overdue items are listed separately and never netted. Set carry to true only when the client keeps receipts in a wallet or account in that currency, so a surplus can fund a later payment. If you do not know, ask the user whether they hold an account in each foreign currency before calling; do not guess. If their accounting platform is connected, offer to look up its bank accounts and their currencies there, and use what you find. If the answer is "not sure", call the tool twice, carry true and carry false, and show both charts; each carries its own scenario title, and chart_series.scenario holds the same words. THE RESULT HAS TWO PARTS: the JSON, then a PNG of the ladder chart rendered by the service. Show that image to the user as it is. PRESENTING THE RESULT: chart_series.currencies[ccy].open[] is the exposure. Present each open item on its own due date, with its label. Never add open items into one net figure, and never convert them to the base currency at spot. Do not call price_guard or show a Guard price unless the user asks for a price. If the user asks what they can do, lay out three things as facts and stop: do nothing (the amount stays exposed until paid), a forward from a bank or a payment provider (fixes the rate, provider margin inside the rate, an obligation that may need initial margin and margin calls, settled even if the payment does not happen), a Guard (fee known up front, market rate used if better, nothing further to pay if the payment does not happen). Do not rank them or say which fits. Never use the word "hedge". Do not draw a chart of your own from these numbers. DATES: the result carries today, the date the tool used. A due date the user gave without a year means the next such date on or after today, never a past year. If the result carries a warnings[] entry saying every item is before today, the dates are probably missing a year: confirm with the user and call again. Spec: docs/specs/net_exposure.md.
Paramètres, retour & exemple (6)
Paramètrescarry· boolean · requis
true when the client keeps receipts in a wallet or account in that currency, so a surplus can fund a payment in a later bucket. Surplus never rolls backward.items· array · requis
Open bills and invoicesbucket_days· integer · optionnel
Bucket length. Required for rolling_days.bucket_mode· string · requis · calendar_month | rolling_days | guard_settlement_window
calendar_month groups by month. rolling_days groups by bucket_days from today. guard_settlement_window makes one bucket per payable, window_days before its due date.window_days· integer · optionnel
Window length before each payable. Required for guard_settlement_window.base_currency· string · requis
The client's home currency, e.g. GBP. Items in this currency are ignored.
Exemple d'appel{"name": "net_exposure", "arguments": {"carry": true, "items": [], "bucket_mode": "calendar_month", "base_currency": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - price_guard≈ 631 tokens
Price a Guard — CurrencyGuard's FX protection product for real future payments or receipts. If a tenor like '3 months' is given, call resolve_settlement_date first to get the exact date, then call this tool. Returns: guardType (Guard-Pay or Guard-Receive), guardRate, guardFee (in the home currency), guardFeePct (a FRACTION: 0.0096 means 0.96%), guardFeePercent (the same figure written as a percentage, e.g. "0.96%" — quote this one), effectiveRate, guardAmount (the foreign amount converted at the Guard rate, in the home currency, WITHOUT the fee), foreignAmount, spotRate, settlementDate, settlementWindowFrom (the first day the Guard rate can be used; the window runs from there to settlementDate, counted in business days on the trading calendar, so over holidays it opens earlier than 14 calendar days), payLaterCreditFee (the extra charged if the fee is paid at settlement instead of up front), valid, errors, stale. Pilot limit: the Guard amount cannot exceed 1,000,000 in the home currency. Say so before quoting if the amount is clearly above it. The Guard fee is separate money. A payer funds guardAmount plus guardFee; a receiver nets guardAmount minus guardFee. effectiveRate is that all-in figure expressed as a rate. All quotes are indicative, because a Guard is bought through the customer's payment provider, who sets the final rate and fee. Say that reason when you say "indicative".
Paramètres, retour & exemple (6)
ParamètresguardRate· number · optionnel
Fixed Guard rate to price at instead of the current market rate. Leave empty to price at the current rate.payReceive· string · requis · PAY | RECEIVE
PAY if paying foreign currency, RECEIVE if receiving itforeignAmount· number · requis
Amount in foreign currency to protectguardCurrency· string · requis
Home/base currency ISO code, e.g. GBPsettlementDate· string · requis
Settlement date in ISO format YYYY-MM-DDforeignCurrency· string · requis
Foreign currency ISO code, e.g. USD
Exemple d'appel{"name": "price_guard", "arguments": {"payReceive": "PAY", "foreignAmount": 1, "guardCurrency": "texte", "settlementDate": "texte", "foreignCurrency": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - price_guard_extension≈ 449 tokens
Get an indicative price for extending a Guard to a later settlement date. Estimates the additional cost using: (1) the guard fee difference between extended and original expiry, (2) the guard spread cost from the roll, and (3) the CurrencyGuard extension margin. Returns a breakdown: extensionCost = feeDifference + guardSpreadCost + extensionMargin. Both the original and extended quotes are priced at the same guard rate (the original quote's Guard rate), so the fee difference reflects purely the longer tenor, not market movement. Use this when a customer asks 'how much would it cost to extend my Guard by X months?' Parameters match price_guard plus the two dates.
Paramètres, retour & exemple (6)
ParamètrespayReceive· string · requis · PAY | RECEIVE
PAY if paying foreign currency, RECEIVE if receiving itforeignAmount· number · requis
Amount in foreign currency to protectguardCurrency· string · requis
Home/base currency ISO code, e.g. GBPforeignCurrency· string · requis
Foreign currency ISO code, e.g. USDextendedSettlementDate· string · requis
Extended (new) settlement date in ISO format YYYY-MM-DDoriginalSettlementDate· string · requis
Original settlement date in ISO format YYYY-MM-DD
Exemple d'appel{"name": "price_guard_extension", "arguments": {"payReceive": "PAY", "foreignAmount": 1, "guardCurrency": "texte", "foreignCurrency": "texte", "extendedSettlementDate": "texte", "originalSettlementDate": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - request_provider_availability≈ 402 tokens
Find out whether Guards can be bought through a particular payment provider or bank. A Guard is always bought through a payment provider, so this cannot be answered without knowing which one the user pays through — CurrencyGuard checks and replies. ASK BEFORE CALLING. Tell the user plainly that their provider, and their email address if they give one, will be sent to CurrencyGuard so they can answer. Call this only after they say yes. The email address is optional: the provider on its own is a complete enquiry, and without an address there is simply no one to reply to. Never take an email address from earlier in the conversation — only one the user has just given for this purpose. Never call this more than once in a conversation, and never after the user has declined.
Paramètres, retour & exemple (3)
Paramètresemail· string · optionnel
An email address the user has just given so CurrencyGuard can reply. Omit it unless they offered one for this purpose.provider· string · requis
The payment provider or bank the user pays foreign currency through, as they named it, e.g. Revolut, Wise, BarclayscompanyName· string · optionnel
The name of the user's company, if they gave it. Omit otherwise.
Exemple d'appel{"name": "request_provider_availability", "arguments": {"provider": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - resolve_settlement_date≈ 237 tokens
Resolve a relative time period (tenor) to a valid business settlement date for a currency pair. Use this when a user says '3 months', '6 months', '1 year', etc. instead of an exact date. The tenor format is: 1D (days), 1W (weeks), 1M (months), 1Y (years). Examples: '3M' = 3 months, '6M' = 6 months, '1Y' = 1 year. The returned date accounts for weekends and public holidays in both currencies' financial centres. Use the returned settlementDate as the exact date parameter for price_guard.
Paramètres, retour & exemple (2)
Paramètrestenor· string · requis
Tenor string, e.g. 3M, 6M, 1YcurrencyPair· string · requis
Currency pair, e.g. GBPUSD
Exemple d'appel{"name": "resolve_settlement_date", "arguments": {"tenor": "texte", "currencyPair": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]}
C'est votre serveur ?
Revendiquez-le sur l'espace créateur (preuve GitHub, domaine ou npm) pour afficher le badge « propriétaire vérifié » et lancer un pentest comportemental à la demande afin d'obtenir le badge « Vérifié ».