editalmd
Server Details
Read tender requirements with page evidence. Free search and examples; paid processed documents.
- Status
- Healthy
- Uptime
- 100.0% over the last 24 hours
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-06-18
- URL
- Repository
- wrpbr/editalmd
- GitHub Stars
- 0
- ChatGPT
- –
- Claude
- –
TDQS
Scored across 71 tools
Several large clusters overlap heavily: search_tenders, procurement_catalog, open_tenders_in_field, tenders_outside_pncp, preview_alert and list_alert_matches all return procurement listings, while evaluation_basic, evaluation_basic_result, evaluation_premium and evaluation_quota split one workflow across four entries, and create_alert vs create_alerts_by_cnpj differ only by input mode. The payment/credit surface (api_access, api_access_buy, buy_plan, cancel_plan, list_plans, pricing, credito_saldo, credito_recarregar, criar_cobranca, estado_cobranca, recibo) is similarly fragmented, so an agent must read long descriptions to pick correctly.
Naming mixes English and Portuguese (get_procurement vs criar_cobranca, gerar_markdown, credito_saldo, documento_vincular) and mixes verb_noun with bare nouns (health, pricing, recibo, api_index, evaluation_quota). Verb conventions vary between get_/list_/create_/remove_ and unprefixed nouns like procurement_plans and framework_agreements, making the pattern hard to predict.
71 tools is far beyond what a coherent surface for this domain needs, and many entries are micro-variants of one another (e.g., four evaluation tools, four-plus procurement listing tools, several near-duplicate credit/payment tools). The surface reads like an HTTP route dump rather than a curated tool set.
Coverage across the domain is broad: procurement discovery and detail, document access/OCR, dossier and qualification extraction, alerts and watches, saved lists, company management, and payment/credit lifecycle all have tools. Only minor lifecycle gaps remain (e.g., no explicit delete for watches, limited alert listing filters), which agents can work around.
Available Tools
71 toolsaccount_trackingAccount follow-up listsBRead-onlyIdempotentInspect
Checks that the Salvas, Alertas and Vigias belong to the account of the session. The lists of a guest edm_… move to the account with POST /api/auth/claim; a POST to this route answers 410 with the path.
Inputs: no named parameters.
add_companyAdd a companyADestructiveIdempotentInspect
Imports the CNPJ into a new organization or into the organization of the organization key. Without X-Organization-Id, it creates the organization with the company name and EditalMD on, or returns the one that the person removed from the list (201). With X-Organization-Id or an organization key, the record goes to that organization if the caller manages it and it has no company. Returns 200 when the CNPJ is already in an organization of the caller. Up to 100 companies; no partners or contacts; no analysis starts.
Inputs: cnpj (required).
analyze_participationAnalyze participationAInspect
Starts or resumes the analysis with the company record, the attachments and the tender. Call it only when the user asks; follow it with get_participation. Returns 202 after it accepts and keeps the request, and 200 when it reuses a finished analysis. It uses the profile and the attachments of this owner. Interrupted requests can resume; failures tell the reason and the next action. An explicit POST resumes a pause. Up to 2 thousand facts and 100 tenders per company, subject to the available capacity and budget. Follow-up only by GET. The analysis is a triage with evidence, not a final qualification decision or an external legal opinion.
Inputs: v (required), id (required), cnpj (required).
api_accessAPI accessARead-onlyIdempotentInspect
Discover the monthly data package or inspect a private purchase. Returns: { offer{id,price_usd,credits,days,auto_renew,unit,products,purchase,method,status,header,payment_methods,prepaid_credit,instructions,generate_pass,client,guide,workflow,evaluation}, enabled?, id?, status?, granted_credits?, expires_at?, receipt?, via?, message? }
Inputs: api_pass.
api_access_buyAPI access buyAInspect
Buy 1000 basic data reads for US$0.10, valid for 30 days. Same pass in retries recovers the same purchase. No automatic renewal. OCR, AI, documents and delivery keep their own tariffs. Send X-API-Pass on eligible data reads; remaining credits come in X-API-Credits-Remaining. With prepaid credit, you can skip this purchase: send X-Credito (or Authorization: Bearer cred_…) on the data read, and after the free allowance the origin buys these packages from the credit, one at a time.
Inputs: api_pass (required), payment, transaction, credit_token.
api_indexAPI indexCRead-onlyIdempotentInspect
The EditalMD API index, with the routes.
Inputs: no named parameters.
attach_company_documentAttach a company documentAInspect
Sends a PDF proof of the company. It does not start OCR. Requires a session; for large files, prefer HTTP. Returns 201. JSON up to 11,200,000 bytes; PDF up to 8 MiB; 20 documents, 80 MiB and 50 pages per company. An identical file is reused. The automatic reading happens only when you request the analysis.
Inputs: cnpj (required), nome (required), tipo (required), arquivo_base64 (required).
awarded_pricesAwarded pricesARead-onlyIdempotentInspect
The price that wins for a similar item, as a free summary: how many prices, the median and the range (p25/p75) of the same catalog product in the same unit, without the extremes; the volume bought; the price for your quantity; and the other groups that the search found (ask for the product and the unit of one of them to switch). It searches awarded results by item description: PNCP results and the items that Ceará cities report to TCE-CE (fonte on each item). It also accepts POST, PUT or PATCH with the same parameters in JSON or a form; query, termo, busca and search count as q, estado as uf, and limit as limite. Every 400 has exemplo and doc.
Inputs: q (required), uf, meses, catmat, +4 more.
buy_planBuy planAInspect
Buys a plan for the account or paying wallet.
Pix and USDC pay 30 days with no automatic renewal; the card subscribes monthly and renews until you cancel. Without payment, the answer is 402 with the price. Pay with prepaid credit (X-Credito) or x402 (PAYMENT-SIGNATURE v2 or X-PAYMENT v1). Without an account, the verified paying wallet owns the purchase. Use wallet agent authentication to read its plan, or claim it after account sign-in. The compra mark prevents repeat credit debits. An x402 nonce can settle only once; keep the receipt after a delivery error. Original PDFs are free. An active plan includes usage.total, usage.used and usage.remaining. One page uses 1 unit, a price report 25, an alert 5 and a tender watch 3. Allowance is consumed before prepaid credit.
Inputs: plan (required).
cancel_planCancel planBInspect
Cancels the active plan: nothing else is charged, and what you paid for stays active until the end of its period.
Send { "accept_data_removal": true }. The monthly card subscription stops. A purchase made less than 7 days ago and a paid period that has not started yet, such as a renewal, go back the same way they were paid (card or Pix) and end now. The rest of the paid period stays active until keeps_until; then what the plan added ends (account.cancel.losses in GET /api/plans says what). A purchase paid with USDC or with credit from another purchase stays active until its end; ask for its refund by e-mail, as the cancellation page says. Original PDFs are free. An active plan includes usage.total, usage.used and usage.remaining. One page uses 1 unit, a price report 25, an alert 5 and a tender watch 3. Allowance is consumed before prepaid credit.
Inputs: accept_data_removal (required).
claim_guest_trackingBring guest lists into the accountBInspect
Brings into the session account what the guest edm_… created (the SDK claim): the Salvas, Alertas and Vigias that the account does not have yet, and the documents that the guest bought. Requires the bootstrap/CSRF of this browser; the page does it right after sign-in. It moves only what the guest still has, in one transaction; what collides with what the account already has stays with the guest. A repeat does no harm (it moves zero).
Inputs: guest_token (required).
company_documentsCompany documentsBRead-onlyIdempotentInspect
Lists the private PDFs of the company. Binary downloads use the authenticated HTTP GET /documentos/:arquivo.
Inputs: cnpj (required).
create_alertCreate an alertAInspect
An alert for new procurements by object terms and state (UF). Use the account session or guest token. Channels: pull, signed webhook or email. On webhook and email, it also delivers new tenders outside PNCP that have not opened yet (TCE-RS LicitaCon and TCE-PE open data). Name, organization and email recipients are optional. Two modes. By termos: a space requires all groups; | accepts alternatives within a group. By cnpj: known activity families produce alerts, up to max_familias. Unmapped activities remain in the response without an alert. The cron checks every 30 minutes. Email requires an account session and EMAIL_ALERTAS=1. It uses explicit recipients or the verified account email.
Inputs: termos (required), uf, nome, canal, +5 more.
create_alerts_by_cnpjAlerts by CNPJAInspect
Alerts for new procurements by the company CNPJ (requires the token edm_…): the activities (CNAE) become families of terms, and there is one alert per family, main first, up to max_familias. A CNAE outside the dictionary is listed in the response with a null family. Two modes. By termos: a space requires all groups; | accepts alternatives within a group. By cnpj: known activity families produce alerts, up to max_familias. Unmapped activities remain in the response without an alert. The cron checks every 30 minutes. Email requires an account session and EMAIL_ALERTAS=1. It uses explicit recipients or the verified account email.
Inputs: cnpj (required), uf, nome, canal, +6 more.
create_ownerCreate an ownerAInspect
Creates the guest (token edm_…, issued by the account library) that opens alerts and watches, and the secret whsec_… that signs the webhooks. No sign-up. The token appears only once: keep it and send it in Authorization: Bearer in the alert and watch tools. The account library signs the token, with a limit per network and per hour, so the free allowance does not become infinite. The token has no recovery: sign in to the account and bring the lists into it (POST /api/auth/claim, which the account page does on sign-in) to stop depending on it. You can read webhook_segredo again in GET /api/dono. Each webhook POST carries webhook-id, webhook-timestamp (Unix seconds) and webhook-signature: v1,<base64>: HMAC-SHA256 of id.timestamp.body with the key of your whsec_… (the base64 after the prefix). This is the Standard Webhooks pattern: any of its libraries can check it; reject a timestamp outside 5 minutes. After POST /api/dono/segredo, the previous secret still signs for 24 h (two v1, parts in the header).
Inputs: no named parameters.
credito_recarregarCredito recarregarAInspect
Tops up prepaid credit: pay once with x402 and get the token that is charged in any API of the house. Returns: { token, saldo_usd, guarde, usar, usar_com_outra_credencial, saldo_em, onde_gastar }
Inputs: usd (required).
credito_saldoCredito saldoARead-onlyIdempotentInspect
Balance and statement with cred_…; wallet balance and up to 20 payments being recovered with mmw_…. A request without a token receives 401. The Link header points to the x402 manifest. When billing is configured, accepts[] contains the same terms as the smallest POST top-up. GET cannot charge or create credit.
Inputs: no named parameters.
criar_cobrancaCriar cobrancaBInspect
Reserves an exclusive address/QR to buy your access with USDC on Base. Check GET /geracao and send cotacao. Each buyer pays, even when the text is ready. The service confirms USDC in the safe block of Base; safe waits for the inclusion on L1, without absolute finality. Send within 30 min; observation for 24 h. A late payment, a wrong network/currency or a failed extraction requires support. A wallet/exchange can charge a fee. The same X-Cobranca keeps the charge/address. A paid GET returns acesso.codigo and a cookie; to keep it in the account, POST /api/documento/:id/vincular with this code (the site does this by itself for signed-in people). The simulated payment of the development environment is not valid for a deposit.
Inputs: id (required), cotacao (required), cobranca_token (required).
documento_acessoDocumento acessoCRead-onlyIdempotentInspect
Checks the link and allows exporting the code of a purchase that is still anonymous. Returns: { documento_id, vinculado, recuperacao }
Inputs: id (required), acesso_codigo.
documento_vincularDocumento vincularBInspect
Links your anonymous purchase to the authenticated account, without a new charge. Requires a session and private proof of the purchase. It records the global right of the account by the payment receipt: idempotent for the same owner, and another owner cannot claim it. The code keeps opening the document by itself.
Inputs: id (required), acesso_codigo.
estado_cobrancaEstado cobrancaBRead-onlyIdempotentInspect
Reads the address, confirmation, receipt and release of your charge, free of charge. Reuse X-Cobranca and respect Retry-After. The lookup does not write or make a blockchain RPC. When it is gerando, use GET /geracao for phases/pages; pronto releases the reading links. In revisao, keep the ID and the transactions for support, without paying again.
Inputs: id (required), cobranca_token (required).
evaluation_basicBasic text of a documentBInspect
Basic native or OCR text of a PDF of up to 50 pages / 32 MiB, without review or structured tables. Up to 100 documents per agent. It does not open premium. Allowance per credential, until the earlier date of the agent's 30 days and the end of the pilot. Repeating the same document does not use another unit. Premium: keep evaluation.access_code and use X-Editalmd-Avaliacao together with X-Agent-Pass in the reads and in GET /geracao. Basic does not open premium content. The pilot depends on the global budget; no automatic renewal.
Inputs: id (required), agent_pass (required).
evaluation_basic_resultBasic reading resultARead-onlyIdempotentInspect
Follows the basic reading after retry_after_s and returns the text per page with the hash of the source. Allowance per credential, until the earlier date of the agent's 30 days and the end of the pilot. Repeating the same document does not use another unit. Premium: keep evaluation.access_code and use X-Editalmd-Avaliacao together with X-Agent-Pass in the reads and in GET /geracao. Basic does not open premium content. The pilot depends on the global budget; no automatic renewal.
Inputs: id (required), agent_pass (required).
evaluation_quotaPilot allowanceCRead-onlyIdempotentInspect
Individual allowance: one premium and 100 basic documents, with an expiry date.
Inputs: agent_pass (required).
framework_agreementsValid framework agreementsARead-onlyIdempotentInspect
The valid framework agreements (ata de registro de preços) on PNCP for the object, most relevant first: the managing agency, the validity, whether the agreement accepts joining (carona) and the link to the agreement. Free. Only the agreements that are not canceled and are valid today or later. adesao=1 returns only the ones that accept joining. The procurement record (/api/compra/:id) has the agreements that it generated. Accept: text/html opens the Atas vigentes tab with the terms.
Inputs: q (required), adesao, pagina.
generation_statusGeneration statusCRead-onlyIdempotentInspect
Follows the real phases and the completion, free, without starting processing.
Inputs: id (required), agent_pass, acesso_codigo, avaliacao_codigo.
gerar_markdownGerar markdownBInspect
Buys individual access to the document for US$ 0.02/page, through x402/credit.
Each buyer pays, even when the text is ready. Check GET or the 402, confirm pages/hash/total and send cotacao. The account session (cookie + browser CSRF) records the purchase in the global right of the account before the delivery, without a separate code; with the edm_… guest (Bearer), the right is the guest's and the code comes along; an agent uses X-Credito. Without an account, keep acesso.codigo to reopen or to link later. After the link, only the account opens it. A ready text reuses the OCR; a necessary generation is included. An unknown/changed quote does not charge. 152 pages = US$ 3.04. Body up to 4096 bytes. After a 202, follow up through GET. Paid and the recording of the right failed: 502 pago_nao_registrado with the recibo; keep it, and support delivers or refunds.
Inputs: id (required), cotacao, agent_pass, idempotencia, +3 more.
get_api_x402_precosGet API X402 precosBInspect
The short winning price for an agent, paid per call, with no account: the full summary and up to 10 items. Collecting procurement items and calculating the returned price summary. A text match does not establish equivalent specifications, delivery conditions or a valid bid price. Check source dates and the matched items.
Inputs: q (required), uf, meses, catmat, +5 more.
get_deadlinesProcurement deadlinesARead-onlyIdempotentInspect
The deadlines of the procurement: the published end of proposals and the last day to challenge the tender (estimate: 3 business days before the session, Law 14.133 art. 164, national holidays). Free. Served from the edge cache for up to 6 hours: the record rarely changes. Cache-Control: no-cache in the request reads the origin now. The x-origem-cache header says hit, miss or bypass.
Inputs: id (required).
get_documentDocumentARead-onlyIdempotentInspect
A free lookup of the title, type, pages and the procurement linked to a document. Use get_procurement to list the related documents. It does not open content or start OCR.
Inputs: id (required).
get_document_dossierDocument dossierBRead-onlyIdempotentInspect
Items, requirements, attestations, deadlines and obligations, with conditions, exceptions and excerpts/pages. It uses the same acesso_codigo as the reading. It does not start AI. The dossier is included in the document access, with no new analysis when you read it. Partial data tells the coverage; an export requires a finished version. We convert the document and link extracted requirements to page evidence. Start from the prepared dossier instead of rebuilding that extraction. Inspect complete, coverage and issues. An unfinished dossier is not evidence that a requirement is absent. Check the original and source dates before a bid decision.
Inputs: id (required), v, kind, after, +4 more.
get_ownerOwnerBRead-onlyIdempotentInspect
The owner state (requires the token edm_… or the account session): account or guest, the notice e-mail, the allowance and the secret whsec_… that signs each webhook (Standard Webhooks: webhook-id, webhook-timestamp, webhook-signature). Each webhook POST carries webhook-id, webhook-timestamp (Unix seconds) and webhook-signature: v1,<base64>: HMAC-SHA256 of id.timestamp.body with the key of your whsec_… (the base64 after the prefix). This is the Standard Webhooks pattern: any of its libraries can check it; reject a timestamp outside 5 minutes. After POST /api/dono/segredo, the previous secret still signs for 24 h (two v1, parts in the header).
Inputs: no named parameters.
get_participationParticipation resultARead-onlyIdempotentInspect
Reads the state, the pending items and the met items, with reasons, actions and evidence. It never starts an analysis. Pending items group precisa_comprovar (proof missing), divergente (incompatible evidence) and acompanhar (future obligation). A different company record, attachments or dossier return outdated without current results. The reference date stays when the analysis resumes; a previous day returns data_atual=false. Validated batches stay available during failures or processing, with parcial=true and processados/total; they never mean that the requirements not yet compared are done. GET does not run the queue and does not start AI.
Inputs: v (required), id (required), cnpj (required), kind, +3 more.
get_procurementProcurement recordARead-onlyIdempotentInspect
The procurement record and its documents in the collection (up to 50), with titles, types, pages and availability. Free. Served from the edge cache for up to 6 hours: the record rarely changes. Cache-Control: no-cache in the request reads the origin now. The x-origem-cache header says hit, miss or bypass.
Inputs: id (required).
get_qualificationQualification listAInspect
The qualification list of the tender, with literal excerpts: conditions, exceptions and evidence by page of the available analysis. The lookup does not start another analysis. Deadlines, proposals and the other obligations are in the dossier; this list covers qualification and the required attestations, and does not state what the company has.
Inputs: id (required), agent_pass, acesso_codigo, avaliacao_codigo.
get_reading_manifestDocument reading manifestARead-onlyIdempotentInspect
The document manifest: pages, images, SHA-256 and version. Send acesso_codigo; the examples are free. It does not start OCR. The same authorization opens the ZIP and the images through the API. Only ready resources. document_approved: false marks the automatic extraction and does not block reading.
Inputs: id (required), agent_pass, acesso_codigo, avaliacao_codigo.
get_tender_markdownTender MarkdownBRead-onlyIdempotentInspect
Reads the Markdown with the acesso_codigo of the document, or with avaliacao_codigo and agent_pass of the sponsored premium. The examples are free.
Inputs: id (required), agent_pass, acesso_codigo, avaliacao_codigo.
healthService healthBRead-onlyIdempotentInspect
Health of the origin and size of the collection (procurements and documents with text).
Inputs: no named parameters.
list_alert_matchesAlert matchesARead-onlyIdempotentInspect
The procurements that already matched an alert (pull channel), with deadlines and delivery status. Requires the token edm_….
Inputs: id (required), limite, antes_compra.
list_cnaesActivity codes (CNAE)ARead-onlyIdempotentInspect
Search term suggestions by economic activity (CNAE), with the description, the family and coverage indicators. Free. Without q, it lists the activities with the most registered suppliers. With q, it searches by code prefix (1412, 1412-6/01) or by a word of the description. A null familia or termos means that the CNAE is not in the dictionary yet: an alert by CNPJ does not use it.
Inputs: q, limite.
list_document_filesDocument filesARead-onlyIdempotentInspect
The catalog of the original files of the document, with download links and pages. Use /api/documento/{id}/original to download the full original.
Inputs: id (required), agent_pass, acesso_codigo, avaliacao_codigo.
list_examplesExamplesARead-onlyIdempotentInspect
Lists real free proofs to check the Markdown, the original PDF and the ZIP with images before you generate another document.
Inputs: no named parameters.
list_my_companiesMy companiesCRead-onlyIdempotentInspect
The companies are the account organizations with EditalMD; use the session or the organization key.
Inputs: no named parameters.
list_plansList plansARead-onlyIdempotentInspect
The plans for sale and the authenticated account or wallet's active plan.
Pix and USDC pay 30 days with no automatic renewal; the card subscribes monthly and renews until you cancel. Without an account or wallet credential, account is null. Original PDFs are free. An active plan includes usage.total, usage.used and usage.remaining. One page uses 1 unit, a price report 25, an alert 5 and a tender watch 3. Allowance is consumed before prepaid credit.
Inputs: no named parameters.
list_savedSaved tendersARead-onlyIdempotentInspect
Lists up to 200 tenders saved by the owner, free.
Inputs: no named parameters.
list_watch_eventsWatch eventsARead-onlyIdempotentInspect
The events of a watched procurement (what changed, from what to what, and when) and the current snapshot. Requires the token edm_….
Inputs: id (required), limite.
lookup_referenceLookup referenceBRead-onlyIdempotentInspect
Search municipality names, activities and other Radar CNPJ reference data. Returns: { ok, results }
Inputs: tipo (required), q, limit, codigos.
my_accountMy accountBRead-onlyIdempotentInspect
The identity and the private counters of the account session (cookie) sent in the MCP request. The global account is already the person in EditalMD: there is no activation per product.
Inputs: locais.
my_documentsMy documentsCRead-onlyIdempotentInspect
The private collection of the account. Requires the account session (cookie and the browser CSRF).
Inputs: antes.
my_procurementsMy procurementsBRead-onlyIdempotentInspect
The private collection of the account. Requires the account session (cookie and the browser CSRF).
Inputs: antes.
open_tenders_in_fieldOpen tenders in the same fieldARead-onlyIdempotentInspect
The tenders with an open proposal period published in the last 7 days, in the state (UF) and in the CNAEs of the companies that supply the same as this procurement, highest value first, and the alert body that delivers them (for create_alert). Useful when the procurement you looked up is already closed. Free. Without a CNAE, it uses the terms of the object. It is the same read as the alert preview (POST /api/alertas/previa), and alerta has the body that creates this alert in POST /api/alertas (add the canal). The result is per field and state and is kept for 30 minutes; when the service is busy or the origin is down, estado says so and itens is empty.
Inputs: id (required).
original_statusOriginal file statusARead-onlyIdempotentInspect
Reads the status of the original, free. It does not ask for a download or a generation. It returns only the file status: it does not deliver content, grant access, confirm pages or start a generation. No query. The response is no-store.
Inputs: id (required).
preview_alertAlert previewAInspect
A free sample of procurements by terms and filters, or editable suggestions by CNPJ. It does not create alerts.
Inputs: uf, cnpj, termos, filtros.
pricingPricingARead-onlyIdempotentInspect
Current public prices, free allowances and payment discovery; does not create a charge.
Inputs: no named parameters.
procurement_catalogProcurement catalogBRead-onlyIdempotentInspect
Public navigation of the collection by modality, state, date and municipality. We prepare procurement summaries and supplier rankings from PNCP records. Follow the returned links instead of collecting and grouping each purchase. Read the summary date and follow pagination. Supplier values are recorded awards, not payments. Confirm deadlines and conditions in the purchase and original document.
Inputs: no named parameters.
procurement_plansProcurement plansARead-onlyIdempotentInspect
What agencies plan to procure (annual procurement plans, PCA, on PNCP), before the tender opens: item, agency, quantity, estimated value and desired date. Free. Only the current version of each plan; without ano, from the current year on. To know when the tender opens, create an alert with the same terms (/api/alertas). Accept: text/html opens the Planos de compras tab with the terms.
Inputs: q (required), ano, pagina.
reciboReciboARead-onlyIdempotentInspect
Receipt of a delivery: the proof of what was delivered, how much it cost and with which hash. Returns: { recibo{id,recurso,documento_id,preco_usd,modo,sha256_entregue,bytes,criado_em} }
Inputs: id (required).
remove_companyRemove a companyADestructiveIdempotentInspect
Removes the company from the list (owner or admin); the organization and the PDFs stay, and adding the CNPJ again brings it back.
Inputs: cnpj (required).
remove_company_documentRemove a company documentADestructiveIdempotentInspect
Removes a proof from your own company; the analyses that used it become out of date.
Inputs: cnpj (required), arquivo (required).
remove_savedRemove a saved procurementADestructiveIdempotentInspect
Removes the procurement from the personal list of the owner. Saving does not create a watch or a notification. The client sends only the ID; the snapshot comes from the collection.
Inputs: id (required).
request_originalRequest the originalAIdempotentInspect
When the person wants the document, downloads the pending original from PNCP now. Free and idempotent. It does not start OCR. Use it when the person opens the document. The body is empty or {} (two bytes at most). A free collector downloads the original at once and the status becomes downloading; without a free collector, the request goes first into the queue.
Inputs: id (required).
rotate_webhook_secretRotate the webhook secretAInspect
Changes the secret that signs the webhooks (requires the token edm_…). The previous secret still signs for 24 h, so you can change it without a failure window. During the 24 h, the webhook-signature header has two v1,… parts: one with the new secret and one with the previous. The receiver only needs to accept any part that matches.
Inputs: no named parameters.
save_procurementSave a procurementADestructiveIdempotentInspect
Saves the procurement, up to 200 per owner. Saving does not create a watch or a notification. The client sends only the ID; the snapshot comes from the collection.
Inputs: id (required).
search_companiesFind a companyBRead-onlyIdempotentInspect
Searches the company registry by CNPJ or company name; requires an account or a guest.
Inputs: q (required).
search_tendersSearch tendersARead-onlyIdempotentInspect
Searches public procurements by term. Free. Returns the object, the agency, the state (UF), the modality and the procurement id. The procurements that receive proposals now come first, then the most recently published ones. With ordem 'prazo', the one that closes first comes first.
Inputs: q (required), uf, ordem, limite, +2 more.
select_companySelect a companyADestructiveIdempotentInspect
Selects a registered company; it does not run an analysis. Each person's choice is kept in the account. Repeating the current choice writes nothing.
Inputs: cnpj (required).
tenders_outside_pncpTenders outside PNCPARead-onlyIdempotentInspect
Tenders that agencies report to the state audit court, or publish on their own portal, and that are not on PNCP (today the TCE-RS LicitaCon, the TCE-PE and TCE-RN open data, the TCM-PA tender board, Sebrae's Canal do Fornecedor and the Sanepar procurement system), most relevant first: agency, city, modality, opening date, values and the link to the tender on the source. Free. The sources are checked every 6 hours. abertas=1 returns only the tenders that open today or later. A tender that is also on PNCP comes in /api/busca. Accept: text/html opens the Outside PNCP tab with the terms.
Inputs: q (required), uf, pagina, abertas.
update_alertEdit an alertCDestructiveInspect
Edits the interest, or pauses or turns on again an alert of the owner. The filters replace the whole filter.
Inputs: id (required), uf, nome, ativo, +7 more.
watch_procurementWatch a procurementAInspect
Watches a procurement (requires the token edm_…): takes a snapshot now and records the events of correction, new document, suspension, postponed deadline and value, plus deadline notices. The checks are periodic; check the date of the last check in the watch. The notices prazo_impugnacao (on the day) and prazo_proposta (24 h before) go out once each.
Inputs: compra_id (required), canal, destino.
who_suppliesWho suppliesARead-onlyIdempotentInspect
The CNAEs (activity codes) that usually win procurements like this one, most likely first, with the official description and, per CNAE, how many items and how much of the estimated value pointed to it. Free. Each item of the procurement (up to 99, the ones of highest value) points to the 3 most likely CNAEs, by a classifier trained on the activity of the companies that won similar items in the awarded PNCP results; the procurement adds the points (3, 2 and 1 by position). Without items in the collection, the object of the procurement counts, and the top 5 come without itens or valor_estimado. In the measurement of 27/09/2026, for 87% of the items one of the first 3 was a CNAE of the company that won. To receive the new procurements of these CNAEs, create an alert (POST /api/alertas).
Inputs: id (required).
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
Related MCP Connectors
Search government tenders and public procurement opportunities with structured results.
Search open U.S. federal, state and local government bids and read their documents. Paid; trial.
Tender search + AI CPV finder. Register free: 1 daily email alert, up to 20 results/search.
Search EU public tenders across TED and 8 national portals. Monitor, match, and analyse procurement.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables search and analysis of European public procurement tenders, including EU above-threshold (TED) and below-threshold from 11 national sources, with hybrid search and filtering.MIT
- AlicenseNot gradedqualityBmaintenanceSearch and analyze 14M+ Taiwan government tenders (since 1999, updated daily): full-text search, award records, vendor win-rate and rivalry reports, agency spending patterns with next-tender predictions, and bid price analysis. Free, no API key required.1MIT
- AlicenseNot gradedqualityCmaintenanceEnables searching and analyzing government tenders, contract awards, and pre-tender pipelines from 21 official sources, with tools for tender search, award intelligence, and detailed notice retrieval.MIT
- AlicenseNot gradedqualityDmaintenanceFind, analyze, and score Polish public tenders (BZP): parsed requirements, deadlines, certificates, and bid-fit scoring against your company profile.8 npmMIT
Glama MCP Gateway
Add one secure layer between your agents and this server.