@po-ui/mcp 21.30.1 → 21.31.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 CHANGED
@@ -120,7 +120,7 @@ Em clientes compatíveis com servidores MCP locais, configure um servidor `stdio
120
120
 
121
121
  ## Ferramentas disponíveis
122
122
 
123
- O servidor expõe quatro ferramentas somente de leitura.
123
+ O servidor expõe seis ferramentas somente de leitura.
124
124
 
125
125
  ### `list_components`
126
126
 
@@ -153,6 +153,40 @@ Exemplo:
153
153
  { "slug": "PoButtonComponent" }
154
154
  ```
155
155
 
156
+ ### `get_component_examples`
157
+
158
+ Retorna exemplos oficiais de um componente, buscados diretamente do repositório `po-ui/po-angular`. Cada exemplo inclui os arquivos que o compõem (TypeScript, HTML, estilos e configuração), com o conteúdo e o link para o código-fonte.
159
+
160
+ | Parâmetro | Tipo | Obrigatório | Descrição |
161
+ | --- | --- | --- | --- |
162
+ | `slug` | `string` | sim | Identificador do componente. Aceita slug (`po-button`), seletor (`<po-button>`) ou nome de classe (`PoButtonComponent`). |
163
+ | `example` | `string` | não | Filtro pelo nome do exemplo, sem diferenciar maiúsculas e minúsculas. Exemplos: `basic`, `labs`. |
164
+ | `max_examples` | número inteiro de 1 a 5 | não | Quantidade máxima de exemplos. O padrão é `3`. |
165
+
166
+ Quando o componente informado não possui exemplos próprios, o servidor procura os exemplos do componente pai (por exemplo, `po-tab` retorna exemplos de `po-tabs`) e sinaliza a origem na resposta.
167
+
168
+ Exemplo:
169
+
170
+ ```json
171
+ { "slug": "po-button", "example": "basic", "max_examples": 2 }
172
+ ```
173
+
174
+ > Esta ferramenta consulta a API pública do GitHub. Consulte a seção [Limitação de taxa da API do GitHub](#limitação-de-taxa-da-api-do-github).
175
+
176
+ ### `get_best_practices`
177
+
178
+ Retorna, em Markdown, um documento oficial de boas práticas do PO UI, junto com o título e o link da fonte.
179
+
180
+ | Parâmetro | Tipo | Obrigatório | Descrição |
181
+ | --- | --- | --- | --- |
182
+ | `topic` | `"contributing" \| "development-flow" \| "getting-started" \| "theme-service"` | sim | Tema das recomendações. |
183
+
184
+ Exemplo:
185
+
186
+ ```json
187
+ { "topic": "getting-started" }
188
+ ```
189
+
156
190
  ### `search_docs`
157
191
 
158
192
  Realiza uma busca textual, sem diferenciar maiúsculas e minúsculas, no arquivo `llms-full.txt`.
@@ -193,6 +227,8 @@ Exemplo:
193
227
  - “Como usar o `PoThemeService`?”
194
228
  - “Pesquise por `p-loading` na documentação do PO UI.”
195
229
  - “Liste os guias disponíveis e traga o guia de schematics.”
230
+ - “Mostre exemplos oficiais do `po-table`.”
231
+ - “Quais são as boas práticas de customização de tema do PO UI?”
196
232
 
197
233
  ## Fontes de dados
198
234
 
@@ -202,8 +238,11 @@ Exemplo:
202
238
  | Documentação consolidada | `https://po-ui.io/llms-full.txt` | — |
203
239
  | Documentação por recurso | `https://po-ui.io/llms-generated/{slug}.md` | `https://raw.githubusercontent.com/po-ui/po-angular/master/projects/portal/src/llms-generated/{slug}.md` |
204
240
  | Guias | `https://raw.githubusercontent.com/po-ui/po-angular/master/docs/guides/{name}.md` | — |
241
+ | Índice de exemplos | `https://api.github.com/repos/po-ui/po-angular/git/trees/master?recursive=1` | — |
242
+ | Arquivos de exemplo | `https://raw.githubusercontent.com/po-ui/po-angular/master/{path}` | — |
243
+ | Boas práticas | `https://raw.githubusercontent.com/po-ui/po-angular/master/{doc}` | — |
205
244
 
206
- O índice `llms.txt` é mantido em memória durante a execução do servidor. Para forçar uma nova leitura, reinicie o servidor no cliente MCP.
245
+ O índice `llms.txt` é mantido em memória durante a execução do servidor. O índice de exemplos (árvore do repositório) também é mantido em cache durante a execução. Para forçar uma nova leitura de qualquer um deles, reinicie o servidor no cliente MCP.
207
246
 
208
247
  ## Solução de problemas
209
248
 
@@ -213,7 +252,13 @@ Confirme que o Node.js 18 ou superior está instalado e que `npx` está disponí
213
252
 
214
253
  ### Erro ao carregar o índice ou a documentação
215
254
 
216
- Verifique se o ambiente permite acesso HTTPS a `po-ui.io` e `raw.githubusercontent.com`. Cada requisição possui timeout de 10 segundos.
255
+ Verifique se o ambiente permite acesso HTTPS a `po-ui.io`, `raw.githubusercontent.com` e `api.github.com`. Cada requisição possui timeout de 10 segundos.
256
+
257
+ ### Limitação de taxa da API do GitHub
258
+
259
+ A ferramenta `get_component_examples` consulta a API pública do GitHub para localizar os exemplos no repositório. Sem autenticação, o GitHub limita as requisições a 60 por hora por endereço IP. Ao atingir esse limite, a API responde com HTTP 403 e a ferramenta retorna uma mensagem de erro correspondente.
260
+
261
+ Para reduzir o consumo, o servidor mantém a árvore do repositório em cache durante a execução: apenas a primeira chamada a `get_component_examples` consulta a API do GitHub; as demais reutilizam o resultado em memória. Se você atingir o limite, aguarde a renovação da cota ou reinicie o servidor mais tarde. Ambientes com IP compartilhado (proxies corporativos, por exemplo) podem atingir o limite com mais frequência.
217
262
 
218
263
  ### Recurso não encontrado
219
264
 
package/docs-client.d.ts CHANGED
@@ -1,3 +1,32 @@
1
+ export declare const BEST_PRACTICE_TOPICS: readonly ["contributing", "development-flow", "getting-started", "theme-service"];
2
+ export type BestPracticeTopic = (typeof BEST_PRACTICE_TOPICS)[number];
3
+ export interface OfficialDocument {
4
+ content: string;
5
+ title: string;
6
+ url: string;
7
+ }
8
+ export interface ComponentExampleFile {
9
+ content: string;
10
+ language: string;
11
+ name: string;
12
+ url: string;
13
+ }
14
+ export interface ComponentExample {
15
+ files: Array<ComponentExampleFile>;
16
+ name: string;
17
+ url: string;
18
+ }
19
+ export interface ComponentExamplesResult {
20
+ examples: Array<ComponentExample>;
21
+ sourceSlug: string;
22
+ status: 'available' | 'no_match' | 'not_available';
23
+ }
24
+ /** Resolve the highlight language of a sample file. Exported for direct unit testing. */
25
+ export declare function getLanguage(fileName: string): string;
26
+ /** Clear the session cache. Intended for tests that mock the GitHub tree. */
27
+ export declare function clearRepositoryTreeCache(): void;
28
+ export declare function fetchComponentExamples(slug: string, maxExamples: number, exampleFilter?: string): Promise<ComponentExamplesResult>;
29
+ export declare function fetchBestPractices(topic: BestPracticeTopic): Promise<OfficialDocument>;
1
30
  export declare function fetchLlmsTxt(): Promise<string>;
2
31
  export declare function fetchLlmsFullTxt(): Promise<string>;
3
32
  export declare function fetchComponentDoc(slug: string): Promise<string>;
package/docs-client.js CHANGED
@@ -1,5 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BEST_PRACTICE_TOPICS = void 0;
4
+ exports.getLanguage = getLanguage;
5
+ exports.clearRepositoryTreeCache = clearRepositoryTreeCache;
6
+ exports.fetchComponentExamples = fetchComponentExamples;
7
+ exports.fetchBestPractices = fetchBestPractices;
3
8
  exports.fetchLlmsTxt = fetchLlmsTxt;
4
9
  exports.fetchLlmsFullTxt = fetchLlmsFullTxt;
5
10
  exports.fetchComponentDoc = fetchComponentDoc;
@@ -8,11 +13,64 @@ const https = require("node:https");
8
13
  const http = require("node:http");
9
14
  const BASE_URL = 'https://po-ui.io';
10
15
  const GITHUB_RAW = 'https://raw.githubusercontent.com/po-ui/po-angular/master';
16
+ const GITHUB_REPOSITORY = 'https://github.com/po-ui/po-angular';
17
+ const GITHUB_API = 'https://api.github.com/repos/po-ui/po-angular';
11
18
  const FETCH_TIMEOUT_MS = 10_000;
19
+ const COMPONENT_SOURCE_ROOTS = [
20
+ 'projects/ui/src/lib/components',
21
+ 'projects/templates/src/lib/components',
22
+ 'projects/code-editor/src/lib/components'
23
+ ];
24
+ const COMPONENT_EXAMPLE_PARENTS = {
25
+ 'po-accordion-item': 'po-accordion',
26
+ 'po-button-base': 'po-button',
27
+ 'po-button-group-base': 'po-button-group',
28
+ 'po-checkbox-base': 'po-checkbox',
29
+ 'po-helper-base': 'po-helper',
30
+ 'po-modal-footer': 'po-modal',
31
+ 'po-page-slide-footer': 'po-page-slide',
32
+ 'po-popover-base': 'po-popover',
33
+ 'po-step': 'po-stepper',
34
+ 'po-tab': 'po-tabs'
35
+ };
36
+ exports.BEST_PRACTICE_TOPICS = ['contributing', 'development-flow', 'getting-started', 'theme-service'];
37
+ let repositoryTreePromise;
38
+ const BEST_PRACTICE_SOURCES = {
39
+ contributing: {
40
+ title: 'Contribuindo com o PO UI',
41
+ url: `${GITHUB_REPOSITORY}/blob/master/CONTRIBUTING.md`,
42
+ rawUrl: `${GITHUB_RAW}/CONTRIBUTING.md`
43
+ },
44
+ 'development-flow': {
45
+ title: 'Fluxo de desenvolvimento',
46
+ url: `${GITHUB_REPOSITORY}/blob/master/docs/guides/development-flow.md`,
47
+ rawUrl: `${GITHUB_RAW}/docs/guides/development-flow.md`
48
+ },
49
+ 'getting-started': {
50
+ title: 'Primeiros passos',
51
+ url: `${GITHUB_REPOSITORY}/blob/master/docs/guides/getting-started.md`,
52
+ rawUrl: `${GITHUB_RAW}/docs/guides/getting-started.md`
53
+ },
54
+ 'theme-service': {
55
+ title: 'Customização de temas com PoThemeService',
56
+ url: `${GITHUB_REPOSITORY}/blob/master/docs/guides/theme-service.md`,
57
+ rawUrl: `${GITHUB_RAW}/docs/guides/theme-service.md`
58
+ }
59
+ };
60
+ function buildRequestHeaders(url) {
61
+ const headers = { 'User-Agent': 'po-ui-mcp' };
62
+ if (url.startsWith(`${GITHUB_API}/`) || url === GITHUB_API) {
63
+ headers.Accept = 'application/vnd.github+json';
64
+ }
65
+ return headers;
66
+ }
12
67
  function fetchUrl(url) {
13
68
  return new Promise(resolve => {
14
69
  const client = url.startsWith('https') ? https : http;
15
- const req = client.get(url, { timeout: FETCH_TIMEOUT_MS }, res => {
70
+ const req = client.get(url, {
71
+ headers: buildRequestHeaders(url),
72
+ timeout: FETCH_TIMEOUT_MS
73
+ }, res => {
16
74
  // Follow redirects (301/302)
17
75
  if (res.statusCode && res.statusCode >= 300 && res.statusCode < 400 && res.headers.location) {
18
76
  resolve(fetchUrl(res.headers.location));
@@ -37,6 +95,129 @@ function fetchUrl(url) {
37
95
  req.on('error', (err) => resolve({ ok: false, text: err.message }));
38
96
  });
39
97
  }
98
+ function parseJson(result, url) {
99
+ try {
100
+ return JSON.parse(result.text);
101
+ }
102
+ catch {
103
+ throw new Error(`Resposta JSON inválida recebida de ${url}`);
104
+ }
105
+ }
106
+ /** Resolve the highlight language of a sample file. Exported for direct unit testing. */
107
+ function getLanguage(fileName) {
108
+ const extension = fileName.slice(fileName.lastIndexOf('.') + 1);
109
+ const languages = {
110
+ css: 'css',
111
+ html: 'html',
112
+ json: 'json',
113
+ scss: 'scss',
114
+ ts: 'typescript'
115
+ };
116
+ return languages[extension] ?? 'text';
117
+ }
118
+ function isWithinComponentSource(path) {
119
+ return COMPONENT_SOURCE_ROOTS.some(root => path.startsWith(`${root}/`));
120
+ }
121
+ function findSamplesLocation(tree, slug) {
122
+ const samplesMarker = `/${slug}/samples/`;
123
+ const locations = new Map();
124
+ for (const entry of tree) {
125
+ if (entry.type !== 'blob' || !isWithinComponentSource(entry.path))
126
+ continue;
127
+ const markerIndex = entry.path.indexOf(samplesMarker);
128
+ if (markerIndex === -1 || !/\.(?:css|html|json|scss|ts)$/.test(entry.path))
129
+ continue;
130
+ const rootPath = entry.path.slice(0, markerIndex + samplesMarker.length - 1);
131
+ const files = locations.get(rootPath) ?? [];
132
+ files.push(entry);
133
+ locations.set(rootPath, files);
134
+ }
135
+ const [rootPath, files] = [...locations.entries()].sort(([pathA], [pathB]) => pathA.length - pathB.length)[0] ?? [];
136
+ return rootPath && files ? { files, rootPath } : undefined;
137
+ }
138
+ function componentExists(tree, slug) {
139
+ const componentMarker = `/${slug}/`;
140
+ return tree.some(entry => isWithinComponentSource(entry.path) && `/${entry.path}/`.includes(componentMarker));
141
+ }
142
+ async function loadRepositoryTree() {
143
+ const url = `${GITHUB_API}/git/trees/master?recursive=1`;
144
+ const result = await fetchUrl(url);
145
+ if (!result.ok) {
146
+ throw new Error(`Falha ao carregar o índice de exemplos (HTTP ${result.statusCode ?? 'desconhecido'}).`);
147
+ }
148
+ const response = parseJson(result, url);
149
+ if (!Array.isArray(response.tree)) {
150
+ throw new TypeError(`Resposta inválida recebida de ${url}: campo "tree" ausente.`);
151
+ }
152
+ if (response.truncated) {
153
+ throw new Error('O índice de exemplos retornado pelo GitHub está incompleto. Tente novamente mais tarde.');
154
+ }
155
+ return response.tree;
156
+ }
157
+ async function getRepositoryTree() {
158
+ repositoryTreePromise ??= loadRepositoryTree().catch(error => {
159
+ repositoryTreePromise = undefined;
160
+ throw error;
161
+ });
162
+ return repositoryTreePromise;
163
+ }
164
+ /** Clear the session cache. Intended for tests that mock the GitHub tree. */
165
+ function clearRepositoryTreeCache() {
166
+ repositoryTreePromise = undefined;
167
+ }
168
+ async function fetchComponentExamples(slug, maxExamples, exampleFilter) {
169
+ const repositoryTree = await getRepositoryTree();
170
+ const directLocation = findSamplesLocation(repositoryTree, slug);
171
+ const sourceSlug = directLocation ? slug : (COMPONENT_EXAMPLE_PARENTS[slug] ?? slug);
172
+ const location = directLocation ?? findSamplesLocation(repositoryTree, sourceSlug);
173
+ if (!location) {
174
+ if (componentExists(repositoryTree, slug)) {
175
+ return { examples: [], sourceSlug: slug, status: 'not_available' };
176
+ }
177
+ throw new Error(`Componente "${slug}" não encontrado no repositório oficial.`);
178
+ }
179
+ const sampleNames = [
180
+ ...new Set(location.files.map(entry => entry.path.slice(location.rootPath.length + 1).split('/')[0]))
181
+ ]
182
+ .filter(name => !exampleFilter || name.toLowerCase().includes(exampleFilter.toLowerCase()))
183
+ .sort((nameA, nameB) => nameA.localeCompare(nameB))
184
+ .slice(0, maxExamples);
185
+ const examples = await Promise.all(sampleNames.map(async (name) => {
186
+ const entries = location.files.filter(entry => entry.path.startsWith(`${location.rootPath}/${name}/`));
187
+ const files = await Promise.all(entries.map(async (entry) => {
188
+ const path = entry.path;
189
+ const rawUrl = `${GITHUB_RAW}/${path}`;
190
+ const result = await fetchUrl(rawUrl);
191
+ if (!result.ok) {
192
+ throw new Error(`Falha ao buscar o arquivo de exemplo "${path}" (HTTP ${result.statusCode ?? 'desconhecido'}).`);
193
+ }
194
+ return {
195
+ content: result.text,
196
+ language: getLanguage(entry.path),
197
+ name: path.slice(path.lastIndexOf('/') + 1),
198
+ url: `${GITHUB_REPOSITORY}/blob/master/${path}`
199
+ };
200
+ }));
201
+ return {
202
+ files,
203
+ name,
204
+ url: `${GITHUB_REPOSITORY}/tree/master/${location.rootPath}/${name}`
205
+ };
206
+ }));
207
+ return {
208
+ examples,
209
+ sourceSlug,
210
+ status: examples.length > 0 ? 'available' : 'no_match'
211
+ };
212
+ }
213
+ async function fetchBestPractices(topic) {
214
+ const source = BEST_PRACTICE_SOURCES[topic];
215
+ const result = await fetchUrl(source.rawUrl);
216
+ if (!result.ok) {
217
+ throw new Error(`Falha ao buscar boas práticas de "${topic}" (HTTP ${result.statusCode ?? 'desconhecido'}).`);
218
+ }
219
+ return { content: result.text, title: source.title, url: source.url };
220
+ }
40
221
  async function fetchLlmsTxt() {
41
222
  const result = await fetchUrl(`${BASE_URL}/llms.txt`);
42
223
  if (result.ok)
@@ -54,7 +235,6 @@ async function fetchComponentDoc(slug) {
54
235
  const primary = await fetchUrl(primaryUrl);
55
236
  if (primary.ok)
56
237
  return primary.text;
57
- // Fallback: GitHub raw
58
238
  const fallbackUrl = `${GITHUB_RAW}/projects/portal/src/llms-generated/${slug}.md`;
59
239
  const fallback = await fetchUrl(fallbackUrl);
60
240
  if (fallback.ok)
@@ -1 +1 @@
1
- {"version":3,"file":"docs-client.js","sourceRoot":"","sources":["../../projects/mcp/src/docs-client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"docs-client.js","sourceRoot":"","sources":["../../projects/mcp/src/docs-client.ts"],"names":[],"mappings":"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"}
package/llms-parser.js CHANGED
@@ -27,7 +27,7 @@ function parseLlmsTxt(text) {
27
27
  // Extract slug from URL path:
28
28
  // https://po-ui.io/llms-generated/po-button.md → po-button
29
29
  // https://po-ui.io/guides/getting-started → getting-started
30
- const lastSegment = url.split('/').pop() ?? '';
30
+ const lastSegment = url.slice(url.lastIndexOf('/') + 1);
31
31
  const slug = lastSegment.endsWith('.md') ? lastSegment.slice(0, -3) : lastSegment;
32
32
  entries.push({
33
33
  name,
@@ -1 +1 @@
1
- {"version":3,"file":"llms-parser.js","sourceRoot":"","sources":["../../projects/mcp/src/llms-parser.ts"],"names":[],"mappings":";;AAmBA,oCAkCC;AA7CD,MAAM,WAAW,GAA2B;IAC1C,yBAAyB,EAAE,YAAY;IACvC,UAAU,EAAE,UAAU;IACtB,sBAAsB,EAAE,YAAY;IACpC,OAAO,EAAE,OAAO;IAChB,OAAO,EAAE,QAAQ;CAClB,CAAC;AAEF,yDAAyD;AACzD,MAAM,QAAQ,GAAG,uCAAuC,CAAC;AAEzD,SAAgB,YAAY,CAAC,IAAY;IACvC,MAAM,OAAO,GAAgB,EAAE,CAAC;IAChC,IAAI,cAAc,GAAG,SAAS,CAAC;IAE/B,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;QACvC,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;QAE5B,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;YAC3B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC;YACjD,cAAc,GAAG,WAAW,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC;YAC7C,SAAS;QACX,CAAC;QAED,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAClC,IAAI,CAAC,KAAK;YAAE,SAAS;QAErB,MAAM,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,WAAW,GAAG,EAAE,CAAC,GAAG,KAAK,CAAC;QAE9C,8BAA8B;QAC9B,4DAA4D;QAC5D,mEAAmE;QACnE,MAAM,WAAW,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC;QAC/C,MAAM,IAAI,GAAG,WAAW,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC;QAElF,OAAO,CAAC,IAAI,CAAC;YACX,IAAI;YACJ,IAAI;YACJ,GAAG;YACH,WAAW,EAAE,WAAW,CAAC,IAAI,EAAE;YAC/B,OAAO,EAAE,cAAc;SACxB,CAAC,CAAC;IACL,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC"}
1
+ {"version":3,"file":"llms-parser.js","sourceRoot":"","sources":["../../projects/mcp/src/llms-parser.ts"],"names":[],"mappings":";;AAmBA,oCAkCC;AA7CD,MAAM,WAAW,GAA2B;IAC1C,yBAAyB,EAAE,YAAY;IACvC,UAAU,EAAE,UAAU;IACtB,sBAAsB,EAAE,YAAY;IACpC,OAAO,EAAE,OAAO;IAChB,OAAO,EAAE,QAAQ;CAClB,CAAC;AAEF,yDAAyD;AACzD,MAAM,QAAQ,GAAG,uCAAuC,CAAC;AAEzD,SAAgB,YAAY,CAAC,IAAY;IACvC,MAAM,OAAO,GAAgB,EAAE,CAAC;IAChC,IAAI,cAAc,GAAG,SAAS,CAAC;IAE/B,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;QACvC,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;QAE5B,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;YAC3B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC;YACjD,cAAc,GAAG,WAAW,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC;YAC7C,SAAS;QACX,CAAC;QAED,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAClC,IAAI,CAAC,KAAK;YAAE,SAAS;QAErB,MAAM,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,WAAW,GAAG,EAAE,CAAC,GAAG,KAAK,CAAC;QAE9C,8BAA8B;QAC9B,4DAA4D;QAC5D,mEAAmE;QACnE,MAAM,WAAW,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;QACxD,MAAM,IAAI,GAAG,WAAW,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC;QAElF,OAAO,CAAC,IAAI,CAAC;YACX,IAAI;YACJ,IAAI;YACJ,GAAG;YACH,WAAW,EAAE,WAAW,CAAC,IAAI,EAAE;YAC/B,OAAO,EAAE,cAAc;SACxB,CAAC,CAAC;IACL,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@po-ui/mcp",
3
- "version": "21.30.1",
3
+ "version": "21.31.0",
4
4
  "description": "MCP Server para documentação do PO UI — acessa componentes, guias e busca via Model Context Protocol",
5
5
  "main": "./index.js",
6
6
  "bin": {
package/server.js CHANGED
@@ -46,6 +46,43 @@ function normaliseSlug(input) {
46
46
  }
47
47
  return s;
48
48
  }
49
+ const PO_UI_URL = 'https://po-ui.io';
50
+ function getComponentDocumentationUrl(slug) {
51
+ return `${PO_UI_URL}/documentation/${slug}`;
52
+ }
53
+ function getComponentSourceUrl(slug) {
54
+ return `${PO_UI_URL}/llms-generated/${slug}.md`;
55
+ }
56
+ function getGuideUrl(guide) {
57
+ return `https://github.com/po-ui/po-angular/blob/master/docs/guides/${guide}.md`;
58
+ }
59
+ function getErrorMessage(error) {
60
+ if (error instanceof Error) {
61
+ return error.message;
62
+ }
63
+ if (typeof error === 'string') {
64
+ return error;
65
+ }
66
+ try {
67
+ return JSON.stringify(error);
68
+ }
69
+ catch {
70
+ return 'Erro desconhecido.';
71
+ }
72
+ }
73
+ function createToolError(message) {
74
+ return { content: [{ type: 'text', text: message }], isError: true };
75
+ }
76
+ function formatExamples(examples) {
77
+ return examples
78
+ .map(example => {
79
+ const files = example.files
80
+ .map(file => `#### [${file.name}](${file.url})\n\n\`\`\`${file.language}\n${file.content}\n\`\`\``)
81
+ .join('\n\n');
82
+ return `### [${example.name}](${example.url})\n\n${files}`;
83
+ })
84
+ .join('\n\n');
85
+ }
49
86
  /** Extract the heading text from the first `# ...` line, or fallback. */
50
87
  function extractHeading(lines) {
51
88
  return (lines
@@ -109,9 +146,9 @@ function createServer() {
109
146
  name: 'po-ui',
110
147
  version: '1.0.0'
111
148
  });
149
+ const registerTool = server.registerTool.bind(server);
112
150
  // ── list_components ─────────────────────────────────────────────────────────
113
- // @ts-ignore — TS2589: limitação de inferência genérica do @modelcontextprotocol/sdk com zod
114
- server.registerTool('list_components', {
151
+ registerTool('list_components', {
115
152
  description: 'Lista todos os componentes, diretivas, serviços, interfaces e enums do PO UI com descrições resumidas. ' +
116
153
  'Use para descobrir quais APIs existem antes de buscar detalhes.',
117
154
  inputSchema: {
@@ -120,6 +157,17 @@ function createServer() {
120
157
  .optional()
121
158
  .describe('Filtrar por seção: "components", "services", "interfaces", "enums", "guides" ou "all" (padrão).'),
122
159
  filter: zod_1.z.string().optional().describe('Filtro de texto livre no nome ou descrição (case-insensitive).')
160
+ },
161
+ outputSchema: {
162
+ count: zod_1.z.number().int(),
163
+ items: zod_1.z.array(zod_1.z.object({
164
+ description: zod_1.z.string(),
165
+ name: zod_1.z.string(),
166
+ section: zod_1.z.string(),
167
+ slug: zod_1.z.string(),
168
+ url: zod_1.z.string()
169
+ })),
170
+ section: zod_1.z.string()
123
171
  }
124
172
  }, async ({ section, filter }) => {
125
173
  const resolvedSection = section ?? 'all';
@@ -128,8 +176,7 @@ function createServer() {
128
176
  entries = await getLlmsEntries();
129
177
  }
130
178
  catch (err) {
131
- const msg = err instanceof Error ? err.message : String(err);
132
- return { content: [{ type: 'text', text: `Erro ao carregar índice: ${msg}` }] };
179
+ return createToolError(`Erro ao carregar índice: ${getErrorMessage(err)}`);
133
180
  }
134
181
  let results = resolvedSection === 'all' ? entries : entries.filter(e => e.section === resolvedSection);
135
182
  if (filter) {
@@ -137,7 +184,10 @@ function createServer() {
137
184
  results = results.filter(e => e.name.toLowerCase().includes(q) || e.description.toLowerCase().includes(q));
138
185
  }
139
186
  if (results.length === 0) {
140
- return { content: [{ type: 'text', text: 'Nenhum resultado encontrado.' }] };
187
+ return {
188
+ content: [{ type: 'text', text: 'Nenhum resultado encontrado.' }],
189
+ structuredContent: { count: 0, items: [], section: resolvedSection }
190
+ };
141
191
  }
142
192
  // Group by section
143
193
  const grouped = new Map();
@@ -155,10 +205,23 @@ function createServer() {
155
205
  }
156
206
  lines.push('');
157
207
  }
158
- return { content: [{ type: 'text', text: lines.join('\n') }] };
208
+ return {
209
+ content: [{ type: 'text', text: lines.join('\n') }],
210
+ structuredContent: {
211
+ count: results.length,
212
+ items: results.map(item => ({
213
+ description: item.description,
214
+ name: item.name,
215
+ section: item.section,
216
+ slug: item.slug,
217
+ url: item.url
218
+ })),
219
+ section: resolvedSection
220
+ }
221
+ };
159
222
  });
160
223
  // ── get_component_docs ───────────────────────────────────────────────────────
161
- server.registerTool('get_component_docs', {
224
+ registerTool('get_component_docs', {
162
225
  description: 'Retorna a documentação completa em Markdown para um componente, serviço, interface ou enum do PO UI. ' +
163
226
  'Inclui descrição, tabelas de inputs/outputs/propriedades, tipos e exemplos de uso.',
164
227
  inputSchema: {
@@ -167,19 +230,41 @@ function createServer() {
167
230
  .describe('Slug do componente. Exemplos: "po-button", "po-table", "po-dialog-service", "po-table-column". ' +
168
231
  'Aceita também nomes de classe ("PoButtonComponent") e seletores HTML ("<po-button>"). ' +
169
232
  'Use list_components para descobrir slugs disponíveis.')
233
+ },
234
+ outputSchema: {
235
+ content: zod_1.z.string(),
236
+ documentationUrl: zod_1.z.string(),
237
+ slug: zod_1.z.string(),
238
+ sourceUrl: zod_1.z.string()
170
239
  }
171
240
  }, async ({ slug }) => {
172
241
  const normalised = normaliseSlug(slug);
173
242
  try {
174
243
  const markdown = await (0, docs_client_1.fetchComponentDoc)(normalised);
175
- return { content: [{ type: 'text', text: markdown }] };
244
+ return {
245
+ content: [{ type: 'text', text: markdown }],
246
+ structuredContent: {
247
+ content: markdown,
248
+ documentationUrl: getComponentDocumentationUrl(normalised),
249
+ slug: normalised,
250
+ sourceUrl: getComponentSourceUrl(normalised)
251
+ }
252
+ };
176
253
  }
177
254
  catch {
178
255
  // If normalised slug failed, try the original input as-is
179
256
  if (normalised !== slug) {
180
257
  try {
181
258
  const markdown = await (0, docs_client_1.fetchComponentDoc)(slug);
182
- return { content: [{ type: 'text', text: markdown }] };
259
+ return {
260
+ content: [{ type: 'text', text: markdown }],
261
+ structuredContent: {
262
+ content: markdown,
263
+ documentationUrl: getComponentDocumentationUrl(slug),
264
+ slug,
265
+ sourceUrl: getComponentSourceUrl(slug)
266
+ }
267
+ };
183
268
  }
184
269
  catch {
185
270
  // Fall through to error with suggestions
@@ -190,37 +275,127 @@ function createServer() {
190
275
  const entries = await getLlmsEntries();
191
276
  const q = normalised.toLowerCase();
192
277
  const suggestions = entries
193
- .filter(e => e.slug.includes(q) || q.includes(e.slug.split('-')[0] ?? ''))
278
+ .filter(e => e.slug.includes(q) || q.includes(e.slug.split('-')[0]))
194
279
  .slice(0, 5)
195
280
  .map(e => `- ${e.name} (\`${e.slug}\`)`)
196
281
  .join('\n');
282
+ return createToolError(`Componente "${slug}" não encontrado.\n\n` +
283
+ (suggestions
284
+ ? `Sugestões:\n${suggestions}\n\nUse list_components para ver todos.`
285
+ : 'Use list_components para ver todos os slugs disponíveis.'));
286
+ }
287
+ catch {
288
+ return createToolError(`Componente "${slug}" não encontrado. Use list_components para ver os slugs disponíveis.`);
289
+ }
290
+ }
291
+ });
292
+ // ── get_component_examples ──────────────────────────────────────────────────
293
+ registerTool('get_component_examples', {
294
+ description: 'Retorna exemplos oficiais de um componente PO UI diretamente do repositório. ' +
295
+ 'Inclui os arquivos TypeScript, HTML e estilos necessários para compreender cada exemplo.',
296
+ inputSchema: {
297
+ slug: zod_1.z.string().describe('Slug do componente. Exemplos: "po-button", "po-table" ou "PoButtonComponent".'),
298
+ example: zod_1.z
299
+ .string()
300
+ .optional()
301
+ .describe('Filtro opcional pelo nome do exemplo. Exemplos: "basic", "labs" ou "airfare".'),
302
+ max_examples: zod_1.z
303
+ .number()
304
+ .int()
305
+ .min(1)
306
+ .max(5)
307
+ .optional()
308
+ .describe('Quantidade máxima de exemplos. Padrão: 3. Máximo: 5.')
309
+ },
310
+ outputSchema: {
311
+ documentationUrl: zod_1.z.string(),
312
+ examples: zod_1.z.array(zod_1.z.object({
313
+ files: zod_1.z.array(zod_1.z.object({ content: zod_1.z.string(), language: zod_1.z.string(), name: zod_1.z.string(), url: zod_1.z.string() })),
314
+ name: zod_1.z.string(),
315
+ url: zod_1.z.string()
316
+ })),
317
+ slug: zod_1.z.string(),
318
+ sourceSlug: zod_1.z.string(),
319
+ status: zod_1.z.enum(['available', 'no_match', 'not_available'])
320
+ }
321
+ }, async ({ slug, example, max_examples }) => {
322
+ const normalised = normaliseSlug(slug);
323
+ try {
324
+ const result = await (0, docs_client_1.fetchComponentExamples)(normalised, max_examples ?? 3, example);
325
+ const structuredContent = {
326
+ documentationUrl: getComponentDocumentationUrl(normalised),
327
+ examples: result.examples,
328
+ slug: normalised,
329
+ sourceSlug: result.sourceSlug,
330
+ status: result.status
331
+ };
332
+ if (result.status === 'not_available') {
197
333
  return {
198
334
  content: [
199
335
  {
200
336
  type: 'text',
201
- text: `Componente "${slug}" não encontrado.\n\n` +
202
- (suggestions
203
- ? `Sugestões:\n${suggestions}\n\nUse list_components para ver todos.`
204
- : 'Use list_components para ver todos os slugs disponíveis.')
337
+ text: `O componente "${normalised}" não possui exemplos oficiais próprios. Consulte ${structuredContent.documentationUrl}.`
205
338
  }
206
- ]
339
+ ],
340
+ structuredContent
207
341
  };
208
342
  }
209
- catch {
343
+ if (result.status === 'no_match') {
210
344
  return {
211
345
  content: [
212
346
  {
213
347
  type: 'text',
214
- text: `Componente "${slug}" não encontrado. Use list_components para ver os slugs disponíveis.`
348
+ text: `Nenhum exemplo de "${result.sourceSlug}" corresponde ao filtro "${example}".`
215
349
  }
216
- ]
350
+ ],
351
+ structuredContent
217
352
  };
218
353
  }
354
+ const parentNotice = result.sourceSlug === normalised
355
+ ? ''
356
+ : `Os exemplos abaixo pertencem ao componente pai "${result.sourceSlug}".\n\n`;
357
+ return {
358
+ content: [{ type: 'text', text: `${parentNotice}${formatExamples(result.examples)}` }],
359
+ structuredContent
360
+ };
361
+ }
362
+ catch (err) {
363
+ return createToolError(`Erro ao carregar exemplos de "${slug}": ${getErrorMessage(err)}`);
364
+ }
365
+ });
366
+ // ── get_best_practices ──────────────────────────────────────────────────────
367
+ registerTool('get_best_practices', {
368
+ description: 'Retorna recomendações oficiais do PO UI para contribuição, fluxo de desenvolvimento, ' +
369
+ 'configuração inicial ou customização de temas.',
370
+ inputSchema: {
371
+ topic: zod_1.z
372
+ .enum(docs_client_1.BEST_PRACTICE_TOPICS)
373
+ .describe('Tema das recomendações: contributing, development-flow, getting-started ou theme-service.')
374
+ },
375
+ outputSchema: {
376
+ content: zod_1.z.string(),
377
+ source: zod_1.z.object({ title: zod_1.z.string(), url: zod_1.z.string() }),
378
+ topic: zod_1.z.string()
379
+ }
380
+ }, async ({ topic }) => {
381
+ try {
382
+ const document = await (0, docs_client_1.fetchBestPractices)(topic);
383
+ const text = `Fonte oficial: ${document.url}\n\n${document.content}`;
384
+ return {
385
+ content: [{ type: 'text', text }],
386
+ structuredContent: {
387
+ content: document.content,
388
+ source: { title: document.title, url: document.url },
389
+ topic
390
+ }
391
+ };
392
+ }
393
+ catch (err) {
394
+ return createToolError(`Erro ao carregar boas práticas de "${topic}": ${getErrorMessage(err)}`);
219
395
  }
220
396
  });
221
397
  // ── search_docs ──────────────────────────────────────────────────────────────
222
- // @ts-ignore — TS2589: limitação de inferência genérica do @modelcontextprotocol/sdk com zod
223
- server.registerTool('search_docs', {
398
+ registerTool('search_docs', {
224
399
  description: 'Busca texto em toda a documentação do PO UI. Útil para encontrar componentes que suportem ' +
225
400
  'uma propriedade específica, um comportamento ou um padrão de uso.',
226
401
  inputSchema: {
@@ -235,6 +410,16 @@ function createServer() {
235
410
  .max(50)
236
411
  .optional()
237
412
  .describe('Número máximo de resultados (padrão: 10, máximo: 50).')
413
+ },
414
+ outputSchema: {
415
+ count: zod_1.z.number().int(),
416
+ query: zod_1.z.string(),
417
+ results: zod_1.z.array(zod_1.z.object({
418
+ componentName: zod_1.z.string(),
419
+ context: zod_1.z.string(),
420
+ slug: zod_1.z.string(),
421
+ url: zod_1.z.string()
422
+ }))
238
423
  }
239
424
  }, async ({ query, max_results }) => {
240
425
  const limit = max_results ?? 10;
@@ -243,23 +428,35 @@ function createServer() {
243
428
  fullText = await (0, docs_client_1.fetchLlmsFullTxt)();
244
429
  }
245
430
  catch (err) {
246
- const msg = err instanceof Error ? err.message : String(err);
247
- return { content: [{ type: 'text', text: `Erro ao carregar documentação completa: ${msg}` }] };
431
+ return createToolError(`Erro ao carregar documentação completa: ${getErrorMessage(err)}`);
248
432
  }
249
433
  const results = searchFullText(fullText, query, limit);
434
+ const structuredResults = results.map(result => {
435
+ const slug = normaliseSlug(result.componentName);
436
+ return {
437
+ componentName: result.componentName,
438
+ context: result.context,
439
+ slug,
440
+ url: getComponentDocumentationUrl(slug)
441
+ };
442
+ });
250
443
  if (results.length === 0) {
251
444
  return {
252
- content: [{ type: 'text', text: `Nenhum resultado encontrado para "${query}".` }]
445
+ content: [{ type: 'text', text: `Nenhum resultado encontrado para "${query}".` }],
446
+ structuredContent: { count: 0, query, results: [] }
253
447
  };
254
448
  }
255
449
  const output = [
256
450
  `Encontrados ${results.length} resultado(s) para "${query}":\n`,
257
451
  ...results.map((r, i) => `### Resultado ${i + 1}: ${r.componentName}\n\`\`\`\n${r.context}\n\`\`\``)
258
452
  ].join('\n\n');
259
- return { content: [{ type: 'text', text: output }] };
453
+ return {
454
+ content: [{ type: 'text', text: output }],
455
+ structuredContent: { count: structuredResults.length, query, results: structuredResults }
456
+ };
260
457
  });
261
458
  // ── get_guide ────────────────────────────────────────────────────────────────
262
- server.registerTool('get_guide', {
459
+ registerTool('get_guide', {
263
460
  description: 'Retorna o conteúdo completo de um guia de documentação do PO UI (ex: getting-started, schematics, theme-service). ' +
264
461
  'Use list_components com section="guides" para ver os guias disponíveis.',
265
462
  inputSchema: {
@@ -267,14 +464,23 @@ function createServer() {
267
464
  .string()
268
465
  .describe('Nome do guia sem extensão. Exemplos: "getting-started", "schematics", "browser-support", "llms". ' +
269
466
  'Aceita também com extensão: "getting-started.md".')
467
+ },
468
+ outputSchema: {
469
+ content: zod_1.z.string(),
470
+ guide: zod_1.z.string(),
471
+ url: zod_1.z.string()
270
472
  }
271
473
  }, async ({ guide }) => {
474
+ const guideName = guide.endsWith('.md') ? guide.slice(0, -3) : guide;
272
475
  try {
273
476
  const content = await (0, docs_client_1.fetchGuide)(guide);
274
- return { content: [{ type: 'text', text: content }] };
477
+ return {
478
+ content: [{ type: 'text', text: content }],
479
+ structuredContent: { content, guide: guideName, url: getGuideUrl(guideName) }
480
+ };
275
481
  }
276
482
  catch (err) {
277
- const msg = err instanceof Error ? err.message : String(err);
483
+ const msg = getErrorMessage(err);
278
484
  // Build helpful error with guide list from the index
279
485
  try {
280
486
  const entries = await getLlmsEntries();
@@ -282,17 +488,10 @@ function createServer() {
282
488
  .filter(e => e.section === 'guides')
283
489
  .map(e => `- ${e.name} (\`${e.slug}\`)`)
284
490
  .join('\n');
285
- return {
286
- content: [
287
- {
288
- type: 'text',
289
- text: `Erro: ${msg}\n\nGuias disponíveis:\n${guideList || 'Nenhum guia no índice.'}`
290
- }
291
- ]
292
- };
491
+ return createToolError(`Erro: ${msg}\n\nGuias disponíveis:\n${guideList || 'Nenhum guia no índice.'}`);
293
492
  }
294
493
  catch {
295
- return { content: [{ type: 'text', text: `Erro: ${msg}` }] };
494
+ return createToolError(`Erro: ${msg}`);
296
495
  }
297
496
  }
298
497
  });
package/server.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../../projects/mcp/src/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../../projects/mcp/src/server.ts"],"names":[],"mappings":"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"}