@pipeworx/anvisa-medicines

Connect: https://pipeworx.io/mcp — every tool in the catalog, including @pipeworx/anvisa-medicines’s. Install: one-click buttons

Connect to just the @pipeworx/anvisa-medicines pack

https://gateway.pipeworx.io/anvisa-medicines/mcp — only @pipeworx/anvisa-medicines’s own tools, nothing else in the catalog.

No MCP client? Skip the connection: POST https://gateway.pipeworx.io/v1/tools/search_packs {"query":"..."} to find a tool below, GET /v1/tools/<name> for its schema, POST the same URL with arguments for the data — see For AI agents.

Tools: 2

Brazil’s register of medicines authorised by ANVISA, the national health regulator: about 40,000 registrations with brand name, active ingredient, registration holder, registration number, status, regulatory category (similar, generic, new, herbal, homeopathic and others), registration date and expiry month. Search in Portuguese or English, accents ignored.

Tools

  • anvisa_drug_search(query, by?, status?, limit?) finds registrations by words in the brand name or active ingredient (by: "any", the default), only the brand name, only the ingredient, or the holder’s name. Every word must match the start of a word, so dipiron finds dipirona. Results list active registrations first, newest first, each with the status as the register states it (Ativo or Inativo) plus an English reading, and the category with an English name. status: "active" or "inactive" filters. An English ingredient spelling that differs from the Portuguese only at the end (amoxicillin / amoxicilina) is found on its word stem and the answer says so (matched_on_stems).
  • anvisa_drug_get(id) the full record: holder and CNPJ, therapeutic class, process number, registration date, expiry month, and how many register rows state each status. The id is the registration number, or an id starting with x for the registrations that have no number (low-risk and dynamised products, mostly).
anvisa_drug_search({query: "dipirona", limit: 5})
  -> 559 matches; DORFLEX DOR DE CABEÇA, Ativo, Similar, registered 2026-11-09, expires 2036-11
anvisa_drug_get({id: "186200018"})
  -> NOVALGINA, holder, category Similar (English "Similar"), status Ativo
anvisa_drug_search({query: "paracetamol", by: "ingredient", status: "active"})
  -> found: true, total_matches 141 (against the November 2026 copy)

Every answer carries data_as_of, source_file_date, answered_from (always stored_copy) and an attribution line. A search with no match returns found: false with an empty_reason; an unknown id returns found: false, reason: "unknown_id".

Auth

Keyless.

Data sources

  • ANVISA (Agência Nacional de Vigilância Sanitária), registered medicines open data. ANVISA publishes the register only as one bulk open-data file (about 46 MB, 11 columns), refreshed monthly, and its online consultation service refuses requests from our network, so a stored copy answers every call and a weekly job refreshes it. There is no live fallback: before the first load, or if the copy cannot be read, both tools return found: false, reason: "stored_copy_unavailable" with a plain message, never an empty result. A refresh that would shrink the register by more than 20 percent, or that finds a changed column layout, is refused and the previous copy stays.

Licence note

The register’s open-data page states no licence of its own. ANVISA’s institutional site states: “Todo o conteúdo deste site está publicado sob a licença Creative Commons Atribuição-SemDerivações 3.0 Não Adaptada” (all content of this site is published under Creative Commons Attribution-NoDerivatives 3.0 Unported). That licence allows copying and redistributing the unmodified work with attribution, and does not forbid redistribution, so the copy is built; but it is a statement about the site, not about this dataset, so treat the terms as unconfirmed rather than granted. Every answer says who the source is; the register’s values are kept as published (merged by registration number, nothing corrected), and the English readings of category and status are marked as added by Pipeworx.

What the copy holds, and what to watch

  • One record per registration. The file has one row per presentation (about 230,000 rows, 40,000 distinct registrations) and carries no presentation column. Rows are merged on the registration number; the answer shows rows_stating_active and rows_stating_inactive.
  • Status can disagree between rows. For about 2,600 registrations some rows say Ativo and some Inativo. Those carry status: "Misto" with the counts, appear under both status filters, and sort between the active and inactive groups. The register does not say why a registration is Inativo (cancelled, lapsed or replaced).
  • Registrations without a number (about 7,300, mostly low-risk and homeopathic products) get an x id derived from their other fields. That id stays stable only while those fields are unchanged.
  • Expiry is a month. The register gives month and year; expiry_passed compares it with the current month. Sixteen rows carry an expiry the register writes in an unreadable form; those show no expiry.
  • Lost characters stay lost. Some names reach us with accented letters already replaced by ? (for example “N?O DECLARADO”); the record says so rather than guessing.
  • Not a prescribing reference. The register says what is registered, not what is on sale, priced or safe to take.
  • Fields are positional in the stored objects (see the header of src/index.ts, scripts/lib/anvisa-parse.mjs and scripts/lib/drug-store.mjs); the test suite builds its fixtures with the loader’s own modules and reads them through the pack.

Tools

  • anvisa_drug_search — Search Brazil’s register of medicines authorised by ANVISA (the national health regulator), about 40,000 registrations, by brand name, active ingredient or registration holder, in Portuguese or Englis
  • anvisa_drug_get — Show one ANVISA medicine registration by its id (the registration number from anvisa_drug_search, 9 digits; the 13-digit form is read by its first 9 digits; or the id starting with x that registration

Tools

  • anvisa_drug_get — Show one ANVISA medicine registration by its id (the registration number from anvisa_drug_search, 9 digits; the 13-digit form is read by its first 9 digits; or the id starting with x that registration
  • anvisa_drug_search — Search Brazil's register of medicines authorised by ANVISA (the national health regulator), about 40,000 registrations, by brand name, active ingredient or registration holder, in Portuguese or Englis

Regenerated from source · build November 15, 2026