@andrebuzeli/git-mcp 3.1.2 → 3.2.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/dist/server.d.ts CHANGED
@@ -1,3 +1,48 @@
1
+ /**
2
+ * RESOURCES MCP - Documentação e informações estáticas
3
+ *
4
+ * TIPOS DE RESOURCES:
5
+ * - documentação: Regras de uso, melhores práticas
6
+ * - exemplos: Casos de uso práticos
7
+ * - configuração: Como configurar providers
8
+ * - troubleshooting: Solução de problemas comuns
9
+ */
10
+ declare const resources: {
11
+ uri: string;
12
+ name: string;
13
+ description: string;
14
+ mimeType: string;
15
+ }[];
16
+ /**
17
+ * PROMPTS MCP - Templates de uso pré-definidos
18
+ *
19
+ * TIPOS DE PROMPTS:
20
+ * - setup: Configuração inicial
21
+ * - workflow: Workflows específicos
22
+ * - troubleshooting: Diagnóstico e correção
23
+ * - examples: Exemplos práticos
24
+ */
25
+ declare const prompts: {
26
+ name: string;
27
+ description: string;
28
+ arguments: {
29
+ name: string;
30
+ description: string;
31
+ required: boolean;
32
+ }[];
33
+ }[];
34
+ /**
35
+ * CONTENT FUNCTIONS - Para Resources e Prompts
36
+ */
37
+ declare const getResourceContent: (uri: string) => string;
38
+ /**
39
+ * VALIDAÇÃO GLOBAL - Project Path obrigatório
40
+ *
41
+ * TODA tool DEVE validar projectPath antes de executar qualquer operação
42
+ * Isso garante que todas as operações sejam executadas dentro do projeto correto
43
+ */
44
+ declare const validateProjectPath: (args: any, toolName: string) => void;
45
+ declare const getPromptContent: (name: string, args: any) => string;
1
46
  /**
2
47
  * Servidor MCP principal para Gitea
3
48
  *
@@ -17,6 +62,7 @@
17
62
  * - Configure handlers antes de conectar
18
63
  * - Implemente graceful shutdown
19
64
  */
65
+ export { getResourceContent, getPromptContent, validateProjectPath, resources, prompts };
20
66
  export declare class GiteaMCPServer {
21
67
  private server;
22
68
  constructor();
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AA+FA;;;;;;;;;;;;;;;;;;GAkBG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,MAAM,CAAS;;IAavB;;;;;;;;;;;;;;;;;OAiBG;IACH,OAAO,CAAC,aAAa;IAuDrB;;;;;;;;;;;;;;;;;;OAkBG;IACG,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;IA8D1B;;;;;;;;;;;;OAYG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAG7B"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AA8DA;;;;;;;;GAQG;AACH,QAAA,MAAM,SAAS;;;;;GAqCd,CAAC;AAEF;;;;;;;;GAQG;AACH,QAAA,MAAM,OAAO;;;;;;;;GAgFZ,CAAC;AA0CF;;GAEG;AACH,QAAA,MAAM,kBAAkB,GAAI,KAAK,MAAM,KAAG,MAoezC,CAAC;AAEF;;;;;GAKG;AACH,QAAA,MAAM,mBAAmB,GAAI,MAAM,GAAG,EAAE,UAAU,MAAM,KAAG,IA0B1D,CAAC;AAEF,QAAA,MAAM,gBAAgB,GAAI,MAAM,MAAM,EAAE,MAAM,GAAG,KAAG,MAkEnD,CAAC;AAEF;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC;AAEzF,qBAAa,cAAc;IACzB,OAAO,CAAC,MAAM,CAAS;;IAavB;;;;;;;;;;;;;;;;;OAiBG;IACH,OAAO,CAAC,aAAa;IAsHrB;;;;;;;;;;;;;;;;;;OAkBG;IACG,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;IA8D1B;;;;;;;;;;;;OAYG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAG7B"}
package/dist/server.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.GiteaMCPServer = void 0;
3
+ exports.GiteaMCPServer = exports.prompts = exports.resources = exports.validateProjectPath = exports.getPromptContent = exports.getResourceContent = void 0;
4
4
  const index_js_1 = require("@modelcontextprotocol/sdk/server/index.js");
5
5
  const stdio_js_1 = require("@modelcontextprotocol/sdk/server/stdio.js");
6
6
  const types_js_1 = require("@modelcontextprotocol/sdk/types.js");
@@ -54,7 +54,146 @@ const git_sync_js_1 = require("./tools/git-sync.js");
54
54
  const git_packages_js_1 = require("./tools/git-packages.js");
55
55
  const git_projects_js_1 = require("./tools/git-projects.js");
56
56
  /**
57
- * Array de todas as ferramentas disponíveis (20 tools)
57
+ * RESOURCES MCP - Documentação e informações estáticas
58
+ *
59
+ * TIPOS DE RESOURCES:
60
+ * - documentação: Regras de uso, melhores práticas
61
+ * - exemplos: Casos de uso práticos
62
+ * - configuração: Como configurar providers
63
+ * - troubleshooting: Solução de problemas comuns
64
+ */
65
+ const resources = [
66
+ {
67
+ uri: 'git-mcp://documentation/rules',
68
+ name: 'Regras de Uso do Git MCP',
69
+ description: 'Regras essenciais para usar o Git MCP corretamente',
70
+ mimeType: 'text/markdown'
71
+ },
72
+ {
73
+ uri: 'git-mcp://documentation/providers',
74
+ name: 'Configuração de Providers',
75
+ description: 'Como configurar GitHub e Gitea providers',
76
+ mimeType: 'text/markdown'
77
+ },
78
+ {
79
+ uri: 'git-mcp://documentation/tools',
80
+ name: 'Ferramentas Disponíveis',
81
+ description: 'Lista completa de todas as ferramentas e seus usos',
82
+ mimeType: 'text/markdown'
83
+ },
84
+ {
85
+ uri: 'git-mcp://examples/basic-usage',
86
+ name: 'Exemplos Básicos de Uso',
87
+ description: 'Exemplos práticos de como usar as ferramentas',
88
+ mimeType: 'text/markdown'
89
+ },
90
+ {
91
+ uri: 'git-mcp://examples/workflows',
92
+ name: 'Workflows Completos',
93
+ description: 'Exemplos de workflows completos de desenvolvimento',
94
+ mimeType: 'text/markdown'
95
+ },
96
+ {
97
+ uri: 'git-mcp://troubleshooting/common-issues',
98
+ name: 'Problemas Comuns e Soluções',
99
+ description: 'Como resolver problemas comuns no Git MCP',
100
+ mimeType: 'text/markdown'
101
+ }
102
+ ];
103
+ exports.resources = resources;
104
+ /**
105
+ * PROMPTS MCP - Templates de uso pré-definidos
106
+ *
107
+ * TIPOS DE PROMPTS:
108
+ * - setup: Configuração inicial
109
+ * - workflow: Workflows específicos
110
+ * - troubleshooting: Diagnóstico e correção
111
+ * - examples: Exemplos práticos
112
+ */
113
+ const prompts = [
114
+ {
115
+ name: 'setup-project',
116
+ description: 'Configurar um novo projeto com Git MCP',
117
+ arguments: [
118
+ {
119
+ name: 'projectPath',
120
+ description: 'Caminho completo do projeto',
121
+ required: true
122
+ },
123
+ {
124
+ name: 'repoName',
125
+ description: 'Nome do repositório',
126
+ required: true
127
+ },
128
+ {
129
+ name: 'provider',
130
+ description: 'Provider (gitea ou github)',
131
+ required: true
132
+ }
133
+ ]
134
+ },
135
+ {
136
+ name: 'sync-project',
137
+ description: 'Sincronizar projeto completo com provider',
138
+ arguments: [
139
+ {
140
+ name: 'projectPath',
141
+ description: 'Caminho do projeto',
142
+ required: true
143
+ },
144
+ {
145
+ name: 'provider',
146
+ description: 'Provider para sincronização',
147
+ required: true
148
+ },
149
+ {
150
+ name: 'message',
151
+ description: 'Mensagem do commit',
152
+ required: false
153
+ }
154
+ ]
155
+ },
156
+ {
157
+ name: 'troubleshoot-auth',
158
+ description: 'Diagnosticar problemas de autenticação',
159
+ arguments: [
160
+ {
161
+ name: 'provider',
162
+ description: 'Provider com problema (gitea ou github)',
163
+ required: true
164
+ }
165
+ ]
166
+ },
167
+ {
168
+ name: 'create-release',
169
+ description: 'Criar uma nova release',
170
+ arguments: [
171
+ {
172
+ name: 'projectPath',
173
+ description: 'Caminho do projeto',
174
+ required: true
175
+ },
176
+ {
177
+ name: 'repo',
178
+ description: 'Nome do repositório',
179
+ required: true
180
+ },
181
+ {
182
+ name: 'version',
183
+ description: 'Versão da release (ex: v1.0.0)',
184
+ required: true
185
+ },
186
+ {
187
+ name: 'provider',
188
+ description: 'Provider (gitea ou github)',
189
+ required: true
190
+ }
191
+ ]
192
+ }
193
+ ];
194
+ exports.prompts = prompts;
195
+ /**
196
+ * Array de todas as ferramentas disponíveis (21 tools)
58
197
  *
59
198
  * ESTRUTURA:
60
199
  * - Cada tool deve implementar a interface Tool
@@ -93,24 +232,586 @@ const tools = [
93
232
  git_projects_js_1.gitProjectsTool
94
233
  ];
95
234
  /**
96
- * Servidor MCP principal para Gitea
97
- *
98
- * RESPONSABILIDADES:
99
- * - Inicializar servidor MCP
100
- * - Registrar handlers para requests
101
- * - Gerenciar ciclo de vida das tools
102
- * - Tratar erros e validações
103
- *
104
- * ARQUITETURA:
105
- * - Server MCP padrão com transport stdio
106
- * - Handlers para list e call de tools
107
- * - Tratamento centralizado de erros
235
+ * CONTENT FUNCTIONS - Para Resources e Prompts
236
+ */
237
+ const getResourceContent = (uri) => {
238
+ switch (uri) {
239
+ case 'git-mcp://documentation/rules':
240
+ return `# Regras de Uso do Git MCP
241
+
242
+ ## 🚫 REGRAS ABSOLUTAS (NUNCA QUEBRAR)
243
+
244
+ ### 1. **Project Path é OBRIGATÓRIO**
245
+ - **TODA tool** deve receber \`projectPath\` como parâmetro obrigatório
246
+ - **TODAS as operações** devem ser executadas dentro do \`projectPath\` ou suas subpastas
247
+ - **NENHUMA operação** pode ser executada fora do diretório do projeto
248
+
249
+ ### 2. **Comandos Git SEMPRE via Tools**
250
+ - **NUNCA** executar comandos git diretamente no terminal
251
+ - **SEMPRE** usar as tools do git-mcp para operações git
252
+ - **NUNCA** usar \`git\` diretamente, mesmo que "pareça mais rápido"
253
+
254
+ ### 3. **Commit Messages em Português**
255
+ - **TODOS os commits** devem ter mensagens descritivas em português
256
+ - **NÃO usar** mensagens genéricas como "update" ou "fix"
257
+ - **DESCREVER** exatamente o que foi alterado no arquivo
258
+
259
+ ### 4. **Testes OBRIGATÓRIOS**
260
+ - **ANTES de publicar** testar TODAS as tools com ambos providers
261
+ - **VALIDAR** funcionamento com GitHub E Gitea
262
+ - **NÃO publicar** versões não testadas
263
+
264
+ ## ✅ BOAS PRÁTICAS
265
+
266
+ ### Project Path
267
+ - Sempre usar caminhos absolutos
268
+ - Validar se o diretório existe antes das operações
269
+ - Manter consistência entre ferramentas
270
+
271
+ ### Providers
272
+ - Gitea: Para projetos pessoais/privados
273
+ - GitHub: Para projetos públicos/open-source
274
+ - Ambos devem funcionar identicamente
275
+
276
+ ### Commits
277
+ - Mensagens claras e específicas
278
+ - Descrever função/arquivo alterado
279
+ - Usar português brasileiro
280
+
281
+ ### Error Handling
282
+ - Tratar todos os erros possíveis
283
+ - Fornecer mensagens claras
284
+ - Sugerir soluções quando possível`;
285
+ case 'git-mcp://documentation/providers':
286
+ return `# Configuração de Providers
287
+
288
+ ## GitHub Setup
289
+
290
+ ### Variáveis de Ambiente
291
+ \`\`\`bash
292
+ GITHUB_TOKEN=your_github_token_here
293
+ \`\`\`
294
+
295
+ ### Como Obter Token
296
+ 1. Acesse: https://github.com/settings/tokens
297
+ 2. Generate new token (classic)
298
+ 3. Selecione scopes:
299
+ - \`repo\` (acesso completo aos repositórios)
300
+ - \`workflow\` (atualizar workflows GitHub Actions)
301
+ - \`write:packages\` (upload de pacotes)
302
+
303
+ ## Gitea Setup
304
+
305
+ ### Variáveis de Ambiente
306
+ \`\`\`bash
307
+ GITEA_URL=http://your-gitea-server:3000
308
+ GITEA_TOKEN=your_gitea_token_here
309
+ GITEA_USERNAME=your_username
310
+ \`\`\`
311
+
312
+ ### Como Obter Token
313
+ 1. Acesse: \`http://your-server:3000/user/settings/applications\`
314
+ 2. Crie novo token de acesso
315
+ 3. Selecione permissões necessárias
316
+
317
+ ## Validação
318
+
319
+ Teste a configuração executando:
320
+ \`\`\`typescript
321
+ // Testar GitHub
322
+ await gitRepositoriesTool.handler({
323
+ action: 'list',
324
+ provider: 'github',
325
+ page: 1,
326
+ limit: 5
327
+ });
328
+
329
+ // Testar Gitea
330
+ await gitRepositoriesTool.handler({
331
+ action: 'list',
332
+ provider: 'gitea',
333
+ page: 1,
334
+ limit: 5
335
+ });
336
+ \`\`\``;
337
+ case 'git-mcp://documentation/tools':
338
+ return `# Ferramentas Disponíveis - Git MCP v3.1.2
339
+
340
+ ## 🎯 CORE TOOLS (21 Ferramentas)
341
+
342
+ ### Repositories & Projects
343
+ - **git-repositories**: \`create\`, \`list\`, \`get\`, \`update\`, \`delete\`, \`fork\`, \`search\`, \`init\`, \`clone\`
344
+ - **git-projects**: \`list\`, \`get\`, \`create\`, \`update\`, \`delete\`, \`addItem\`, \`updateItem\`, \`deleteItem\`, \`listItems\`
345
+
346
+ ### Git Operations
347
+ - **git-commits**: \`list\`, \`get\`, \`create\`, \`compare\`, \`search\`, \`push\`, \`pull\`
348
+ - **git-branches**: \`create\`, \`list\`, \`get\`, \`delete\`, \`merge\`, \`compare\`
349
+ - **git-tags**: \`create\`, \`list\`, \`get\`, \`delete\`, \`search\`
350
+
351
+ ### Files & Content
352
+ - **git-files**: \`get\`, \`create\`, \`update\`, \`delete\`, \`list\`, \`search\`, \`upload-project\`
353
+ - **git-archive**: \`create\`, \`extract\`, \`list\`, \`verify\`
354
+
355
+ ### Version Control
356
+ - **git-reset**: \`soft\`, \`mixed\`, \`hard\`, \`reset-to-commit\`, \`reset-branch\`
357
+ - **git-revert**: \`revert-commit\`, \`revert-merge\`, \`revert-range\`
358
+ - **git-stash**: \`stash\`, \`pop\`, \`apply\`, \`list\`, \`show\`, \`drop\`, \`clear\`
359
+
360
+ ### Issues & Collaboration
361
+ - **git-issues**: \`create\`, \`list\`, \`get\`, \`update\`, \`close\`, \`comment\`, \`search\`
362
+ - **git-pulls**: \`create\`, \`list\`, \`get\`, \`update\`, \`merge\`, \`close\`, \`review\`, \`search\`
363
+
364
+ ### Releases & Packages
365
+ - **git-releases**: \`create\`, \`list\`, \`get\`, \`update\`, \`delete\`, \`publish\`
366
+ - **git-packages**: \`list\`, \`get\`, \`create\`, \`update\`, \`delete\`, \`publish\`, \`download\`
367
+
368
+ ### Config & Sync
369
+ - **git-config**: \`get\`, \`set\`, \`unset\`, \`list\`, \`edit\`, \`show\`
370
+ - **git-remote**: \`add\`, \`remove\`, \`rename\`, \`show\`, \`set-url\`, \`prune\`
371
+ - **git-sync**: \`configure\`, \`status\`, \`one-shot\`
372
+
373
+ ### Project Management
374
+ - **git-update-project**: \`init\`, \`update\`, \`status\`, \`diff\`, \`log\`, \`reset\`, \`stash\`, \`pull\`, \`sync\`
375
+ - **git-initialize**: \`init\`
376
+
377
+ ## 📋 PARÂMETROS OBRIGATÓRIOS
378
+
379
+ **TODAS as tools requerem:**
380
+ - \`projectPath\`: Caminho absoluto do projeto
381
+ - \`provider\`: 'gitea' ou 'github' (exceto algumas tools específicas)
382
+
383
+ ## 🎯 EXEMPLOS DE USO
384
+
385
+ ### Inicializar Projeto
386
+ \`\`\`typescript
387
+ await gitInitializeTool.handler({
388
+ action: 'init',
389
+ projectPath: '/caminho/do/projeto',
390
+ provider: 'gitea',
391
+ message: 'Setup inicial do projeto'
392
+ });
393
+ \`\`\`
394
+
395
+ ### Commit de Arquivo
396
+ \`\`\`typescript
397
+ await gitCommitsTool.handler({
398
+ action: 'create',
399
+ projectPath: '/caminho/do/projeto',
400
+ provider: 'gitea',
401
+ message: 'Adiciona função de validação de email no arquivo auth.js'
402
+ });
403
+ \`\`\`
404
+
405
+ ### Criar Branch
406
+ \`\`\`typescript
407
+ await gitBranchesTool.handler({
408
+ action: 'create',
409
+ projectPath: '/caminho/do/projeto',
410
+ provider: 'gitea',
411
+ branch_name: 'feature/nova-funcionalidade',
412
+ from_branch: 'main'
413
+ });
414
+ \`\`\``;
415
+ case 'git-mcp://examples/basic-usage':
416
+ return `# Exemplos Básicos de Uso
417
+
418
+ ## 🚀 SETUP INICIAL
419
+
420
+ ### 1. Configurar Projeto Novo
421
+ \`\`\`typescript
422
+ // Criar repositório remoto primeiro
423
+ await gitRepositoriesTool.handler({
424
+ action: 'create',
425
+ name: 'meu-projeto',
426
+ description: 'Projeto incrível',
427
+ private: true,
428
+ auto_init: true,
429
+ provider: 'gitea'
430
+ });
431
+
432
+ // Inicializar localmente
433
+ await gitInitializeTool.handler({
434
+ action: 'init',
435
+ projectPath: 'Z:\\\\Meus Projetos\\\\meu-projeto',
436
+ provider: 'gitea',
437
+ message: 'Setup inicial do projeto'
438
+ });
439
+ \`\`\`
440
+
441
+ ## 📝 TRABALHO DIÁRIO
442
+
443
+ ### 2. Adicionar Arquivo e Commitar
444
+ \`\`\`typescript
445
+ // Criar arquivo via tool
446
+ await gitFilesTool.handler({
447
+ action: 'create',
448
+ repo: 'meu-projeto',
449
+ projectPath: 'Z:\\\\Meus Projetos\\\\meu-projeto',
450
+ provider: 'gitea',
451
+ path: 'src/index.js',
452
+ content: 'console.log("Olá Mundo!");',
453
+ message: 'Cria arquivo principal index.js com saudação básica'
454
+ });
455
+
456
+ // Ou upload completo do projeto
457
+ await gitUpdateProjectTool.handler({
458
+ action: 'init',
459
+ repo: 'meu-projeto',
460
+ projectPath: 'Z:\\\\Meus Projetos\\\\meu-projeto',
461
+ provider: 'gitea',
462
+ message: 'Upload completo dos arquivos do projeto'
463
+ });
464
+ \`\`\`
465
+
466
+ ### 3. Criar Branch e Trabalhar
467
+ \`\`\`typescript
468
+ // Criar branch
469
+ await gitBranchesTool.handler({
470
+ action: 'create',
471
+ repo: 'meu-projeto',
472
+ projectPath: 'Z:\\\\Meus Projetos\\\\meu-projeto',
473
+ provider: 'gitea',
474
+ branch_name: 'feature/login',
475
+ from_branch: 'main'
476
+ });
477
+
478
+ // Commitar mudanças
479
+ await gitCommitsTool.handler({
480
+ action: 'create',
481
+ repo: 'meu-projeto',
482
+ projectPath: 'Z:\\\\Meus Projetos\\\\meu-projeto',
483
+ provider: 'gitea',
484
+ message: 'Implementa validação de formulário de login'
485
+ });
486
+ \`\`\`
487
+
488
+ ## 🔄 SINCRONIZAÇÃO
489
+
490
+ ### 4. Push e Pull
491
+ \`\`\`typescript
492
+ // Enviar mudanças
493
+ await gitCommitsTool.handler({
494
+ action: 'push',
495
+ repo: 'meu-projeto',
496
+ projectPath: 'Z:\\\\Meus Projetos\\\\meu-projeto',
497
+ provider: 'gitea',
498
+ branch: 'feature/login'
499
+ });
500
+
501
+ // Baixar mudanças
502
+ await gitCommitsTool.handler({
503
+ action: 'pull',
504
+ repo: 'meu-projeto',
505
+ projectPath: 'Z:\\\\Meus Projetos\\\\meu-projeto',
506
+ provider: 'gitea',
507
+ branch: 'main'
508
+ });
509
+ \`\`\`
510
+
511
+ ## 📋 GERENCIAMENTO
512
+
513
+ ### 5. Issues e Pull Requests
514
+ \`\`\`typescript
515
+ // Criar issue
516
+ await gitIssuesTool.handler({
517
+ action: 'create',
518
+ repo: 'meu-projeto',
519
+ projectPath: 'Z:\\\\Meus Projetos\\\\meu-projeto',
520
+ provider: 'gitea',
521
+ title: 'Implementar autenticação OAuth',
522
+ body: 'Adicionar suporte para login via Google e GitHub'
523
+ });
524
+
525
+ // Criar PR
526
+ await gitPullsTool.handler({
527
+ action: 'create',
528
+ repo: 'meu-projeto',
529
+ projectPath: 'Z:\\\\Meus Projetos\\\\meu-projeto',
530
+ provider: 'gitea',
531
+ title: 'Feature: Sistema de Login',
532
+ body: 'Implementa autenticação completa com validação',
533
+ head: 'feature/login',
534
+ base: 'main'
535
+ });
536
+ \`\`\`
537
+
538
+ ## 📦 RELEASES
539
+
540
+ ### 6. Criar Release
541
+ \`\`\`typescript
542
+ await gitReleasesTool.handler({
543
+ action: 'create',
544
+ repo: 'meu-projeto',
545
+ projectPath: 'Z:\\\\Meus Projetos\\\\meu-projeto',
546
+ provider: 'gitea',
547
+ tag_name: 'v1.0.0',
548
+ name: 'Versão 1.0.0',
549
+ body: 'Primeira release estável com sistema de login completo',
550
+ draft: false,
551
+ prerelease: false
552
+ });
553
+ \`\`\``;
554
+ case 'git-mcp://examples/workflows':
555
+ return `# Workflows Completos de Desenvolvimento
556
+
557
+ ## 🏗️ WORKFLOW: NOVO PROJETO
558
+
559
+ \`\`\`typescript
560
+ // 1. Criar repositório remoto
561
+ await gitRepositoriesTool.handler({
562
+ action: 'create',
563
+ name: 'novo-projeto',
564
+ description: 'Projeto incrível',
565
+ private: false,
566
+ auto_init: true,
567
+ provider: 'github'
568
+ });
569
+
570
+ // 2. Inicializar projeto local
571
+ await gitInitializeTool.handler({
572
+ action: 'init',
573
+ projectPath: 'C:\\\\Projetos\\\\novo-projeto',
574
+ provider: 'github',
575
+ message: 'Setup inicial do projeto com estrutura base'
576
+ });
577
+
578
+ // 3. Criar estrutura básica
579
+ await gitFilesTool.handler({
580
+ action: 'create',
581
+ repo: 'novo-projeto',
582
+ projectPath: 'C:\\\\Projetos\\\\novo-projeto',
583
+ provider: 'github',
584
+ path: 'README.md',
585
+ content: '# Novo Projeto\\\\n\\\\nProjeto criado com Git MCP.',
586
+ message: 'Adiciona README.md básico'
587
+ });
588
+ \`\`\`
589
+
590
+ ## 🚀 WORKFLOW: FEATURE DEVELOPMENT
591
+
592
+ \`\`\`typescript
593
+ // 1. Criar branch da feature
594
+ await gitBranchesTool.handler({
595
+ action: 'create',
596
+ repo: 'meu-app',
597
+ projectPath: 'C:\\\\Projetos\\\\meu-app',
598
+ provider: 'gitea',
599
+ branch_name: 'feature/user-auth',
600
+ from_branch: 'main'
601
+ });
602
+
603
+ // 2. Implementar código
604
+ // ... desenvolver código ...
605
+
606
+ // 3. Commit incremental
607
+ await gitCommitsTool.handler({
608
+ action: 'create',
609
+ repo: 'meu-app',
610
+ projectPath: 'C:\\\\Projetos\\\\meu-app',
611
+ provider: 'gitea',
612
+ message: 'Implementa validação de email no formulário de registro'
613
+ });
614
+
615
+ // 4. Push da branch
616
+ await gitCommitsTool.handler({
617
+ action: 'push',
618
+ repo: 'meu-app',
619
+ projectPath: 'C:\\\\Projetos\\\\meu-app',
620
+ provider: 'gitea',
621
+ branch: 'feature/user-auth'
622
+ });
623
+
624
+ // 5. Criar Pull Request
625
+ await gitPullsTool.handler({
626
+ action: 'create',
627
+ repo: 'meu-app',
628
+ projectPath: 'C:\\\\Projetos\\\\meu-app',
629
+ provider: 'gitea',
630
+ title: 'Feature: Sistema de Autenticação de Usuário',
631
+ body: 'Implementa login, registro e validação de usuários',
632
+ head: 'feature/user-auth',
633
+ base: 'main'
634
+ });
635
+ \`\`\`
636
+
637
+ ## 🐛 WORKFLOW: HOTFIX
638
+
639
+ \`\`\`typescript
640
+ // 1. Criar branch de hotfix
641
+ await gitBranchesTool.handler({
642
+ action: 'create',
643
+ repo: 'app-prod',
644
+ projectPath: 'C:\\\\Projetos\\\\app-prod',
645
+ provider: 'github',
646
+ branch_name: 'hotfix/login-crash',
647
+ from_branch: 'main'
648
+ });
649
+
650
+ // 2. Commit da correção
651
+ await gitCommitsTool.handler({
652
+ action: 'create',
653
+ repo: 'app-prod',
654
+ projectPath: 'C:\\\\Projetos\\\\app-prod',
655
+ provider: 'github',
656
+ message: 'Corrige crash no login quando senha é null - adiciona validação'
657
+ });
658
+
659
+ // 3. Merge direto
660
+ await gitBranchesTool.handler({
661
+ action: 'merge',
662
+ repo: 'app-prod',
663
+ projectPath: 'C:\\\\Projetos\\\\app-prod',
664
+ provider: 'github',
665
+ head: 'hotfix/login-crash',
666
+ base: 'main',
667
+ merge_method: 'merge'
668
+ });
669
+ \`\`\``;
670
+ case 'git-mcp://troubleshooting/common-issues':
671
+ return `# Problemas Comuns e Soluções
672
+
673
+ ## 🔐 ERROS DE AUTENTICAÇÃO
674
+
675
+ ### "Authentication failed"
676
+ \`\`\`bash
677
+ # Verificar tokens
678
+ echo "GITEA_TOKEN: \$GITEA_TOKEN"
679
+ echo "GITHUB_TOKEN: \$GITHUB_TOKEN"
680
+ \`\`\`
681
+
682
+ **Soluções:**
683
+ 1. Verificar se tokens não expiraram
684
+ 2. Confirmar permissões do token
685
+ 3. Validar URLs dos servidores
686
+
687
+ ## 📁 ERROS DE CAMINHO
688
+
689
+ ### "projectPath is required"
690
+ \`\`\`typescript
691
+ // ✅ CORRETO
692
+ await gitCommitsTool.handler({
693
+ action: 'create',
694
+ projectPath: 'Z:\\\\Projetos\\\\meu-app',
695
+ provider: 'gitea',
696
+ message: 'Adiciona validação de formulário'
697
+ });
698
+ \`\`\`
699
+
700
+ ## 🔄 ERROS DE GIT
701
+
702
+ ### "Merge conflict"
703
+ \`\`\`typescript
704
+ // Reset para commit anterior
705
+ await gitResetTool.handler({
706
+ action: 'mixed',
707
+ projectPath: 'Z:\\\\Projetos\\\\meu-app',
708
+ provider: 'gitea',
709
+ commit_hash: 'HEAD~1'
710
+ });
711
+ \`\`\``;
712
+ default:
713
+ return '# Conteúdo não encontrado\n\nEste resource não possui conteúdo definido.';
714
+ }
715
+ };
716
+ exports.getResourceContent = getResourceContent;
717
+ /**
718
+ * VALIDAÇÃO GLOBAL - Project Path obrigatório
108
719
  *
109
- * RECOMENDAÇÕES:
110
- * - Use apenas uma instância por processo
111
- * - Configure handlers antes de conectar
112
- * - Implemente graceful shutdown
720
+ * TODA tool DEVE validar projectPath antes de executar qualquer operação
721
+ * Isso garante que todas as operações sejam executadas dentro do projeto correto
113
722
  */
723
+ const validateProjectPath = (args, toolName) => {
724
+ if (!args.projectPath) {
725
+ throw new Error(`❌ ERRO CRÍTICO: projectPath é obrigatório para a tool '${toolName}'.
726
+
727
+ 📋 REGRAS ABSOLUTAS DO GIT MCP:
728
+ 🚫 NUNCA executar operações fora do projectPath
729
+ 🚫 NUNCA usar comandos git diretamente no terminal
730
+ 🚫 TODAS as tools requerem projectPath
731
+
732
+ ✅ CORRETO:
733
+ await ${toolName}.handler({
734
+ projectPath: 'Z:\\\\Projetos\\\\meu-projeto', // ← CAMINHO ABSOLUTO OBRIGATÓRIO
735
+ provider: 'gitea',
736
+ ...outrosParâmetros
737
+ });
738
+
739
+ 💡 DICAS:
740
+ - Use caminhos absolutos (ex: 'C:\\\\Projetos\\\\app' no Windows)
741
+ - Todas as operações ficam restritas ao projectPath e suas subpastas
742
+ - O projectPath é onde o repositório Git está localizado`);
743
+ }
744
+ // Validação adicional: verificar se é um caminho absoluto
745
+ if (!args.projectPath.includes(':\\') && !args.projectPath.startsWith('/')) {
746
+ console.warn(`⚠️ AVISO: projectPath '${args.projectPath}' não parece ser um caminho absoluto. Recomenda-se usar caminhos absolutos para evitar problemas.`);
747
+ }
748
+ };
749
+ exports.validateProjectPath = validateProjectPath;
750
+ const getPromptContent = (name, args) => {
751
+ switch (name) {
752
+ case 'setup-project':
753
+ return `# Configuração de Novo Projeto
754
+
755
+ ## Workflow de Setup
756
+
757
+ \`\`\`typescript
758
+ // 1. Criar repositório remoto
759
+ await gitRepositoriesTool.handler({
760
+ action: 'create',
761
+ name: '` + args.repoName + `',
762
+ description: 'Projeto criado via Git MCP',
763
+ private: true,
764
+ auto_init: true,
765
+ provider: '` + args.provider + `'
766
+ });
767
+
768
+ // 2. Inicializar projeto local
769
+ await gitInitializeTool.handler({
770
+ action: 'init',
771
+ projectPath: '` + args.projectPath + `',
772
+ provider: '` + args.provider + `',
773
+ message: 'Setup inicial do projeto ` + args.repoName + `'
774
+ });
775
+ \`\`\``;
776
+ case 'sync-project':
777
+ return `# Sincronização Completa do Projeto
778
+
779
+ ## Workflow de Sync
780
+
781
+ \`\`\`typescript
782
+ await gitUpdateProjectTool.handler({
783
+ action: 'sync',
784
+ projectPath: '` + args.projectPath + `',
785
+ provider: '` + args.provider + `',
786
+ message: '` + (args.message || 'Sincronização automática') + `'
787
+ });
788
+ \`\`\``;
789
+ case 'create-release':
790
+ return `# Criação de Release ` + args.version + `
791
+
792
+ ## Workflow
793
+
794
+ \`\`\`typescript
795
+ // Criar release
796
+ await gitReleasesTool.handler({
797
+ action: 'create',
798
+ repo: '` + args.repo + `',
799
+ projectPath: '` + args.projectPath + `',
800
+ provider: '` + args.provider + `',
801
+ tag_name: '` + args.version + `',
802
+ name: 'Release ` + args.version + `',
803
+ body: 'Nova versão lançada',
804
+ draft: false,
805
+ prerelease: false
806
+ });
807
+ \`\`\``;
808
+ default:
809
+ return `# Prompt não encontrado
810
+
811
+ Este prompt não possui template definido.`;
812
+ }
813
+ };
814
+ exports.getPromptContent = getPromptContent;
114
815
  class GiteaMCPServer {
115
816
  server;
116
817
  constructor() {
@@ -158,6 +859,8 @@ class GiteaMCPServer {
158
859
  throw new Error(`Tool '${name}' not found`);
159
860
  }
160
861
  try {
862
+ // ✅ VALIDAÇÃO GLOBAL: projectPath obrigatório para TODAS as tools
863
+ validateProjectPath(args, name);
161
864
  // Executa o handler da tool
162
865
  const result = await tool.handler(args || {});
163
866
  return {
@@ -187,6 +890,58 @@ class GiteaMCPServer {
187
890
  };
188
891
  }
189
892
  });
893
+ // Handler para listar resources disponíveis
894
+ this.server.setRequestHandler(types_js_1.ListResourcesRequestSchema, async () => {
895
+ return {
896
+ resources: resources.map(resource => ({
897
+ uri: resource.uri,
898
+ name: resource.name,
899
+ description: resource.description,
900
+ mimeType: resource.mimeType
901
+ }))
902
+ };
903
+ });
904
+ // Handler para ler conteúdo de resources
905
+ this.server.setRequestHandler(types_js_1.ReadResourceRequestSchema, async (request) => {
906
+ const { uri } = request.params;
907
+ const content = getResourceContent(uri);
908
+ return {
909
+ contents: [
910
+ {
911
+ uri: uri,
912
+ mimeType: 'text/markdown',
913
+ text: content
914
+ }
915
+ ]
916
+ };
917
+ });
918
+ // Handler para listar prompts disponíveis
919
+ this.server.setRequestHandler(types_js_1.ListPromptsRequestSchema, async () => {
920
+ return {
921
+ prompts: prompts.map(prompt => ({
922
+ name: prompt.name,
923
+ description: prompt.description,
924
+ arguments: prompt.arguments
925
+ }))
926
+ };
927
+ });
928
+ // Handler para obter conteúdo de prompts
929
+ this.server.setRequestHandler(types_js_1.GetPromptRequestSchema, async (request) => {
930
+ const { name, arguments: args = {} } = request.params;
931
+ const content = getPromptContent(name, args);
932
+ return {
933
+ description: prompts.find(p => p.name === name)?.description || 'Prompt template',
934
+ messages: [
935
+ {
936
+ role: 'user',
937
+ content: {
938
+ type: 'text',
939
+ text: content
940
+ }
941
+ }
942
+ ]
943
+ };
944
+ });
190
945
  }
191
946
  /**
192
947
  * Inicializa e executa o servidor MCP
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":";;;AAAA,wEAAmE;AACnE,wEAAiF;AACjF,iEAO4C;AAC5C,2CAAqC;AACrC,mDAAuF;AAEvF;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,sBAAsB;AACtB,qEAAkE;AAClE,2DAAqD;AACrD,6DAAuD;AACvD,qDAA+C;AAC/C,uDAAiD;AACjD,yEAAqE;AACrE,iEAA2D;AAC3D,yDAAmD;AACnD,uDAAiD;AACjD,6DAAuD;AACvD,0DAA0D;AAC1D,uDAAoD;AACpD,yDAAsD;AACtD,uDAAoD;AACpD,yDAAsD;AACtD,yDAAsD;AACtD,2DAAwD;AACxD,qDAAkD;AAClD,6DAA0D;AAC1D,6DAA0D;AAE1D;;;;;;;;GAQG;AACH,MAAM,SAAS,GAAG;IAChB;QACE,GAAG,EAAE,+BAA+B;QACpC,IAAI,EAAE,0BAA0B;QAChC,WAAW,EAAE,oDAAoD;QACjE,QAAQ,EAAE,eAAe;KAC1B;IACD;QACE,GAAG,EAAE,mCAAmC;QACxC,IAAI,EAAE,2BAA2B;QACjC,WAAW,EAAE,0CAA0C;QACvD,QAAQ,EAAE,eAAe;KAC1B;IACD;QACE,GAAG,EAAE,+BAA+B;QACpC,IAAI,EAAE,yBAAyB;QAC/B,WAAW,EAAE,oDAAoD;QACjE,QAAQ,EAAE,eAAe;KAC1B;IACD;QACE,GAAG,EAAE,gCAAgC;QACrC,IAAI,EAAE,yBAAyB;QAC/B,WAAW,EAAE,+CAA+C;QAC5D,QAAQ,EAAE,eAAe;KAC1B;IACD;QACE,GAAG,EAAE,8BAA8B;QACnC,IAAI,EAAE,qBAAqB;QAC3B,WAAW,EAAE,oDAAoD;QACjE,QAAQ,EAAE,eAAe;KAC1B;IACD;QACE,GAAG,EAAE,yCAAyC;QAC9C,IAAI,EAAE,6BAA6B;QACnC,WAAW,EAAE,2CAA2C;QACxD,QAAQ,EAAE,eAAe;KAC1B;CACF,CAAC;AAwuBkE,8BAAS;AAtuB7E;;;;;;;;GAQG;AACH,MAAM,OAAO,GAAG;IACd;QACE,IAAI,EAAE,eAAe;QACrB,WAAW,EAAE,wCAAwC;QACrD,SAAS,EAAE;YACT;gBACE,IAAI,EAAE,aAAa;gBACnB,WAAW,EAAE,6BAA6B;gBAC1C,QAAQ,EAAE,IAAI;aACf;YACD;gBACE,IAAI,EAAE,UAAU;gBAChB,WAAW,EAAE,qBAAqB;gBAClC,QAAQ,EAAE,IAAI;aACf;YACD;gBACE,IAAI,EAAE,UAAU;gBAChB,WAAW,EAAE,4BAA4B;gBACzC,QAAQ,EAAE,IAAI;aACf;SACF;KACF;IACD;QACE,IAAI,EAAE,cAAc;QACpB,WAAW,EAAE,2CAA2C;QACxD,SAAS,EAAE;YACT;gBACE,IAAI,EAAE,aAAa;gBACnB,WAAW,EAAE,oBAAoB;gBACjC,QAAQ,EAAE,IAAI;aACf;YACD;gBACE,IAAI,EAAE,UAAU;gBAChB,WAAW,EAAE,6BAA6B;gBAC1C,QAAQ,EAAE,IAAI;aACf;YACD;gBACE,IAAI,EAAE,SAAS;gBACf,WAAW,EAAE,oBAAoB;gBACjC,QAAQ,EAAE,KAAK;aAChB;SACF;KACF;IACD;QACE,IAAI,EAAE,mBAAmB;QACzB,WAAW,EAAE,wCAAwC;QACrD,SAAS,EAAE;YACT;gBACE,IAAI,EAAE,UAAU;gBAChB,WAAW,EAAE,yCAAyC;gBACtD,QAAQ,EAAE,IAAI;aACf;SACF;KACF;IACD;QACE,IAAI,EAAE,gBAAgB;QACtB,WAAW,EAAE,wBAAwB;QACrC,SAAS,EAAE;YACT;gBACE,IAAI,EAAE,aAAa;gBACnB,WAAW,EAAE,oBAAoB;gBACjC,QAAQ,EAAE,IAAI;aACf;YACD;gBACE,IAAI,EAAE,MAAM;gBACZ,WAAW,EAAE,qBAAqB;gBAClC,QAAQ,EAAE,IAAI;aACf;YACD;gBACE,IAAI,EAAE,SAAS;gBACf,WAAW,EAAE,gCAAgC;gBAC7C,QAAQ,EAAE,IAAI;aACf;YACD;gBACE,IAAI,EAAE,UAAU;gBAChB,WAAW,EAAE,4BAA4B;gBACzC,QAAQ,EAAE,IAAI;aACf;SACF;KACF;CACF,CAAC;AA6oB6E,0BAAO;AA3oBtF;;;;;;;;;;;;;;;GAeG;AACH,MAAM,KAAK,GAAG;IACZ,uCAAuC;IACvC,yCAAmB;IACnB,4BAAW;IACX,8BAAY;IACZ,sBAAQ;IACR,wBAAS;IACT,4CAAoB;IACpB,kCAAc;IACd,0BAAU;IACV,wBAAS;IACT,8BAAY;IACZ,gBAAgB;IAChB,2BAAY;IACZ,6BAAa;IACb,2BAAY;IACZ,6BAAa;IACb,6BAAa;IACb,+BAAc;IACd,yBAAW;IACX,iCAAe;IACf,iCAAe;CAChB,CAAC;AAEF;;GAEG;AACH,MAAM,kBAAkB,GAAG,CAAC,GAAW,EAAU,EAAE;IACjD,QAAQ,GAAG,EAAE,CAAC;QACZ,KAAK,+BAA+B;YAClC,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mCA4CsB,CAAC;QAEhC,KAAK,mCAAmC;YACtC,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAkDN,CAAC;QAEJ,KAAK,+BAA+B;YAClC,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA4EN,CAAC;QAEJ,KAAK,gCAAgC;YACnC,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAyIN,CAAC;QAEJ,KAAK,8BAA8B;YACjC,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAkHN,CAAC;QAEJ,KAAK,yCAAyC;YAC5C,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAwCN,CAAC;QAEJ;YACE,OAAO,0EAA0E,CAAC;IACtF,CAAC;AACH,CAAC,CAAC;AA4HO,gDAAkB;AA1H3B;;;;;GAKG;AACH,MAAM,mBAAmB,GAAG,CAAC,IAAS,EAAE,QAAgB,EAAQ,EAAE;IAChE,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;QACtB,MAAM,IAAI,KAAK,CAAC,0DAA0D,QAAQ;;;;;;;;QAQ9E,QAAQ;;;;;;;;;yDASyC,CAAC,CAAC;IACzD,CAAC;IAED,0DAA0D;IAC1D,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QAC3E,OAAO,CAAC,IAAI,CAAC,0BAA0B,IAAI,CAAC,WAAW,mGAAmG,CAAC,CAAC;IAC9J,CAAC;AACH,CAAC,CAAC;AA0F6C,kDAAmB;AAxFlE,MAAM,gBAAgB,GAAG,CAAC,IAAY,EAAE,IAAS,EAAU,EAAE;IAC3D,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,eAAe;YAClB,OAAO;;;;;;;;UAQH,GAAG,IAAI,CAAC,QAAQ,GAAG;;;;cAIf,GAAG,IAAI,CAAC,QAAQ,GAAG;;;;;;iBAMhB,GAAG,IAAI,CAAC,WAAW,GAAG;cACzB,GAAG,IAAI,CAAC,QAAQ,GAAG;sCACK,GAAG,IAAI,CAAC,QAAQ,GAAG;;OAElD,CAAC;QAEJ,KAAK,cAAc;YACjB,OAAO;;;;;;;iBAOI,GAAG,IAAI,CAAC,WAAW,GAAG;cACzB,GAAG,IAAI,CAAC,QAAQ,GAAG;aACpB,GAAG,CAAC,IAAI,CAAC,OAAO,IAAI,0BAA0B,CAAC,GAAG;;OAExD,CAAC;QAEJ,KAAK,gBAAgB;YACnB,OAAO,uBAAuB,GAAG,IAAI,CAAC,OAAO,GAAG;;;;;;;;UAQ5C,GAAG,IAAI,CAAC,IAAI,GAAG;iBACR,GAAG,IAAI,CAAC,WAAW,GAAG;cACzB,GAAG,IAAI,CAAC,QAAQ,GAAG;cACnB,GAAG,IAAI,CAAC,OAAO,GAAG;kBACd,GAAG,IAAI,CAAC,OAAO,GAAG;;;;;OAK7B,CAAC;QAEJ;YACE,OAAO;;0CAE6B,CAAC;IACzC,CAAC;AACH,CAAC,CAAC;AAsB2B,4CAAgB;AAE7C,MAAa,cAAc;IACjB,MAAM,CAAS;IAEvB;QACE,IAAI,CAAC,MAAM,GAAG,IAAI,iBAAM,CACpB;YACE,IAAI,EAAE,SAAS;YACf,OAAO,EAAE,QAAQ;SAClB,CACJ,CAAC;QAEF,IAAI,CAAC,aAAa,EAAE,CAAC;IACvB,CAAC;IAED;;;;;;;;;;;;;;;;;OAiBG;IACK,aAAa;QACnB,wCAAwC;QACxC,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,iCAAsB,EAAE,KAAK,IAAI,EAAE;YAC/D,OAAO;gBACL,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;oBACxB,IAAI,EAAE,IAAI,CAAC,IAAI;oBACf,WAAW,EAAE,IAAI,CAAC,WAAW;oBAC7B,WAAW,EAAE,IAAI,CAAC,WAAW;iBAC9B,CAAC,CAAC;aACJ,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,0CAA0C;QAC1C,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,gCAAqB,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;YACrE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;YAEjD,0BAA0B;YAC1B,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;YAC9C,IAAI,CAAC,IAAI,EAAE,CAAC;gBACV,MAAM,IAAI,KAAK,CAAC,SAAS,IAAI,aAAa,CAAC,CAAC;YAC9C,CAAC;YAED,IAAI,CAAC;gBACH,kEAAkE;gBAClE,mBAAmB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;gBAEhC,4BAA4B;gBAC5B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,IAAW,IAAI,EAAE,CAAC,CAAC;gBAErD,OAAO;oBACL,OAAO,EAAE;wBACP;4BACE,IAAI,EAAE,MAAM;4BACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;yBACtC;qBACF;iBACF,CAAC;YACJ,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,YAAY,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBAE5E,OAAO;oBACL,OAAO,EAAE;wBACP;4BACE,IAAI,EAAE,MAAM;4BACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;gCACnB,OAAO,EAAE,KAAK;gCACd,MAAM,EAAE,IAAI;gCACZ,OAAO,EAAE,0BAA0B;gCACnC,KAAK,EAAE,YAAY;6BACtB,EAAE,IAAI,EAAE,CAAC,CAAC;yBACV;qBACF;oBACD,OAAO,EAAE,IAAI;iBACd,CAAC;YACJ,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,4CAA4C;QAC5C,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,qCAA0B,EAAE,KAAK,IAAI,EAAE;YACnE,OAAO;gBACL,SAAS,EAAE,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;oBACpC,GAAG,EAAE,QAAQ,CAAC,GAAG;oBACjB,IAAI,EAAE,QAAQ,CAAC,IAAI;oBACnB,WAAW,EAAE,QAAQ,CAAC,WAAW;oBACjC,QAAQ,EAAE,QAAQ,CAAC,QAAQ;iBAC5B,CAAC,CAAC;aACJ,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,yCAAyC;QACzC,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,oCAAyB,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;YACzE,MAAM,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;YAE/B,MAAM,OAAO,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC;YAExC,OAAO;gBACL,QAAQ,EAAE;oBACR;wBACE,GAAG,EAAE,GAAG;wBACR,QAAQ,EAAE,eAAe;wBACzB,IAAI,EAAE,OAAO;qBACd;iBACF;aACF,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,0CAA0C;QAC1C,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,mCAAwB,EAAE,KAAK,IAAI,EAAE;YACjE,OAAO;gBACL,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;oBAC9B,IAAI,EAAE,MAAM,CAAC,IAAI;oBACjB,WAAW,EAAE,MAAM,CAAC,WAAW;oBAC/B,SAAS,EAAE,MAAM,CAAC,SAAS;iBAC5B,CAAC,CAAC;aACJ,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,yCAAyC;QACzC,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,iCAAsB,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;YACtE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;YAEtD,MAAM,OAAO,GAAG,gBAAgB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YAE7C,OAAO;gBACL,WAAW,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,EAAE,WAAW,IAAI,iBAAiB;gBACjF,QAAQ,EAAE;oBACR;wBACE,IAAI,EAAE,MAAM;wBACZ,OAAO,EAAE;4BACP,IAAI,EAAE,MAAM;4BACZ,IAAI,EAAE,OAAO;yBACd;qBACF;iBACF;aACF,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;;;;;;;;;;;;;;;;;OAkBG;IACH,KAAK,CAAC,GAAG;QACP,MAAM,GAAG,GAAG,kBAAM,CAAC,SAAS,EAAE,CAAC;QAE/B,IAAI,GAAG,CAAC,KAAK,EAAE,CAAC;YACd,mEAAmE;QACrE,CAAC;QAED,gDAAgD;QAChD,IAAI,CAAC;YACH,6DAA6D;YAC7D,MAAM,OAAO,GAAG,IAAA,mCAAwB,GAAE,CAAC;YAE3C,2CAA2C;YAC3C,IAAI,CAAC;gBACH,MAAM,aAAa,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC;gBACjD,mDAAmD;gBACnD,+BAA+B;gBAC/B,+EAA+E;gBAC/E,MAAM;YACR,CAAC;YAAC,OAAO,SAAS,EAAE,CAAC;gBACnB,uFAAuF;YACzF,CAAC;YAED,uDAAuD;YACvD,MAAM,CAAC,MAAM,CAAC,gCAAqB,EAAE,OAAO,CAAC,CAAC;YAE9C,qEAAqE;QACvE,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,yCAAyC,EAAE,KAAK,CAAC,CAAC;YAEhE,4DAA4D;YAC5D,IAAI,CAAC;gBACH,+DAA+D;gBAE/D,6CAA6C;gBAC7C,MAAM,cAAc,GAAG;oBACrB,IAAI,EAAE,iBAAiB;oBACvB,IAAI,EAAE,QAAiB;oBACvB,MAAM,EAAE,wBAAwB;oBAChC,OAAO,EAAE,oBAAoB;oBAC7B,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,YAAY,IAAI,aAAa;oBAChD,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,eAAe;iBACtC,CAAC;gBAEF,MAAM,gBAAgB,GAAG,gCAAqB,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC;gBAC9E,gCAAqB,CAAC,kBAAkB,CAAC,iBAAiB,CAAC,CAAC;gBAE5D,gEAAgE;YAClE,CAAC;YAAC,OAAO,aAAa,EAAE,CAAC;gBACvB,OAAO,CAAC,KAAK,CAAC,4CAA4C,EAAE,aAAa,CAAC,CAAC;gBAC3E,4DAA4D;YAC9D,CAAC;QACH,CAAC;QAED,MAAM,SAAS,GAAG,IAAI,+BAAoB,EAAE,CAAC;QAC7C,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAErC,IAAI,GAAG,CAAC,KAAK,EAAE,CAAC;YACd,6BAA6B;QAC/B,CAAC;IACH,CAAC;IAED;;;;;;;;;;;;OAYG;IACH,KAAK,CAAC,KAAK;QACT,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;IAC5B,CAAC;CACF;AAvPD,wCAuPC;AAED;;;;;;;;;;;;;;;;;GAiBG;AAEH,+CAA+C;AAC/C,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,KAAK,IAAI,EAAE;IAC9B,uBAAuB;IACvB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC;AAEH,gDAAgD;AAChD,OAAO,CAAC,EAAE,CAAC,oBAAoB,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE;IACnD,OAAO,CAAC,KAAK,CAAC,yBAAyB,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;IACrE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC;AAEH,qCAAqC;AACrC,OAAO,CAAC,EAAE,CAAC,mBAAmB,EAAE,CAAC,KAAK,EAAE,EAAE;IACxC,OAAO,CAAC,KAAK,CAAC,qBAAqB,EAAE,KAAK,CAAC,CAAC;IAC5C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,61 +1,61 @@
1
- {
2
- "name": "@andrebuzeli/git-mcp",
3
- "version": "3.1.2",
4
- "description": "MCP server for Gitea and GitHub integration with 20 comprehensive DevOps tools - 100% AUTO-SUFFICIENT: Complete Git/GitHub functionality with ALL methods implemented, GitOperations class, FileOperations, TerminalOperations, Unified git-update-project with 9 actions (init, update, status, diff, log, reset, stash, pull, sync), Git Initialize, Packages, Projects - NO external dependencies, NO terminal commands, FULLY IMPLEMENTED - Enhanced validation with REQUIRED provider parameter, Label search implementation for Gitea, Debug logs removed, Code cleanup, FIXED: git-stash, git-archive, git-config, git-remote errors resolved - CRITICAL FIXES: URL malformed error correction, addComment and searchIssues implementation, improved authentication handling, enhanced parameter validation",
5
- "main": "dist/index.js",
6
- "bin": {
7
- "git-mcp": "dist/index.js"
8
- },
9
- "scripts": {
10
- "build": "tsc --noEmitOnError false",
11
- "start": "node dist/index.js",
12
- "dev": "ts-node src/index.ts",
13
- "test": "node tests/basic.test.js",
14
- "test-tools": "node test-tools.js",
15
- "lint": "echo \"No linting configured\" && exit 0",
16
- "prepublishOnly": "npm run build",
17
- "postpublish": "echo 'Git MCP v3.1.2 published successfully - ALL TOOLS TESTED & CORRECTED: git-commits, git-issues, git-tags, git-releases projectPath validation fixed, git-revert conflicts resolved, git-archive format issues corrected, merge conflicts resolved, 100% tool coverage with 21 fully functional DevOps tools - PRODUCTION READY!'"
18
-
19
- },
20
- "keywords": [
21
- "mcp",
22
- "gitea",
23
- "git",
24
- "model-context-protocol",
25
- "self-hosted",
26
- "api",
27
- "sync",
28
- "version-control",
29
- "backup",
30
- "code-review",
31
- "ci-cd"
32
- ],
33
- "author": "Andre Buzeli",
34
- "license": "MIT",
35
- "repository": {
36
- "type": "git",
37
- "url": "git+https://github.com/andrebuzeli/gitea-mcp-v2.git"
38
- },
39
- "dependencies": {
40
- "@modelcontextprotocol/sdk": "^0.4.0",
41
- "axios": "^1.6.0",
42
- "dotenv": "^17.2.2",
43
- "zod": "^3.22.0"
44
- },
45
- "devDependencies": {
46
- "@types/node": "^20.19.15",
47
- "ts-node": "^10.9.0",
48
- "typescript": "^5.0.0"
49
- },
50
- "engines": {
51
- "node": ">=18.0.0"
52
- },
53
- "publishConfig": {
54
- "access": "public"
55
- },
56
- "files": [
57
- "dist/**/*",
58
- "README.md",
59
- "LICENSE"
60
- ]
61
- }
1
+ {
2
+ "name": "@andrebuzeli/git-mcp",
3
+ "version": "3.2.0",
4
+ "description": "MCP server for Gitea and GitHub integration with 20 comprehensive DevOps tools - 100% AUTO-SUFFICIENT: Complete Git/GitHub functionality with ALL methods implemented, GitOperations class, FileOperations, TerminalOperations, Unified git-update-project with 9 actions (init, update, status, diff, log, reset, stash, pull, sync), Git Initialize, Packages, Projects - NO external dependencies, NO terminal commands, FULLY IMPLEMENTED - Enhanced validation with REQUIRED provider parameter, Label search implementation for Gitea, Debug logs removed, Code cleanup, FIXED: git-stash, git-archive, git-config, git-remote errors resolved - CRITICAL FIXES: URL malformed error correction, addComment and searchIssues implementation, improved authentication handling, enhanced parameter validation",
5
+ "main": "dist/index.js",
6
+ "bin": {
7
+ "git-mcp": "dist/index.js"
8
+ },
9
+ "scripts": {
10
+ "build": "tsc --noEmitOnError false",
11
+ "start": "node dist/index.js",
12
+ "dev": "ts-node src/index.ts",
13
+ "test": "node tests/basic.test.js",
14
+ "test-tools": "node test-tools.js",
15
+ "lint": "echo \"No linting configured\" && exit 0",
16
+ "prepublishOnly": "npm run build",
17
+ "postpublish": "echo 'Git MCP v3.2.0 published successfully - PROJECT PATH VALIDATION & MCP RESOURCES: projectPath obrigatório em todas as tools, validação global implementada, 6 resources MCP (documentação, exemplos, troubleshooting), 4 prompts MCP (setup-project, sync-project, troubleshoot-auth, create-release), 100% compliance with MCP protocol, enhanced user experience with built-in documentation and templates - PRODUCTION READY!'"
18
+
19
+ },
20
+ "keywords": [
21
+ "mcp",
22
+ "gitea",
23
+ "git",
24
+ "model-context-protocol",
25
+ "self-hosted",
26
+ "api",
27
+ "sync",
28
+ "version-control",
29
+ "backup",
30
+ "code-review",
31
+ "ci-cd"
32
+ ],
33
+ "author": "Andre Buzeli",
34
+ "license": "MIT",
35
+ "repository": {
36
+ "type": "git",
37
+ "url": "git+https://github.com/andrebuzeli/gitea-mcp-v2.git"
38
+ },
39
+ "dependencies": {
40
+ "@modelcontextprotocol/sdk": "^0.4.0",
41
+ "axios": "^1.6.0",
42
+ "dotenv": "^17.2.2",
43
+ "zod": "^3.22.0"
44
+ },
45
+ "devDependencies": {
46
+ "@types/node": "^20.19.15",
47
+ "ts-node": "^10.9.0",
48
+ "typescript": "^5.0.0"
49
+ },
50
+ "engines": {
51
+ "node": ">=18.0.0"
52
+ },
53
+ "publishConfig": {
54
+ "access": "public"
55
+ },
56
+ "files": [
57
+ "dist/**/*",
58
+ "README.md",
59
+ "LICENSE"
60
+ ]
61
+ }