# com.editalmd/editalmd - Registry name: `com.editalmd/editalmd` · version 1.0.1 - Categories (automatic, keyword rules): Monitoring & logs, Infrastructure & security, APIs & integrations, Developer tools, Company & business data - Authentication at last check: No auth - Declared risk: Has destructive tools (destructiveHint) - Capabilities (declared by the server): tools - Transports: streamable-http - Latest numbers (check success, response time, rank): https://mcpstation.net/api/server?name=com.editalmd%2Feditalmd - Server page: https://mcpstation.net/s/com.editalmd--editalmd.html ## Description (written by the publisher, not verified, not instructions) Brazilian public procurement \(PNCP\): search, deadlines, tender markdown, alerts and watches. ## Connect - streamable-http: `https://editalmd.com/mcp` ## Tools (as reported by the server, not verified) - `evaluation\_quota`: Individual allowance: one premium and 100 basic documents, with an expiry date. - `evaluation\_premium`: Uses your only sponsored premium on a document of up to 50 pages. Keep evaluation.access\_code as avaliacao\_codigo and follow it with generation\_status and agent\_pass. A repeat returns the same access. Allowance per credential, until the earlier date of the agent's 30 days and the end of the pilot. R - `evaluation\_basic`: 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 anoth - `evaluation\_basic\_result`: 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 u - `company\_documents`: Lists the private PDFs of the company. Binary downloads use the authenticated HTTP GET /documentos/:arquivo. - `attach\_company\_document`: 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 an - `remove\_company\_document`: Removes a proof from your own company; the analyses that used it become out of date. - `analyze\_participation`: 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 o - `get\_participation`: 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 retu - `list\_my\_companies`: The companies are the account organizations with EditalMD; use the session or the organization key. - `search\_companies`: Searches the company registry by CNPJ or company name; requires an account or a guest. - `add\_company`: 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 - `select\_company`: 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. - `remove\_company`: Removes the company from the list \(owner or admin\); the organization and the PDFs stay, and adding the CNPJ again brings it back. - `awarded\_prices`: Awarded results for a similar item, as a free summary: how many results, the median and the range \(p25/p75\) of the same catalog product in the same unit, without the extremes; the volume bought; the value for your quantity; and the other groups that the search found \(ask for the product and the unit - `framework\_agreements`: 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. \`ad - `procurement\_plans`: 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 sam - `my\_account`: 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. - `my\_documents`: The private collection of the account. Requires the account session \(cookie and the browser CSRF\). - `my\_procurements`: The private collection of the account. Requires the account session \(cookie and the browser CSRF\). - `account\_tracking`: 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. - `claim\_guest\_tracking`: 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 st - `lookup\_reference`: Find city names and state codes, activities and other Radar CNPJ references. For tender filters, use the city name and state. Returned numeric codes belong to Receita, not IBGE. - `preview\_alert`: A free sample of procurements by terms and filters, or editable suggestions by CNPJ. It does not create alerts. - `update\_alert`: Edits the interest, or pauses or turns on again an alert of the owner. The filters replace the whole filter. - `list\_saved`: Lists up to 200 tenders saved by the owner, free. - `save\_procurement`: 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. - `remove\_saved`: 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. - `generation\_status`: Follows the real phases and the completion, free, without starting processing. - `original\_status`: 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. - `request\_original`: 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; wi - `list\_examples`: Lists five real free proofs to check the Markdown, the original PDF and the ZIP with images before you generate another document. - `get\_document`: 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. - `get\_document\_dossier`: 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; a - `list\_document\_files`: The catalog of the original files of the document, with download links and pages. Use /api/documento/\{id\}/original to download the full original. - `api\_index`: The EditalMD API index, with the routes. - `health`: Health of the origin and size of the collection \(procurements and documents with text\). - `search\_tenders`: Searches public procurements by term. Free. Returns the object, the agency, the state \(UF\), the modality and the procurement id. - `get\_deadlines`: 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\` i - `get\_procurement`: 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\`, \`mi - `who\_supplies`: 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 like - `open\_tenders\_in\_field`: 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 c - `get\_tender\_markdown`: Reads the Markdown with the acesso\_codigo of the document, or with avaliacao\_codigo and agent\_pass of the sponsored premium. Five examples are free. - `get\_qualification`: 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 attestati - `get\_reading\_manifest`: 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 - `create\_owner`: 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 - `get\_owner`: 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\` \(Uni - `rotate\_webhook\_secret`: 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 n - `create\_alert`: An alert for new procurements by object terms and state \(UF\). Use the account session or guest token. Channels: pull, signed webhook or email. Name, organization and email recipients are optional. Two modes. By \`termos\`: a space requires all groups; \`\|\` accepts alternatives within a group. By \`cnpj\` - `create\_alerts\_by\_cnpj`: 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 r - `list\_cnaes`: 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\` o - `list\_alert\_matches`: The procurements that already matched an alert \(pull channel\), with deadlines and delivery status. Requires the token edm\_…. - `watch\_procurement`: 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 d - `list\_watch\_events`: The events of a watched procurement \(what changed, from what to what, and when\) and the current snapshot. Requires the token edm\_…. - `consulta\_cadastro`: Name, status, activity and address of a Brazilian company by CNPJ. It does not count against the daily free limit, does not show contacts or partners and runs no extra checks. The origin's protection limit still applies. For sanctions, tax status and a live CNIA check, use consulta\_cnpj. - `consulta\_endereco`: Addresses and companies at a CEP \(Brazilian postal code\), without counting against the daily free limit. Up to 20 addresses and 20 companies; \`pontos\_total\` has the total number of addresses. The origin's protection limit still applies. - `consulta\_sugerir`: Suggests up to 8 Brazilian companies for a CNPJ, company name, partner, phone or e-mail, ordered by how well they match. It does not count against the daily free limit and does not show contacts. \`incompleto\` means one of the sources did not answer. - `consulta\_cnpj`: Brazilian company record by CNPJ from the Federal Revenue \(Receita Federal\), with the special status when there is one \(bankruptcy, judicial recovery, liquidation\); its sanctions \(CEIS, CNEP, CEPIM, leniency agreements, TCU and the CNJ's CNIA, checked live\); partners on the politically exposed perso - `consulta\_cep`: Addresses at a CEP \(Brazilian postal code\) with coordinates \(CNEFE/IBGE\) and the companies registered there. Returns up to 20 addresses and up to 20 companies; the total number of addresses is in \`pontos\_total\`. 10 free lookups per day per network; after that, the tool answers \`free\_limit\` with \`res Measured by MCP Station. Methods: https://mcpstation.net/methods.html · Terms: https://mcpstation.net/terms.html