opf-br-mcp 0.7.0 → 0.8.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.
- package/README.md +17 -1
- package/dist/index.js +102 -12
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -21,6 +21,10 @@ acesso token-eficiente às regras do Open Finance Brasil.
|
|
|
21
21
|
| `payments-common-rules` | Confluence público OFB (Serviços - SV) | Conteúdo comum aos produtos de Iniciação de Pagamentos (atores, Idempotência, Como Assinar o Payload, Convenções de data/fuso, Polling) — item por seção |
|
|
22
22
|
| `payments-implementation-guides` | Confluence público OFB (Serviços - SV) | Guias de Implementação (Pix Automático, Agendamento Recorrente, Transferências Inteligentes, Liquidação de QR Codes) — item por seção |
|
|
23
23
|
| `consents-v3-openapi` | GitHub Pages openbanking-brasil.github.io | Spec OpenAPI 3.3.1 da API de Consentimentos (Dados Cadastrais e Transacionais) |
|
|
24
|
+
| `resources-v3-openapi` | GitHub Pages openbanking-brasil.github.io | Spec OpenAPI 3.1.0 da API de Recursos (`GET /resources`: status dos recursos compartilhados) |
|
|
25
|
+
| `resources-v3-business-rules` | Confluence público OFB (Dados - DC) | Regras de negócio da API de Recursos 3.1.0 (Informações Gerais, Orientações) — item por seção |
|
|
26
|
+
| `accounts-v2-openapi` | GitHub Pages openbanking-brasil.github.io | Spec OpenAPI 2.4.2 da API de Contas (listagem, saldos, transações, limites de cheque especial) |
|
|
27
|
+
| `accounts-v2-business-rules` | Confluence público OFB (Dados - DC) | Regras de negócio da API de Contas 2.4.2 (Informações Gerais, Orientações — contraparte/IN BCB nº 371) — item por seção |
|
|
24
28
|
| `pcm-openapi` | GitHub OpenBanking-Brasil/pcm-specs | Spec OpenAPI da PCM (reportes, hybrid-flow, opendata, consents/stock, credit-portabilities, payments/status) |
|
|
25
29
|
| `pcm-business-rules` | Confluence público OFB | Regras de negócio da PCM (Reporte, Processamento, Divergências, Especificação Técnica, Manual de Integração) — item por seção |
|
|
26
30
|
| `jornada-otimizada` | Confluence público OFB | Regras da Jornada Otimizada (Orientações Gerais, Transferências Inteligentes, Jornada sem Redirecionamento) — item por seção |
|
|
@@ -32,13 +36,25 @@ acesso token-eficiente às regras do Open Finance Brasil.
|
|
|
32
36
|
|
|
33
37
|
## Tools
|
|
34
38
|
|
|
35
|
-
- `list_domains()` — descoberta: domínios, filtros e estado do cache
|
|
39
|
+
- `list_domains()` — descoberta: domínios, filtros, versão da spec de origem e estado do cache
|
|
36
40
|
- `search(domain, query?, filters?, limit?, offset?)` — busca filtrada, retorno compacto
|
|
37
41
|
- `get_item(domain, id)` — registro completo
|
|
38
42
|
- `refresh(domain?)` — força re-extração das fontes
|
|
39
43
|
|
|
40
44
|
Fluxo recomendado para o agente: `list_domains` → `search` → `get_item`.
|
|
41
45
|
|
|
46
|
+
### Qual versão estou usando?
|
|
47
|
+
|
|
48
|
+
`list_domains` devolve `server: { name, version }` junto do catálogo, então o
|
|
49
|
+
agente descobre a versão do server na mesma chamada com que descobre os domínios.
|
|
50
|
+
Cada domínio que embrulha uma spec traz também o seu `specVersion`.
|
|
51
|
+
|
|
52
|
+
Pela linha de comando:
|
|
53
|
+
|
|
54
|
+
```bash
|
|
55
|
+
npx opf-br-mcp --version
|
|
56
|
+
```
|
|
57
|
+
|
|
42
58
|
Domínios marcados como `live` (ex.: `portal`) consultam a fonte a cada chamada:
|
|
43
59
|
não têm cache nem `refresh`, e `search` exige `query`. Quando um `search` em
|
|
44
60
|
domínio comum retorna 0 resultados, a resposta inclui um `hint` sugerindo o
|
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.
|
|
49
|
+
var PACKAGE_VERSION = "0.8.0";
|
|
50
50
|
|
|
51
51
|
// src/core/data.ts
|
|
52
52
|
async function getDomainData(domain, force = false, ctx) {
|
|
@@ -433,6 +433,7 @@ function createOpenApiDomain(config) {
|
|
|
433
433
|
id: config.id,
|
|
434
434
|
title: config.title,
|
|
435
435
|
description: config.description,
|
|
436
|
+
specVersion: config.specVersion,
|
|
436
437
|
ttlHours: 72,
|
|
437
438
|
filters: [
|
|
438
439
|
{ name: "path", description: `Substring no path do endpoint (ex.: ${config.pathExample})` },
|
|
@@ -589,6 +590,7 @@ function createConfluenceSectionsDomain(config) {
|
|
|
589
590
|
id: config.id,
|
|
590
591
|
title: config.title,
|
|
591
592
|
description: config.description,
|
|
593
|
+
specVersion: config.specVersion,
|
|
592
594
|
ttlHours: 72,
|
|
593
595
|
filters: [
|
|
594
596
|
{ name: "page", description: "Substring no t\xEDtulo da p\xE1gina Confluence" },
|
|
@@ -637,6 +639,7 @@ function createConfluenceSectionsDomain(config) {
|
|
|
637
639
|
var paymentsV5BusinessRulesConfig = {
|
|
638
640
|
id: "payments-v5-business-rules",
|
|
639
641
|
title: "API de Pagamentos v5 \u2014 Regras de neg\xF3cio (SV)",
|
|
642
|
+
specVersion: "5.0.0",
|
|
640
643
|
description: "Regras de neg\xF3cio da API de Inicia\xE7\xE3o de Pagamentos (Pix) vers\xE3o 5.0.0 do Open Finance Brasil, extra\xEDdas das p\xE1ginas Confluence de Servi\xE7os (SV): Informa\xE7\xF5es Gerais (vis\xE3o geral dos endpoints e dicion\xE1rio de dados), Escopo da API (formas de inicia\xE7\xE3o suportadas: Pix imediato, agendado, agendado recorrente, QR Code est\xE1tico/din\xE2mico, Pix Saque, Pix Troco, Pix Composto), M\xE1quina de Estados (status do consentimento e do pagamento), Diagrama de Sequ\xEAncia, Valida\xE7\xE3o de informa\xE7\xF5es no DICT e Adapta\xE7\xF5es para consultas de recursos entre 4.0.1 e 5.0.0. Complementa payments-v5-openapi, que traz a spec (endpoints e schemas) da mesma vers\xE3o. Conte\xFAdo que vale para todos os produtos de inicia\xE7\xE3o (idempot\xEAncia, assinatura de payload, polling, formatos de data) est\xE1 em payments-common-rules. Cada item \xE9 uma se\xE7\xE3o (heading) da p\xE1gina. search devolve um snippet do conte\xFAdo; use get_item para o texto completo da se\xE7\xE3o.",
|
|
641
644
|
confluenceBaseUrl: "https://openfinancebrasil.atlassian.net",
|
|
642
645
|
interRequestDelayMs: 2e3,
|
|
@@ -673,6 +676,7 @@ var enrollmentsV2Domain = createOpenApiDomain(enrollmentsV2Config);
|
|
|
673
676
|
var enrollmentsV2BusinessRulesConfig = {
|
|
674
677
|
id: "enrollments-v2-business-rules",
|
|
675
678
|
title: "API de V\xEDnculo de Dispositivo v2 \u2014 Regras de neg\xF3cio (SV)",
|
|
679
|
+
specVersion: "2.2.0",
|
|
676
680
|
description: "Regras de neg\xF3cio da API de V\xEDnculo de Dispositivo (Enrollments / Jornada Sem Redirecionamento) vers\xE3o 2.2.0 do Open Finance Brasil, extra\xEDdas das p\xE1ginas Confluence de Servi\xE7os (SV): Informa\xE7\xF5es Gerais, M\xE1quina de estados (vincula\xE7\xE3o de conta, autoriza\xE7\xE3o de consentimento e do consentimento recorrente), Edi\xE7\xE3o do v\xEDnculo de dispositivo (campos edit\xE1veis e condi\xE7\xF5es) e FAQ - JSR (perguntas e respostas por categoria). Complementa enrollments-v2-openapi, que traz a spec (endpoints e schemas) do mesmo major \u2014 hoje na 2.3.0, enquanto estas p\xE1ginas do Confluence ainda s\xE3o as da 2.2.0. Cada item \xE9 uma se\xE7\xE3o (heading) da p\xE1gina. search devolve um snippet do conte\xFAdo; use get_item para o texto completo da se\xE7\xE3o.",
|
|
677
681
|
confluenceBaseUrl: "https://openfinancebrasil.atlassian.net",
|
|
678
682
|
interRequestDelayMs: 2e3,
|
|
@@ -709,6 +713,7 @@ var automaticPaymentsV2Domain = createOpenApiDomain(automaticPaymentsV2Config);
|
|
|
709
713
|
var automaticPaymentsV2BusinessRulesConfig = {
|
|
710
714
|
id: "automatic-payments-v2-business-rules",
|
|
711
715
|
title: "API de Pagamentos Autom\xE1ticos v2 \u2014 Regras de neg\xF3cio (SV)",
|
|
716
|
+
specVersion: "2.2.0",
|
|
712
717
|
description: "Regras de neg\xF3cio da API de Pagamentos Autom\xE1ticos (Pix Autom\xE1tico e Transfer\xEAncias Inteligentes) vers\xE3o 2.2.0 do Open Finance Brasil, extra\xEDdas das p\xE1ginas Confluence de Servi\xE7os (SV): Informa\xE7\xF5es Gerais (vis\xE3o geral dos endpoints e dicion\xE1rio de dados), M\xE1quina de Estados (status do consentimento recorrente e do pagamento), Edi\xE7\xE3o do consentimento (campos edit\xE1veis e condi\xE7\xF5es), Tentativas Intradia e Extradia para Pix Autom\xE1tico (janelas de liquida\xE7\xE3o, retentativas, e2eID) e Adapta\xE7\xF5es para consultas de recursos entre 1.0.0 e 2.2.0. Complementa automatic-payments-v2-openapi, que traz a spec (endpoints e schemas) da mesma vers\xE3o. O guia de implementa\xE7\xE3o passo a passo do Pix Autom\xE1tico est\xE1 em payments-implementation-guides. Cada item \xE9 uma se\xE7\xE3o (heading) da p\xE1gina. search devolve um snippet do conte\xFAdo; use get_item para o texto completo da se\xE7\xE3o.",
|
|
713
718
|
confluenceBaseUrl: "https://openfinancebrasil.atlassian.net",
|
|
714
719
|
interRequestDelayMs: 2e3,
|
|
@@ -784,18 +789,91 @@ var consentsV3Config = {
|
|
|
784
789
|
// src/domains/consents-v3-openapi/index.ts
|
|
785
790
|
var consentsV3Domain = createOpenApiDomain(consentsV3Config);
|
|
786
791
|
|
|
792
|
+
// src/domains/resources-v3-openapi/config.ts
|
|
793
|
+
var resourcesV3Config = {
|
|
794
|
+
id: "resources-v3-openapi",
|
|
795
|
+
title: "API de Recursos \u2014 spec OpenAPI 3.1.0",
|
|
796
|
+
description: "Spec OpenAPI oficial da API de Recursos (Resources) do Open Finance Brasil, vers\xE3o 3.1.0. Endpoint \xFAnico (GET /resources) que lista os recursos compartilhados pelo cliente e o status de cada um, considerando a disponibilidade do recurso e o status do consentimento relacionado \u2014 \xE9 o ponto de partida de qualquer jornada de Dados Cadastrais e Transacionais, pois diz o que a receptora pode de fato consultar. O consentimento que a habilita fica em consents-v3-openapi; as contas em si, em accounts-v2-openapi. Itens type=operation, type=schema (ex.: ResponseResourceList, ResourceData com enum de status) e os components alvos dos $ref: type=response e type=parameter. Regras de neg\xF3cio da mesma API em resources-v3-business-rules. search devolve resumos; use get_item para o n\xF3 completo da spec \u2014 nas opera\xE7\xF5es o campo `refs` traz os ids dos components referenciados, prontos para get_item.",
|
|
797
|
+
pathExample: "/resources",
|
|
798
|
+
specName: "resources",
|
|
799
|
+
specVersion: "3.1.0",
|
|
800
|
+
url: "https://openbanking-brasil.github.io/openapi/swagger-apis/resources/3.1.0.yml",
|
|
801
|
+
retryDelaysMs: [2e3, 4e3, 8e3, 16e3]
|
|
802
|
+
};
|
|
803
|
+
|
|
804
|
+
// src/domains/resources-v3-openapi/index.ts
|
|
805
|
+
var resourcesV3Domain = createOpenApiDomain(resourcesV3Config);
|
|
806
|
+
|
|
807
|
+
// src/domains/resources-v3-business-rules/config.ts
|
|
808
|
+
var resourcesV3BusinessRulesConfig = {
|
|
809
|
+
id: "resources-v3-business-rules",
|
|
810
|
+
title: "API de Recursos v3 \u2014 Regras de neg\xF3cio (DC)",
|
|
811
|
+
specVersion: "3.1.0",
|
|
812
|
+
description: "Regras de neg\xF3cio da API de Recursos (Resources) vers\xE3o 3.1.0 do Open Finance Brasil, extra\xEDdas das p\xE1ginas Confluence de Dados Cadastrais e Transacionais (DC): Informa\xE7\xF5es Gerais (vis\xE3o geral do GET /resources/v3/resources, status do recurso versus status do consentimento) e Orienta\xE7\xF5es - [DC] Recursos (quando um recurso volta a ficar dispon\xEDvel, uso do status code de erro apropriado quando a transmissora n\xE3o retorna as informa\xE7\xF5es) \u2014 esta \xFAltima n\xE3o \xE9 versionada e vale para todo o major v3. Complementa resources-v3-openapi, que traz a spec (endpoints e schemas) do mesmo major. Cada item \xE9 uma se\xE7\xE3o (heading) da p\xE1gina. search devolve um snippet do conte\xFAdo; use get_item para o texto completo da se\xE7\xE3o.",
|
|
813
|
+
confluenceBaseUrl: "https://openfinancebrasil.atlassian.net",
|
|
814
|
+
interRequestDelayMs: 2e3,
|
|
815
|
+
retryDelaysMs: [2e3, 4e3, 8e3, 16e3],
|
|
816
|
+
pages: [
|
|
817
|
+
{ pageId: "1267990545", title: "Informa\xE7\xF5es Gerais - [DC] Recursos - v3.1.0" },
|
|
818
|
+
{ pageId: "219512943", title: "Orienta\xE7\xF5es - [DC] Recursos" }
|
|
819
|
+
]
|
|
820
|
+
};
|
|
821
|
+
|
|
822
|
+
// src/domains/resources-v3-business-rules/index.ts
|
|
823
|
+
var resourcesV3BusinessRulesDomain = createConfluenceSectionsDomain(
|
|
824
|
+
resourcesV3BusinessRulesConfig
|
|
825
|
+
);
|
|
826
|
+
|
|
827
|
+
// src/domains/accounts-v2-openapi/config.ts
|
|
828
|
+
var accountsV2Config = {
|
|
829
|
+
id: "accounts-v2-openapi",
|
|
830
|
+
title: "API de Contas \u2014 spec OpenAPI 2.4.2",
|
|
831
|
+
description: "Spec OpenAPI oficial da API de Contas (Accounts) do Open Finance Brasil, vers\xE3o 2.4.2 \u2014 compartilhamento de contas de dep\xF3sito \xE0 vista, poupan\xE7a e pagamento pr\xE9-paga. Cobre listagem (GET /accounts), identifica\xE7\xE3o (GET /accounts/{accountId}), saldos (GET /accounts/{accountId}/balances), transa\xE7\xF5es (GET /accounts/{accountId}/transactions e /transactions-current) e limites de cheque especial (GET /accounts/{accountId}/overdraft-limits). \xC9 API de Dados Cadastrais e Transacionais: o consentimento que a habilita fica em consents-v3-openapi, e a listagem de recursos compartilhados em resources-v3-openapi. Itens type=operation (um por m\xE9todo+path), type=schema (payloads, ex.: AccountData, AccountBalancesData, AccountTransactionsData) e os components alvos dos $ref: type=response e type=parameter. Regras de neg\xF3cio da mesma API em accounts-v2-business-rules. search devolve resumos; use get_item para o n\xF3 completo da spec \u2014 nas opera\xE7\xF5es o campo `refs` traz os ids dos components referenciados, prontos para get_item.",
|
|
832
|
+
pathExample: "/accounts/{accountId}/transactions",
|
|
833
|
+
specName: "accounts",
|
|
834
|
+
specVersion: "2.4.2",
|
|
835
|
+
url: "https://openbanking-brasil.github.io/openapi/swagger-apis/accounts/2.4.2.yml",
|
|
836
|
+
retryDelaysMs: [2e3, 4e3, 8e3, 16e3]
|
|
837
|
+
};
|
|
838
|
+
|
|
839
|
+
// src/domains/accounts-v2-openapi/index.ts
|
|
840
|
+
var accountsV2Domain = createOpenApiDomain(accountsV2Config);
|
|
841
|
+
|
|
842
|
+
// src/domains/accounts-v2-business-rules/config.ts
|
|
843
|
+
var accountsV2BusinessRulesConfig = {
|
|
844
|
+
id: "accounts-v2-business-rules",
|
|
845
|
+
title: "API de Contas v2 \u2014 Regras de neg\xF3cio (DC)",
|
|
846
|
+
specVersion: "2.4.2",
|
|
847
|
+
description: "Regras de neg\xF3cio da API de Contas (Accounts) vers\xE3o 2.4.2 do Open Finance Brasil, extra\xEDdas das p\xE1ginas Confluence de Dados Cadastrais e Transacionais (DC): Informa\xE7\xF5es Gerais (vis\xE3o geral dos endpoints, contas de dep\xF3sito \xE0 vista/poupan\xE7a/pagamento pr\xE9-paga, saldos, transa\xE7\xF5es e limites) e Orienta\xE7\xF5es - [DC] Contas (obrigatoriedade de informa\xE7\xF5es de contraparte pela IN BCB n\xBA 371, tratamento de transa\xE7\xF5es e casos de borda) \u2014 esta \xFAltima n\xE3o \xE9 versionada e vale para todo o major v2. Complementa accounts-v2-openapi, que traz a spec (endpoints e schemas) do mesmo major. Cada item \xE9 uma se\xE7\xE3o (heading) da p\xE1gina. search devolve um snippet do conte\xFAdo; use get_item para o texto completo da se\xE7\xE3o.",
|
|
848
|
+
confluenceBaseUrl: "https://openfinancebrasil.atlassian.net",
|
|
849
|
+
interRequestDelayMs: 2e3,
|
|
850
|
+
retryDelaysMs: [2e3, 4e3, 8e3, 16e3],
|
|
851
|
+
pages: [
|
|
852
|
+
{ pageId: "979566625", title: "Informa\xE7\xF5es Gerais - [DC] Contas - v2.4.2" },
|
|
853
|
+
{ pageId: "1739096252", title: "Orienta\xE7\xF5es - [DC] Contas" }
|
|
854
|
+
]
|
|
855
|
+
};
|
|
856
|
+
|
|
857
|
+
// src/domains/accounts-v2-business-rules/index.ts
|
|
858
|
+
var accountsV2BusinessRulesDomain = createConfluenceSectionsDomain(
|
|
859
|
+
accountsV2BusinessRulesConfig
|
|
860
|
+
);
|
|
861
|
+
|
|
787
862
|
// src/domains/pcm-openapi/config.ts
|
|
788
863
|
var pcmOpenapiConfig = {
|
|
789
864
|
specName: "pcm",
|
|
790
|
-
|
|
791
|
-
|
|
865
|
+
// A spec da PCM não declara `info.version` (o campo `openapi:` traz um valor
|
|
866
|
+
// fora do padrão). Identificar pelo commit é o único rótulo verificável — e
|
|
867
|
+
// deixa explícito, em list_domains, que este domínio está congelado no SHA.
|
|
868
|
+
specVersion: "commit 8a7f7b0",
|
|
869
|
+
url: "https://raw.githubusercontent.com/OpenBanking-Brasil/pcm-specs/8a7f7b03ddfab7eaf97bcfe68e67fac22a5eeb68/PCM-current.openapi.yaml",
|
|
792
870
|
retryDelaysMs: [2e3, 4e3, 8e3, 16e3]
|
|
793
871
|
};
|
|
794
872
|
|
|
795
873
|
// src/domains/pcm-openapi/index.ts
|
|
796
874
|
var pcmOpenapiDomain = createOpenApiDomain({
|
|
797
875
|
id: "pcm-openapi",
|
|
798
|
-
title: `PCM \u2014 spec OpenAPI ${pcmOpenapiConfig.specVersion}`,
|
|
876
|
+
title: `PCM \u2014 spec OpenAPI (${pcmOpenapiConfig.specVersion})`,
|
|
799
877
|
description: "Spec OpenAPI oficial da PCM (Plataforma de Coleta de M\xE9tricas) do Open Finance Brasil \u2014 a faceta swagger. Cobre os endpoints de reporte (report-api v1/v2), hybrid-flow, opendata, consents/stock, credit-portabilities, payments/status e token. Itens type=operation (um por m\xE9todo+path), type=schema (payloads) e type=response (components reutiliz\xE1veis, alvos dos $ref). Outras facetas da PCM: tabelas de obrigatoriedade do campo additionalInfo em pcm-additional-info; regras de neg\xF3cio (reporte, processamento, diverg\xEAncias) em pcm-business-rules. search devolve resumos; use get_item para o n\xF3 completo da spec (opera\xE7\xF5es trazem `refs` com os ids dos components que referenciam).",
|
|
800
878
|
pathExample: "/report-api/v1/private/report",
|
|
801
879
|
...pcmOpenapiConfig
|
|
@@ -1069,6 +1147,10 @@ var domains = [
|
|
|
1069
1147
|
paymentsCommonRulesDomain,
|
|
1070
1148
|
paymentsImplementationGuidesDomain,
|
|
1071
1149
|
consentsV3Domain,
|
|
1150
|
+
resourcesV3Domain,
|
|
1151
|
+
resourcesV3BusinessRulesDomain,
|
|
1152
|
+
accountsV2Domain,
|
|
1153
|
+
accountsV2BusinessRulesDomain,
|
|
1072
1154
|
pcmOpenapiDomain,
|
|
1073
1155
|
pcmBusinessRulesDomain,
|
|
1074
1156
|
jornadaOtimizadaDomain,
|
|
@@ -1124,7 +1206,7 @@ function createServer() {
|
|
|
1124
1206
|
"list_domains",
|
|
1125
1207
|
{
|
|
1126
1208
|
title: "Listar dom\xEDnios",
|
|
1127
|
-
description: "Lista os dom\xEDnios de conhecimento do Open Finance Brasil dispon\xEDveis neste server, com os filtros aceitos por cada um e o estado do cache local. Comece por aqui; depois use search(domain, ...) e get_item(domain, id).",
|
|
1209
|
+
description: "Lista os dom\xEDnios de conhecimento do Open Finance Brasil dispon\xEDveis neste server, com os filtros aceitos por cada um, a vers\xE3o da spec de origem e o estado do cache local. Devolve tamb\xE9m a vers\xE3o deste server em `server.version`. Comece por aqui; depois use search(domain, ...) e get_item(domain, id).",
|
|
1128
1210
|
annotations: {
|
|
1129
1211
|
readOnlyHint: true,
|
|
1130
1212
|
destructiveHint: false,
|
|
@@ -1134,20 +1216,24 @@ function createServer() {
|
|
|
1134
1216
|
},
|
|
1135
1217
|
async () => {
|
|
1136
1218
|
const out = domains.map((d) => {
|
|
1137
|
-
|
|
1138
|
-
return { id: d.id, title: d.title, description: d.description, filters: d.filters, live: true };
|
|
1139
|
-
}
|
|
1140
|
-
const cached = readCache(d.id);
|
|
1141
|
-
return {
|
|
1219
|
+
const base = {
|
|
1142
1220
|
id: d.id,
|
|
1143
1221
|
title: d.title,
|
|
1144
1222
|
description: d.description,
|
|
1145
1223
|
filters: d.filters,
|
|
1224
|
+
...d.specVersion ? { specVersion: d.specVersion } : {}
|
|
1225
|
+
};
|
|
1226
|
+
if (d.live) {
|
|
1227
|
+
return { ...base, live: true };
|
|
1228
|
+
}
|
|
1229
|
+
const cached = readCache(d.id);
|
|
1230
|
+
return {
|
|
1231
|
+
...base,
|
|
1146
1232
|
cachedItems: cached?.data.items.length ?? 0,
|
|
1147
1233
|
extractedAt: cached?.extractedAt ?? null
|
|
1148
1234
|
};
|
|
1149
1235
|
});
|
|
1150
|
-
return text(out);
|
|
1236
|
+
return text({ server: { name: "opf-br-mcp", version: PACKAGE_VERSION }, domains: out });
|
|
1151
1237
|
}
|
|
1152
1238
|
);
|
|
1153
1239
|
server2.registerTool(
|
|
@@ -1294,6 +1380,10 @@ function createServer() {
|
|
|
1294
1380
|
}
|
|
1295
1381
|
|
|
1296
1382
|
// src/index.ts
|
|
1383
|
+
if (process.argv.includes("--version") || process.argv.includes("-v")) {
|
|
1384
|
+
console.log(PACKAGE_VERSION);
|
|
1385
|
+
process.exit(0);
|
|
1386
|
+
}
|
|
1297
1387
|
var server = createServer();
|
|
1298
1388
|
await server.connect(new StdioServerTransport());
|
|
1299
|
-
console.error(
|
|
1389
|
+
console.error(`[opf-br-mcp] server pronto (stdio) \u2014 v${PACKAGE_VERSION}`);
|