auxiliar-mcp 0.13.1 → 0.13.2

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.
@@ -233,31 +233,56 @@ export const solveTasks = {
233
233
  },
234
234
  "cnpj-enrichment-mcp": {
235
235
  slug: "cnpj-enrichment-mcp",
236
- title: "CNPJ enrichment for Brazilian bookkeeping agents — what to install, ranked",
236
+ title: "CNPJ → CNAE + regime tributário (Simples / MEI) — tax-registry enrichment for Brazilian bookkeeping agents, ranked",
237
237
  url: "https://auxiliar.ai/solve/cnpj-enrichment-mcp/",
238
- last_verified: "2026-04-27",
239
- categories: ["cnpj-enrichment", "brazilian-bookkeeping", "public-data", "agent-tools"],
238
+ last_verified: "2026-04-29",
239
+ categories: [
240
+ "cnpj-cnae-lookup",
241
+ "cnpj-regime-tributario",
242
+ "tax-registry-enrichment",
243
+ "brazilian-bookkeeping",
244
+ "public-data",
245
+ "agent-tools",
246
+ ],
240
247
  works_with: ["claude-code", "claude-desktop", "cursor", "openclaw"],
241
- alternatives: ["brasilapi-cnpj", "cnpja-cnpj", "cnpj-ws", "receitaws-cnpj", "mcp-gov-cnpj-fetch"],
242
- eval_method: "auxiliar-cnpj-enrichment-documented-characteristics-v1 (5 candidates ranked by free-tier accessibility + field coverage; field-accuracy corpus eval is Phase-2 follow-up)",
243
- answer: "When your Claude Code / OpenClaw agent has extracted CNPJs from NFS-e invoices and needs to enrich each one with razão social, CNAE, regime tributário (Simples Nacional flag), full address, partners, and supplier metadata — for bookkeeping batches, accountant handoff, or tax reconciliation — install BrasilAPI's free public endpoint: `curl https://brasilapi.com.br/api/cnpj/v1/<cnpj>`. Free, no auth, no token, drop-in URL; returns CNAE fiscal + secondary CNAEs, opção pelo Simples + MEI, situação cadastral, full address, sócios — sourced from Receita Federal open data dumps via MinhaReceita. For real-time situação cadastral, use CNPJá's paid api.cnpja.com tier. For Inscrições Estaduais (Sintegra) + branches, use CNPJ.ws.",
248
+ alternatives: [
249
+ "auxiliar-cnpj-fetch",
250
+ "brasilapi-cnpj",
251
+ "cnpja-cnpj",
252
+ "cnpj-ws",
253
+ "receitaws-cnpj",
254
+ ],
255
+ eval_method: "auxiliar-cnpj-enrichment-documented-characteristics-v2 (5 candidates ranked by agent-loop ergonomics + free-tier accessibility + field coverage + cascade resilience; field-accuracy corpus eval is Phase-2 follow-up)",
256
+ answer: "You've parsed your NFS-e invoices and now have a list of prestador CNPJs. The next step in any bookkeeping flow is tax-registry enrichment — for each CNPJ get CNAE primary + secondary, regime tributário (Simples Nacional + MEI flags), razão social, situação cadastral, full address, sócios. Top pick: install `auxiliar-mcp` (`claude mcp add auxiliar npx auxiliar-mcp`) and call `invoke_capability(tool: \"fetch_cnpj\", args: {cnpj})`. No token required for the free anonymous tier; the gateway cascades BrasilAPI → CNPJ.ws so a single upstream hiccup doesn't fail your enrichment loop. Same auth surface unlocks 220+ other Brazilian-public-data tools (NFS-e parsing, judicial process, sanctions, public contracts) when you grow into them. If you only need one-shot CNPJ lookup with zero install footprint, BrasilAPI direct (`curl https://brasilapi.com.br/api/cnpj/v1/<cnpj>`) is the simplest fallback.",
244
257
  candidates: [
245
258
  {
246
- slug: "brasilapi-cnpj",
247
- name: "BrasilAPI CNPJ",
259
+ slug: "auxiliar-cnpj-fetch",
260
+ name: "auxiliar-cnpj-fetch (gateway cascade — top pick)",
248
261
  rank: 1,
262
+ install: "claude mcp add auxiliar npx auxiliar-mcp",
263
+ scorecard: {
264
+ install_friction: 2,
265
+ cost_per_10_docs_usd: 0,
266
+ },
267
+ notes: "Multi-provider cascade behind the auxiliar.ai gateway. Tries BrasilAPI first; on error falls through to CNPJ.ws. Returns CNAE primary + secondary, regime tributário (Simples + MEI flags), razão social, situação cadastral, full address, QSA. Anonymous tier (no token) for LOW-sensitivity public-data tools, 600 RPM shared. Mint AUXILIAR_GATEWAY_TOKEN for per-user telemetry, higher rate limits, and HIGH_PII tools (Direct Data CPF dossiê, etc.). Single auth surface scales to 220+ Brazilian-public-data tools.",
268
+ license: "MIT (gateway code); upstream data per Receita Federal open data terms",
269
+ },
270
+ {
271
+ slug: "brasilapi-cnpj",
272
+ name: "BrasilAPI CNPJ (direct, simplest)",
273
+ rank: 2,
249
274
  install: 'curl -s "https://brasilapi.com.br/api/cnpj/v1/CNPJ_DIGITS_ONLY"',
250
275
  scorecard: {
251
276
  install_friction: 1,
252
277
  cost_per_10_docs_usd: 0,
253
278
  },
254
- notes: "Free, no auth, no token. Drop-in HTTP GET. Returns CNAE primary + secondary, Simples + MEI flags, full address, sócios, situação cadastral. Data sourced from Receita Federal open dumps via MinhaReceita (~30-day lag). Hosted on Vercel CDN. The agent-friendliest default.",
279
+ notes: "Free, no auth, no token. Drop-in HTTP GET same field shape as auxiliar-cnpj-fetch returns (since BrasilAPI is the cascade's first upstream). Pick this when you only need CNPJ enrichment and no other Brazilian-public-data tool. No fallback if BrasilAPI itself goes down.",
255
280
  license: "MIT (BrasilAPI code; underlying data from Receita Federal open dump)",
256
281
  },
257
282
  {
258
283
  slug: "cnpja-cnpj",
259
284
  name: "CNPJá (free cached + paid real-time)",
260
- rank: 2,
285
+ rank: 3,
261
286
  install: 'curl -s "https://open.cnpja.com/office/CNPJ_DIGITS_ONLY"',
262
287
  scorecard: {
263
288
  install_friction: 2,
@@ -269,19 +294,19 @@ export const solveTasks = {
269
294
  {
270
295
  slug: "cnpj-ws",
271
296
  name: "CNPJ.ws (free 3 req/min + paid commercial)",
272
- rank: 3,
297
+ rank: 4,
273
298
  install: 'curl -s "https://publica.cnpj.ws/cnpj/CNPJ_DIGITS_ONLY"',
274
299
  scorecard: {
275
300
  install_friction: 2,
276
301
  cost_per_10_docs_usd: 0,
277
302
  },
278
- notes: "Free tier 3 req/min on publica.cnpj.ws; paid commercial.cnpj.ws at 2000 req/min. Sources from Receita Federal + Sintegra + Suframa — deeper field coverage than peers (Inscrições Estaduais, branches/filiais, sócios with participation %).",
303
+ notes: "Free tier 3 req/min on publica.cnpj.ws; paid commercial.cnpj.ws at 2000 req/min. Sources from Receita Federal + Sintegra + Suframa — deeper field coverage than peers (Inscrições Estaduais, branches/filiais, sócios with participation %). Used as the cascade's second upstream inside auxiliar-cnpj-fetch.",
279
304
  license: "Proprietary",
280
305
  },
281
306
  {
282
307
  slug: "receitaws-cnpj",
283
308
  name: "ReceitaWS",
284
- rank: 4,
309
+ rank: 5,
285
310
  install: 'curl -s "https://receitaws.com.br/v1/cnpj/CNPJ_DIGITS_ONLY"',
286
311
  scorecard: {
287
312
  install_friction: 2,
@@ -290,20 +315,8 @@ export const solveTasks = {
290
315
  notes: "Long-running canonical Brazilian CNPJ API. Free 3 req/min cap; paid premium tier with token unlocks higher throughput. Simples Nacional flag is a paid-tier-only field — the free response returns simples: null. Simplest possible drop-in shape but slow on free tier.",
291
316
  license: "Proprietary",
292
317
  },
293
- {
294
- slug: "mcp-gov-cnpj-fetch",
295
- name: "mcp-gov-cnpj-fetch",
296
- rank: 5,
297
- install: "claude mcp add mcp-gov npx mcp-gov",
298
- scorecard: {
299
- install_friction: 3,
300
- cost_per_10_docs_usd: 0,
301
- },
302
- notes: "MCP-routed wrapper for in-loop agent calls. Use when the agent prefers tool-call shape over HTTP, or when chaining mcp-gov for other public-data lookups (CEP, CNAE description, RAIS) in the same session.",
303
- license: "Per mcp-gov upstream",
304
- },
305
318
  ],
306
- corpus_summary: "Documented vendor characteristics — free-tier accessibility, field coverage, real-time vs cached freshness, agent-friendliness — verified via direct curl tests against well-known CNPJs (Banco do Brasil 00.000.000/0001-91 etc.) on 2026-04-27. A 5–10 CNPJ field-accuracy corpus eval is Phase-2 follow-up tracked in backlog.md.",
319
+ corpus_summary: "Documented vendor characteristics — agent-loop ergonomics, free-tier accessibility, field coverage, cascade resilience — verified via direct curl tests against well-known CNPJs (Banco do Brasil 00.000.000/0001-91 etc.) and a live smoke-test of auxiliar-cnpj-fetch through api.auxiliar.ai/api/invoke/fetch_cnpj on 2026-04-29. A 5–10 CNPJ field-accuracy corpus eval is Phase-2 follow-up tracked in backlog.md.",
307
320
  alternatives_considered: [
308
321
  {
309
322
  name: "Direct gov.br Conecta CNPJ API",
@@ -324,8 +337,12 @@ export const solveTasks = {
324
337
  ],
325
338
  faq: [
326
339
  {
327
- q: "Does BrasilAPI return regime tributário (Simples Nacional flag) on the free tier?",
328
- a: "Yes. BrasilAPI's CNPJ response includes opcao_pelo_simples: bool and opcao_pelo_mei: bool directly in the free response. ReceitaWS gates this field behind the paid tier the free response returns simples: null. CNPJ.ws and CNPJá return Simples + MEI flags on their free tiers as well.",
340
+ q: "Does the cascade return regime tributário (Simples + MEI flags) on the free tier?",
341
+ a: "Yes. The auxiliar-cnpj-fetch envelope includes opcao_pelo_simples: bool and opcao_pelo_mei: bool directly. Same for BrasilAPI direct, CNPJ.ws publica, and CNPJá open. ReceitaWS gates the Simples flag behind the paid tier (its free response returns simples: null) that's the one source where the regime tributário question costs money.",
342
+ },
343
+ {
344
+ q: "How does Brazil's regime tributário map onto these fields?",
345
+ a: "Three federal regimes: (1) Simples Nacional — simplified small-business regime; opcao_pelo_simples=true indicates this. (2) MEI (Microempreendedor Individual) — simplest individual-entrepreneur regime; opcao_pelo_mei=true indicates this. (3) Lucro Presumido / Lucro Real — for companies not in Simples or MEI. The free CNPJ APIs do NOT distinguish between these two; that's a Receita Federal internal classification not exposed publicly. If both flags are false, infer 'Lucro Presumido or Lucro Real' and use revenue/size proxies if you need to disambiguate.",
329
346
  },
330
347
  {
331
348
  q: "When does the ~30-day data-dump lag actually matter?",
@@ -333,26 +350,27 @@ export const solveTasks = {
333
350
  },
334
351
  {
335
352
  q: "How do I handle 429 rate-limit errors on the free tiers?",
336
- a: "Two patterns. (1) Exponential backoff with Retry-After header respected. (2) Failover to a different source — BrasilAPI ↔ CNPJá open ↔ CNPJ.ws publica are roughly interchangeable for the basic CNAE + Simples + address fields. Code your enrichment loop to try BrasilAPI first, fall through to CNPJá open on 429, fall through to CNPJ.ws publica with a 20-second wait.",
353
+ a: "If you're using auxiliar-cnpj-fetch the cascade handles the BrasilAPI ↔ CNPJ.ws failover automatically. If you're calling sources directly: exponential backoff with Retry-After header respected, then failover to a different source — BrasilAPI ↔ CNPJá open ↔ CNPJ.ws publica are roughly interchangeable for the basic CNAE + Simples + address fields.",
337
354
  },
338
355
  {
339
356
  q: "Does this work alongside auxiliar-nfs-e + Surya for a full bookkeeping pipeline?",
340
- a: "Yes — that's the explicit composition. Pipeline: (1) Surya OCRs the NFS-e PDF to text. (2) auxiliar-nfs-e parses prestador + tomador + valor + ISS + CNPJs. (3) The CNPJs get enriched via BrasilAPI for CNAE + regime tributário. (4) The enriched record gets handed to your accountant or written to a ledger. The renatoag wedge validation on 2026-04-27 surfaced this /solve/ task as the missing step (3).",
357
+ a: "Yes — that's the explicit composition. Pipeline: (1) Surya OCRs the NFS-e PDF to text. (2) auxiliar-nfs-e parses prestador + tomador + valor + ISS + CNPJs. (3) The CNPJs get enriched via auxiliar-cnpj-fetch (or BrasilAPI direct) for CNAE + regime tributário. (4) The enriched record gets handed to your accountant or written to a ledger.",
341
358
  },
342
359
  ],
343
360
  methodological_caveats: [
344
361
  "This is documented-characteristics ranking, not field-accuracy ranking. Numbers from vendor docs and curl tests against well-known CNPJs, not a real-corpus accuracy eval. A field-accuracy corpus run is Phase-2 follow-up tracked in backlog.md.",
345
- "Free-tier vendor terms can change without notice. Re-check rate limits + auth requirements before relying on any source for critical workflows. last_verified: 2026-04-27.",
362
+ "Free-tier vendor terms can change without notice. Re-check rate limits + auth requirements before relying on any source for critical workflows. last_verified: 2026-04-29.",
346
363
  "Data freshness varies. BrasilAPI / CNPJ.ws publica / CNPJá open are cached from open data dumps with cadence ranging from daily (CNPJá) to ~30 days (BrasilAPI / CNPJ.ws). For situações cadastrais needing real-time, only paid tiers apply.",
347
364
  "Inscrições Estaduais lag varies by state. CNPJ.ws sources from Sintegra which has per-state reporting cadence — some states report daily, others lag.",
348
365
  "No commercial-enrichment fields. None of the 5 ranked sources include Serasa-style credit signals, employee count ranges (Speedio), or revenue estimates. If those matter, use a paid commercial enrichment provider.",
366
+ "auxiliar-cnpj-fetch's anonymous-tier shares one global rate-limit bucket (default 600 RPM); for sustained per-user rate budget + telemetry, mint a token via Auxiliar-ai/scripts/issue_internal_token.py and set AUXILIAR_GATEWAY_TOKEN.",
349
367
  ],
350
- update_cadence: "Re-run this ranking when: (a) BrasilAPI publishes a rate-limit cap or pricing tier (currently uncapped), (b) any of the 5 sources changes its free-tier shape (auth, field gating), (c) a Phase-2 field-accuracy corpus eval ships and updates the scorecard with measured numbers, (d) 90 days after first publish (2026-07-26).",
368
+ update_cadence: "Re-run this ranking when: (a) any cascade upstream (BrasilAPI / CNPJ.ws) publishes a rate-limit cap or pricing change, (b) any of the 5 sources changes its free-tier shape (auth, field gating), (c) a Phase-2 field-accuracy corpus eval ships and updates the scorecard with measured numbers, (d) 90 days after publish (2026-07-29).",
351
369
  fit_by_agent: {
352
- "claude-code": { "brasilapi-cnpj": true, "cnpja-cnpj": true, "cnpj-ws": true, "receitaws-cnpj": true, "mcp-gov-cnpj-fetch": true },
353
- "claude-desktop": { "brasilapi-cnpj": true, "cnpja-cnpj": true, "cnpj-ws": true, "receitaws-cnpj": true, "mcp-gov-cnpj-fetch": true },
354
- cursor: { "brasilapi-cnpj": true, "cnpja-cnpj": true, "cnpj-ws": true, "receitaws-cnpj": true, "mcp-gov-cnpj-fetch": true },
355
- openclaw: { "brasilapi-cnpj": true, "cnpja-cnpj": true, "cnpj-ws": true, "receitaws-cnpj": true, "mcp-gov-cnpj-fetch": true },
370
+ "claude-code": { "auxiliar-cnpj-fetch": true, "brasilapi-cnpj": true, "cnpja-cnpj": true, "cnpj-ws": true, "receitaws-cnpj": true },
371
+ "claude-desktop": { "auxiliar-cnpj-fetch": true, "brasilapi-cnpj": true, "cnpja-cnpj": true, "cnpj-ws": true, "receitaws-cnpj": true },
372
+ cursor: { "auxiliar-cnpj-fetch": true, "brasilapi-cnpj": true, "cnpja-cnpj": true, "cnpj-ws": true, "receitaws-cnpj": true },
373
+ openclaw: { "auxiliar-cnpj-fetch": true, "brasilapi-cnpj": true, "cnpja-cnpj": true, "cnpj-ws": true, "receitaws-cnpj": true },
356
374
  },
357
375
  },
358
376
  };
package/dist/server.js CHANGED
@@ -16,7 +16,7 @@ import { compareCapabilities } from "./tools/compare-capabilities.js";
16
16
  import { invokeCapability } from "./tools/invoke-capability.js";
17
17
  const server = new McpServer({
18
18
  name: "auxiliar",
19
- version: "0.13.1",
19
+ version: "0.13.2",
20
20
  });
21
21
  // Tool: recommend_service
22
22
  server.tool("recommend_service", "Get a current, verified recommendation for a cloud service based on your constraints. Returns pricing, risks, provision commands, and alternatives. Data is Chrome-verified from actual service websites (not stale training data).", {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "auxiliar-mcp",
3
- "version": "0.13.1",
3
+ "version": "0.13.2",
4
4
  "description": "Unified Capability index for AI agents — 80+ ranked cloud services, skills, MCP servers, plugins, parsers, and public-data sources for Claude Code, Cursor, Claude Desktop, OpenClaw. Call find_capability with a query or jtbd tag to get a ranked list across every kind of agent-installable thing. Also: get_capability, list_capabilities, compare_capabilities. Legacy tools (recommend_service, solve_task, list_services, list_solve_tasks, get_pricing, get_risks, setup_service, check_compatibility) remain wired for backward compatibility.",
5
5
  "type": "module",
6
6
  "main": "dist/server.js",