Every lookup resolves against a local copy of the register rather than a call outward, which is why ping returns the snapshot size beside the server version — that pair is the freshness statement, and it is worth reading before a card is quoted anywhere it matters. Everything else in the API is shaped around whichever identifier you happen to hold: an INN, an OGRN or OGRNIP, or nothing but a name, with get_full_card accepting either number and resolving the clash by preferring inn. bulk_cards is the one built for lists, and it returns partial success with the failures itemised rather than rejecting the batch.
A lookup server over a local snapshot of the EGRUL register: cards resolved by INN, OGRN or OGRNIP, fuzzy name search through FTS5, targeted founder and director reads, and a bulk mode.
- Identifier lookups that know their own formats: search_by_inn takes a 10-digit INN for a company or a 12-digit one for a sole trader or individual, and search_by_ogrn takes a 13-digit OGRN or a 15-digit OGRNIP.
- The whole record in a single call: get_full_card returns every section — registration details, OKVED activity codes, founders and director — accepting inn or ogrn, and using inn when both arrive.
- Name search for when you have no number: search_by_name runs a fuzzy match through FTS5 with a result limit and an only_active filter.
- Founders and director on their own: get_founders returns a company's founders and get_director returns its current head, each taking the 10-digit INN only.
- Bulk that does not fail as a unit: bulk_cards takes up to 100 INNs per call and splits the response into cards for the ones that resolved and errors for the ones that did not.
- ping reports that the server is up, its version, and the size of the local snapshot it is answering from.
No credentials — lookups resolve against the local snapshot that ping reports on.
One command — uvx atomno-mcp-egrul
