opf-br-mcp 0.4.0 → 0.5.0

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.
Files changed (3) hide show
  1. package/README.md +21 -0
  2. package/dist/index.js +22 -3
  3. package/package.json +1 -1
package/README.md CHANGED
@@ -81,6 +81,27 @@ GitHub Copilot (VS Code) — `.vscode/mcp.json`:
81
81
  { "servers": { "opf-br": { "command": "npx", "args": ["-y", "opf-br-mcp"] } } }
82
82
  ```
83
83
 
84
+ Claude Desktop — `claude_desktop_config.json` (Settings → Developer → Edit Config):
85
+
86
+ ```json
87
+ { "mcpServers": { "opf-br": { "command": "npx", "args": ["-y", "opf-br-mcp"] } } }
88
+ ```
89
+
90
+ ### Windows
91
+
92
+ No Windows, o client não consegue executar `npx` diretamente (é o shim
93
+ `npx.cmd`) e acaba abrindo um `cmd.exe` interativo, cujo banner
94
+ (`Microsoft Windows [Version ...]`) vaza para o canal stdio e corrompe o
95
+ protocolo JSON-RPC — o servidor falha na conexão com erros de JSON inválido.
96
+ Envolva o comando em `cmd /c` para rodá-lo sem shell interativo:
97
+
98
+ ```json
99
+ { "mcpServers": { "opf-br": { "command": "cmd", "args": ["/c", "npx", "-y", "opf-br-mcp"] } } }
100
+ ```
101
+
102
+ Vale para qualquer client no Windows (Claude Desktop, Claude Code, VS Code) —
103
+ ajuste apenas a chave externa (`mcpServers` ou `servers`).
104
+
84
105
  ### Uso local (a partir do fonte)
85
106
 
86
107
  ```bash
package/dist/index.js CHANGED
@@ -46,7 +46,7 @@ function isFresh(entry, ttlHours, now = /* @__PURE__ */ new Date()) {
46
46
  }
47
47
 
48
48
  // src/core/version.ts
49
- var PACKAGE_VERSION = "0.4.0";
49
+ var PACKAGE_VERSION = "0.5.0";
50
50
 
51
51
  // src/core/data.ts
52
52
  async function getDomainData(domain, force = false, ctx) {
@@ -254,6 +254,25 @@ function parseAdditionalInfoTables(html) {
254
254
  }
255
255
 
256
256
  // src/domains/pcm-additional-info/index.ts
257
+ function definicaoSnippet(text2, max = 120) {
258
+ if (text2.length <= max) return text2;
259
+ const slice = text2.slice(0, max);
260
+ const lastSpace = slice.lastIndexOf(" ");
261
+ const cut = lastSpace > 0 ? slice.slice(0, lastSpace) : slice;
262
+ return `${cut.trimEnd()}\u2026`;
263
+ }
264
+ function summarizePcm(item) {
265
+ const summary = {
266
+ campo: item.campo,
267
+ tipo: item.tipo ?? null,
268
+ versoes: item.versoes,
269
+ roles: item.roles,
270
+ id: item.id,
271
+ page: item.page
272
+ };
273
+ if (item.definicao) summary.definicaoSnippet = definicaoSnippet(item.definicao);
274
+ return summary;
275
+ }
257
276
  function slugify(text2) {
258
277
  return text2.normalize("NFD").replace(/[̀-ͯ]/g, "").toLowerCase().replace(/[^a-z0-9]+/g, "-").replace(/^-|-$/g, "");
259
278
  }
@@ -278,7 +297,7 @@ function buildItems(pages) {
278
297
  var pcmDomain = {
279
298
  id: "pcm-additional-info",
280
299
  title: "PCM \u2014 Regras de obrigatoriedade do additionalInfo",
281
- description: "Regras de preenchimento do campo additionalInfo das p\xE1ginas PCM (Plataforma de Coleta de M\xE9tricas) do Confluence do Open Finance Brasil (Inicia\xE7\xE3o de Pagamentos, Pagamentos Autom\xE1ticos, Sem Redirecionamento, DC-*). Cada item \xE9 um campo com regra, m\xE9todos, endpoints, vers\xF5es, tamanho m\xE1ximo e exemplo.",
300
+ description: "Regras de preenchimento do campo additionalInfo das p\xE1ginas PCM (Plataforma de Coleta de M\xE9tricas) do Confluence do Open Finance Brasil (Inicia\xE7\xE3o de Pagamentos, Pagamentos Autom\xE1ticos, Sem Redirecionamento, DC-*). Cada item \xE9 um campo com regra, m\xE9todos, endpoints, vers\xF5es, tamanho m\xE1ximo e exemplo. search devolve resumos; use get_item para o registro completo.",
282
301
  ttlHours: 24,
283
302
  filters: [
284
303
  { name: "field", description: "Match exato no nome do campo (case-insensitive)" },
@@ -323,7 +342,7 @@ var pcmDomain = {
323
342
  if (!matchesQuery(haystack, query)) return false;
324
343
  }
325
344
  return true;
326
- });
345
+ }).map(summarizePcm);
327
346
  },
328
347
  getItem(data, id) {
329
348
  return data.items.find((i) => i.id === id) ?? null;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "opf-br-mcp",
3
- "version": "0.4.0",
3
+ "version": "0.5.0",
4
4
  "description": "MCP server local com as regras do Open Finance Brasil (PCM additionalInfo, specs OpenAPI de Pagamentos)",
5
5
  "type": "module",
6
6
  "license": "MIT",