{"server":{"name":"io.github.snefhew/factline-kyc","title":"Factline KYC, KYB and agent payments","$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","remotes":[{"url":"https://factline.dev/mcp/kyc","type":"streamable-http"}],"version":"0.9.0","websiteUrl":"https://factline.dev","description":"EU company dossiers and health, sanctions, PEP, invoice checks, watches, x402 pay guard."},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","isLatest":true,"updatedAt":"2026-10-14T17:54:37.717704Z","publishedAt":"2026-10-14T17:54:37.717704Z","statusChangedAt":"2026-10-14T17:54:37.717704Z"},"dev.protogrid/connectability":{"class":"R0","autonomous":true,"human_steps":[],"preferred":{"kind":"remote","idx":0},"remotes":[{"idx":0,"url":"https://factline.dev/mcp/kyc","transport":"streamable-http","templated":false,"headers":[],"auth":{"type":"none","location":null,"secret_name":null,"oauth":null},"protocol":{"supported_versions":["2025-11-25"],"stateless":true},"health":{"reachable":true,"uptime_30d":1,"latency_ms_p50":419,"consecutive_failures":0,"last_probe_at":"2026-10-19T10:13:14.542Z","last_ok_at":"2026-10-19T10:13:14.542Z"}}],"packages":[]},"dev.protogrid/tools":[{"name":"company_dossier","title":"Company dossier: due diligence on a European company (paid)","description":"Use for due diligence before a deal, contract or large payment: the full European company check (registers in 10+ countries, directors, owners and parents screened for sanctions and PEP, VAT, Peppol, website) plus financial health (accounts on time, size, turnover and result where published, insolvency in GB, FR, NO, FI, NL). One verdict and a cite_as line. Input: name or id, best with country. Costs 0.15 USDC via x402, or 75 credits of a Factline API key.","annotations":{"title":"Company dossier: due diligence on a European company (paid)","readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T10:13:14.542Z"},{"name":"company_health","title":"Company financial health signals (paid)","description":"Use to check if a European company is healthy before you deal with it: UK accounts overdue, size band and insolvency history; French headcount, turnover, net result and BODACC insolvency; Norwegian employees, bankruptcy, winding-up and filed accounts; Finnish bankruptcy and restructuring; Dutch insolvency with a KvK number. Verdict healthy, watch, distressed or limited_data. Costs 0.02 USDC via x402, or 10 credits of a Factline API key.","annotations":{"title":"Company financial health signals (paid)","readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T10:13:14.542Z"},{"name":"company_lookup","title":"Verify a company in official registers (paid)","description":"Use when you need to verify that a company exists and is active: official registers GLEIF (worldwide, incl. Dutch LEI holders), UK Companies House, Ireland CRO, Estonia, France SIRENE, Norway, Finland, Czechia, Slovakia and Poland (with bank accounts). Returns legal name, status, registry id, legal form, address, founding date and parent companies (GLEIF). Search by name or id. Costs 0.008 USDC via x402, or 4 credits of a Factline API key.","annotations":{"title":"Verify a company in official registers (paid)","readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T10:13:14.542Z"},{"name":"domain_check","title":"Check a website or domain (paid)","description":"Use when you need to judge whether a website or email domain is trustworthy: registration date and domain age (RDAP), expiry, registrar, nameservers, email setup (MX, SPF, DMARC), disposable-email domains, and a low/medium/high risk with flags such as 'registered 4 days ago', a common sign of scam shops. Accepts a domain, URL or email. Costs 0.003 USDC via x402, or 2 credits of a Factline API key.","annotations":{"title":"Check a website or domain (paid)","readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T10:13:14.542Z"},{"name":"email_verify","title":"Verify an email address (paid)","description":"Use when you need to know if an email address is real and deliverable before signup, outreach or onboarding: syntax, live MX routing, 9,000+ disposable domains, role addresses, free providers, typo suggestions (gmial.com to gmail.com) and SPF/DMARC. One verdict: deliverable, risky or undeliverable. Costs 0.002 USDC via x402, or 1 credit of a Factline API key.","annotations":{"title":"Verify an email address (paid)","readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T10:13:14.542Z"},{"name":"eu_company_check","title":"One-call European company check (paid)","description":"Use before onboarding, paying or contracting a European company: finds it in 10 official registers (GLEIF, UK, IE, FR, NO, FI, CZ, SK, EE, PL), screens it, its directors, owners and parent companies against EU, UN, UK and US sanctions and PEP, checks VAT and Peppol, flags new websites and Dutch bankruptcies. One verdict: pass, review, block_review or incomplete. Input: name or id, best with country; optional vat, domain, kvk. Costs 0.05 USDC via x402, or 25 credits of a Factline API key.","annotations":{"title":"One-call European company check (paid)","readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T10:13:14.542Z"},{"name":"eu_eori_check","title":"Check an EU EORI customs number (paid)","description":"Use when you need to check an EU EORI customs number: live validation in the European Commission's EORI service, registered and valid or not, with the trader's name and address when published. All EU member states; GB numbers are not covered. Costs 0.003 USDC via x402, or 2 credits of a Factline API key.","annotations":{"title":"Check an EU EORI customs number (paid)","readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T10:13:14.542Z"},{"name":"eu_exchange_rates","title":"ECB exchange rates (free)","description":"Free. Use when the user needs an official euro exchange rate or a conversion for an invoice, contract or report: ECB euro reference rates (about 30 currencies), today or any working day in the last 90 days, with cross rates. Input: base (default EUR), symbols (e.g. USD,GBP), optional date YYYY-MM-DD and amount.","annotations":{"title":"ECB exchange rates (free)","readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T10:13:14.542Z"},{"name":"eu_law_lookup","title":"EU law lookup (free)","description":"Free. Use when the user cites an EU regulation, directive or decision and you need its official title, date, whether it is still in force, and the EUR-Lex link to cite: by CELEX number (e.g. 32016R0679) or citation (e.g. Regulation (EU) 2016/679, Directive 2015/849).","annotations":{"title":"EU law lookup (free)","readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T10:13:14.542Z"},{"name":"eu_sanctions_batch","title":"Screen up to 25 names against EU, UN, UK and US sanctions (paid)","description":"Use when screening a list of people or companies at once (up to 25 per call, 0.0012 USDC per name) against the EU, UN, UK and US OFAC sanctions lists. Fuzzy matching; per name a possible-match flag, top score and up to 3 scored matches with their lists. For customer bases, payouts and vendor lists. Costs 0.03 USDC via x402, or 15 credits of a Factline API key.","annotations":{"title":"Screen up to 25 names against EU, UN, UK and US sanctions (paid)","readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T10:13:14.542Z"},{"name":"eu_sanctions_screen","title":"Screen a name against EU, UN, UK and US sanctions (paid)","description":"Use when you must check whether a person or company is under sanctions: screens the name against the EU, UN, UK and US OFAC lists (25,000+ persons, companies and vessels with aliases, refreshed weekly). Fuzzy matching handles spelling, transliteration and word order; returns scored possible matches with lists, references and birth dates. Costs 0.005 USDC via x402, or 3 credits of a Factline API key.","annotations":{"title":"Screen a name against EU, UN, UK and US sanctions (paid)","readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T10:13:14.542Z"},{"name":"eu_sanctions_wallet","title":"Screen a crypto wallet against OFAC sanctions (paid)","description":"Use before sending crypto to an address, or when asked if a wallet is sanctioned: checks Bitcoin, Ethereum/EVM, Tron, USDT, Litecoin, Monero and other addresses against the wallets on the US OFAC SDN list, refreshed weekly. Returns sanctioned true/false, currency, listed entity and programme. Costs 0.003 USDC via x402, or 2 credits of a Factline API key.","annotations":{"title":"Screen a crypto wallet against OFAC sanctions (paid)","readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T10:13:14.542Z"},{"name":"eu_tenders_search","title":"Search open public tenders in the EU (paid)","description":"Use when the user looks for public contracts to bid on: open tenders from TED, the EU's official journal, by country, CPV code, keywords, deadline and minimum value, with English titles, buyer, deadline and value. For the Netherlands it adds national below-threshold tenders from TenderNed, which TED does not have. Costs 0.005 USDC via x402, or 3 credits of a Factline API key.","annotations":{"title":"Search open public tenders in the EU (paid)","readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T10:13:14.542Z"},{"name":"eu_vat_check","title":"Validate an EU VAT number (paid)","description":"Use when the user gives an EU VAT number and you need to know if it is valid: live check in the European Commission's VIES service for all 27 member states plus Northern Ireland, with the registered company name and address where shared. Input: VAT number with country prefix, e.g. IE6388047V. Costs 0.003 USDC via x402, or 2 credits of a Factline API key.","annotations":{"title":"Validate an EU VAT number (paid)","readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T10:13:14.542Z"},{"name":"get_trial_key","title":"Get a free Factline trial key","description":"Free. Use when the user wants to use Factline's paid checks without a crypto wallet: issues a trial API key (2,000 credits a month) to the user's work email. Ask the user for their email first; never invent one. One key per email.","annotations":{"title":"Get a free Factline trial key","readOnlyHint":false,"openWorldHint":true,"idempotentHint":false,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T10:13:14.542Z"},{"name":"iban_check","title":"Validate an IBAN (paid)","description":"Use when you need to check an IBAN before a payout or invoice: length per country, mod-97 checksum (catches typos), SEPA membership, and for Dutch IBANs the bank (ING, ABN AMRO, Rabobank, bunq...). Does not confirm the account holder. Costs 0.001 USDC via x402, or 1 credit of a Factline API key.","annotations":{"title":"Validate an IBAN (paid)","readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T10:13:14.542Z"},{"name":"kyc_check","title":"One-call KYC onboarding check (paid)","description":"Use when onboarding a customer, seller or business and you want one answer: screens the name against EU, UN, UK and US sanctions and the PEP list, verifies email and phone, and checks an EU VAT number in VIES, all in parallel, with one verdict: pass, review, block_review or incomplete. Send any of name, email, phone, vat. Costs 0.01 USDC via x402, or 5 credits of a Factline API key.","annotations":{"title":"One-call KYC onboarding check (paid)","readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T10:13:14.542Z"},{"name":"nl_insolvency_check","title":"Check if a Dutch company is bankrupt (paid)","description":"Use when you need to know if a Dutch company is bankrupt or in suspension of payments: live check in the Centraal Insolventieregister (Rechtspraak) with active and ended cases, court, case number, dates, administrator and claims deadline. Legal entities only. Input: KvK number or company name. Costs 0.01 USDC via x402, or 5 credits of a Factline API key.","annotations":{"title":"Check if a Dutch company is bankrupt (paid)","readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T10:13:14.542Z"},{"name":"pep_batch","title":"Screen up to 25 names for PEP status (paid)","description":"Use when screening a list of up to 25 names for politically exposed persons in one call (0.0012 USDC per name): top 3 possible matches per name with positions and status. For customer-base and CRM re-screening. Costs 0.03 USDC via x402, or 15 credits of a Factline API key.","annotations":{"title":"Screen up to 25 names for PEP status (paid)","readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T10:13:14.542Z"},{"name":"peppol_lookup","title":"Check if a company is on Peppol e-invoicing (paid)","description":"Use when you need to send an e-invoice or check if a company can receive one: looks the company up in the Peppol Directory by VAT number, company number (Belgian KBO, French SIREN, Dutch KvK...) or name, and returns its Peppol participant ids and accepted documents (invoice, credit note, self-billing, orders). Belgium requires Peppol B2B e-invoicing since 2026; France requires e-invoice receipt from 2026-09. Costs 0.003 USDC via x402, or 2 credits of a Factline API key.","annotations":{"title":"Check if a company is on Peppol e-invoicing (paid)","readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T10:13:14.542Z"},{"name":"pep_screen","title":"Screen a person for PEP status (paid)","description":"Use when you must check whether a person is a politically exposed person (PEP) for AML/KYC: heads of state and government, ministers of every country, central bank governors, MEPs and national MPs of the EU, EEA, UK, US and Switzerland, current or former (default 5 years). Fuzzy matching with positions, country and dates. Pairs with sanctions screening. Costs 0.005 USDC via x402, or 3 credits of a Factline API key.","annotations":{"title":"Screen a person for PEP status (paid)","readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T10:13:14.542Z"},{"name":"phone_verify","title":"Validate a phone number (paid)","description":"Use when you need to check a phone number from any country: valid and possible against allocated ranges, E.164 and national format, country, and line type (mobile, landline, VoIP, toll-free, premium) with an SMS-capable hint. National numbers need a country, e.g. 0612345678 with country=NL. Costs 0.003 USDC via x402, or 2 credits of a Factline API key.","annotations":{"title":"Validate a phone number (paid)","readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T10:13:14.542Z"},{"name":"self_hosted_wallet_evidence","title":"Self-hosted wallet evidence record (paid)","description":"Use when a crypto service sends to or receives from a self-hosted wallet and must document its checks (EU AMLR, Travel Rule files): screens the wallet against OFAC-listed addresses, the claimed owner against EU, UN, UK and US sanctions and PEP, and checks the company register for businesses. Returns no_hits, review or block_review with list versions and a signed receipt. Input: wallet, owner, optional owner_type, birth_year, country. Costs 0.02 USDC via x402, or 10 credits of a Factline API key.","annotations":{"title":"Self-hosted wallet evidence record (paid)","readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T10:13:14.542Z"},{"name":"supplier_invoice_check","title":"Check a supplier invoice before paying (paid)","description":"Use before an agent pays a supplier invoice: checks the supplier in official registers, screens it, its directors, owners and parent companies against EU, UN, UK and US sanctions and PEP, matches the VAT number, checks the IBAN (valid, same country as the company, registered on the Polish VAT whitelist), the sender's email domain and Dutch bankruptcy, and whether the supplier is on Peppol. One verdict: pass, review or hold. Costs 0.08 USDC via x402, or 40 credits of a Factline API key.","annotations":{"title":"Check a supplier invoice before paying (paid)","readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T10:13:14.542Z"},{"name":"watch_30_days","title":"Watch a name, company or plate for 30 days (paid)","description":"Use when the user wants to be told later: watches one item for 30 days, paid once, no account. kind=sanctions (a name, re-screened when the EU, UN, UK or US lists change), company (COUNTRY:name or number, register checked daily) or apk (Dutch plate, daily). Alerts go to webhook and to /v1/watch/alerts with the returned token. Input: kind, value, optional webhook, label. Costs 0.05 USDC via x402, or 25 credits of a Factline API key.","annotations":{"title":"Watch a name, company or plate for 30 days (paid)","readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T10:13:14.542Z"},{"name":"x402_payee_check","title":"Should I pay this x402 seller? (paid)","description":"Use before an agent pays an x402 endpoint it has not used before: reads the seller's own 402 challenge, screens every payTo wallet against the OFAC list, checks the domain (age, setup), Factline's daily uptime probes and, with company, the register record and EU/UN/UK/US sanctions. Returns allow, review or deny, plus a trust-provider block (decision, score, evidence, ttl). Input: url, optional wallet, company, country. Costs 0.01 USDC via x402, or 5 credits of a Factline API key.","annotations":{"title":"Should I pay this x402 seller? (paid)","readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T10:13:14.542Z"},{"name":"x402_pay_guard","title":"Check an x402 payment before paying (free)","description":"Free. Use right before paying an x402 seller: screens the payTo wallet against the OFAC list, looks up the seller's payer history, age and uptime from the Bazaar and Factline's nightly probes, and checks the amount against the seller's listed price and your budget. Returns allow, review or deny with reasons. Input: url of the resource, pay_to from its 402, optional amount_usd, max_usd, network.","annotations":{"title":"Check an x402 payment before paying (free)","readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T10:13:14.542Z"},{"name":"x402_sellers","title":"x402 sellers with uptime (free)","description":"Free. Use when looking for an x402 API to pay for a task, or to see if a seller is used and up: sellers from the Coinbase x402 Bazaar ranked by unique payers (30 days), with Factline's daily check that their endpoints answer a valid 402, speed and networks. Filter with q (e.g. sanctions, weather, search).","annotations":{"title":"x402 sellers with uptime (free)","readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T10:13:14.542Z"}],"dev.protogrid/trust":{"score":80,"components":{"hygiene":80,"liveness":100,"freshness":100,"provenance":45},"drivers":["+website","+reachable","+uptime-100%","+updated-5d-ago","-no-repository"],"flags":["no-repository"],"blocked":false,"computed_at":"2026-10-19T12:11:55.063Z","disclaimer":"Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed."},"dev.protogrid/quality":{"score":86,"label":"good","components":{"auth":null,"hygiene":100,"protocol":75,"stability":75,"dependencies":null},"checks":[{"id":"protocol.modern","detail":"newest supported version is 2025-11-25; 2026-07-28 not supported, older versions are deprecated until 2027-07-28","status":"warn","category":"protocol"},{"id":"protocol.stateless","detail":"only applies to 2026-07-28 servers","status":"na","category":"protocol"},{"id":"protocol.transport","detail":"streamable HTTP","status":"pass","category":"protocol"},{"id":"protocol.list_ttl","detail":"only applies to 2026-07-28 servers","status":"na","category":"protocol"},{"id":"auth.prm","detail":"no remote uses OAuth","status":"na","category":"auth"},{"id":"auth.as_metadata","detail":"no remote uses OAuth","status":"na","category":"auth"},{"id":"auth.cimd","detail":"no remote uses OAuth","status":"na","category":"auth"},{"id":"auth.secret_in_url","detail":"no templated URL","status":"na","category":"auth"},{"id":"tools.descriptions","detail":"every tool has a description","status":"pass","category":"hygiene"},{"id":"tools.description_length","detail":"descriptions are concise","status":"pass","category":"hygiene"},{"id":"tools.schemas","detail":"every tool has an object input schema","status":"pass","category":"hygiene"},{"id":"tools.annotations","detail":"28 of 28 tools declare readOnlyHint or destructiveHint","status":"pass","category":"hygiene"},{"id":"tools.directory_hints","detail":"every tool declares readOnlyHint, destructiveHint, idempotentHint and openWorldHint","status":"pass","category":"hygiene"},{"id":"tools.token_cost","detail":"about 6,067 tokens to load every tool","status":"pass","category":"hygiene"},{"id":"tools.api_dump","detail":"tools are not a one-to-one API dump","status":"pass","category":"hygiene"},{"id":"stability.changes","detail":"16 tool changes in 30 days","status":"warn","category":"stability"},{"id":"stability.rug_pull","detail":"no tool changed its meaning under the same name","status":"pass","category":"stability"},{"id":"deps.known_vulns","detail":"no npm or PyPI package","status":"na","category":"dependencies"},{"id":"deps.mcp_sdk_version","detail":"no npm or PyPI package","status":"na","category":"dependencies"},{"id":"deps.resolvable","detail":"no npm or PyPI package","status":"na","category":"dependencies"}],"drivers":["~protocol.modern","~stability.changes"],"flags":[],"tool_count":28,"token_estimate":6067,"tools_hash":"5a31c0ee031af98690c754f62b82bbe2","tools_changed_at":"2026-10-14T23:17:07.503Z","computed_at":"2026-10-19T12:00:19.663Z","disclaimer":"Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed."},"dev.protogrid/identity":{"canonical_id":"io.github.snefhew/factline-kyc","aliases":[],"alias_count":0,"repository_key":null,"owner":{"verified":false,"method":null,"since":null}}},"next_actions":[{"action":"list_tools","description":"Every current tool with input schemas","href":"/v1/servers/io.github.snefhew%2Ffactline-kyc/tools","arguments":{"name":"io.github.snefhew/factline-kyc"}},{"action":"get_connection","description":"Minimal connection block for the preferred remote or package","href":"/v1/servers/io.github.snefhew%2Ffactline-kyc/connection?target=mcpServers","arguments":{"name":"io.github.snefhew/factline-kyc","target":"mcpServers"}},{"action":"search","description":"Find other servers by intent","href":"/v1/search?q={query}","arguments":{"q":"{query}"}}]}