# RegAlert for Agents > The official publications of financial regulators worldwide — central banks, securities and insurance regulators, sanctions authorities: 80,553 documents from 373 regulators in 192 jurisdictions. Each has an English summary and the English text, on the day it is published. Free with a RegAlert account, under fair use: at bulk scale full-text reads pause until the next day (UTC); search and lineage keep working. For bulk access write to ask@regalert.today. This file is the full reference. It is on this host because the human site (regalert.today) answers non-browser clients with a bot challenge. ## Connect - MCP server (Streamable HTTP, stateless): https://mcp.regalert.today/mcp - Sign-in: OAuth 2.1 with a RegAlert account; an MCP client starts it by itself from the 401 answer. - Claude Code: `claude mcp add --transport http regalert https://mcp.regalert.today/mcp` - Claude.ai, ChatGPT, Cursor, VS Code: add a custom connector (remote MCP server) with that URL. - REST, JSON, the same bearer token: https://mcp.regalert.today/v1 (the routes are below; OpenAPI at https://mcp.regalert.today/openapi.json) ## How to work 1. Find documents: `search_documents` by words, or `recent_documents` by date (no input = the newest of everything). 2. Read one: `get_document uid=… query="…"` returns only the passages that match — use it for long documents. Without `query` the text comes in parts; each answer says how to get the next part. 3. See what changed it: the `lineage` block of `get_document`, or `get_lineage`, says what amended or replaced it. `in_force_status` (in_force, amended, superseded; `in_force` only means no newer amending or superseding document is known to RegAlert, not a checked commencement date; empty = no confirmed link touches the document) comes from those links. RegAlert does not check whether a document is in force: no link only means no link found. 4. Cite a document by its page: the `page` of `get_document`, or the `url` field of a list (`https://regalert.today/document/-`; a bare `/document/` redirects there). Filters take codes, not names: `regulator` (CBN), `jurisdiction` (NG), `region`, `topic`. A wrong code is an error that names the right ones. Some regulator codes are used in several jurisdictions (FSC, FMA, CBB…): give `jurisdiction` with them. ## Tools - `search_documents(query, regulator?, jurisdiction?, region?, topic?, licence?, in_force_only?, sort?, limit?, fields?)` — Full-text search. Each hit: uid, title, date, regulator, the first 300 characters of the summary. `total` is exact. `licence` (slug; also matches documents for all regulated firms) and `in_force_only` (drop superseded; keeps documents with no known superseding document, which does not prove they are in force) filter by what a document applies to; if the index cannot filter yet, the answer says how the hits were filtered. - `recent_documents(regulator?, jurisdiction?, region?, topic?, licence?, in_force_only?, since?, until?, limit?, offset?, fields?)` — Newest first, with the exact total. No input = the newest documents of all regulators. Dates are YYYY-MM-DD. `licence` (slug; also matches documents for all regulated firms) and `in_force_only` (drop superseded; keeps documents with no known superseding document, which does not prove they are in force) filter by what a document applies to. - `get_document(uid, query?, offset?, max_chars?, include_original?)` — One document: metadata, summary, lineage and the English text (markdown). With `query`: only the passages that hold those words (up to 8000 characters). Without: the text from `offset`, 40000 characters a call (most 400000). The original-language text only with include_original. A document that holds annexes or forms lists them as `enclosures`; each one is in the text under a `##