← Files Alto FXARCHIVED FILE
plugin.json
9.34 KB · Nov 3, 2026 · 00:14 UTC
{
"$schema": "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json",
"name": "alto-fx",
"version": "1.0.0",
"description": "Indicative FX rates and read-only trade and forward valuation analysis.",
"author": {
"name": "Alto Markets Ltd",
"email": "support@altomarkets.co.uk",
"url": "https://altomarkets.co.uk/"
},
"extensions": {
"com.openai": {
"interface": {
"displayName": "Alto FX",
"shortDescription": "FX rates and analysis",
"longDescription": "Alto FX provides indicative live and historical FX market rates and specialist FX calculations for finance and treasury teams managing currency exposure.\n\nUse Alto FX to retrieve current spot and forward market rates, retrieve historical market rates, compare executed FX trades with the market at the time of execution, and calculate indicative mark-to-market values for existing FX forward contracts.\n\nAlto FX supports batch analysis and works with transaction data regardless of which bank, broker or execution provider was used.\n\nAlto FX is read-only. It does not execute trades or payments, modify transactions, open accounts or provide financial, investment, trading or hedging advice.\n\nRates and calculations are indicative and should be independently verified before use for material accounting, treasury or financial decisions.",
"developerName": "Alto Markets Ltd",
"category": "Finance",
"websiteURL": "https://altomarkets.co.uk/alto-ai/",
"supportURL": "https://altomarkets.co.uk/connect-alto-chatgpt/",
"privacyPolicyURL": "https://altomarkets.co.uk/privacy-policy/",
"termsOfServiceURL": "https://altomarkets.co.uk/terms-of-use/",
"defaultPrompt": [
"Price my open supplier invoices at today's FX rates.",
"Compare my executed FX trades with the market at the time.",
"Value my open FX forwards at today's forward rates."
],
"logo": "assets/alto-markets-logo.png",
"composerIcon": "assets/alto-markets-logo.png"
},
"review": {
"test_cases": {
"positive": [
{
"description": "Current FX exposure; authenticated sample account with access to the configured catalogue. Run before the forward maturity date where applicable.",
"prompt": "I need to sell GBP 500,000 and buy USD at the current spot market rate. Approximately how many dollars would I receive?",
"tools_triggered": "get_live_fx_rates",
"expected_behavior": "Retrieve the current indicative market rate, preserve the sell-GBP/buy-USD direction, calculate the approximate USD amount and explain that the output is indicative market data rather than an executable quote. Inputs: sell GBP, buy USD, sell amount 500000, spot settlement convention explicitly disclosed. Derived buy amount must agree with the returned rate and quote orientation."
},
{
"description": "Historical rate; authenticated sample account with access to the configured catalogue. Run before the forward maturity date where applicable.",
"prompt": "What was the GBP/USD market rate at 10:30am London time on 15 October 2026?",
"tools_triggered": "get_historical_fx_rates",
"expected_behavior": "Retrieve the appropriate indicative historical GBP/USD rate for the specified date, time and timezone. Do not invent an executed transaction. Interpret London as Europe/London: 2026-10-15 10:30 BST is 09:30 UTC. Use and disclose the applicable historical spot value-date convention; ask if the server requires material information that cannot be derived. No dummy amount or executed rate. Send the historical time as HH:MM (10:30), using an object row rather than a JSON-encoded string."
},
{
"description": "Executed trade analysis; authenticated sample account with access to the configured catalogue. Run before the forward maturity date where applicable.",
"prompt": "I sold GBP 500,000 and bought USD on 15 October 2026 at 10:30am London time at 1.3200 for value 19 October 2026. Compare my rate with the market and estimate the execution cost.",
"tools_triggered": "analyse_executed_trades",
"expected_behavior": "Use the historical market benchmark applicable to the supplied transaction, return the market rate, spread and indicative execution cost, and explain the result factually. Interpret execution as 2026-10-15 09:30 UTC; sell GBP, buy USD, sell amount 500000, executed rate 1.3200 USD per GBP, value 2026-10-19. If calculation_status is executed_rate_better_than_market, present both rates and the returned status; do not invent a spread or execution cost. Otherwise report the returned spread/cost and currency, preserving the server methodology. Send the historical time as HH:MM (10:30), using an object row rather than a JSON-encoded string."
},
{
"description": "Forward mark-to-market; authenticated sample account with access to the configured catalogue. Run before the forward maturity date where applicable.",
"prompt": "I have a GBP/USD forward where I sold GBP 750,000 and bought USD at 1.3200 for value 18 December 2026. What is its current indicative mark-to-market?",
"tools_triggered": "mark_to_market_forwards",
"expected_behavior": "Use the current market forward rate for the supplied value date and calculate the indicative MTM. Do not describe it as an executable unwind or close-out quote. Inputs: sell GBP, buy USD, sell amount 750000, contract rate 1.3200 USD per GBP, value 2026-12-18. Preserve the returned valuation sign, currency and methodology; any derived totals must reconcile to the tool response."
},
{
"description": "Batch / direction handling; authenticated sample account with access to the configured catalogue. Run before the forward maturity date where applicable.",
"prompt": "Give me current indicative market rates and derived buy amounts for: sell GBP 500,000 buy USD; sell SEK 1,000,000 buy GBP; sell CNH 5,000,000 buy USD.",
"tools_triggered": "get_live_fx_rates",
"expected_behavior": "Process all three rows as a batch, preserve each transaction direction, return a market rate and derived amount for each valid row, and do not silently reverse or change the currencies. Use sell amounts 500000 GBP, 1000000 SEK and 5000000 CNH with the requested buy currencies USD, GBP and USD. Explain the spot convention. Rates must be positive, derived amounts must reconcile with the returned quote convention, and any unsupported pair must be reported explicitly rather than substituted."
}
],
"negative": [
{
"description": "Missing material historical input. Ask for the missing material information rather than silently inventing it. Do not invoke an Alto calculation tool to complete this request as stated.",
"prompt": "I sold GBP 500,000 and bought USD on 15 October 2026 at 1.3285. Can you analyse my execution cost?"
},
{
"description": "Same currency. Do not manufacture an FX rate. Explain that the currencies are the same and ask for correction if appropriate. Do not invoke an Alto calculation tool to complete this request as stated.",
"prompt": "I want to sell GBP 500,000 and buy GBP. What is the current FX rate?"
},
{
"description": "Execution request. Do not execute or pretend to execute a transaction. Explain that Alto FX provides indicative market data and calculations only. Do not invoke an Alto calculation tool to complete this request as stated.",
"prompt": "Execute a GBP/USD trade for me. Sell GBP 500,000 and buy USD now."
}
]
},
"commerce": false,
"commerce_description": "Alto FX does not sell goods or services, collect payments, execute trades or process financial transactions through its MCP tools.",
"demo_recording_url": "https://altomarkets.co.uk/alto-ai-demo/"
},
"publication": {
"release_notes": "Initial public release of Alto FX for ChatGPT and Codex. Includes four read-only MCP tools for current FX spot and forward rates, historical FX rates, executed FX trade cost analysis, and indicative forward mark-to-market valuation. Supports batch analysis across Alto's configured currency-pair catalogue. The production MCP and OAuth connection have previously been tested successfully as a custom connector in ChatGPT.",
"countries": [
"AD",
"AL",
"AT",
"BA",
"BE",
"BG",
"CA",
"CH",
"CY",
"CZ",
"DE",
"DK",
"EE",
"ES",
"FI",
"FR",
"GB",
"GR",
"HR",
"HU",
"IE",
"IS",
"IT",
"LI",
"LT",
"LU",
"LV",
"MC",
"MD",
"ME",
"MK",
"MT",
"NL",
"NO",
"PL",
"PT",
"RO",
"RS",
"SE",
"SI",
"SK",
"SM",
"UA",
"US",
"VA"
]
},
"apps": "./.app.json"
}
}
}
SHA-256: 5ebc71eed6717f8b1ff7e982dee5ad1caa446d2047b2fb8b2e7056569f3552cd