auxiliar-mcp 0.13.2 → 0.13.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -263,6 +263,112 @@
263
263
  "page_url": "https://auxiliar.ai/service/anthropic/",
264
264
  "external_homepage": "https://www.anthropic.com"
265
265
  },
266
+ {
267
+ "id": "api-to-agent-cli",
268
+ "element_type": "task_template",
269
+ "name": "Print an agent-native CLI for any API — what to install, with the recipe",
270
+ "description": "How to give an AI agent a token-efficient CLI for any API. Install Printing Press, run /printing-press <api>, and the generator emits a Go CLI + Claude Code skill + OpenClaw skill + MCP server — sharing one local SQLite mirror with FTS5 search, compound commands, and --compact token compression. Plus when to use this vs. a hand-built MCP for regulated-auth or narrow-JTBD APIs.",
271
+ "jtbd_tags": [
272
+ "api-to-cli-for-agents",
273
+ "generate-agent-tooling-from-spec",
274
+ "print-agent-cli",
275
+ "api-to-mcp-server",
276
+ "claude-code-skill-from-api",
277
+ "token-efficient-agent-tooling",
278
+ "openclaw-skill-from-api",
279
+ "api-to-agent-toolkit"
280
+ ],
281
+ "aliases_search": [
282
+ "print agent CLI from API",
283
+ "api to agent cli",
284
+ "generate MCP from API",
285
+ "api to claude code skill",
286
+ "I need to give my AI agent a CLI for some API I use",
287
+ "how to expose a third-party API to Claude Code as a skill or MCP server",
288
+ "generate a Claude Code skill from an OpenAPI spec or website",
289
+ "factory that prints token-efficient CLIs for AI agents from API specs",
290
+ "what tool generates a Go CLI plus MCP server plus Claude Code skill from one spec",
291
+ "alternative to writing my own MCP server from scratch for an internal API",
292
+ "turn a third-party API into an agent-native tool with local cache and compound queries",
293
+ "automatic generation of MCP server from OpenAPI or HAR file",
294
+ "print a CLI for Linear or GitHub or Discord that an agent can use efficiently",
295
+ "como expor uma API ao Claude Code como MCP server",
296
+ "gerador de CLI para agente de IA a partir de OpenAPI"
297
+ ],
298
+ "categories": [
299
+ "agent-tooling",
300
+ "cli-generation",
301
+ "api-tooling",
302
+ "task-template",
303
+ "developer-tools"
304
+ ],
305
+ "works_with": [
306
+ "claude-code",
307
+ "claude-desktop",
308
+ "cursor",
309
+ "openclaw",
310
+ "windsurf"
311
+ ],
312
+ "fit_by_agent": {
313
+ "claude-code": true,
314
+ "claude-desktop": true,
315
+ "cursor": true,
316
+ "openclaw": true
317
+ },
318
+ "evals": [
319
+ {
320
+ "method_id": "auxiliar-api-to-agent-cli-documented-characteristics-v1",
321
+ "score": 7.5,
322
+ "score_breakdown": {
323
+ "candidates_ranked": 1,
324
+ "output_format_breadth": 10,
325
+ "token_efficiency_top_pick": 9,
326
+ "data_layer_top_pick": 9,
327
+ "pending_corpus_run": 0
328
+ },
329
+ "corpus_id": "auxiliar-api-to-agent-cli-corpus-v1-pending",
330
+ "last_run": "2026-05-09",
331
+ "candidates_outranked": 4
332
+ }
333
+ ],
334
+ "cost": {
335
+ "type": "free",
336
+ "free_tier": "The /solve/ page itself is free editorial content. Printing Press is MIT-licensed; no commercial tier today.",
337
+ "hidden_costs": [],
338
+ "cost_per_unit": {}
339
+ },
340
+ "pricing_tiers": [],
341
+ "compliance": [],
342
+ "risks": [],
343
+ "deps": {
344
+ "requires": [],
345
+ "composes_with": [
346
+ "printing-press",
347
+ "auxiliar-mcp"
348
+ ],
349
+ "conflicts": []
350
+ },
351
+ "last_verified": "2026-05-09",
352
+ "verification_method": "auxiliar-api-to-agent-cli-documented-characteristics-v1",
353
+ "alternatives_considered": [
354
+ {
355
+ "name": "Speakeasy / Fern / openapi-generator",
356
+ "dropped_because": "OpenAPI generators wrap endpoints but don't generate the data layer (SQLite mirror, FTS5 search, compound commands) and don't emit agent-native UX (typed exit codes, --compact, auto-JSON-when-piped). Right call when the goal is server-stub or client-SDK; wrong call when the goal is \"agent-native CLI for an existing API.\""
357
+ },
358
+ {
359
+ "name": "Write a custom MCP server from scratch",
360
+ "dropped_because": "Right call when (a) the underlying API has a regulated auth flow that needs custom integration (e.g. Cumbuca's biometric Open Finance consent), (b) the agent only needs a narrow slice of endpoints, or (c) you need domain-specific compound logic the generic generator can't infer. Wrong call when wrapping a public API the generator already understands."
361
+ },
362
+ {
363
+ "name": "discrawl / gogcli (deep, hand-curated CLIs)",
364
+ "dropped_because": "Best in class for one specific API (gogcli for Google Cloud, 10K stars, beat Google's own tool because depth-of-understanding > breadth-of-coverage). Doesn't scale across many APIs. Printing Press explicitly credits these as inspiration and ports their depth-first patterns into a generator that does breadth too."
365
+ }
366
+ ],
367
+ "compared_to": [],
368
+ "choose_if": "You're a developer (or agent acting on a developer's behalf) needing to expose an API to an AI agent — and no high-quality MCP server or skill for that API already exists in auxiliar.ai's catalog or elsewhere. Best fit when the API is large + public + the agent will hit it iteratively.",
369
+ "avoid_if": "A curated MCP server or skill already exists for the API in question (check via find_capability first). Also avoid for one-shot read calls where local SQLite mirror setup costs more than it saves, or when the agent's host environment doesn't have Go available.",
370
+ "page_url": "https://auxiliar.ai/solve/api-to-agent-cli/"
371
+ },
266
372
  {
267
373
  "id": "auth0",
268
374
  "element_type": "cloud_service",
@@ -605,12 +711,17 @@
605
711
  },
606
712
  "install": {
607
713
  "primary": {
608
- "install_command": "claude mcp add auxiliar npx auxiliar-mcp",
609
- "config_snippet": "# Once installed (no token needed for CNPJ it's LOW-sensitivity),\n# invoke from your agent loop:\ninvoke_capability(\n tool=\"fetch_cnpj\",\n args={\"cnpj\": \"11.222.333/0001-81\"}\n)\n# Returns:\n# {\n# \"tool\": \"fetch_cnpj\",\n# \"source_module\": \"backend.sources.br.empresa.cnpj\",\n# \"elapsed_ms\": 678,\n# \"result\": {\n# \"cnpj\": \"11222333000181\",\n# \"razao_social\": \"BANCO DO BRASIL SA\",\n# \"cnae_fiscal\": 6422100,\n# \"cnae_fiscal_descricao\": \"Bancos múltiplos, com carteira comercial\",\n# \"cnaes_secundarios\": [...],\n# \"opcao_pelo_simples\": false,\n# \"opcao_pelo_mei\": false,\n# \"descricao_situacao_cadastral\": \"ATIVA\",\n# \"logradouro\": \"...\", \"municipio\": \"...\", \"uf\": \"...\",\n# \"qsa\": [...],\n# \"source\": \"brasilapi\" # or \"cnpjws\" if cascaded\n# },\n# \"scope\": {\"tier\": \"anonymous\", ...}\n# }\n",
610
- "setup_url": "https://www.npmjs.com/package/auxiliar-mcp",
611
- "estimated_minutes": 2
714
+ "install_command": "curl -X POST https://api.auxiliar.ai/api/invoke/fetch_cnpj -H \"content-type: application/json\" -d '{\"cnpj\": \"11.222.333/0001-81\"}'",
715
+ "config_snippet": "# Universal path works for any agent (Claude Code, OpenClaw, Cursor,\n# Telegram bots, Python scripts, n8n, etc.). No install, no token.\ncurl -s -X POST https://api.auxiliar.ai/api/invoke/fetch_cnpj \\\n -H \"content-type: application/json\" \\\n -d '{\"cnpj\": \"11.222.333/0001-81\"}'\n# Returns:\n# {\n# \"tool\": \"fetch_cnpj\",\n# \"source_module\": \"backend.sources.br.empresa.cnpj\",\n# \"elapsed_ms\": 678,\n# \"result\": {\n# \"cnpj\": \"11222333000181\",\n# \"razao_social\": \"BANCO DO BRASIL SA\",\n# \"cnae_fiscal\": 6422100,\n# \"cnae_fiscal_descricao\": \"Bancos múltiplos, com carteira comercial\",\n# \"cnaes_secundarios\": [...],\n# \"opcao_pelo_simples\": false,\n# \"opcao_pelo_mei\": false,\n# \"descricao_situacao_cadastral\": \"ATIVA\",\n# \"logradouro\": \"...\", \"municipio\": \"...\", \"uf\": \"...\",\n# \"qsa\": [...],\n# \"source\": \"brasilapi\" # or \"cnpjws\" if cascaded\n# },\n# \"scope\": {\"tier\": \"anonymous\", ...}\n# }\n",
716
+ "setup_url": "https://api.auxiliar.ai/api/invoke/fetch_cnpj",
717
+ "estimated_minutes": 1
612
718
  },
613
719
  "by_agent": {
720
+ "claude-code": {
721
+ "install_command": "claude mcp add auxiliar npx auxiliar-mcp",
722
+ "config_snippet": "# Optional: install auxiliar-mcp once for in-loop tool dispatch.\n# Then call from the agent loop:\ninvoke_capability(tool=\"fetch_cnpj\", args={\"cnpj\": \"...\"})\n# Same gateway as the curl path; adds in-loop tool discovery\n# (find_capability) and one auth surface for the other 220+\n# Brazilian-public-data tools.\n",
723
+ "estimated_minutes": 2
724
+ },
614
725
  "claude-desktop": {
615
726
  "install_command": "Add to ~/Library/Application Support/Claude/claude_desktop_config.json",
616
727
  "config_snippet": "{\n \"mcpServers\": {\n \"auxiliar\": {\n \"command\": \"npx\",\n \"args\": [\"-y\", \"auxiliar-mcp\"]\n }\n }\n}\n",
@@ -622,8 +733,8 @@
622
733
  "estimated_minutes": 3
623
734
  },
624
735
  "openclaw": {
625
- "install_command": "Direct HTTP no MCP install required",
626
- "config_snippet": "# Renatoag-class agents that already speak HTTP can call the gateway directly:\ncurl -X POST https://api.auxiliar.ai/api/invoke/fetch_cnpj \\\n -H \"content-type: application/json\" \\\n -d '{\"cnpj\": \"11.222.333/0001-81\"}'\n# No auth required for CNPJ (anonymous tier, LOW-sensitivity).\n",
736
+ "install_command": "curl -X POST https://api.auxiliar.ai/api/invoke/fetch_cnpj -H \"content-type: application/json\" -d '{\"cnpj\": \"...\"}'",
737
+ "config_snippet": "# OpenClaw / Telegram-bot / shell-bound agents call the gateway\n# directly via HTTP. No MCP host, no install, no token.\ncurl -X POST https://api.auxiliar.ai/api/invoke/fetch_cnpj \\\n -H \"content-type: application/json\" \\\n -d '{\"cnpj\": \"...\"}'\n",
627
738
  "estimated_minutes": 1
628
739
  }
629
740
  },
@@ -868,8 +979,8 @@
868
979
  }
869
980
  ],
870
981
  "compared_to": [],
871
- "choose_if": "Your agent extracts structured fields from São Paulo NFS-e PDFs (bookkeeping, accountant handoff, ISS reconciliation).",
872
- "avoid_if": "You're working with non-São-Paulo NFS-e municipalities (no layout adapter yet) or have direct Prefeitura XML API access.",
982
+ "choose_if": "Your agent extracts structured fields from São Paulo NFS-e PDFs in BATCH (≥10 documents) or as part of a multi-step bookkeeping pipeline where consistent typed output, error-handling, and ISS reconciliation are the priorities. Auxiliar's wrapper amortizes its setup cost across the batch.",
983
+ "avoid_if": "You're working with non-São-Paulo NFS-e municipalities (no layout adapter yet), have direct Prefeitura XML API access, OR have a SINGLE inline NFS-e XML to parse — for one-off extraction where the source is already in-context, local stdlib parsing finishes in milliseconds and a network round-trip to api.auxiliar.ai is overkill.",
873
984
  "page_url": "https://auxiliar.ai/solve/nfs-e-extraction/",
874
985
  "external_homepage": "https://auxiliar.ai/solve/nfs-e-extraction/",
875
986
  "repository": "https://github.com/Tlalvarez/Auxiliar-ai",
@@ -1590,6 +1701,222 @@
1590
1701
  "page_url": "https://auxiliar.ai/service/better-auth/",
1591
1702
  "external_homepage": "https://better-auth.com"
1592
1703
  },
1704
+ {
1705
+ "id": "br-cade-search",
1706
+ "element_type": "data",
1707
+ "name": "CADE process search (br_cade_search)",
1708
+ "description": "Stateless free-text resolver for CADE (Conselho Administrativo de Defesa Econômica) processes. Input: company name / sector / case-number fragment. Output: list of process references (process_number, parties, type, status, opened_at) the caller can chain into a stateful retrieval. Sub-500ms on cache hit; UA=\"auxiliar.ai/1.0 (+https://auxiliar.ai/contact)\". Scaffold pending CADE endpoint discovery — see source-file docstring.",
1709
+ "jtbd_tags": [
1710
+ "find-cade-process-by-company-name",
1711
+ "resolve-regulatory-case-from-free-text",
1712
+ "cade-process-lookup",
1713
+ "antitrust-case-discovery",
1714
+ "merger-filing-discovery",
1715
+ "brazilian-regulatory-research"
1716
+ ],
1717
+ "aliases_search": [
1718
+ "CADE search",
1719
+ "CADE consulta processo",
1720
+ "antitrust process search",
1721
+ "CADE process search",
1722
+ "CADE consulta processual",
1723
+ "br_cade_search",
1724
+ "merger filing search",
1725
+ "antitrust case search Brazil",
1726
+ "busca avançada CADE",
1727
+ "pesquisa processo CADE"
1728
+ ],
1729
+ "categories": [
1730
+ "public-data",
1731
+ "brazilian-government",
1732
+ "regulatory",
1733
+ "antitrust",
1734
+ "process-search"
1735
+ ],
1736
+ "works_with": [],
1737
+ "fit_by_agent": {
1738
+ "claude-code": true,
1739
+ "claude-desktop": true,
1740
+ "cursor": true,
1741
+ "openclaw": true
1742
+ },
1743
+ "evals": [],
1744
+ "cost": {
1745
+ "type": "free",
1746
+ "free_tier": "Free public CADE search; rate-limited at the data-plane layer to ≤1 req/3s per the stateful-capability runtime contract.",
1747
+ "hidden_costs": [
1748
+ "Sub-500ms target is on cache hit; cold fetches against CADE's public surface can run 1-3s.",
1749
+ "CADE may rate-limit aggressive callers; the data plane's per-host limiter keeps usage polite."
1750
+ ],
1751
+ "cost_per_unit": {}
1752
+ },
1753
+ "pricing_tiers": [],
1754
+ "compliance": [],
1755
+ "risks": [
1756
+ {
1757
+ "severity": "medium",
1758
+ "category": "operational",
1759
+ "description": "Endpoint discovery pending — the public CADE search UI uses XHR calls whose parameter shape was not extractable from static HTML. Until the follow-up lands (see module docstring), this capability returns `{\"not_implemented_yet\": true}` deterministically. Callers should branch on the flag rather than treat the empty result as \"no matches\".",
1760
+ "last_observed": "2026-05-01"
1761
+ },
1762
+ {
1763
+ "severity": "low",
1764
+ "category": "regulatory",
1765
+ "description": "CADE's public surfaces may add CAPTCHAs or rate limits in response to scraping. The per-host limiter in backend/sources/br/http.py and the UA-identification commitment (auxiliar.ai/1.0) keep the footprint small; the response path is to negotiate a partnership if CADE asks rather than try to evade."
1766
+ }
1767
+ ],
1768
+ "deps": {
1769
+ "requires": [],
1770
+ "composes_with": [
1771
+ "br-cade-sei-process",
1772
+ "auxiliar-mcp"
1773
+ ],
1774
+ "conflicts": [],
1775
+ "minimum_runtime": "Python 3.11 + httpx"
1776
+ },
1777
+ "last_verified": "2026-05-01",
1778
+ "verification_method": "scaffold-pending-endpoint-discovery-2026-05-01",
1779
+ "alternatives_considered": [
1780
+ {
1781
+ "name": "Direct CNJ DataJud API for CADE",
1782
+ "dropped_because": "CNJ DataJud aggregates judicial proceedings, not administrative antitrust filings. CADE's processes are administrative, not judicial, so they don't surface in DataJud. CADE's own search surface is the canonical source."
1783
+ },
1784
+ {
1785
+ "name": "Manual SEI form scrape",
1786
+ "dropped_because": "sei.cade.gov.br's form action URL isn't exposed in the static HTML and the form requires a session cookie obtained by GET-ing the form page first. Possible to wire later, but the newer pesquisaavancada.cade.gov.br UI is the recommended public surface."
1787
+ },
1788
+ {
1789
+ "name": "Headless Playwright in stateless tier",
1790
+ "dropped_because": "Playwright belongs in the stateful tier (backend/sources/br/portal/) not the stateless data plane. Search results don't justify the stateful tier's 8-15s cold-start tax — direct XHR or a thin session+POST cascade is the right shape once the endpoint is discovered."
1791
+ }
1792
+ ],
1793
+ "compared_to": [],
1794
+ "choose_if": "Your agent has a free-text query (company name, sector, fragment of a process number) and needs to resolve it to a CADE process_number before fetching documents. Pair with br-cade-sei-process for the full \"get me the filing for X\" journalist-language flow.",
1795
+ "avoid_if": "You already have the process_number from another source (laranja partner agent, prior CADE filing, news article) — go straight to br-cade-sei-process. This capability is the discovery layer, not the retrieval layer.",
1796
+ "page_url": "https://auxiliar.ai/data/br-cade-search/",
1797
+ "external_homepage": "https://pesquisaavancada.cade.gov.br/consulta"
1798
+ },
1799
+ {
1800
+ "id": "br-cade-sei-process",
1801
+ "element_type": "data",
1802
+ "name": "CADE SEI: process-file document retrieval",
1803
+ "description": "Stateful Playwright-driven retrieval of CADE Sistema Eletrônico de Informações (SEI) process documents. Input: process_number (e.g. \"08700.007894/2023-88\") + target_doc_id (SEI document ID like \"1735573\"). Output: PDF bytes + extracted text. Reference fixture validated 2026-05-01: ≈116,562 chars extracted.",
1804
+ "jtbd_tags": [
1805
+ "fetch CADE process documents",
1806
+ "regulatory case PDF retrieval",
1807
+ "antitrust filing extraction",
1808
+ "cade-sei-retrieval",
1809
+ "regulatory-document-fetch",
1810
+ "antitrust-merger-filing",
1811
+ "brazilian-regulatory-portal"
1812
+ ],
1813
+ "aliases_search": [
1814
+ "CADE SEI",
1815
+ "CADE process retrieval",
1816
+ "br_cade_sei",
1817
+ "br_cade_sei_process",
1818
+ "SEI CADE",
1819
+ "CADE Nota Técnica",
1820
+ "CADE Anexo",
1821
+ "sistema eletronico informacoes CADE",
1822
+ "antitrust filing Brazil",
1823
+ "Brazilian merger filing",
1824
+ "CADE process file PDF",
1825
+ "cade.gov.br SEI",
1826
+ "CADE document download",
1827
+ "regulatory PDF retrieval Brazil"
1828
+ ],
1829
+ "categories": [
1830
+ "public-data",
1831
+ "brazilian-government",
1832
+ "regulatory",
1833
+ "antitrust",
1834
+ "portal-scraping"
1835
+ ],
1836
+ "works_with": [],
1837
+ "fit_by_agent": {
1838
+ "claude-code": true,
1839
+ "claude-desktop": true,
1840
+ "cursor": true,
1841
+ "openclaw": true
1842
+ },
1843
+ "evals": [],
1844
+ "cost": {
1845
+ "type": "free",
1846
+ "free_tier": "Free at the upstream — CADE's SEI public consultation portal does not charge for process-file access. Auxiliar.ai passes through at cost; estimated infrastructure cost ~$0.001/call (Lambda Container Image runtime + Chromium cold-start amortized + outbound bandwidth for PDF download). Rate-limited to ≤1 req/3s per the SEI ToS-friendly cadence.",
1847
+ "hidden_costs": [
1848
+ "Cold-start tax on the Chromium-bearing Lambda Container Image: 8–15s p99 the first time after a deploy. Subsequent invocations stay warm for ~10–15min on most Lambda regions.",
1849
+ "Per-capability rate limit ≤1 req/3s — bursts of 100 retrievals serialize to ≥5min wall-clock. Plan accordingly for backfills.",
1850
+ "Snapshot capture on failures writes ~1–10 MB to S3 (HTML+PNG+console+HAR). 30-day lifecycle expiry; counts against the auxiliar-portal-snapshots bucket budget."
1851
+ ],
1852
+ "cost_per_unit": {
1853
+ "per_call": "$0.001"
1854
+ }
1855
+ },
1856
+ "pricing_tiers": [],
1857
+ "compliance": [],
1858
+ "risks": [
1859
+ {
1860
+ "severity": "medium",
1861
+ "category": "regulatory",
1862
+ "description": "CADE may change its SEI portal's HTML structure, navigation flow, or rate limits at any time. Auxiliar.ai owns the ToS conversation (per migration proposal Q4): if CADE reaches out, we respond within 48h and disable the affected capability if requested. Jornalista's local fallback (their own `backend/services/br_cade_sei.py`) provides graceful degradation during any incident."
1863
+ },
1864
+ {
1865
+ "severity": "low",
1866
+ "category": "operational",
1867
+ "description": "PDF byte-equality is not guaranteed across retrievals — CADE may inject download-time watermarks or page-number metadata. Char-for-text equality on extracted content IS the correctness criterion (reference fixture: 116,562 ± 5%). Tests assert text equality, not byte equality."
1868
+ },
1869
+ {
1870
+ "severity": "low",
1871
+ "category": "cold_start",
1872
+ "description": "Lambda Container Image cold-starts run 8–15s on Chromium-bearing images. Combined with ~30s mean nav, cold p99 lands near 50s. Budget 90s timeout (with 10s headroom). If p99 > 50s sustained, ECS Fargate fallback is documented in `docs/proposals/stateful-capability-runtime.md`."
1873
+ }
1874
+ ],
1875
+ "deps": {
1876
+ "requires": [],
1877
+ "composes_with": [
1878
+ "br-cade-search"
1879
+ ],
1880
+ "conflicts": [],
1881
+ "minimum_runtime": "Lambda Container Image (Python 3.11 + Playwright 1.40 + Chromium); not directly installable client-side."
1882
+ },
1883
+ "install": {
1884
+ "primary": {
1885
+ "install_command": "curl -X POST https://api.auxiliar.ai/api/invoke/br_cade_sei_process -H \"content-type: application/json\" -d '{\"process_number\":\"08700.007894/2023-88\",\"target_doc_id\":\"1735573\"}'",
1886
+ "config_snippet": "# Universal HTTP path — works for any agent. The auxiliar gateway\n# routes to the dedicated `br_portal` Lambda Container Image which\n# walks the SEI navigation and returns PDF bytes + extracted text.\ncurl -s -X POST https://api.auxiliar.ai/api/invoke/br_cade_sei_process \\\n -H \"content-type: application/json\" \\\n -d '{\"process_number\":\"08700.007894/2023-88\",\"target_doc_id\":\"1735573\"}'\n# Returns:\n# {\n# \"tool\": \"br_cade_sei_process\",\n# \"source_module\": \"backend.sources.br.portal.cade_sei\",\n# \"elapsed_ms\": 28412,\n# \"result\": {\n# \"process_number\": \"08700.007894/2023-88\",\n# \"document_id\": \"1735573\",\n# \"document_url\": \"https://sei.cade.gov.br/sei/modulos/pesquisa/...\",\n# \"document_title\": \"Anexo - SG Nota Técnica\",\n# \"pdf_size_bytes\": 11534821,\n# \"text\": \"...116562 chars...\",\n# \"retrieval_status\": \"fetched_verbatim\",\n# \"source_tool\": \"br_cade_sei_process\"\n# }\n# }\n",
1887
+ "setup_url": "https://api.auxiliar.ai/api/invoke/br_cade_sei_process",
1888
+ "estimated_minutes": 1
1889
+ },
1890
+ "by_agent": {
1891
+ "claude-code": {
1892
+ "install_command": "claude mcp add auxiliar npx auxiliar-mcp",
1893
+ "config_snippet": "# Compose with the resolver:\ninvoke_capability(tool=\"br_cade_search\", args={\"query\": \"Itaú-Unibanco merger\"})\n# → pick a process_number from the result\ninvoke_capability(tool=\"br_cade_sei_process\",\n args={\"process_number\": \"...\", \"target_doc_id\": \"...\"})\n",
1894
+ "estimated_minutes": 2
1895
+ },
1896
+ "claude-desktop": {
1897
+ "install_command": "Add to ~/Library/Application Support/Claude/claude_desktop_config.json",
1898
+ "config_snippet": "{\n \"mcpServers\": {\n \"auxiliar\": { \"command\": \"npx\", \"args\": [\"-y\", \"auxiliar-mcp\"] }\n }\n}\n",
1899
+ "estimated_minutes": 5
1900
+ },
1901
+ "openclaw": {
1902
+ "install_command": "curl -X POST https://api.auxiliar.ai/api/invoke/br_cade_sei_process",
1903
+ "config_snippet": "# Free-text → process_number → document\n# 1) Resolve via the search capability\ncurl -s -X POST https://api.auxiliar.ai/api/invoke/br_cade_search \\\n -H \"content-type: application/json\" \\\n -d '{\"query\":\"Itaú-Unibanco merger\"}'\n# 2) Fetch the document\ncurl -s -X POST https://api.auxiliar.ai/api/invoke/br_cade_sei_process \\\n -H \"content-type: application/json\" \\\n -d '{\"process_number\":\"08700.007894/2023-88\",\"target_doc_id\":\"1735573\"}'\n",
1904
+ "estimated_minutes": 1
1905
+ }
1906
+ },
1907
+ "by_framework": {}
1908
+ },
1909
+ "last_verified": "2026-05-01",
1910
+ "verification_method": "live-prod-retrieval-2026-05-01",
1911
+ "alternatives_considered": [],
1912
+ "compared_to": [],
1913
+ "choose_if": "Your agent needs the actual document file (PDF bytes + extracted text) for a specific CADE administrative process — antitrust merger filings, cartel investigations, market-power assessments. Pick this when you already know `process_number` (e.g. from `br-cade-search`) plus a `target_doc_id`, and need verbatim text rather than just metadata. This is the only path that preserves session cookies through the SEI popup — direct HTTP fetching of the document URL fails because SEI binds the URL to the navigation session.",
1914
+ "avoid_if": "You only need process metadata (parties, status, type) without the document body — `br-cade-search` already returns those fields and is sub-500ms with no Playwright dependency. Or, you have access to the CADE bulk data export (legal team negotiates direct partnerships) — bulk export is bandwidth-cheaper for systematic backfills than per-call portal scraping.",
1915
+ "page_url": "https://auxiliar.ai/data/br-cade-sei-process/",
1916
+ "external_homepage": "https://sei.cade.gov.br/sei/modulos/pesquisa/",
1917
+ "repository": "https://github.com/Tlalvarez/Auxiliar-ai",
1918
+ "license": "MIT (auxiliar.ai gateway code); upstream content per CADE SEI public-consultation ToS"
1919
+ },
1593
1920
  {
1594
1921
  "id": "brasilapi-cnpj",
1595
1922
  "element_type": "data",
@@ -1688,6 +2015,114 @@
1688
2015
  "repository": "https://github.com/BrasilAPI/BrasilAPI",
1689
2016
  "license": "MIT (BrasilAPI code; underlying data from Receita Federal open dump)"
1690
2017
  },
2018
+ {
2019
+ "id": "brazilian-subscription-audit",
2020
+ "element_type": "task_template",
2021
+ "name": "Find forgotten subscriptions in your Brazilian credit card — what to install, with the recipe",
2022
+ "description": "How an AI agent audits a user's Brazilian credit-card and account transactions for recurring charges (active subscriptions, forgotten trials, duplicate services). Agent installs Cumbuca's Open Finance Data MCP, the user authorizes through their bank, and the agent runs a deterministic clustering recipe (merchant normalization + cadence detection + amount-tolerance check) over the returned transactions.",
2023
+ "jtbd_tags": [
2024
+ "subscription-audit",
2025
+ "recurring-charge-detection",
2026
+ "cancel-forgotten-subscriptions",
2027
+ "personal-finance-cleanup",
2028
+ "credit-card-audit",
2029
+ "open-finance-brasil",
2030
+ "bank-data-ai",
2031
+ "cobrancas-recorrentes-detection"
2032
+ ],
2033
+ "aliases_search": [
2034
+ "find forgotten subscriptions Brazilian credit card",
2035
+ "cancelar assinaturas esquecidas IA",
2036
+ "auditar cartão de crédito IA",
2037
+ "subscription audit Brasil",
2038
+ "recurring charges Open Finance",
2039
+ "extrato cartão IA assinaturas",
2040
+ "cobranças recorrentes IA",
2041
+ "cobrancas recorrentes detection",
2042
+ "assinaturas esquecidas cartão de crédito",
2043
+ "cumbuca subscription detection",
2044
+ "let claude find my subscriptions brazil",
2045
+ "chatgpt audit my brazilian credit card",
2046
+ "encontrar assinaturas no extrato",
2047
+ "achar gastos recorrentes IA",
2048
+ "free trial fantasma cartão",
2049
+ "subscriptions cartão de crédito IA",
2050
+ "personal finance ai brazil subscriptions",
2051
+ "automated subscription detection brazil",
2052
+ "open finance subscription audit",
2053
+ "assinatura mensal não usada IA"
2054
+ ],
2055
+ "categories": [
2056
+ "personal-finance",
2057
+ "subscription-audit",
2058
+ "open-finance",
2059
+ "bank-data",
2060
+ "brazilian-data",
2061
+ "task-template",
2062
+ "agent-tools"
2063
+ ],
2064
+ "works_with": [
2065
+ "claude-code",
2066
+ "claude-desktop",
2067
+ "chatgpt",
2068
+ "cursor"
2069
+ ],
2070
+ "fit_by_agent": {
2071
+ "claude-code": true,
2072
+ "claude-desktop": true,
2073
+ "chatgpt": true,
2074
+ "cursor": true
2075
+ },
2076
+ "evals": [
2077
+ {
2078
+ "method_id": "auxiliar-subscription-audit-documented-characteristics-v1",
2079
+ "score": 6.5,
2080
+ "score_breakdown": {
2081
+ "candidates_ranked": 1,
2082
+ "data_source_production_readiness": 8,
2083
+ "recipe_determinism": 9,
2084
+ "mvp_rate_limit_friendliness": 6,
2085
+ "pending_corpus_run": 0
2086
+ },
2087
+ "corpus_id": "auxiliar-subscription-audit-corpus-v1-pending",
2088
+ "last_run": "2026-05-07",
2089
+ "candidates_outranked": 0
2090
+ }
2091
+ ],
2092
+ "cost": {
2093
+ "type": "free",
2094
+ "free_tier": "The /solve/ page itself is free editorial content. The underlying data source (Cumbuca Open Finance Data MCP) is free during MVP with ~5 queries/day per user.",
2095
+ "hidden_costs": [],
2096
+ "cost_per_unit": {}
2097
+ },
2098
+ "pricing_tiers": [],
2099
+ "compliance": [],
2100
+ "risks": [],
2101
+ "deps": {
2102
+ "requires": [],
2103
+ "composes_with": [
2104
+ "cumbuca-of-data-mcp",
2105
+ "auxiliar-mcp"
2106
+ ],
2107
+ "conflicts": []
2108
+ },
2109
+ "last_verified": "2026-05-07",
2110
+ "verification_method": "auxiliar-subscription-audit-documented-characteristics-v1",
2111
+ "alternatives_considered": [
2112
+ {
2113
+ "name": "Bank-app native subscription dashboards (Nubank, Itaú, Inter)",
2114
+ "dropped_because": "Some BR banks ship in-app subscription detection (Nubank's \"Assinaturas\" tab is the most prominent). Useful for a single-bank user looking inside their own app, but doesn't expose the data to an AI agent for cross-merchant analysis, cancellation drafting, or composing with other personal-finance JTBDs. Out of scope for an agent-first ranking."
2115
+ },
2116
+ {
2117
+ "name": "CSV export + spreadsheet",
2118
+ "dropped_because": "The traditional path (export CSV from internet banking, paste into a spreadsheet, eyeball recurring rows). Works but requires manual export per account per month, no agent automation, no merchant normalization, and no cross-account view. The recipe in this /solve/ body is the same logic the spreadsheet does — but in-loop and on live OF data."
2119
+ }
2120
+ ],
2121
+ "compared_to": [],
2122
+ "choose_if": "You're a Brazilian user (or building for Brazilian users) who wants an AI agent to audit recurring charges in your credit-card or checking-account transactions. You authorize one bank via Open Finance and ask the agent for the audit — it returns a ranked list with cadence, amount stability, active/paused/cancelled status, and annual cost.",
2123
+ "avoid_if": "You need continuous background monitoring (the MVP rate limit is ~5 queries/day), multi-bank aggregation (single-account MVP scope), or non-Brazilian bank data. Also avoid if your users won't tolerate the Open Finance redirect-to-bank consent flow; this is a one-time setup but it's not invisible.",
2124
+ "page_url": "https://auxiliar.ai/solve/brazilian-subscription-audit/"
2125
+ },
1691
2126
  {
1692
2127
  "id": "bullmq",
1693
2128
  "element_type": "cloud_service",
@@ -2841,6 +3276,390 @@
2841
3276
  "page_url": "https://auxiliar.ai/service/contentful/",
2842
3277
  "external_homepage": "https://www.contentful.com"
2843
3278
  },
3279
+ {
3280
+ "id": "contrato-pncp",
3281
+ "element_type": "data",
3282
+ "name": "PNCP — Federal procurement: editais, contratos, vendor history",
3283
+ "description": "Direct access to Brazil's federal procurement portal (PNCP) and federal expenditure execution. Search editais (call-for-bids) and contratos by CNPJ, agency, modalidade, date range, UF, or IBGE municipal code. Returns typed responses with órgão, unidade, valor global, modalidade, sequencial, and PNCP permalinks.",
3284
+ "jtbd_tags": [
3285
+ "federal-procurement",
3286
+ "pncp-search",
3287
+ "contratos-federais",
3288
+ "editais-federais",
3289
+ "vendor-due-diligence",
3290
+ "cnpj-procurement-history",
3291
+ "procurement-monitoring",
3292
+ "federal-expenditure",
3293
+ "despesas-execucao",
3294
+ "portal-transparencia"
3295
+ ],
3296
+ "aliases_search": [
3297
+ "PNCP",
3298
+ "Portal Nacional de Contratações Públicas",
3299
+ "federal procurement Brazil",
3300
+ "editais federais",
3301
+ "contratos federais",
3302
+ "compras governamentais",
3303
+ "compras.gov.br",
3304
+ "portal transparência contratos",
3305
+ "vendor history Brazil",
3306
+ "CNPJ contratos federais"
3307
+ ],
3308
+ "categories": [
3309
+ "public-data",
3310
+ "brazilian-government",
3311
+ "procurement",
3312
+ "contratos-federais"
3313
+ ],
3314
+ "works_with": [],
3315
+ "fit_by_agent": {
3316
+ "claude-code": true,
3317
+ "claude-desktop": true,
3318
+ "cursor": true,
3319
+ "openclaw": true,
3320
+ "hermes": true
3321
+ },
3322
+ "evals": [],
3323
+ "cost": {
3324
+ "type": "free",
3325
+ "free_tier": "Unlimited via auxiliar.ai gateway. PNCP upstream is open data.",
3326
+ "hidden_costs": [
3327
+ "PNCP search returns paginated results — large CNPJ histories may need multiple round-trips.",
3328
+ "Despesas execução data lags actual contract events by ~1 month due to publication cadence."
3329
+ ],
3330
+ "cost_per_unit": {}
3331
+ },
3332
+ "pricing_tiers": [],
3333
+ "compliance": [],
3334
+ "risks": [
3335
+ {
3336
+ "severity": "low",
3337
+ "category": "operational",
3338
+ "description": "PNCP's API parameter shape evolves (e.g., codigo_municipio_ibge format). The wrapper validates inputs and returns clear errors."
3339
+ },
3340
+ {
3341
+ "severity": "low",
3342
+ "category": "regulatory",
3343
+ "description": "All PNCP data is public per the Lei de Acesso à Informação. Safe for high-volume background-screening workflows."
3344
+ }
3345
+ ],
3346
+ "deps": {
3347
+ "requires": [],
3348
+ "composes_with": [
3349
+ "auxiliar-cnpj-fetch"
3350
+ ],
3351
+ "conflicts": [],
3352
+ "minimum_runtime": "Any HTTP client"
3353
+ },
3354
+ "install": {
3355
+ "primary": {
3356
+ "install_command": "curl -s -H \"Authorization: Bearer $AUXILIAR_TOKEN\" \"https://api.auxiliar.ai/api/invoke/pncp_contrato_buscar?cnpj_fornecedor=33000167000101&data_inicial=2023-01-01&data_final=2026-05-02\"",
3357
+ "config_snippet": "# Federal contracts won by a Brazilian company (CNPJ-based search):\n# GET /api/invoke/pncp_contrato_buscar\n# params: cnpj_fornecedor, data_inicial (ISO YYYY-MM-DD), data_final,\n# pagina (default 1), tamanho_pagina (default 20), uf (optional)\n# GET /api/invoke/pncp_edital_buscar — date range + modalidade (optional)\n# GET /api/invoke/pncp_edital_detalhe — cnpj_orgao, ano, sequencial\n",
3358
+ "estimated_minutes": 5
3359
+ },
3360
+ "by_agent": {},
3361
+ "by_framework": {}
3362
+ },
3363
+ "last_verified": "2026-05-02",
3364
+ "verification_method": "laranja-data-plane-audit-2026-05-02",
3365
+ "alternatives_considered": [],
3366
+ "compared_to": [],
3367
+ "page_url": "https://auxiliar.ai/data/contrato-pncp/",
3368
+ "external_homepage": "https://api.auxiliar.ai/api/invoke/pncp_contrato_buscar",
3369
+ "repository": "https://github.com/Tlalvarez/Auxiliar-ai"
3370
+ },
3371
+ {
3372
+ "id": "credit-score-cpf",
3373
+ "element_type": "data",
3374
+ "name": "auxiliar.ai — Brazilian credit check API (CPF score + judicial + óbito + sanctions)",
3375
+ "description": "Bundled CPF credit screening for the Brazilian rental, fintech, and lending vertical. One auth surface, four upstreams: QUOD score band (Direct Data, paid), óbito flag (Direct Data, paid, permanent cache), judicial processes (Direct Data, paid, 7-day cache), federal sanctions (CGU + TCU, free anonymous). Free tier returns the same field names as paid with reduced depth — strict subset, so devs build against free and add a token later without refactoring response handlers.",
3376
+ "jtbd_tags": [
3377
+ "cpf-credit-screening",
3378
+ "rental-credit-check",
3379
+ "tenant-screening",
3380
+ "fintech-onboarding",
3381
+ "kyc-cpf",
3382
+ "quod-credit-score",
3383
+ "obito-flag",
3384
+ "judicial-process-cpf",
3385
+ "federal-sanctions-cpf",
3386
+ "lgpd-12414-screening",
3387
+ "bookkeeping-cpf",
3388
+ "bureau-credito-cpf",
3389
+ "serasa-alternative",
3390
+ "boa-vista-alternative",
3391
+ "quod-alternative",
3392
+ "aluguel-credit-check"
3393
+ ],
3394
+ "aliases_search": [
3395
+ "CPF credit score API",
3396
+ "CPF credit check API",
3397
+ "Brazilian credit screening",
3398
+ "rental credit screening Brazil",
3399
+ "tenant screening API Brazil",
3400
+ "QUOD score API",
3401
+ "Serasa API alternative",
3402
+ "Boa Vista API alternative",
3403
+ "SPC API alternative",
3404
+ "score CPF aluguel",
3405
+ "consulta crédito CPF",
3406
+ "consulta CPF bureau",
3407
+ "bureau de crédito CPF API",
3408
+ "credit bureau Brazil API",
3409
+ "óbito CPF",
3410
+ "obito CPF API",
3411
+ "processos judiciais CPF",
3412
+ "sanções CPF CGU",
3413
+ "CEIS CPF",
3414
+ "CNEP CPF",
3415
+ "Lei 12.414 cadastro positivo",
3416
+ "cadastro positivo CPF",
3417
+ "aluguel score CPF",
3418
+ "locação score CPF",
3419
+ "imobiliária API crédito",
3420
+ "fintech onboarding CPF",
3421
+ "lending KYC CPF"
3422
+ ],
3423
+ "categories": [
3424
+ "public-data",
3425
+ "paid-data",
3426
+ "brazilian-government",
3427
+ "identifiers",
3428
+ "credit-bureau",
3429
+ "kyc",
3430
+ "rental-screening"
3431
+ ],
3432
+ "works_with": [],
3433
+ "fit_by_agent": {
3434
+ "claude-code": true,
3435
+ "claude-desktop": true,
3436
+ "cursor": true,
3437
+ "openclaw": true
3438
+ },
3439
+ "evals": [],
3440
+ "cost": {
3441
+ "type": "freemium",
3442
+ "free_tier": "Anonymous tier (no signup, no token) returns the federal-sanctions portion: CGU CEIS/CNEP/CEPIM/Acordos-Leniência + TCU Inidôneos lookup by CPF, plus rating-action bands (S&P) when the subject is a CNPJ issuer. Same response shape as paid tier; HIGH_PII fields (raw QUOD score, óbito date, judicial-process detail, full CPF dossier) are returned as null with `\"tier_required\":\"paid\"` — strict subset, so your handler code is unchanged when you add a token. Rate-limited per IP (600 RPM shared anonymous pool).",
3443
+ "paid_starts": "Mint a bearer token via auxiliar.ai's onboarding flow (no contract minimum — pay-per-call). Per-call costs are vendor pass-through: Direct Data charges R$1.98 for the QUOD score, R$0.36 for the CPF dossier, R$0.36 for the óbito check, R$3.30 for judicial processes by CPF. Sanctions and rating-action lookups remain free at all tiers. A full bundled call (score + dossier + óbito + judicial + sanctions + rating) costs R$5.99 in upstream charges. Cached per (tenant_id, sub_tenant_id) at TTLs documented per-field below.",
3444
+ "hidden_costs": [
3445
+ "Per-call billing scales linearly with screening volume — at >1k CPFs/day, model ahead. The R$3.30 judicial lookup is the biggest line item; cache it for 7 days unless your use case requires fresher data.",
3446
+ "Anonymous tier rate limit (600 RPM shared) is fine for one-off integration testing but will throttle a real screening pipeline — token-mint upgrades you to 60 RPM external (per-user) or 6000 RPM internal.",
3447
+ "Direct Data tokens require a R$50 trial top-up at app.directd.com.br to activate. auxiliar.ai's bearer-token tier abstracts this — operator pays Direct Data once, devs see one bill.",
3448
+ "QUOD score is Lei 12.414/2011 (Cadastro Positivo) — internal-decisioning only. Re-display to end-users (e.g. showing the score on a tenant-facing page) is out of compliance. See LGPD posture below."
3449
+ ],
3450
+ "cost_per_unit": {}
3451
+ },
3452
+ "pricing_tiers": [],
3453
+ "compliance": [],
3454
+ "risks": [
3455
+ {
3456
+ "severity": "high",
3457
+ "category": "regulatory",
3458
+ "description": "The QUOD score from Direct Data is Cadastro Positivo data (Lei 12.414/2011). It can be used internally to decide acceptance/ rejection but MUST NOT be re-disclosed to the screened individual, to the requester (e.g. landlord), or to any third party. If the tenant asks \"what was my score\", direct them to QUOD's consumer portal. The same applies to the full CPF dossier and judicial detail (Direct Data ToS §7.4 forbids re-disclosure via \"análises, estudos, ou outros meios\"). Paid-tier callers sign acceptance of these terms during token mint."
3459
+ },
3460
+ {
3461
+ "severity": "medium",
3462
+ "category": "regulatory",
3463
+ "description": "LGPD legitimate-interest basis is valid for credit-screening use cases (Art. 7º, IX combined with Lei 12.414/2011) but documents must record the basis at the request layer. The bearer-token tier stamps each call with the caller's tenant_id; keep your own access logs aligned to your DPO's retention policy."
3464
+ },
3465
+ {
3466
+ "severity": "medium",
3467
+ "category": "data_freshness",
3468
+ "description": "Sanctions data is sourced from CGU's Portal da Transparência daily bulk dumps + TCU's open-data CSV. Lag is typically <48h but can stretch over weekends/holidays. For real-time fraud detection (a sanction added today), pair with a webhook from the upstream registries; this capability does not subscribe to those."
3469
+ },
3470
+ {
3471
+ "severity": "low",
3472
+ "category": "vendor_lockin",
3473
+ "description": "The free-tier rating-action portion uses S&P Brazil only (Moody's and Fitch press releases are subscription-walled). For a multi-agency view, the paid tier composes external rating provider calls — cost passes through, response normalization is auxiliar's job."
3474
+ }
3475
+ ],
3476
+ "deps": {
3477
+ "requires": [
3478
+ "auxiliar-mcp"
3479
+ ],
3480
+ "composes_with": [
3481
+ "auxiliar-cnpj-fetch",
3482
+ "cnpj-ws",
3483
+ "cnpja-cnpj",
3484
+ "brasilapi-cnpj"
3485
+ ],
3486
+ "conflicts": [],
3487
+ "minimum_runtime": "Any HTTP client (curl works)."
3488
+ },
3489
+ "install": {
3490
+ "primary": {
3491
+ "install_command": "curl -X POST https://api.auxiliar.ai/api/invoke/sancoes_empresa -H \"content-type: application/json\" -d '{\"documento\": \"12345678909\"}'",
3492
+ "config_snippet": "# ============================================================\n# FREE TIER — anonymous, no signup, no token\n# Same response shape as paid; HIGH_PII fields = null + tier_required.\n# ============================================================\ncurl -s -X POST https://api.auxiliar.ai/api/invoke/sancoes_empresa \\\n -H \"content-type: application/json\" \\\n -d '{\"documento\": \"12345678909\"}'\n# → returns sanctions list. score/obito/judicial = null + tier_required:\"paid\".\n#\n# ============================================================\n# PAID TIER — bearer token (mint at https://auxiliar.ai/account)\n# One bundled screening = 4 invoke calls + 1 sanctions call:\n# ============================================================\nAUXILIAR_TOKEN=\"<your bearer token>\"\nCPF=\"12345678909\"\n#\n# 1. QUOD score (R$1.98, 30d cache)\ncurl -s -X POST https://api.auxiliar.ai/api/invoke/directd_credit_score \\\n -H \"Authorization: Bearer $AUXILIAR_TOKEN\" \\\n -H \"content-type: application/json\" \\\n -d \"{\\\"cpf\\\": \\\"$CPF\\\"}\"\n# 2. CPF dossier (R$0.36, 30d cache)\ncurl -s -X POST https://api.auxiliar.ai/api/invoke/directd_cpf_dossie \\\n -H \"Authorization: Bearer $AUXILIAR_TOKEN\" \\\n -H \"content-type: application/json\" \\\n -d \"{\\\"cpf\\\": \\\"$CPF\\\"}\"\n# 3. Óbito (R$0.36, permanent cache)\ncurl -s -X POST https://api.auxiliar.ai/api/invoke/directd_obito \\\n -H \"Authorization: Bearer $AUXILIAR_TOKEN\" \\\n -H \"content-type: application/json\" \\\n -d \"{\\\"cpf\\\": \\\"$CPF\\\"}\"\n# 4. Judicial processes (R$3.30, 7d cache)\ncurl -s -X POST https://api.auxiliar.ai/api/invoke/directd_processo_por_documento \\\n -H \"Authorization: Bearer $AUXILIAR_TOKEN\" \\\n -H \"content-type: application/json\" \\\n -d \"{\\\"cpf\\\": \\\"$CPF\\\"}\"\n# 5. Federal sanctions (free, no token needed even on paid tier)\ncurl -s -X POST https://api.auxiliar.ai/api/invoke/sancoes_empresa \\\n -H \"content-type: application/json\" \\\n -d \"{\\\"documento\\\": \\\"$CPF\\\"}\"\n#\n# See https://auxiliar.ai/data/credit-score-cpf/ for the merged-\n# response schema your handler should target, raw upstream samples\n# per tool, judicial coverage matrix, and the LGPD/Lei 12.414/2011\n# internal-decisioning-only constraint. A single bundled aggregate\n# tool (one call → merged response) is roadmap-deferred — today's\n# integration is 5 calls + client-side merge, billed per call.\n",
3493
+ "setup_url": "https://auxiliar.ai/data/credit-score-cpf/",
3494
+ "estimated_minutes": 5
3495
+ },
3496
+ "by_agent": {
3497
+ "claude-code": {
3498
+ "install_command": "claude mcp add auxiliar npx auxiliar-mcp",
3499
+ "config_snippet": "# In-loop dispatch via auxiliar-mcp (one MCP, four tool slugs):\ninvoke_capability(tool=\"sancoes_empresa\", args={\"documento\": \"12345678909\"}) # free\ninvoke_capability(tool=\"directd_credit_score\", args={\"cpf\": \"12345678909\"}) # paid\ninvoke_capability(tool=\"directd_cpf_dossie\", args={\"cpf\": \"12345678909\"}) # paid\ninvoke_capability(tool=\"directd_obito\", args={\"cpf\": \"12345678909\"}) # paid\ninvoke_capability(tool=\"directd_processo_por_documento\", args={\"cpf\": \"12345678909\"}) # paid\n# find_capability(\"rental-credit-screening\") returns this YAML.\n",
3500
+ "estimated_minutes": 3
3501
+ },
3502
+ "claude-desktop": {
3503
+ "install_command": "Add to ~/Library/Application Support/Claude/claude_desktop_config.json",
3504
+ "config_snippet": "{\n \"mcpServers\": {\n \"auxiliar\": {\n \"command\": \"npx\",\n \"args\": [\"-y\", \"auxiliar-mcp\"]\n }\n }\n}\n",
3505
+ "estimated_minutes": 5
3506
+ },
3507
+ "cursor": {
3508
+ "install_command": "Add via Cursor's MCP settings UI or .cursor/mcp.json",
3509
+ "config_snippet": "{ \"mcpServers\": { \"auxiliar\": { \"command\": \"npx\", \"args\": [\"-y\", \"auxiliar-mcp\"] } } }\n",
3510
+ "estimated_minutes": 3
3511
+ },
3512
+ "openclaw": {
3513
+ "install_command": "curl -X POST https://api.auxiliar.ai/api/invoke/sancoes_empresa -H \"content-type: application/json\" -d '{\"documento\": \"...\"}'",
3514
+ "config_snippet": "# OpenClaw / Telegram-bot / shell-bound agents call the gateway\n# directly via HTTP. Same five POSTs as the curl snippet above.\n# No MCP host required.\n",
3515
+ "estimated_minutes": 5
3516
+ }
3517
+ },
3518
+ "by_framework": {}
3519
+ },
3520
+ "last_verified": "2026-04-30",
3521
+ "verification_method": "iterated-from-laranja-friction-01KQGVW3ZW9D5TBX0PP65KNVWC-step3-page-test",
3522
+ "alternatives_considered": [],
3523
+ "compared_to": [],
3524
+ "choose_if": "Your app integrates Brazilian CPF credit screening — rental platform, fintech KYC, lending onboarding, supplier-onboarding for regulated vendors. Pick this when you want (a) one auth surface for QUOD score + dossier + óbito + judicial + federal sanctions instead of four vendor accounts, (b) a free anonymous starting point that returns the same field shape your paid handler will see (no refactor), (c) predictable per-call pricing with no monthly minimum, (d) explicit Lei 12.414/2011 + LGPD posture documented at the response level so your DPO doesn't have to re-derive it.",
3525
+ "avoid_if": "You only need one upstream (e.g. just QUOD score, no judicial / no sanctions). Hit Direct Data directly via app.directd.com.br — one vendor account is simpler than two. Or, your screening volume is >10k CPFs/day with steady throughput — at that scale, negotiate directly with QUOD or Serasa for a flat-rate enterprise contract.",
3526
+ "page_url": "https://auxiliar.ai/data/credit-score-cpf/",
3527
+ "external_homepage": "https://auxiliar.ai/data/credit-score-cpf/",
3528
+ "repository": "https://github.com/Tlalvarez/Auxiliar-ai",
3529
+ "license": "MIT (gateway code); upstream data per Direct Data ToS, CGU open-data, TCU open-data, S&P public press releases."
3530
+ },
3531
+ {
3532
+ "id": "cumbuca-of-data-mcp",
3533
+ "element_type": "mcp",
3534
+ "name": "Cumbuca Open Finance Data MCP",
3535
+ "description": "HTTP-transport MCP server that lets AI agents query a user's Brazilian bank data — statements + credit-card transactions — via Open Finance (Bacen-regulated; CPF + bank biometric/PIN auth, no Cumbuca account, no shared credentials). Built by Cumbuca, an ITP-licensed Payment Institution. MVP scope: single account per setup, ~5 queries/day, BR banks only.",
3536
+ "long_description": "Cumbuca operates as a thin regulated proxy under its Payment Institution (ITP) license. Customers authorize via their own bank — biometrics or PIN — and the MCP exposes the resulting Open Finance data feed to any MCP client (Claude Code, Claude Desktop, ChatGPT Developer Mode, Cursor, etc.). Use this when an agent needs to read the user's actual personal bank statement or credit-card transactions in real time. Authorization can be revoked at any time through the user's bank.",
3537
+ "jtbd_tags": [
3538
+ "bank-data-access",
3539
+ "personal-finance-ai",
3540
+ "brazilian-bank-statement",
3541
+ "credit-card-transaction-feed",
3542
+ "subscription-audit",
3543
+ "expense-breakdown",
3544
+ "open-finance-brasil",
3545
+ "bcb-regulated-data",
3546
+ "mcp-bank-connector",
3547
+ "cpf-authorized-bank-data"
3548
+ ],
3549
+ "aliases_search": [
3550
+ "cumbuca",
3551
+ "cumbuca mcp",
3552
+ "cumbuca open finance",
3553
+ "open finance mcp",
3554
+ "openfinance mcp",
3555
+ "open finance brasil mcp",
3556
+ "open finance data mcp",
3557
+ "extrato bancário MCP",
3558
+ "extrato bancário IA",
3559
+ "meu banco no claude",
3560
+ "meu banco no chatgpt",
3561
+ "claude lê meu extrato",
3562
+ "chatgpt lê meu extrato",
3563
+ "bank data mcp brazil",
3564
+ "brazilian bank data ai",
3565
+ "bacen open finance mcp",
3566
+ "cartão de crédito IA",
3567
+ "credit card transactions MCP brazil",
3568
+ "personal finance MCP",
3569
+ "finanças pessoais IA brasil"
3570
+ ],
3571
+ "categories": [
3572
+ "mcp-server",
3573
+ "open-finance",
3574
+ "personal-finance",
3575
+ "bank-data",
3576
+ "brazilian-data",
3577
+ "bcb-regulated"
3578
+ ],
3579
+ "works_with": [
3580
+ "Claude Code",
3581
+ "Claude Desktop",
3582
+ "ChatGPT (Developer Mode)",
3583
+ "Cursor",
3584
+ "any MCP-compatible client"
3585
+ ],
3586
+ "fit_by_agent": {
3587
+ "claude-code": true,
3588
+ "claude-desktop": true,
3589
+ "chatgpt": true,
3590
+ "cursor": true
3591
+ },
3592
+ "evals": [],
3593
+ "cost": {
3594
+ "type": "free",
3595
+ "free_tier": "Free during MVP. Vendor-published rate limit ~5 queries/day per user (verified 2026-05-07 via Product Hunt launch listing). Paid tier not publicly priced; treat as personal/retail-only for now.",
3596
+ "hidden_costs": [],
3597
+ "cost_per_unit": {}
3598
+ },
3599
+ "pricing_tiers": [],
3600
+ "compliance": [],
3601
+ "risks": [
3602
+ {
3603
+ "severity": "medium",
3604
+ "category": "scope_limit",
3605
+ "description": "MVP scope is statements + credit-card transactions, single account per setup, BR banks only. Investments, multi-account aggregation, SCR/credit-bureau, payment initiation, and FX/exchanges are not in the v1 surface. Don't promise net worth across accounts, debt aggregation, or investment analytics from this data source today."
3606
+ },
3607
+ {
3608
+ "severity": "medium",
3609
+ "category": "rate_limit",
3610
+ "description": "~5 queries/day per user during MVP. Suitable for one-shot user-initiated audits (subscription detection, monthly reconciliation), not for continuous monitoring or batch backfills."
3611
+ },
3612
+ {
3613
+ "severity": "low",
3614
+ "category": "regulatory",
3615
+ "description": "BR banks only by regulation (Open Finance is a Brazilian Bacen framework). Won't work for users outside Brazil. Cumbuca is the regulated proxy; the data flow follows Bacen's mTLS + JWS request signing."
3616
+ },
3617
+ {
3618
+ "severity": "low",
3619
+ "category": "maturity",
3620
+ "description": "MVP launched May 2026. API surface and rate limits may evolve; revisit last_verified before relying on this for critical workflows."
3621
+ }
3622
+ ],
3623
+ "deps": {
3624
+ "requires": [],
3625
+ "composes_with": [
3626
+ "auxiliar-mcp"
3627
+ ],
3628
+ "conflicts": []
3629
+ },
3630
+ "install": {
3631
+ "primary": {
3632
+ "install_command": "claude mcp add --transport http cumbuca https://mcp.cumbuca.com/mcp",
3633
+ "config_snippet": "# After install, the Open Finance authorization happens at first use:\n# the agent's first call triggers a redirect through the user's bank\n# for CPF + biometric/PIN consent. No Cumbuca account, no credentials shared.\n",
3634
+ "setup_url": "https://www.cumbuca.com/en/launchweek/of-data-mcp/",
3635
+ "estimated_minutes": 2
3636
+ },
3637
+ "by_agent": {
3638
+ "claude-desktop": {
3639
+ "install_command": "Settings → Connectors → Add custom connector → paste https://mcp.cumbuca.com/mcp",
3640
+ "estimated_minutes": 3
3641
+ },
3642
+ "chatgpt": {
3643
+ "install_command": "Settings → Connectors → Create → paste https://mcp.cumbuca.com/mcp (requires Developer Mode)",
3644
+ "config_snippet": "Developer Mode must be enabled in ChatGPT settings to add custom MCP connectors.",
3645
+ "estimated_minutes": 5
3646
+ },
3647
+ "cursor": {
3648
+ "install_command": "Add to .cursor/mcp.json with transport=http and url=https://mcp.cumbuca.com/mcp",
3649
+ "estimated_minutes": 3
3650
+ }
3651
+ },
3652
+ "by_framework": {}
3653
+ },
3654
+ "last_verified": "2026-05-07",
3655
+ "verification_method": "vendor-launch-page-2026-05-07",
3656
+ "alternatives_considered": [],
3657
+ "compared_to": [],
3658
+ "choose_if": "Your agent needs to read the user's actual Brazilian bank statement or credit-card transactions, with the user authorizing via their own bank (biometric/PIN). Best fit for personal-finance workflows that complete in one shot — subscription audits, monthly expense breakdowns, transaction search/reconciliation.",
3659
+ "avoid_if": "You need investments, multi-account net worth, SCR/credit-bureau, payment initiation, more than ~5 queries/day, or any non-Brazilian bank. Also avoid if continuous background monitoring is required — the daily query budget precludes polling-style flows.",
3660
+ "page_url": "https://auxiliar.ai/mcp/cumbuca-of-data-mcp/",
3661
+ "external_homepage": "https://www.cumbuca.com/en/launchweek/of-data-mcp/"
3662
+ },
2844
3663
  {
2845
3664
  "id": "datadog",
2846
3665
  "element_type": "cloud_service",
@@ -3079,14 +3898,99 @@
3079
3898
  "dropped_because": "Choose Upstash if You need serverless/edge-compatible Redis with HTTP access"
3080
3899
  }
3081
3900
  ],
3082
- "compared_to": [
3083
- "redis-cloud",
3084
- "upstash"
3085
- ],
3086
- "choose_if": "You want a Redis-compatible cache with higher performance and are comfortable self-hosting.",
3087
- "avoid_if": "You want managed hosting with zero ops — use Redis Cloud or Upstash instead.",
3088
- "page_url": "https://auxiliar.ai/service/dragonfly/",
3089
- "external_homepage": "https://www.dragonflydb.io"
3901
+ "compared_to": [
3902
+ "redis-cloud",
3903
+ "upstash"
3904
+ ],
3905
+ "choose_if": "You want a Redis-compatible cache with higher performance and are comfortable self-hosting.",
3906
+ "avoid_if": "You want managed hosting with zero ops — use Redis Cloud or Upstash instead.",
3907
+ "page_url": "https://auxiliar.ai/service/dragonfly/",
3908
+ "external_homepage": "https://www.dragonflydb.io"
3909
+ },
3910
+ {
3911
+ "id": "evento-futebol",
3912
+ "element_type": "data",
3913
+ "name": "Brasileirão Série A — standings, rodadas, artilheiros",
3914
+ "description": "Live Brasileirão Série A data from football-data.org: full standings (total + home + away splits), rodada-by-rodada match results, top scorers, team rosters. 10-season history available. Aggressive caching (15 min during live rodadas, 1h otherwise) to stay within free-tier limits. Eliminates training-data hallucinations on current standings by hitting live data per request.",
3915
+ "jtbd_tags": [
3916
+ "brasileirao-tabela",
3917
+ "brasileirao-classificacao",
3918
+ "rodada-brasileirao",
3919
+ "artilheiros",
3920
+ "football-data-brazil",
3921
+ "sports-current-events",
3922
+ "bsa-standings"
3923
+ ],
3924
+ "aliases_search": [
3925
+ "Brasileirão",
3926
+ "Brasileirão Série A",
3927
+ "tabela Brasileirão",
3928
+ "classificação Brasileirão",
3929
+ "rodada Brasileirão",
3930
+ "artilheiros Brasileirão",
3931
+ "BSA standings",
3932
+ "Brazilian football table",
3933
+ "BSA fixtures"
3934
+ ],
3935
+ "categories": [
3936
+ "sports",
3937
+ "brazilian-football",
3938
+ "current-events"
3939
+ ],
3940
+ "works_with": [],
3941
+ "fit_by_agent": {
3942
+ "claude-code": true,
3943
+ "claude-desktop": true,
3944
+ "cursor": true,
3945
+ "openclaw": true,
3946
+ "hermes": true
3947
+ },
3948
+ "evals": [],
3949
+ "cost": {
3950
+ "type": "free",
3951
+ "free_tier": "10 req/min on football-data.org TIER_ONE; cached aggressively to stay under cap.",
3952
+ "hidden_costs": [
3953
+ "Requires FOOTBALL_DATA_KEY env var on the Lambda; until set, capability raises FootballDataNotConfiguredError.",
3954
+ "Free tier rate-limits at 10 req/min; cache TTLs (15 min live / 1h otherwise) prevent burst exhaustion."
3955
+ ],
3956
+ "cost_per_unit": {}
3957
+ },
3958
+ "pricing_tiers": [],
3959
+ "compliance": [],
3960
+ "risks": [
3961
+ {
3962
+ "severity": "medium",
3963
+ "category": "operational",
3964
+ "description": "Capability is gated on the FOOTBALL_DATA_KEY env var being set in the Lambda environment. Until registered (free at https://www.football-data.org/client/register), all calls return FootballDataNotConfiguredError. This is THE blocker for cap #9's tier migration in the laranja A/B experiment — without the key, hermesag falls back to training data and hallucinates current standings."
3965
+ },
3966
+ {
3967
+ "severity": "low",
3968
+ "category": "supply_chain",
3969
+ "description": "football-data.org is a third-party service. Free tier has no SLA; production workflows on this surface should plan for occasional 404s during their maintenance windows."
3970
+ }
3971
+ ],
3972
+ "deps": {
3973
+ "requires": [],
3974
+ "composes_with": [],
3975
+ "conflicts": [],
3976
+ "minimum_runtime": "Any HTTP client"
3977
+ },
3978
+ "install": {
3979
+ "primary": {
3980
+ "install_command": "curl -s -H \"Authorization: Bearer $AUXILIAR_TOKEN\" \"https://api.auxiliar.ai/api/invoke/br_futebol_brasileirao_tabela\"",
3981
+ "config_snippet": "# Current standings (total + home + away splits):\n# GET /api/invoke/br_futebol_brasileirao_tabela?season=2026\n# → { season, matchday, standings_total: [{ position, team, points, wins, draws, losses, goal_difference }, ...] }\n#\n# Match results by rodada:\n# GET /api/invoke/br_futebol_brasileirao_rodada?matchday=12\n# → { matchday, matches: [{ home, away, score, status, kickoff }, ...] }\n#\n# Top scorers:\n# GET /api/invoke/br_futebol_brasileirao_artilheiros?season=2026\n# → ranked list of scorers with goals/assists\n#\n# If you see FootballDataNotConfiguredError in the response, the\n# FOOTBALL_DATA_KEY env var is unset on the gateway Lambda.\n# Fall back to web search until ops registers the key.\n",
3982
+ "estimated_minutes": 5
3983
+ },
3984
+ "by_agent": {},
3985
+ "by_framework": {}
3986
+ },
3987
+ "last_verified": "2026-05-03",
3988
+ "verification_method": "laranja-data-plane-audit-2026-05-02",
3989
+ "alternatives_considered": [],
3990
+ "compared_to": [],
3991
+ "page_url": "https://auxiliar.ai/data/evento-futebol/",
3992
+ "external_homepage": "https://api.auxiliar.ai/api/invoke/br_futebol_brasileirao_tabela",
3993
+ "repository": "https://github.com/Tlalvarez/Auxiliar-ai"
3090
3994
  },
3091
3995
  {
3092
3996
  "id": "firebase-auth",
@@ -4816,6 +5720,196 @@
4816
5720
  "page_url": "https://auxiliar.ai/service/meilisearch/",
4817
5721
  "external_homepage": "https://meilisearch.com"
4818
5722
  },
5723
+ {
5724
+ "id": "mercado-anp",
5725
+ "element_type": "data",
5726
+ "name": "ANP — Brazilian fuel-price weekly surveys",
5727
+ "description": "Direct access to ANP's weekly fuel-price surveys (gasoline, ethanol, diesel) at national, state, capital, and municipal levels. Returns typed responses with embedded data_source_url + survey_week + last_collected_at so agents can self-attribute provenance inline. Covers ~5000+ Brazilian municipalities with weekly cadence.",
5728
+ "jtbd_tags": [
5729
+ "fuel-prices",
5730
+ "anp-surveys",
5731
+ "gasoline-price-lookup",
5732
+ "etanol-price-lookup",
5733
+ "diesel-price-lookup",
5734
+ "logistics-cost-monitoring",
5735
+ "brazilian-fuel-data",
5736
+ "fuel-price-by-municipality",
5737
+ "fuel-price-by-state",
5738
+ "national-fuel-average"
5739
+ ],
5740
+ "aliases_search": [
5741
+ "ANP",
5742
+ "ANP combustíveis",
5743
+ "preço gasolina",
5744
+ "preço etanol",
5745
+ "preço diesel",
5746
+ "fuel price Brazil",
5747
+ "Brazilian fuel survey",
5748
+ "gasolina por município",
5749
+ "combustível por cidade",
5750
+ "posto gasolina preço"
5751
+ ],
5752
+ "categories": [
5753
+ "public-data",
5754
+ "brazilian-government",
5755
+ "logistics",
5756
+ "commodity-prices",
5757
+ "fuel-data"
5758
+ ],
5759
+ "works_with": [],
5760
+ "fit_by_agent": {
5761
+ "claude-code": true,
5762
+ "claude-desktop": true,
5763
+ "cursor": true,
5764
+ "openclaw": true,
5765
+ "hermes": true
5766
+ },
5767
+ "evals": [],
5768
+ "cost": {
5769
+ "type": "free",
5770
+ "free_tier": "Unlimited via auxiliar.ai gateway. ANP upstream is open data.",
5771
+ "hidden_costs": [
5772
+ "ANP weekly XLSX is fetched + parsed; first call per week takes ~10-15s; cached after.",
5773
+ "Survey cadence is weekly (publishes Tuesdays); freshness is bounded to ~7 days."
5774
+ ],
5775
+ "cost_per_unit": {}
5776
+ },
5777
+ "pricing_tiers": [],
5778
+ "compliance": [],
5779
+ "risks": [
5780
+ {
5781
+ "severity": "low",
5782
+ "category": "operational",
5783
+ "description": "ANP's weekly XLSX shape can change between editions; the parser is lenient but new columns may not be exposed until the wrapper updates."
5784
+ },
5785
+ {
5786
+ "severity": "low",
5787
+ "category": "regulatory",
5788
+ "description": "All ANP data is public open data. Safe for high-volume integration."
5789
+ }
5790
+ ],
5791
+ "deps": {
5792
+ "requires": [],
5793
+ "composes_with": [
5794
+ "mercado-bcb"
5795
+ ],
5796
+ "conflicts": [],
5797
+ "minimum_runtime": "Any HTTP client"
5798
+ },
5799
+ "install": {
5800
+ "primary": {
5801
+ "install_command": "curl -s -H \"Authorization: Bearer $AUXILIAR_TOKEN\" \"https://api.auxiliar.ai/api/invoke/anp_combustiveis_precos_municipio?summary_url=...&uf=SP&municipio=SAO+PAULO\"",
5802
+ "config_snippet": "# Latest survey week (no params):\n# GET /api/invoke/anp_combustiveis_ultima_semana\n# → returns the most recent week metadata + summary_url for the XLSX\n#\n# Prices by municipality:\n# GET /api/invoke/anp_combustiveis_precos_municipio\n# params: summary_url (from ultima_semana), uf (2 letters), municipio (name)\n# returns: { uf, municipio, total, rows, data_source_url, survey_week, last_collected_at }\n#\n# National-level time series:\n# GET /api/invoke/anp_combustiveis_media_nacional\n# params: produto (default \"GASOLINA COMUM\"), last_weeks (default 8)\n# returns: weekly average time series with same self-attribution fields\n#\n# All responses include `data_source_url` (the original ANP XLSX URL),\n# `data_source_authority: \"anp.gov.br\"`, `survey_week`, and\n# `last_collected_at` (UTC ISO timestamp) — quote these inline in\n# the agent's answer for clean source attribution.\n",
5803
+ "estimated_minutes": 5
5804
+ },
5805
+ "by_agent": {},
5806
+ "by_framework": {}
5807
+ },
5808
+ "last_verified": "2026-05-03",
5809
+ "verification_method": "laranja-data-plane-audit-2026-05-02",
5810
+ "alternatives_considered": [],
5811
+ "compared_to": [],
5812
+ "page_url": "https://auxiliar.ai/data/mercado-anp/",
5813
+ "external_homepage": "https://api.auxiliar.ai/api/invoke/anp_combustiveis_ultima_semana",
5814
+ "repository": "https://github.com/Tlalvarez/Auxiliar-ai"
5815
+ },
5816
+ {
5817
+ "id": "mercado-bcb",
5818
+ "element_type": "data",
5819
+ "name": "Banco Central do Brasil — monetary policy + indicators",
5820
+ "description": "Direct access to BCB's open data: SELIC rate, COPOM meeting decisions (atas + comunicados), Focus market expectations, IFData bank registry + balance-sheet rows. Wraps Olinda OData and bcb.gov.br endpoints behind one auth surface for any Brazilian-monetary-policy or banking-sector JTBD.",
5821
+ "jtbd_tags": [
5822
+ "selic-lookup",
5823
+ "copom-decision-tracking",
5824
+ "copom-minutes-fetch",
5825
+ "focus-expectations",
5826
+ "monetary-policy-monitoring",
5827
+ "banking-sector-data",
5828
+ "bcb-ifdata",
5829
+ "brazilian-financial-markets",
5830
+ "bcb-lookup",
5831
+ "banco-central-brasil"
5832
+ ],
5833
+ "aliases_search": [
5834
+ "SELIC",
5835
+ "SELIC atual",
5836
+ "COPOM",
5837
+ "COPOM última reunião",
5838
+ "COPOM ata",
5839
+ "Banco Central",
5840
+ "Banco Central do Brasil",
5841
+ "BCB SELIC",
5842
+ "BCB API",
5843
+ "Focus expectations",
5844
+ "Focus expectativas",
5845
+ "IFData",
5846
+ "taxa básica de juros",
5847
+ "monetary policy Brazil"
5848
+ ],
5849
+ "categories": [
5850
+ "public-data",
5851
+ "brazilian-government",
5852
+ "financial-markets",
5853
+ "monetary-policy",
5854
+ "banking"
5855
+ ],
5856
+ "works_with": [],
5857
+ "fit_by_agent": {
5858
+ "claude-code": true,
5859
+ "claude-desktop": true,
5860
+ "cursor": true,
5861
+ "openclaw": true,
5862
+ "hermes": true
5863
+ },
5864
+ "evals": [],
5865
+ "cost": {
5866
+ "type": "free",
5867
+ "free_tier": "Unlimited via auxiliar.ai gateway. BCB upstream is open data, no auth required.",
5868
+ "hidden_costs": [
5869
+ "BCB site occasionally returns 503 during high-traffic moments (post-COPOM); gateway retries.",
5870
+ "Focus expectations data lags by ~1 business day from BCB's publication."
5871
+ ],
5872
+ "cost_per_unit": {}
5873
+ },
5874
+ "pricing_tiers": [],
5875
+ "compliance": [],
5876
+ "risks": [
5877
+ {
5878
+ "severity": "low",
5879
+ "category": "operational",
5880
+ "description": "BCB's Olinda OData surface evolves; field names occasionally change between relatório versions. The gateway normalizes to typed responses."
5881
+ },
5882
+ {
5883
+ "severity": "low",
5884
+ "category": "regulatory",
5885
+ "description": "No PII concerns — all data is public BCB open data. Safe for high-volume integration."
5886
+ }
5887
+ ],
5888
+ "deps": {
5889
+ "requires": [],
5890
+ "composes_with": [
5891
+ "auxiliar-cnpj-fetch"
5892
+ ],
5893
+ "conflicts": [],
5894
+ "minimum_runtime": "Any HTTP client"
5895
+ },
5896
+ "install": {
5897
+ "primary": {
5898
+ "install_command": "curl -s -H \"Authorization: Bearer $AUXILIAR_TOKEN\" \"https://api.auxiliar.ai/api/invoke/bcb_copom_reunioes_recentes?limit=3\"",
5899
+ "config_snippet": "# SELIC + last COPOM decision in one call:\n# GET /api/invoke/bcb_copom_reunioes_recentes?limit=1\n# → most recent meeting: date, decision direction, SELIC rate, ata + comunicado URLs\n# GET /api/invoke/bcb_copom_reuniao_fetch?reuniao_id=<n>\n# → full ata + comunicado text inline\n# GET /api/invoke/bcb_focus_expectativas?indicator=ipca\n# → Focus median forecast (ipca, selic, pib, cambio)\n# GET /api/invoke/bcb_ifdata_bancos_por_mes?ano_mes=202604\n# → IFData bank registry snapshot\n",
5900
+ "estimated_minutes": 5
5901
+ },
5902
+ "by_agent": {},
5903
+ "by_framework": {}
5904
+ },
5905
+ "last_verified": "2026-05-02",
5906
+ "verification_method": "laranja-data-plane-audit-2026-05-02",
5907
+ "alternatives_considered": [],
5908
+ "compared_to": [],
5909
+ "page_url": "https://auxiliar.ai/data/mercado-bcb/",
5910
+ "external_homepage": "https://api.auxiliar.ai/api/invoke/bcb_copom_reunioes_recentes",
5911
+ "repository": "https://github.com/Tlalvarez/Auxiliar-ai"
5912
+ },
4819
5913
  {
4820
5914
  "id": "messagebird",
4821
5915
  "element_type": "cloud_service",
@@ -5311,6 +6405,106 @@
5311
6405
  "license": "MIT",
5312
6406
  "clawhub_slug": "nfs-e-parser"
5313
6407
  },
6408
+ {
6409
+ "id": "norma-dou",
6410
+ "element_type": "data",
6411
+ "name": "DOU — Diário Oficial da União search + ato fetch",
6412
+ "description": "Direct full-text search and ato fetch against Brazil's Diário Oficial da União (in.gov.br). Returns typed search hits (title, ato type, date, section, slug, permalink) plus full parsed legal text for individual atos. Use it for regulatory-change tracking, recent-norm lookup by topic + window, and DOU-anchored compliance monitoring.",
6413
+ "jtbd_tags": [
6414
+ "dou-search",
6415
+ "federal-norms",
6416
+ "regulatory-change-tracking",
6417
+ "recent-decretos",
6418
+ "portarias-federais",
6419
+ "instrucoes-normativas",
6420
+ "diario-oficial-uniao",
6421
+ "imprensa-nacional",
6422
+ "compliance-monitoring",
6423
+ "norma-fetch"
6424
+ ],
6425
+ "aliases_search": [
6426
+ "DOU",
6427
+ "Diário Oficial da União",
6428
+ "Imprensa Nacional",
6429
+ "in.gov.br",
6430
+ "federal norms Brazil",
6431
+ "decreto federal recente",
6432
+ "portaria federal",
6433
+ "instrução normativa",
6434
+ "DOU search",
6435
+ "DOU full text",
6436
+ "regulatory tracking Brazil",
6437
+ "normas federais",
6438
+ "atos normativos federais"
6439
+ ],
6440
+ "categories": [
6441
+ "public-data",
6442
+ "brazilian-government",
6443
+ "regulatory",
6444
+ "federal-norms"
6445
+ ],
6446
+ "works_with": [],
6447
+ "fit_by_agent": {
6448
+ "claude-code": true,
6449
+ "claude-desktop": true,
6450
+ "cursor": true,
6451
+ "openclaw": true,
6452
+ "hermes": true
6453
+ },
6454
+ "evals": [],
6455
+ "cost": {
6456
+ "type": "free",
6457
+ "free_tier": "Unlimited via auxiliar.ai gateway. DOU upstream is open data, no auth.",
6458
+ "hidden_costs": [
6459
+ "DOU's edge occasionally returns a WAF challenge; wrapper auto-retries via ScraperAPI proxy (rare, +1-2s latency).",
6460
+ "Search-result quality depends on DOU-side tokenization; tighten via secao + date filters."
6461
+ ],
6462
+ "cost_per_unit": {}
6463
+ },
6464
+ "pricing_tiers": [],
6465
+ "compliance": [],
6466
+ "risks": [
6467
+ {
6468
+ "severity": "medium",
6469
+ "category": "operational",
6470
+ "description": "DOU's edge can take 5-8s per call when not cached; agents firing many query variations across the same probe (e.g., topic × date-window grid) can exhaust their own time budget. Per-call timeout was tightened from 20s → 8s on 2026-05-03 to bound this. **Advisory for callers**: prefer a single broad query plus client-side filtering over many narrow variations. The 1-hour result cache helps repeat queries; novel queries are bounded by the upstream's natural latency."
6471
+ },
6472
+ {
6473
+ "severity": "low",
6474
+ "category": "operational",
6475
+ "description": "DOU's HTML structure changes occasionally; wrapper parses inline JSON blobs and may lag 1-2 days on front-end updates."
6476
+ },
6477
+ {
6478
+ "severity": "low",
6479
+ "category": "regulatory",
6480
+ "description": "All DOU content is public domain per the Lei de Acesso à Informação. Safe for ingestion at any volume."
6481
+ }
6482
+ ],
6483
+ "deps": {
6484
+ "requires": [],
6485
+ "composes_with": [
6486
+ "auxiliar-cnpj-fetch"
6487
+ ],
6488
+ "conflicts": [],
6489
+ "minimum_runtime": "Any HTTP client"
6490
+ },
6491
+ "install": {
6492
+ "primary": {
6493
+ "install_command": "curl -s -H \"Authorization: Bearer $AUXILIAR_TOKEN\" \"https://api.auxiliar.ai/api/invoke/dou_buscar?q=incentivos+fiscais+energia+solar&data_inicial=2026-04-01&data_final=2026-05-02\"",
6494
+ "config_snippet": "# Search the DOU full-text:\n# GET /api/invoke/dou_buscar\n# params: q (free-text), data_inicial, data_final (ISO YYYY-MM-DD),\n# secao (default \"do1\" — atos normativos)\n# returns: hits with title, art_type, date_brl, section, slug, permalink\n# GET /api/invoke/dou_ato_fetch?url=<permalink>\n# returns: parsed ato — title, type, date, ementa, body text\n# Sections: do1 (atos normativos), do2 (pessoal), do3 (extraordinários)\n",
6495
+ "estimated_minutes": 5
6496
+ },
6497
+ "by_agent": {},
6498
+ "by_framework": {}
6499
+ },
6500
+ "last_verified": "2026-05-02",
6501
+ "verification_method": "laranja-data-plane-audit-2026-05-02",
6502
+ "alternatives_considered": [],
6503
+ "compared_to": [],
6504
+ "page_url": "https://auxiliar.ai/data/norma-dou/",
6505
+ "external_homepage": "https://api.auxiliar.ai/api/invoke/dou_buscar",
6506
+ "repository": "https://github.com/Tlalvarez/Auxiliar-ai"
6507
+ },
5314
6508
  {
5315
6509
  "id": "openai",
5316
6510
  "element_type": "cloud_service",
@@ -6531,6 +7725,137 @@
6531
7725
  "page_url": "https://auxiliar.ai/service/postmark/",
6532
7726
  "external_homepage": "https://postmarkapp.com"
6533
7727
  },
7728
+ {
7729
+ "id": "printing-press",
7730
+ "element_type": "skill",
7731
+ "name": "Printing Press",
7732
+ "description": "Open-source CLI factory for agents. One command (/printing-press <api>) takes any API spec, website, or HAR and emits a token-efficient Go CLI + Claude Code skill + OpenClaw skill + MCP server — sharing one local SQLite mirror with FTS5 search, compound commands, and --compact token compression (60-80% fewer tokens for high-gravity fields).",
7733
+ "long_description": "Printing Press treats every API as having a \"secret identity\" beyond what its designers say — Linear is \"a team behavior observatory,\" Discord is \"a searchable knowledge base,\" Stripe is \"a business health monitor\" — and designs commands around that, not around the raw endpoint surface. The generator outputs four formats from one spec (Go CLI, Claude Code skill, OpenClaw skill, MCP server), all sharing one internal client + SQLite store. Compound queries impossible against stateless API wrappers (\"every blocked issue whose blocker has been stuck for a week\") become trivial against the local mirror. Typed exit codes (0/2/3/4/5/7) give agents a structured self-correction signal. Anti-MCP-bloat claim from the project: CLIs are \"100x fewer tokens than MCP tool definitions\" because LLMs were trained on shell interactions and MCP tool schemas are large.",
7734
+ "jtbd_tags": [
7735
+ "api-to-cli-for-agents",
7736
+ "generate-mcp-server-from-spec",
7737
+ "agent-native-cli",
7738
+ "token-efficient-tool-output",
7739
+ "sqlite-mirror-for-api",
7740
+ "claude-code-skill-generator",
7741
+ "openclaw-skill-generator",
7742
+ "compound-query-cli",
7743
+ "api-to-agent-toolkit"
7744
+ ],
7745
+ "aliases_search": [
7746
+ "printing press",
7747
+ "cli printing press",
7748
+ "print agent cli",
7749
+ "api to cli generator",
7750
+ "api to agent cli",
7751
+ "generate a token-efficient CLI for an agent from any API spec website or HAR",
7752
+ "factory that prints a Claude Code skill plus an MCP server from one OpenAPI spec",
7753
+ "tool that turns an API into a Go CLI a Claude Code skill an OpenClaw skill and an MCP server in one command",
7754
+ "agent-native CLI generator with local SQLite mirror and FTS5 search and compound queries",
7755
+ "--compact mode CLI 60 80 percent fewer tokens high-gravity fields",
7756
+ "alternative to OpenAPI generators Speakeasy Fern with data layer for agents",
7757
+ "print agent CLI from API spec",
7758
+ "generate MCP server from website or HAR file",
7759
+ "CLI that beats MCP token cost for agents",
7760
+ "how to expose a third-party API to Claude Code without writing my own MCP",
7761
+ "automatic generation of agent-native tools from API specs"
7762
+ ],
7763
+ "categories": [
7764
+ "cli-generator",
7765
+ "agent-tooling",
7766
+ "api-tooling",
7767
+ "code-generation",
7768
+ "skill-factory"
7769
+ ],
7770
+ "works_with": [
7771
+ "Claude Code",
7772
+ "Claude Desktop",
7773
+ "Cursor",
7774
+ "Windsurf",
7775
+ "OpenClaw",
7776
+ "Go 1.22+"
7777
+ ],
7778
+ "fit_by_agent": {
7779
+ "claude-code": true,
7780
+ "claude-desktop": true,
7781
+ "cursor": true,
7782
+ "openclaw": true
7783
+ },
7784
+ "evals": [],
7785
+ "cost": {
7786
+ "type": "free",
7787
+ "free_tier": "MIT-licensed open source. No commercial tier published. Project notes that Codex-mode generation reduces Opus token spend ~60% during printing — cost-conscious by design.",
7788
+ "hidden_costs": [],
7789
+ "cost_per_unit": {}
7790
+ },
7791
+ "pricing_tiers": [],
7792
+ "compliance": [],
7793
+ "risks": [
7794
+ {
7795
+ "severity": "low",
7796
+ "category": "maturity",
7797
+ "description": "Pre-1.0 project as of mid-2026. The community library has 19+ verified CLIs but coverage skews toward developer-tooling APIs (Linear, GitHub, Discord, Asana, HubSpot) rather than e.g. Brazilian public-data APIs."
7798
+ },
7799
+ {
7800
+ "severity": "low",
7801
+ "category": "scope",
7802
+ "description": "Generates the *form* of an agent tool from an API spec; doesn't curate which tool the agent should use for what task (that's auxiliar.ai's surface). Layering cleanly: factory + catalog + router are different jobs."
7803
+ },
7804
+ {
7805
+ "severity": "low",
7806
+ "category": "lock-in",
7807
+ "description": "Generated CLI ships with a specific shape (Cobra + SQLite + FTS5 + typed exit codes). If the upstream changes the shape, regenerated CLIs may need migration."
7808
+ },
7809
+ {
7810
+ "severity": "low",
7811
+ "category": "runtime",
7812
+ "description": "Requires Go 1.22+ on the host. Sandboxed JS-only runtimes or restricted enterprise dev shells without Go can't install the binary; the MCP-server output is the workaround for those environments."
7813
+ }
7814
+ ],
7815
+ "deps": {
7816
+ "requires": [],
7817
+ "composes_with": [
7818
+ "auxiliar-mcp",
7819
+ "auxiliar-solve"
7820
+ ],
7821
+ "conflicts": [],
7822
+ "minimum_runtime": "Go 1.22+"
7823
+ },
7824
+ "install": {
7825
+ "primary": {
7826
+ "install_command": "go install github.com/mvanhorn/cli-printing-press/cmd/printing-press@latest",
7827
+ "config_snippet": "# Then inside Claude Code or any MCP host:\n# /printing-press <api-name>\n# → emits Go CLI + Claude Code skill + OpenClaw skill + MCP server\n# → from one API spec, website, or HAR file\n# → with local SQLite mirror, FTS5 search, compound commands, --compact\n",
7828
+ "setup_url": "https://printingpress.dev/",
7829
+ "estimated_minutes": 10
7830
+ },
7831
+ "by_agent": {
7832
+ "claude-code": {
7833
+ "install_command": "go install github.com/mvanhorn/cli-printing-press/cmd/printing-press@latest",
7834
+ "config_snippet": "Use the /printing-press <api> skill in any agent session to print the four-format bundle.",
7835
+ "estimated_minutes": 10
7836
+ },
7837
+ "claude-desktop": {
7838
+ "install_command": "After the Go install, the printed MCP server (<api>-pp-mcp) auto-discovers in Claude Desktop's connector list.",
7839
+ "estimated_minutes": 10
7840
+ },
7841
+ "cursor": {
7842
+ "install_command": "Same install path; printed MCP server is registered via .cursor/mcp.json.",
7843
+ "estimated_minutes": 10
7844
+ }
7845
+ },
7846
+ "by_framework": {}
7847
+ },
7848
+ "last_verified": "2026-05-09",
7849
+ "verification_method": "vendor-self-reported-plus-github-research-2026-05-09",
7850
+ "alternatives_considered": [],
7851
+ "compared_to": [],
7852
+ "choose_if": "You need an agent-native interface to an API that doesn't already have a curated MCP server or skill in auxiliar.ai's catalog. Especially valuable when the API is large (full endpoint surface) AND the agent will hit it iteratively (where token efficiency, local SQLite mirror, and compound commands compound).",
7853
+ "avoid_if": "A purpose-built MCP server or skill already exists with high quality (e.g. Cumbuca's Open Finance MCP for BR bank data — re-printing one would lose the regulated-auth integration). Also avoid for one-shot read calls where the SQLite mirror's setup overhead outweighs the read savings, or when the host environment doesn't have Go available.",
7854
+ "page_url": "https://auxiliar.ai/skill/printing-press/",
7855
+ "external_homepage": "https://printingpress.dev/",
7856
+ "repository": "https://github.com/mvanhorn/cli-printing-press",
7857
+ "license": "MIT"
7858
+ },
6534
7859
  {
6535
7860
  "id": "qdrant",
6536
7861
  "element_type": "cloud_service",