Give your agent official records to check against
Factline is a set of MCP servers and a REST API. Your agent calls it when its user asks about a person, company, Dutch address or car, and answers with official data and a source line it can quote. Pay per call in USDC (x402) with no account, or use an API key.
Pick a server
| URL | For | Tools |
|---|---|---|
https://factline.dev/mcp/kyc | Companies, people and agent payments | one-call company check, x402 payee check and seller health, bulk screening, 30-day watches, self-hosted wallet evidence, ECB rates and EU law (free), sanctions, PEP, one-call KYC, company registers (10 countries), Dutch insolvency, EU VAT, EORI, IBAN, domain, email, phone, EU tenders |
https://factline.dev/mcp/nl | Dutch homes and places | address facts and reports, neighbourhoods, crime, flood risk, rent check, house prices, energy labels, schools, address lookup and batch |
https://factline.dev/mcp/vehicles | Dutch vehicles | licence plate checks, APK expiry, recalls, odometer verdict, model reliability, plate comparison |
https://factline.dev/mcp | Everything | all of the above in one server (44 tools) |
https://factline.dev/mcp/claude | Claude (directory), free only | free read-only tools: Dutch addresses, neighbourhoods, schools, plates, car models, ECB rates, EU law, x402 sellers |
https://factline.dev/mcp/chat | Chat assistants, free only | the free address, neighbourhood, plate, car model and schools tools; no payment needed |
Smaller servers help models pick the right tool. All use Streamable HTTP and need no login. In the official MCP Registry as io.github.snefhew/factline, factline-kyc, factline-nl and factline-vehicles.
Paying
- No account: paid tools answer with an x402 payment request (USDC on Base or Solana). Agents with an x402 wallet pay per call, from USD 0.001; bulk screening is metered per name (x402
upto). Failed calls are not charged, and a retry with the samepayment-identifieris never charged twice. - Free trial key, no form:
curl -X POST https://factline.dev/v1/key/trial -H "content-type: application/json" -d '{"email":"you@company.com"}'returns a key with 2,000 credits a month. In MCP, theget_trial_keytool does the same (it asks the user for their email). - API key: send
x-api-key: fl_live_...(orAuthorization: Bearer fl_live_...) and calls use credits instead. Free trial key, a EUR 19 pack or monthly plans on /business. Building for many end users? Ask about the platform plan. - Free: address, neighbourhood, plate, car model and schools tools, and a free preview of every paid check.
Before your agent pays someone else
Agents that buy from other x402 sellers can call the payee check first (x402_payee_check, USD 0.01): it reads the seller's 402, screens its wallets against OFAC, checks the domain and uptime and answers allow, review or deny. The free x402 Seller Health Index (x402_sellers) lists 500 Bazaar sellers with payers and daily probe results.
Receipts: every paid answer carries a receipt signed with Ed25519 (public key). Paying wallets can download a monthly statement from /v1/statement by signing in with the wallet (x402 sign-in-with-x).
Claude
claude.ai and Claude Desktop: Settings, Connectors, Add custom connector, then paste a server URL, for example https://factline.dev/mcp/chat.
Claude Code:
claude mcp add --transport http factline-kyc https://factline.dev/mcp/kyc # with an API key: claude mcp add --transport http factline-kyc https://factline.dev/mcp/kyc --header "x-api-key: fl_live_..."
ChatGPT
Settings, Apps and connectors, Advanced, turn on developer mode, then Create and paste https://factline.dev/mcp/gpt (free tools). The Factline plugin for the ChatGPT directory is in review.
Cursor, VS Code and GitHub Copilot, Gemini CLI
Cursor (~/.cursor/mcp.json):
{
"mcpServers": {
"factline-kyc": { "url": "https://factline.dev/mcp/kyc", "headers": { "x-api-key": "fl_live_..." } }
}
}
VS Code / Copilot (.vscode/mcp.json):
{
"servers": {
"factline-kyc": { "type": "http", "url": "https://factline.dev/mcp/kyc" }
}
}
Gemini CLI (~/.gemini/settings.json):
{
"mcpServers": {
"factline-kyc": { "httpUrl": "https://factline.dev/mcp/kyc" }
}
}
Microsoft Copilot Studio: in your agent, Tools, Add a tool, Model Context Protocol, then enter the server URL with no authentication (or an API key header).
Agent frameworks
OpenAI Agents SDK (Python):
from agents import Agent, Runner
from agents.mcp import MCPServerStreamableHttp
async with MCPServerStreamableHttp(params={"url": "https://factline.dev/mcp/kyc"}) as factline:
agent = Agent(name="Onboarding", instructions="Screen new customers.", mcp_servers=[factline])
result = await Runner.run(agent, "Is Acme Trading Ltd on a sanctions list?")
LangChain / LangGraph (pip install langchain-mcp-adapters):
from langchain_mcp_adapters.client import MultiServerMCPClient
client = MultiServerMCPClient({"factline": {"url": "https://factline.dev/mcp/kyc", "transport": "streamable_http"}})
tools = await client.get_tools()
Vercel AI SDK (TypeScript):
import { experimental_createMCPClient } from "ai";
import { StreamableHTTPClientTransport } from "@modelcontextprotocol/sdk/client/streamableHttp.js";
const mcp = await experimental_createMCPClient({
transport: new StreamableHTTPClientTransport(new URL("https://factline.dev/mcp/kyc")),
});
const tools = await mcp.tools();
n8n: add an AI Agent node with an MCP Client Tool, endpoint https://factline.dev/mcp/kyc, transport HTTP Streamable. Or import the ready-made workflow Screen new signups with Factline KYC (Workflows, Import from file, then paste your key in the "Factline KYC check" node).
Python: pip install factline, then Factline(api_key=...).sanctions_screen(name="Acme"). PyPI
Plain HTTP
# free preview: checks the input and shows what the paid answer contains curl "https://factline.dev/v1/sanctions/screen/preview?name=Acme%20Trading" # paid call with an API key curl -H "x-api-key: fl_live_..." "https://factline.dev/v1/sanctions/screen?name=Acme%20Trading"
Without a key, paid endpoints answer 402 with an x402 payment request. Full list: docs, OpenAPI, llms.txt.
What answers look like
Every MCP result carries a one-line summary where the shape allows and a cite_as line, for example: Source: Factline (factline.dev), from RDW Open Data, retrieved 2026-10-11. Field names are stable. How screening works, list dates and data handling: trust page. Uptime: status.