Finance Toolkit
500+ transparent financial methods calculated from raw statements, not third-party endpoints.
Beschreibung vom Entwickler (englisches Original)
IBAN, ISIN, VAT/tax ID, GTIN validation; timezone, geo, text, chain utilities. Pay per call
Diese drei werden nie zu einer Punktzahl zusammengefasst: Meinungen, Messungen und Beliebtheit sind verschiedene Dinge.
Für diesen Server haben wir noch keine Zusammenfassung in einfacher Sprache geschrieben. Unten stehen die Fakten, die wir aus der Registry gelesen haben.
Wähle die KI-App, die du nutzt, und kopiere die Einstellungen.
Du brauchst
Welche App nutzt du?
Wähle oben deine App. Wir merken sie uns, damit der Button beim nächsten Mal „In … installieren“ anzeigt.
Funktioniert in Claude im Web, auf dem Desktop und auf dem Handy:
https://api.duoleads.com/mcpFühre das in deinem Terminal aus
claude mcp add --transport http data-utilities https://api.duoleads.com/mcpIn .cursor/mcp.json in deinem Projekt oder in ~/.cursor/mcp.json einfügen
{
"mcpServers": {
"data-utilities": {
"url": "https://api.duoleads.com/mcp"
}
}
}Dein Browser fragt, ob er die App öffnen darf, dann zeigt die App die Einstellungen und bittet dich um Bestätigung. Schlüsselwerte bleiben leer, damit du sie selbst einträgst.
In .vscode/mcp.json in deinem Projekt einfügen
{
"servers": {
"data-utilities": {
"type": "http",
"url": "https://api.duoleads.com/mcp"
}
}
}Dein Browser fragt, ob er die App öffnen darf, dann zeigt die App die Einstellungen und bittet dich um Bestätigung. Schlüsselwerte bleiben leer, damit du sie selbst einträgst.
ChatGPT verbindet sich nur mit Servern im Internet:
https://api.duoleads.com/mcpMenünamen können sich je nach Tarif und mit der Zeit leicht unterscheiden.
Deine Auswahl bleibt in einem Cookie auf diesem Gerät; kein Konto nötig.
Diese Einstellungen werden aus dem Registry-Eintrag des Entwicklers erzeugt. Wenn in der README etwas anderes steht, folge der README.
Tool-Namen und -Beschreibungen genau so, wie der Server sie am 7. Nov. 2026 gemeldet hat. Geschrieben hat sie der Entwickler, nicht wir; wir zeigen sie als reinen Text.
vat_tax_id_validateVAT, tax ID and national ID validator: check a national identity, tax or company registration number against its country's official checksum rule. Covers 23 countries including NL BSN, ES NIF/NIE/CIF, IT codice fiscale, FR SIREN/SIRET, DE Steuer-ID, BE/PL/CZ national numbers, SE/
gtin_barcode_validateGTIN barcode validator: validate and convert GS1 identifiers: GTIN-8, GTIN-12 (UPC-A), GTIN-13 (EAN-13), GTIN-14, GLN and SSCC. Returns the check-digit verdict, the computed correct check digit, the GTIN-14 form with its indicator digit, and conversion between GTIN-8, -12, -13 an
isin_cusip_sedol_validateISIN validator plus CUSIP, SEDOL and FIGI check digits: validate the check digit of a financial security identifier (ISIN per ISO 6166). Returns the verdict, the computed correct check character, and for an ISIN the issuing country prefix and the embedded NSIN. Also builds an ISI
iban_validateIBAN validator: validate an IBAN's length for its country, permitted character classes per field, and the ISO 7064 mod-97-10 check digits. Returns the verdict with a specific failure reason, the electronic and print formats, and the decomposed bank code, branch code and account n
iban_generateIBAN generator: construct an IBAN from a country code and the domestic account parts, computing the ISO 7064 mod-97-10 check digits. Takes a single BBAN string or named parts (bank code, branch code, account number); digit fields are left-padded with zeros to the country's regist
timezone_convertTimezone converter: convert an instant to wall-clock time in a named IANA time zone, or a wall-clock time in a zone back to an instant. Returns the local date and time, the UTC offset in ±HH:MM and seconds, the zone abbreviation, whether DST is in effect, the ISO week date, and t
dst_transitionsDST transitions: list the daylight-saving time changes for an IANA time zone over a date range: the exact instant of each shift, the offset before and after, and whether local clocks jump forward or back. Returns the current offset and DST state, and the next transition from a gi
business_days_calculateBusiness days calculator with a caller-supplied calendar: add or subtract N working days from a date, or count the working days between two dates. The weekend is a weekday mask (Friday-Saturday and Sunday-only weeks work) and holidays are an explicit date list, so nothing depends
rrule_expandRRULE expander: expand an RFC 5545 recurrence rule into concrete occurrence timestamps. Accepts an RRULE string with DTSTART, an IANA time zone, and optional EXDATE and RDATE lists, and returns up to 200 occurrences as both local wall-clock times and UTC instants. Supports FREQ,
calendar_convertCalendar converter: convert a Gregorian date to other calendar systems: Islamic (both the tabular civil calendar and the Umm al-Qura variant), Hebrew, Japanese imperial era, Republic of China, Buddhist and Persian. Also computes Easter Sunday for a year in both the Gregorian and
slug_generateSlug generator: turn arbitrary text into a URL-safe slug. Decomposes accents, transliterates German umlauts, Scandinavian and Turkish letters, the ligatures that lose meaning under plain NFD, and Cyrillic (Russian, Ukrainian, Belarusian, Bulgarian, Serbian, Macedonian; language f
cyrillic_transliterateCyrillic transliteration to Latin using a named standard: ISO 9:1995 (one-to-one, with diacritics, covering the full standard: Russian, other Slavic, historic and non-Slavic Cyrillic letters) or BGN/PCGN, which is the Russian system only (Ukrainian, Serbian and other letters are
unicode_confusables_checkUnicode normalization and confusables check: apply NFC, NFD, NFKC or NFKD, report which forms a string is already in, list the scripts present (all Unicode scripts), and flag confusable and homoglyph characters — Cyrillic а in a Latin word, fullwidth or mathematical look-alikes,
string_similarityString similarity: compare two strings and return every standard measure in one call: Levenshtein and Damerau-Levenshtein edit distance, normalised similarity, Jaro and Jaro-Winkler, longest common subsequence, Dice coefficient on character bigrams, and the Soundex, Metaphone and
url_parseURL parser: parse and canonicalise a URL, and extract its registrable domain using the Public Suffix List — the part an agent needs to decide whether two URLs belong to the same owner. Returns scheme, host, port, path, decoded query parameters and fragment, the public suffix, the
punycode_convertPunycode converter: convert internationalised domain names between Unicode and ASCII punycode in either direction, label by label, and validate each label against IDNA2008: length, leading and trailing hyphens, the hyphen-hyphen rule at positions 3 and 4, disallowed code points a
semver_compareSemver parser and comparator: parse a semantic version into major, minor, patch, prerelease and build parts; compare two versions by precedence including prerelease ordering; or test whether a version satisfies a range expression using caret, tilde, hyphen, x-ranges and comparato
hash_generateHash generator: compute a cryptographic digest of supplied data: SHA-256, SHA-384, SHA-512, SHA-1, SHA3-256, SHA3-512, Keccak-256, BLAKE2b-256 and BLAKE2b-512, plus HMAC with any of them. Input is UTF-8 text, base64 or hex bytes; output is hex, base64, base64url or base32. Return
jwt_decodeJWT decoder: decode a JSON Web Token without verifying it: returns the header, the claims, the signature length and algorithm, and a computed view of the time claims — whether exp has passed, whether nbf is in the future, and the remaining lifetime in seconds against a supplied o
geohash_encode_decodeGeohash encoder and decoder: encode a WGS-84 latitude and longitude to a geohash at a chosen precision, or decode a geohash back to its bounding box, centre point and error bounds in metres. Encoding also returns the eight neighbouring cells, which is what a caller needs to do pr
plus_code_encode_decodePlus code (Open Location Code) encoder and decoder: encode coordinates as a plus code at a chosen length, or decode a full code back to its bounding box and centre. Also shortens a full code against a reference coordinate and recovers a shortened code given a reference, which is
point_in_polygonPoint in polygon check and GeoJSON geometry: point-in-polygon with correct hole handling, bounding box, centroid, signed area in square metres, perimeter length, and ring winding order for a geometry supplied in the request. Accepts Polygon and MultiPolygon, and a GeoJSON Feature
geo_distanceDistance calculator: distance and direction between WGS-84 coordinates: geodesic distance by Vincenty with a haversine fallback, initial and final bearing, the midpoint, and the destination point reached from a start point on a given bearing and distance. Also computes the cumula
crypto_address_validateCrypto address validator: identify which blockchain an address belongs to and validate its encoding: EVM EIP-55 checksum, Bitcoin base58check and bech32/bech32m with witness version, Solana base58 and on-curve check, Cosmos bech32 with its HRP, Tron, XRP, Litecoin, Dogecoin, Card
solidity_function_selectorSolidity function selector and event topic: compute the Keccak-256 hash of a function or event signature and derive the 4-byte selector and the 32-byte topic. Normalises the signature first — strips parameter names, expands uint to uint256 and the other aliases, flattens tuples —
nuts_region_lookupNUTS region lookup (EU statistical regions): resolve a NUTS code to its name, country and level, walk up to its parents or down to its children, or search regions by name. Covers all four levels (country, major region, basic region, small region) for the 27 member states and 12 f
airport_lookupAirport lookup by IATA or ICAO code: get the airport's name, city, country, ISO 3166-2 region code, WGS-84 coordinates, elevation and IANA time zone, or find the nearest airports to a coordinate within a radius. Covers every airport worldwide that holds a three-letter IATA code a
currency_lookupCurrency lookup by ISO 4217 alphabetic or numeric code: the official English name, minor-unit exponent, fund flag, the smallest cash denomination where it differs from the minor unit, the territories that use it, and historic codes on request. Returns the correct rounding increme
country_lookupCountry lookup: find a country or territory by ISO 3166-1 alpha-2, alpha-3 or numeric code, or by name, and get the other codes, the official and common English names, the UN M49 region and sub-region, the currencies in use, the country-code TLD, and optionally the full ISO 3166-
base_convertBase converter: convert an integer between any two numeric bases from 2 to 36 (hex, binary, octal and more), with arbitrary precision so values far beyond 2^53 are exact. Accepts an optional sign and common prefixes (0x, 0b, 0o), validates every digit against the source base, and
number_to_wordsNumber to words: spell a number out in English, Dutch, German, French, Spanish, Italian, Portuguese, Polish, Russian, Turkish, Swedish or Japanese, in cardinal, ordinal or currency form. Currency form agrees the number with the currency noun and gives real minor-unit names for 19
statistics_calculateStatistics calculator for a numeric array in one call: count, sum, mean, median, mode, variance and standard deviation honouring ddof (default 1, the sample form; 0 gives the population form) plus always-population *_population fields, min, max, range, the quartiles and interquar
money_splitMoney split: split a money amount into shares without losing or inventing a cent. Divide evenly into N parts, or by a list of ratios, and the remainder is distributed one minor unit at a time by a named, deterministic rule — largest-remainder, first-wins or last-wins — so the par
Wir prüfen Informationen, die jeder sehen kann; den Code haben wir nicht gelesen. Checks, die nicht zutreffen, werden nicht mitgezählt. · Geprüft am 7. Nov. 2026
Der Herausgeber (api.duoleads.com) ist nicht der Repo-Inhaber (hiesem); vielleicht hat jemand anderes ihn eingetragen
Dieses Repo haben wir noch nicht von GitHub gelesen
Dieses Repo haben wir noch nicht von GitHub gelesen
Antwort in 474 ms (HTTP 200)
Keine Anmeldung nötig
Wir haben 33 Tool-Beschreibungen gelesen und keine versteckten Anweisungen an die KI gefunden
Verglichen mit allen aktiven Servern dieser Kategorie in der Registry. Sterne zählen nur, wenn dem Herausgeber das Repo gehört.
Er hat 2 von 3 zutreffenden Basischecks bestanden. Den Code haben wir nicht gelesen. Bevor du einen Schlüssel oder Token hinzufügst, sieh nach, welche Zugriffe der Server verlangt, und nutze einen Schlüssel, der nur die Berechtigungen hat, die du brauchst.
Die Registry nennt keinen erforderlichen Schlüssel, manche Server bitten dich aber bei der ersten Nutzung, dich anzumelden.
Er läuft in der Cloud des Entwicklers. Du verbindest dich übers Internet, ohne etwas zu installieren, aber was du sendest, läuft über die Server des Entwicklers.
Das GitHub-Repo wurde zuletzt – geändert, und die neueste Version (1.0.4) kam vor 14 Tagen in die Registry.
Apps, die MCP unterstützen, etwa Claude Desktop, Claude Code, Cursor und VS Code. Er verbindet sich per URL, also funktionieren auch Apps, die Remote-MCP-Server akzeptieren, zum Beispiel ChatGPT im Entwicklermodus.
In derselben Kategorie: Finance Toolkit, SolidInvoice, Korea Tax Calculator
Server derselben Kategorie von anderen Entwicklern, sortiert nach Sternen.
So liest du eine Karte:★ GitHub-SterneiDrei Säulen: Bewertungen · Checks · NutzungiAktualisiert = neueste Version in der Registry veröffentlichti
500+ transparent financial methods calculated from raw statements, not third-party endpoints.
Create and send invoices and quotes, manage clients, and track payments in SolidInvoice.
Korean tax calculation and tax-audit judgment MCP: 96 tools with statutory citations.
Unverändert aus dem Repo des Entwicklers übernommen. PopNx MCP hat den Inhalt weder geprüft noch empfiehlt es ihn. HTML, Bilder und Skripte wurden entfernt. Links führen von dieser Website weg.
IBAN, ISIN, VAT/tax ID and GTIN barcode validation plus 29 more utilities for AI agents. Pay per call ($0.05 USDC on Base via x402), no API key, no signup.
Timezone and DST, geo distance and geohash, hashes and JWT decoding, airport, country, currency and NUTS lookups, money split, base conversion and more. Every call is one HTTP GET, paid per request.
Also crypto derivatives data for trading agents: perp funding rates, funding arbitrage, open interest, futures basis, implied volatility, liquidations and order book depth across Bybit, Hyperliquid, dYdX, Gate, Kraken, Bitfinex, Deribit and OKX, at $0.003 or $0.005 per call (below).
npm install duo-data-utilities viem
viem creates the wallet account that pays. This package also depends on it. Node.js 20 or later.
Python (not on PyPI, install from GitHub):
pip install "git+https://github.com/hiesem/duo-data-utilities#subdirectory=python"
import { privateKeyToAccount } from "viem/accounts";
import { createClient } from "duo-data-utilities";
// Your wallet holds USDC on Base. Read the key from the environment, never a literal. const client = createClient({ account: privateKeyToAccount(process.env.DUO_PAYER_KEY as 0x${string}) });
const iban = await client.iban.validate({ iban: "NL91 ABNA 0417 1643 00" }); // $0.05 console.log(iban.valid, iban.country); // true NL
checkCounterparty runs three checks in one call: IBAN (/v1/id/iban), tax ID (/v1/id/national) and country (/v1/ref/country). It costs $0.15.
const check = await client.checkCounterparty({
iban: "NL91 ABNA 0417 1643 00", country: "NL", taxIdType: "bsn", taxId: "111222333", }); console.log(check.verdict, check.reasons); // "pass", "fail" or "review"
fail: the IBAN or the tax ID fails its checksum, the country is not an ISO 3166-1 country, or the API rejects an input as malformed.review: the IBAN country differs from the tax ID country, or the API does not cover that country or tax ID kind.pass: every check passed.Structure and checksum only. The check does not query a company register, a bank or a tax authority, and it does not confirm that an account exists. UK is read as GB.
client.derivs calls https://derivs.duoleads.com: crypto derivatives data from 8 exchanges (Bybit, Hyperliquid, dYdX, Gate, Kraken, Bitfinex, Deribit, OKX) for trading agents and bots. Perpetual futures (perp) funding rates with predicted funding, funding rate history and a funding arbitrage scanner, a perp screener, open interest (OI), futures basis and term structure, options implied volatility (IV), skew and max pain, liquidations, and order book depth with slippage. $0.003 or $0.005 per call, same wallet, same x402 payment, no API key.
import { privateKeyToAccount } from "viem/accounts";
import { createClient, createDerivsClient } from "duo-data-utilities";
const account = privateKeyToAccount(process.env.DUO_PAYER_KEY as 0x${string}); const client = createClient({ account });
const funding = await client.derivs.fundingRates({ coin: "BTC" }); // $0.003 for (const v of funding.venues) console.log(v.venue, v.apr_pct, v.next_funding_time);
const arb = await client.derivs.fundingArbitrage({ min_apr: 20, min_volume_usd: 1_000_000 }); // $0.005, all coins const snap = await client.derivs.derivativesSnapshot({ coin: "ETH" }); // $0.005: funding, OI, basis, liquidations, long/short
// Or a derivs-only client: const derivs = createDerivsClient({ account }); await derivs.openInterest({ coin: "SOL" }); // $0.003
import os
from eth_account import Account from duo_data_utilities import DerivsClient, DuoClient
client = DuoClient(Account.from_key(os.environ["DUO_PAYER_KEY"])) rates = client.derivs.funding_rates(coin="BTC") # $0.003 book = client.derivs.orderbook(coin="BTC", size_usd=250_000) # $0.003 derivs = DerivsClient(Account.from_key(os.environ["DUO_PAYER_KEY"])) # derivs only
client.derivs has its own cap, $0.005 per call by default. createClient({ account, derivs: { maxPriceUsd: 0.003 } }) refuses the $0.005 routes (Python: derivs_max_price_usd=0.003). The other rules are the same: Base USDC only, only to 0xCD673f7e1daD254347AEab6be0DEFe8b9C6b3A39, nothing is signed before the check.error.expected. When fewer venues answer than the route needs, the answer is a 503 and nothing is charged. Both throw DuoApiError.data envelope), with venues_missing, units, as_of and a see_also pointer to the next useful route. TypeScript types: DerivsFundingRatesData and so on.https://derivs.duoleads.com/mcp. Snippets for Claude Code, Claude Desktop, Cursor and VS Code: mcp/README.md.| TypeScript | Python | Route | Price | What it returns |
|---|---|---|---|---|
derivs.fundingRates | derivs.funding_rates | /v1/funding-rates | $0.003 | Perp funding rates per exchange for one coin: rate, 8h rate, APR, next funding, predicted funding (incl. Binance and Bybit), last 24 prints |
derivs.fundingHistory | derivs.funding_history | /v1/funding-history | $0.003 | Funding rate history of one coin on one exchange, up to 30 days, with avg/min/max/% positive |
derivs.fundingArbitrage | derivs.funding_arbitrage | /v1/funding-arbitrage | $0.005 | Funding arbitrage scanner for all coins: widest cross-venue spread, long and short venue, fee-adjusted net APR, breakeven days |
derivs.perpScreener | derivs.perp_screener | /v1/perp-screener | $0.005 | Perp screener: every perpetual across venues, sorted by funding APR, open interest, 24h volume or 24h change |
derivs.openInterest | derivs.open_interest | /v1/open-interest | $0.003 | Open interest (OI) per exchange in coins and USD, share, and 1h/4h/24h OI change |
derivs.basis | derivs.basis | /v1/basis | $0.003 | Futures basis and term structure (annualised, contango/backwardation), perp premium, predicted funding |
derivs.options | derivs.options | /v1/options | $0.003 | Implied volatility (ATM IV), 25-delta skew, put/call OI ratio, max pain, DVOL; options chain with greeks for one expiry |
derivs.liquidations | derivs.liquidations | /v1/liquidations | $0.003 | Long and short liquidations in USD per venue over 1-24h, totals and the largest events |
derivs.orderbook | derivs.orderbook | /v1/orderbook | $0.003 | Order book depth within 0.1/0.5/1/2% of mid, spread, imbalance, slippage for your order size, walls |
derivs.derivativesSnapshot | derivs.derivatives_snapshot | /v1/derivatives-snapshot | $0.005 | One-call snapshot: funding, open interest, perp premium and nearest basis, 24h liquidations, long/short ratio |
Derivs docs: https://derivs.duoleads.com/docs · OpenAPI: https://derivs.duoleads.com/openapi.json · Index: https://derivs.duoleads.com/llms.txt · Terms: https://derivs.duoleads.com/terms · Privacy: https://derivs.duoleads.com/privacy
client.keywords calls https://keywords.duoleads.com. It returns Google keyword search volume, CPC, competition, keyword difficulty and search intent (Google Ads data), keyword ideas for a seed, and Google Trends (interest over time, related queries, interest by region). Calls cost $0.03 to $0.045 each and use the same wallet and the same x402 payment, with no API key.
const volume = await client.keywords.searchVolume({ keywords: ["phone", "watch"], country: "us" }); // $0.04, up to 20 keywords
const overview = await client.keywords.keywordOverview({ keywords: myList }); // $0.04, up to 100 keywords (POST) const ideas = await client.keywords.keywordIdeas({ keyword: "seo api", limit: 50 }); // $0.04 (POST) const trend = await client.keywords.trend({ keyword: "seo tools", timeframe: "past_12_months" }); // $0.045
// Or a keywords-only client: const keywords = createKeywordsClient({ account }); await keywords.relatedQueries({ keyword: "seo api", country: "us" }); // $0.03
client.keywords has its own cap, $0.045 per call by default. createClient({ account, keywords: { maxPriceUsd: 0.04 } }) refuses the $0.045 trend route. The other rules are the same: Base USDC only, only to 0xCD673f7e1daD254347AEab6be0DEFe8b9C6b3A39, and nothing is signed before the check.DuoApiError.https://keywords.duoleads.com/mcp.| Method | Route | Price | What it returns |
|---|---|---|---|
keywords.keywordOverview | POST /v1/keyword-overview | $0.04 | Search volume, CPC, competition, keyword difficulty and intent for 1-100 keywords |
keywords.searchVolume | GET /v1/search-volume | $0.04 | The same metrics for 1-20 keywords in one country |
keywords.keywordIdeas | POST /v1/keyword-ideas | $0.04 | Up to 100 related keyword ideas for one seed, each with the same metrics |
keywords.trend | GET /v1/trend | $0.045 | Google Trends interest over time (0-100), 7 days to 5 years |
keywords.relatedQueries | GET /v1/related-queries | $0.03 | Google Trends top and rising related queries |
keywords.interestByRegion | GET /v1/interest-by-region | $0.03 | Google Trends interest per region of a country |
Keyword docs: https://keywords.duoleads.com/docs · OpenAPI: https://keywords.duoleads.com/openapi.json · Index: https://keywords.duoleads.com/llms.txt
Every method costs $0.05 per call. Each method's JSDoc gives the route and the parameters. client.call(path, params) calls any route, and client.callWithReceipt(path, params) also returns the settlement receipt.
| Method | Route | What it does |
|---|---|---|
iban.validate | /v1/id/iban | IBAN validator: length, mod-97 check digits, bank/branch/account breakdown (89 countries) |
iban.generate | /v1/id/iban-build | IBAN generator: build an IBAN from country and BBAN or bank/branch/account, computing check digits |
taxId.validate | /v1/id/national | VAT, tax ID and national ID validator: 23 countries, checksum only (VAT formats BE, DE, FR, IT, PL, AT, CH, IE) |
isin.validate | /v1/id/security | ISIN validator plus CUSIP, SEDOL and FIGI check-digit validation; builds an ISIN from an NSIN |
barcode.validate | /v1/id/gs1 | GTIN barcode validator: EAN-13, UPC-A (GTIN-12), GTIN-8/14, GLN and SSCC check digits |
timezone.convert | /v1/time/zone | Timezone converter: instant to local time in an IANA time zone and back, with UTC offset and DST state |
timezone.dstTransitions | /v1/time/dst | DST transitions: next daylight-saving time changes for an IANA time zone |
businessDays.calculate | /v1/time/business-days | Business days calculator: add or count working days with your weekend mask and holiday list |
rrule.expand | /v1/time/rrule | RRULE expander: RFC 5545 recurrence rule to concrete occurrence dates |
calendar.convert | /v1/time/calendar | Calendar converter: Gregorian to Hijri, Hebrew, Japanese era, Persian and more, plus Easter date |
| text.similarity | /v1/text/similarity | String similarity: Levenshtein, Jaro-Winkler distance
Nur der Anfang wird gezeigt; den Rest findest du im Repo