ai.ohmyfin/banking-intelligence
Cross-border payment & banking intelligence for AI agents: SWIFT/BIC, IBAN, sanctions, FX, tracking.The vendor's description, from its MCP Registry listing.
Every public check ran and passed. Public audit: we connect as an AI client would, list the tools and check what they say. We do not run them. How we audit
- Does it work?
- YesConnected in 431 ms.
- Sign-up?
- None neededIt answered without any account or key.
- Can it change things?
- YesSome tools say they can change things. Your AI client should ask you first.
https://mcp.ohmyfin.ai/mcpWebsite Streamable HTTP · protocol 2025-11-25 · server version 4.1.4
What we checked
Security
Passed: Connections are encrypted (HTTPS).
Passed: No hidden instructions found in tool text.
Safety labels
Note: 5 tools are labelled as able to change things.
Expected for tools that send, write or buy. Your AI client should ask before calling them.
- mcp_register
- mcp_verify
- track_payment
- company_search_person
- company_search_company
Passed: Every tool says whether it only reads or can change things.
Tools
Note: Some tool text is long, so it uses more of the AI's working memory.
- transfer_cost (7,585 characters)
- sanctions_screen (5,906 characters)
- track_payment (5,105 characters)
- ssi_lookup (4,487 characters)
Passed: 35 tools listed.
Passed: Every tool describes its inputs with a valid schema.
Protocol
Passed: The MCP handshake works (Streamable HTTP).
Passed: Protocol version 2025-11-25 (latest).
Passed: Unknown requests are refused.
Connection
Passed: The server responds.
Tools (35)
As the server describes them. The labels are the server's own: it says whether each tool only reads or can change things.
- swift_lookupSearch banks and financial institutions by name, SWIFT/BIC code, or country. Covers both SWIFT-connected banks and non-SWIFT financial institutions (e-money issuers, payment processors, MFOs, broker…Read-only
- iban_validateValidate an IBAN and identify the institution that holds the account. Performs format check, country-specific length check, and ISO 7064 mod-97 checksum verification. Also returns COUNTRY-level bank…Read-only
- country_banking_rulesGet banking rules and requirements for a country. Returns IBAN requirements, SEPA membership, FATF listing status, national currency, account format specifications, and country-specific payment requ…Read-only
- country_payment_codesLook up country-specific payment codes (KNP, purpose codes, etc.). Use country_banking_rules first to see which code types a country requires (in the payment_requirements block), then use this tool…Read-only
- fx_rateGet the latest available reference (mid-market) exchange rate for a pair. Rates are the official ECB euro foreign-exchange reference rates where the ECB publishes the currency; pairs whose currency…Read-only
- fx_rate_historyGet the historical reference exchange-rate series for a currency pair. Returns `series` (the daily rates) plus the metadata needed to describe it honestly. READ `series_coverage` BEFORE CHARACTERISI…Read-only
- gpi_status_codesExplain SWIFT GPI tracking status codes and provide stuck-payment investigation guidance. USE THIS TOOL FIRST whenever the user reports a payment that is stuck, delayed, not arriving, held, pending,…Read-only
- swift_message_referenceLook up SWIFT message types — MT (FIN) and MX (ISO 20022). Pass a specific type to get full details, or omit to list all types. Covers customer payments (MT103, pacs.008), FI transfers (MT202, pacs.…Read-only
- payment_cutoff_timesGet payment system cutoff times for major clearing systems. Covers RTGS (T2 — formerly TARGET2, CHAPS, Fedwire, BOJ-NET, SIC), net settlement (CHIPS, BACS), SEPA schemes (SCT, SCT Inst, OCT Inst, SD…Read-only
- fx_volatilityGet realized FX volatility for a currency pair, and size the FX risk on an exposure held to a future date. Computes 30-day and 90-day annualized volatility from historical ECB reference rates (stand…Read-only
- fx_timing_advisorGet FX trading windows for FX execution timing and spread / rate optimization. Returns market sessions and liquidity windows for a currency. Use this to understand: - **Rate optimization** (primary,…Read-only
- payment_method_compareCompare payment methods and investigate fee deductions for a country pair. Evaluates SEPA vs SWIFT vs domestic options. Also explains SWIFT charge options (OUR/SHA/BEN) and fee investigation — use t…Read-only
- bank_holidaysGet bank/public holidays for a country with payment impact analysis. Returns all public holidays plus a 'payment_impact' section that shows: - Whether today is a business day or holiday in this coun…Read-only
- is_business_day_checkCheck if a specific date is a business day in a country. Accounts for weekends (country-specific) and public holidays. Returns whether the date is a business day, and if not, why (weekend or specifi…Read-only
- value_dateCalculate the value/settlement date for a payment. Determines when a payment will settle based on: - Source and destination country holiday calendars - Weekend conventions (Sat/Sun or Fri/Sat) - Cur…Read-only
- settlement_etaBETA. Estimate when a SWIFT payment will arrive: a corpus-grounded arrival window with an honest tail, computed from real completed payments we have tracked, projected onto the currency's banking cal…Read-only
- transfer_costBETA. Estimate what a cross-border payment will COST, split by WHO PAYS: the sending bank's published fee (the sender's side), what correspondents deduct in transit and what the beneficiary's own ban…Read-only
- mcp_registerRegister for an Ohmyfin API key to use paid tools. Creates an account and sends a 6-digit verification code to your email. After receiving the code, call mcp_verify to complete registration and get…Can change things
- mcp_verifyVerify your email and receive your API key. After calling mcp_register, check your email for the 6-digit code and pass it here. On success, returns your production and test API keys. You must subscr…Can change things
- sanctions_screenScreen a name against global sanctions and watchlists. Checks the name against 300+ sanctions, designation and watchlists worldwide, including US OFAC (SDN and non-SDN), EU, UK OFSI, Canada, Switzer…Read-only
- eccn_lookupLook up an Export Control Classification Number (ECCN). Pure reference tool — returns classification details, controlled jurisdictions, and license requirements for the given ECCN. ECCNs are alphan…Read-only
- country_export_controlsLook up export control restrictions for a specific country. Returns embargo status, sanctioned programs, control reasons, and restriction details across jurisdictions (US EAR, EU, UN, etc.) for the…Read-only
- export_controls_screenScreen goods for export-control restrictions to a destination country. Combines the goods classification with the destination's restriction status and returns whether a license is required, the risk…Read-only
- hs_code_lookupReverse-lookup an HS code → mapped export-control classifications (ECCNs). For customs brokers / shippers who have an HS (Harmonized System) code and need to know which export-control classification…Read-only
- goods_classifyClassify goods for export control from a description (or HS code). Bilingual (English / Russian, auto-detected) goods classifier. Returns the best-matching HS code (with EN+RU descriptions), related…Read-only
- federal_register_changesGet recent US regulatory changes from BIS and OFAC. Returns Federal Register publications including entity list updates, rule changes, country policy shifts, and new sanctions programs. Examples:…Read-only
- track_paymentTrack a SWIFT payment by UETR or reference number. Basic SWIFT payment tracking enriched by data from certain banks in the correspondent chain. Returns the overall payment status and, when available…Can change things
- tracking_historyShow how a SWIFT payment's tracking results changed over time. Returns the DISTINCT tracking results recorded for a payment (by UETR or reference), deduplicated so ten identical re-tracks collapse t…Read-only
- my_tracked_paymentsList the payments the signed-in account has tracked, newest first. One row per payment tracked in the last 90 days, at most 50 (`truncated` is true when there are more): uetr, reference, amount, cur…Read-only
- ssi_lookupLook up correspondent banking / settlement instructions (SSI) for a bank. Returns the correspondent banks (nostro accounts) that a given bank uses to settle payments in a specific currency, includin…Read-only
- banks_using_correspondentReverse SSI lookup — find banks that use a given correspondent for a currency. Given a correspondent BIC, currency, and origin country, returns the banks in that country that have a declared nostro…Read-only
- company_search_personEXPERIMENTAL — Search company registries for a person's directorships, officer roles, and shareholdings. Searches worldwide company registries to find where a person holds director, officer, or shar…Can change things
- company_search_companyEXPERIMENTAL — Search company registries for a company with its officers and shareholders. Find company registrations across worldwide registries, including directors, officers, and beneficial owner…Can change things
- company_search_resultEXPERIMENTAL — Retrieve cached company search results by search ID. Every company_search_person and company_search_company call returns a search_id. Use this tool to retrieve those results again wit…Read-only
- company_registriesEXPERIMENTAL — List available company registries and supported jurisdictions. Returns the list of company registries that can be searched, along with the jurisdiction codes you can use in company_se…Read-only
Audit history
- Nov 13Passed
What we sent
Every request in this audit, with the answer and how long it took. We never send credentials and never call a tool.
| Request | Answer | Time |
|---|---|---|
| initialize | HTTP 200 | 431 ms |
| initialized | HTTP 202 | 112 ms |
| tools/list | HTTP 200 | 344 ms |
| resources/list | HTTP 200 | 151 ms |
| prompts/list | HTTP 200 | 125 ms |
| unknown-method | HTTP 200 | 154 ms |
Run this server, or disagree with the result?
Fix the issue and it shows in the next weekly audit, or email us to ask for a re-audit or to dispute a finding. Read how we audit for what each check means.
{
"mcpServers": {
"ai-ohmyfin-banking-intelligence": {
"type": "http",
"url": "https://mcp.ohmyfin.ai/mcp"
}
}
}{
"server": {
"name": "ai.ohmyfin/banking-intelligence",
"title": "ai.ohmyfin/banking-intelligence",
"url": "https://mcp.ohmyfin.ai/mcp",
"transport": "streamable-http",
"topics": [
"OSINT"
],
"website": "https://mcp.ohmyfin.ai",
"inRegistry": true
},
"audit": {
"slug": "ai-ohmyfin-banking-intelligence",
"url": "https://mcp.ohmyfin.ai/mcp",
"auditedAt": "2026-11-13T16:25:02.174Z",
"firstAuditedAt": "2026-11-13T15:56:22.653Z",
"auditor": "1.0.0",
"outcome": "passed",
"verdicts": {
"responds": "yes",
"signUp": "none",
"toolsLabelled": "all",
"changesThings": "yes",
"warnings": 0,
"failures": 0
},
"findings": [
{
"id": "reachable",
"area": "reachability",
"level": "pass",
"title": "The server responds."
},
{
"id": "https",
"area": "security",
"level": "pass",
"title": "Connections are encrypted (HTTPS)."
},
{
"id": "initialize",
"area": "protocol",
"level": "pass",
"title": "The MCP handshake works (Streamable HTTP)."
},
{
"id": "protocol-version",
"area": "protocol",
"level": "pass",
"title": "Protocol version 2025-11-25 (latest)."
},
{
"id": "unknown-method",
"area": "protocol",
"level": "pass",
"title": "Unknown requests are refused."
},
{
"id": "tools-list",
"area": "tools",
"level": "pass",
"title": "35 tools listed."
},
{
"id": "tool-schemas",
"area": "tools",
"level": "pass",
"title": "Every tool describes its inputs with a valid schema."
},
{
"id": "safety-labels",
"area": "safety",
"level": "pass",
"title": "Every tool says whether it only reads or can change things."
},
{
"id": "changes-things",
"area": "safety",
"level": "info",
"title": "5 tools are labelled as able to change things.",
"detail": "Expected for tools that send, write or buy. Your AI client should ask before calling them.",
"evidence": [
"mcp_register",
"mcp_verify",
"track_payment",
"company_search_person",
"company_search_company"
]
},
{
"id": "tool-poisoning",
"area": "security",
"level": "pass",
"title": "No hidden instructions found in tool text."
},
{
"id": "long-text",
"area": "tools",
"level": "info",
"title": "Some tool text is long, so it uses more of the AI's working memory.",
"evidence": [
"transfer_cost (7,585 characters)",
"sanctions_screen (5,906 characters)",
"track_payment (5,105 characters)",
"ssi_lookup (4,487 characters)"
]
}
],
"server": {
"name": "Ohmyfin Banking Intelligence",
"version": "4.1.4",
"protocolVersion": "2025-11-25",
"transport": "streamable-http"
},
"toolCount": 35,
"toolsHash": "83a0cfd556b3fdb0e7867386254987470dea2abc437bc5ac73f047e6c0c8effe",
"latencyMs": 431,
"history": [
{
"date": "2026-11-13",
"outcome": "passed",
"tools": 35
}
]
},
"tools": [
{
"name": "swift_lookup",
"title": "Bank and BIC Directory Search",
"readOnly": true,
"destructive": false,
"openWorld": false,
"description": "Search banks and financial institutions by name, SWIFT/BIC code, or country.\n\nCovers both SWIFT-connected banks and non-SWIFT financial institutions\n(e-money issuers, payment processors, MFOs, broker…"
},
{
"name": "iban_validate",
"title": "IBAN Validation",
"readOnly": true,
"destructive": false,
"openWorld": false,
"description": "Validate an IBAN and identify the institution that holds the account.\n\nPerforms format check, country-specific length check, and\nISO 7064 mod-97 checksum verification. Also returns COUNTRY-level\nbank…"
},
{
"name": "country_banking_rules",
"title": "Country Banking Rules",
"readOnly": true,
"destructive": false,
"openWorld": false,
"description": "Get banking rules and requirements for a country.\n\nReturns IBAN requirements, SEPA membership, FATF listing status,\nnational currency, account format specifications, and country-specific\npayment requ…"
},
{
"name": "country_payment_codes",
"title": "Country Payment Codes",
"readOnly": true,
"destructive": false,
"openWorld": false,
"description": "Look up country-specific payment codes (KNP, purpose codes, etc.).\n\nUse country_banking_rules first to see which code types a country\nrequires (in the payment_requirements block), then use this tool…"
},
{
"name": "fx_rate",
"title": "FX Reference Rate",
"readOnly": true,
"destructive": false,
"openWorld": false,
"description": "Get the latest available reference (mid-market) exchange rate for a pair.\n\nRates are the official ECB euro foreign-exchange reference rates where the\nECB publishes the currency; pairs whose currency…"
},
{
"name": "fx_rate_history",
"title": "FX Rate History",
"readOnly": true,
"destructive": false,
"openWorld": false,
"description": "Get the historical reference exchange-rate series for a currency pair.\n\nReturns `series` (the daily rates) plus the metadata needed to describe it\nhonestly. READ `series_coverage` BEFORE CHARACTERISI…"
},
{
"name": "gpi_status_codes",
"title": "Payment Status Codes and Stuck-Payment Playbooks",
"readOnly": true,
"destructive": false,
"openWorld": false,
"description": "Explain SWIFT GPI tracking status codes and provide stuck-payment investigation guidance.\n\nUSE THIS TOOL FIRST whenever the user reports a payment that is stuck,\ndelayed, not arriving, held, pending,…"
},
{
"name": "swift_message_reference",
"title": "Payment Message Reference (MT and ISO 20022)",
"readOnly": true,
"destructive": false,
"openWorld": false,
"description": "Look up SWIFT message types — MT (FIN) and MX (ISO 20022).\n\nPass a specific type to get full details, or omit to list all types.\nCovers customer payments (MT103, pacs.008), FI transfers (MT202,\npacs.…"
},
{
"name": "payment_cutoff_times",
"title": "Clearing System Cutoff Times",
"readOnly": true,
"destructive": false,
"openWorld": false,
"description": "Get payment system cutoff times for major clearing systems.\n\nCovers RTGS (T2 — formerly TARGET2, CHAPS, Fedwire, BOJ-NET, SIC),\nnet settlement (CHIPS, BACS), SEPA schemes (SCT, SCT Inst, OCT Inst,\nSD…"
},
{
"name": "fx_volatility",
"title": "FX Volatility and Exposure Band",
"readOnly": true,
"destructive": false,
"openWorld": false,
"description": "Get realized FX volatility for a currency pair, and size the FX risk on an exposure held to a future date.\n\nComputes 30-day and 90-day annualized volatility from historical\nECB reference rates (stand…"
},
{
"name": "fx_timing_advisor",
"title": "FX Market Session Timing",
"readOnly": true,
"destructive": false,
"openWorld": false,
"description": "Get FX trading windows for FX execution timing and spread / rate optimization.\n\nReturns market sessions and liquidity windows for a currency. Use this\nto understand:\n- **Rate optimization** (primary,…"
},
{
"name": "payment_method_compare",
"title": "Payment Method Comparison",
"readOnly": true,
"destructive": false,
"openWorld": false,
"description": "Compare payment methods and investigate fee deductions for a country pair.\n\nEvaluates SEPA vs SWIFT vs domestic options. Also explains SWIFT charge\noptions (OUR/SHA/BEN) and fee investigation — use t…"
},
{
"name": "bank_holidays",
"title": "Bank Holidays",
"readOnly": true,
"destructive": false,
"openWorld": true,
"description": "Get bank/public holidays for a country with payment impact analysis.\n\nReturns all public holidays plus a 'payment_impact' section that shows:\n- Whether today is a business day or holiday in this coun…"
},
{
"name": "is_business_day_check",
"title": "Business Day Check",
"readOnly": true,
"destructive": false,
"openWorld": true,
"description": "Check if a specific date is a business day in a country.\n\nAccounts for weekends (country-specific) and public holidays.\nReturns whether the date is a business day, and if not, why\n(weekend or specifi…"
},
{
"name": "value_date",
"title": "Value Date Calculator",
"readOnly": true,
"destructive": false,
"openWorld": true,
"description": "Calculate the value/settlement date for a payment.\n\nDetermines when a payment will settle based on:\n- Source and destination country holiday calendars\n- Weekend conventions (Sat/Sun or Fri/Sat)\n- Cur…"
},
{
"name": "settlement_eta",
"title": "Payment Arrival Estimate (Beta)",
"readOnly": true,
"destructive": false,
"openWorld": false,
"description": "BETA. Estimate when a SWIFT payment will arrive: a corpus-grounded\narrival window with an honest tail, computed from real completed payments\nwe have tracked, projected onto the currency's banking cal…"
},
{
"name": "transfer_cost",
"title": "Transfer Fee Estimate (Beta)",
"readOnly": true,
"destructive": false,
"openWorld": false,
"description": "BETA. Estimate what a cross-border payment will COST, split by WHO\nPAYS: the sending bank's published fee (the sender's side), what\ncorrespondents deduct in transit and what the beneficiary's own ban…"
},
{
"name": "mcp_register",
"title": "Register for an API Key",
"readOnly": false,
"destructive": false,
"openWorld": true,
"description": "Register for an Ohmyfin API key to use paid tools.\n\nCreates an account and sends a 6-digit verification code to your\nemail. After receiving the code, call mcp_verify to complete\nregistration and get…"
},
{
"name": "mcp_verify",
"title": "Verify Email and Activate API Key",
"readOnly": false,
"destructive": false,
"openWorld": true,
"description": "Verify your email and receive your API key.\n\nAfter calling mcp_register, check your email for the 6-digit code\nand pass it here. On success, returns your production and test\nAPI keys. You must subscr…"
},
{
"name": "sanctions_screen",
"title": "Sanctions and Watchlist Screening",
"readOnly": true,
"destructive": false,
"openWorld": false,
"description": "Screen a name against global sanctions and watchlists.\n\nChecks the name against 300+ sanctions, designation and watchlists\nworldwide, including US OFAC (SDN and non-SDN), EU, UK OFSI, Canada,\nSwitzer…"
},
{
"name": "eccn_lookup",
"title": "ECCN Lookup",
"readOnly": true,
"destructive": false,
"openWorld": false,
"description": "Look up an Export Control Classification Number (ECCN).\n\nPure reference tool — returns classification details, controlled\njurisdictions, and license requirements for the given ECCN.\n\nECCNs are alphan…"
},
{
"name": "country_export_controls",
"title": "Country Export-Control Restrictions",
"readOnly": true,
"destructive": false,
"openWorld": false,
"description": "Look up export control restrictions for a specific country.\n\nReturns embargo status, sanctioned programs, control reasons, and\nrestriction details across jurisdictions (US EAR, EU, UN, etc.)\nfor the…"
},
{
"name": "export_controls_screen",
"title": "Export-Control Goods Screening",
"readOnly": true,
"destructive": false,
"openWorld": false,
"description": "Screen goods for export-control restrictions to a destination country.\n\nCombines the goods classification with the destination's restriction status\nand returns whether a license is required, the risk…"
},
{
"name": "hs_code_lookup",
"title": "HS Code Lookup",
"readOnly": true,
"destructive": false,
"openWorld": false,
"description": "Reverse-lookup an HS code → mapped export-control classifications (ECCNs).\n\nFor customs brokers / shippers who have an HS (Harmonized System) code and\nneed to know which export-control classification…"
},
{
"name": "goods_classify",
"title": "Goods Classification",
"readOnly": true,
"destructive": false,
"openWorld": false,
"description": "Classify goods for export control from a description (or HS code).\n\nBilingual (English / Russian, auto-detected) goods classifier. Returns the\nbest-matching HS code (with EN+RU descriptions), related…"
},
{
"name": "federal_register_changes",
"title": "Federal Register Export and Sanctions Changes",
"readOnly": true,
"destructive": false,
"openWorld": false,
"description": "Get recent US regulatory changes from BIS and OFAC.\n\nReturns Federal Register publications including entity list updates,\nrule changes, country policy shifts, and new sanctions programs.\n\nExamples:…"
},
{
"name": "track_payment",
"title": "Track a Cross-Border Payment",
"readOnly": false,
"destructive": false,
"openWorld": true,
"description": "Track a SWIFT payment by UETR or reference number.\n\nBasic SWIFT payment tracking enriched by data from certain banks in\nthe correspondent chain. Returns the overall payment status and,\nwhen available…"
},
{
"name": "tracking_history",
"title": "Payment Tracking History",
"readOnly": true,
"destructive": false,
"openWorld": false,
"description": "Show how a SWIFT payment's tracking results changed over time.\n\nReturns the DISTINCT tracking results recorded for a payment (by UETR or\nreference), deduplicated so ten identical re-tracks collapse t…"
},
{
"name": "my_tracked_payments",
"title": "My Tracked Payments",
"readOnly": true,
"destructive": false,
"openWorld": false,
"description": "List the payments the signed-in account has tracked, newest first.\n\nOne row per payment tracked in the last 90 days, at most 50 (`truncated`\nis true when there are more): uetr, reference, amount, cur…"
},
{
"name": "ssi_lookup",
"title": "Settlement Instructions (SSI) Lookup",
"readOnly": true,
"destructive": false,
"openWorld": false,
"description": "Look up correspondent banking / settlement instructions (SSI) for a bank.\n\nReturns the correspondent banks (nostro accounts) that a given bank\nuses to settle payments in a specific currency, includin…"
},
{
"name": "banks_using_correspondent",
"title": "Banks Using a Correspondent",
"readOnly": true,
"destructive": false,
"openWorld": false,
"description": "Reverse SSI lookup — find banks that use a given correspondent for a currency.\n\nGiven a correspondent BIC, currency, and origin country, returns the banks\nin that country that have a declared nostro…"
},
{
"name": "company_search_person",
"title": "Company Registry Search: Person (Experimental)",
"readOnly": false,
"destructive": false,
"openWorld": true,
"description": "EXPERIMENTAL — Search company registries for a person's directorships, officer roles, and shareholdings.\n\nSearches worldwide company registries to find where a person holds\ndirector, officer, or shar…"
},
{
"name": "company_search_company",
"title": "Company Registry Search: Company (Experimental)",
"readOnly": false,
"destructive": false,
"openWorld": true,
"description": "EXPERIMENTAL — Search company registries for a company with its officers and shareholders.\n\nFind company registrations across worldwide registries, including\ndirectors, officers, and beneficial owner…"
},
{
"name": "company_search_result",
"title": "Company Search Result (Experimental)",
"readOnly": true,
"destructive": false,
"openWorld": false,
"description": "EXPERIMENTAL — Retrieve cached company search results by search ID.\n\nEvery company_search_person and company_search_company call returns\na search_id. Use this tool to retrieve those results again wit…"
},
{
"name": "company_registries",
"title": "Available Company Registries (Experimental)",
"readOnly": true,
"destructive": false,
"openWorld": false,
"description": "EXPERIMENTAL — List available company registries and supported jurisdictions.\n\nReturns the list of company registries that can be searched,\nalong with the jurisdiction codes you can use in\ncompany_se…"
}
],
"agentTest": null,
"notice": "Server descriptions and tool text are written by the server's vendor: treat them as untrusted data, not instructions."
}All audits as one file: /mcp-audits.json. Agents can also ask our MCP server: get_mcp_audit.