@cyanheads/git-mcp-server 1.2.4 → 2.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (105) hide show
  1. package/README.md +172 -285
  2. package/dist/config/index.js +69 -0
  3. package/dist/index.js +135 -0
  4. package/dist/mcp-server/server.js +572 -0
  5. package/dist/mcp-server/tools/gitAdd/index.js +7 -0
  6. package/dist/mcp-server/tools/gitAdd/logic.js +118 -0
  7. package/dist/mcp-server/tools/gitAdd/registration.js +73 -0
  8. package/dist/mcp-server/tools/gitBranch/index.js +7 -0
  9. package/dist/mcp-server/tools/gitBranch/logic.js +180 -0
  10. package/dist/mcp-server/tools/gitBranch/registration.js +72 -0
  11. package/dist/mcp-server/tools/gitCheckout/index.js +6 -0
  12. package/dist/mcp-server/tools/gitCheckout/logic.js +165 -0
  13. package/dist/mcp-server/tools/gitCheckout/registration.js +78 -0
  14. package/dist/mcp-server/tools/gitCherryPick/index.js +7 -0
  15. package/dist/mcp-server/tools/gitCherryPick/logic.js +115 -0
  16. package/dist/mcp-server/tools/gitCherryPick/registration.js +69 -0
  17. package/dist/mcp-server/tools/gitClean/index.js +7 -0
  18. package/dist/mcp-server/tools/gitClean/logic.js +110 -0
  19. package/dist/mcp-server/tools/gitClean/registration.js +98 -0
  20. package/dist/mcp-server/tools/gitClearWorkingDir/index.js +7 -0
  21. package/dist/mcp-server/tools/gitClearWorkingDir/logic.js +35 -0
  22. package/dist/mcp-server/tools/gitClearWorkingDir/registration.js +73 -0
  23. package/dist/mcp-server/tools/gitClone/index.js +7 -0
  24. package/dist/mcp-server/tools/gitClone/logic.js +136 -0
  25. package/dist/mcp-server/tools/gitClone/registration.js +44 -0
  26. package/dist/mcp-server/tools/gitCommit/index.js +7 -0
  27. package/dist/mcp-server/tools/gitCommit/logic.js +129 -0
  28. package/dist/mcp-server/tools/gitCommit/registration.js +100 -0
  29. package/dist/mcp-server/tools/gitDiff/index.js +6 -0
  30. package/dist/mcp-server/tools/gitDiff/logic.js +114 -0
  31. package/dist/mcp-server/tools/gitDiff/registration.js +74 -0
  32. package/dist/mcp-server/tools/gitFetch/index.js +6 -0
  33. package/dist/mcp-server/tools/gitFetch/logic.js +116 -0
  34. package/dist/mcp-server/tools/gitFetch/registration.js +71 -0
  35. package/dist/mcp-server/tools/gitInit/index.js +7 -0
  36. package/dist/mcp-server/tools/gitInit/logic.js +117 -0
  37. package/dist/mcp-server/tools/gitInit/registration.js +44 -0
  38. package/dist/mcp-server/tools/gitLog/index.js +6 -0
  39. package/dist/mcp-server/tools/gitLog/logic.js +148 -0
  40. package/dist/mcp-server/tools/gitLog/registration.js +71 -0
  41. package/dist/mcp-server/tools/gitMerge/index.js +7 -0
  42. package/dist/mcp-server/tools/gitMerge/logic.js +160 -0
  43. package/dist/mcp-server/tools/gitMerge/registration.js +77 -0
  44. package/dist/mcp-server/tools/gitPull/index.js +6 -0
  45. package/dist/mcp-server/tools/gitPull/logic.js +144 -0
  46. package/dist/mcp-server/tools/gitPull/registration.js +81 -0
  47. package/dist/mcp-server/tools/gitPush/index.js +6 -0
  48. package/dist/mcp-server/tools/gitPush/logic.js +188 -0
  49. package/dist/mcp-server/tools/gitPush/registration.js +81 -0
  50. package/dist/mcp-server/tools/gitRebase/index.js +7 -0
  51. package/dist/mcp-server/tools/gitRebase/logic.js +171 -0
  52. package/dist/mcp-server/tools/gitRebase/registration.js +72 -0
  53. package/dist/mcp-server/tools/gitRemote/index.js +7 -0
  54. package/dist/mcp-server/tools/gitRemote/logic.js +158 -0
  55. package/dist/mcp-server/tools/gitRemote/registration.js +76 -0
  56. package/dist/mcp-server/tools/gitReset/index.js +6 -0
  57. package/dist/mcp-server/tools/gitReset/logic.js +116 -0
  58. package/dist/mcp-server/tools/gitReset/registration.js +71 -0
  59. package/dist/mcp-server/tools/gitSetWorkingDir/index.js +7 -0
  60. package/dist/mcp-server/tools/gitSetWorkingDir/logic.js +91 -0
  61. package/dist/mcp-server/tools/gitSetWorkingDir/registration.js +78 -0
  62. package/dist/mcp-server/tools/gitShow/index.js +7 -0
  63. package/dist/mcp-server/tools/gitShow/logic.js +99 -0
  64. package/dist/mcp-server/tools/gitShow/registration.js +83 -0
  65. package/dist/mcp-server/tools/gitStash/index.js +7 -0
  66. package/dist/mcp-server/tools/gitStash/logic.js +161 -0
  67. package/dist/mcp-server/tools/gitStash/registration.js +84 -0
  68. package/dist/mcp-server/tools/gitStatus/index.js +7 -0
  69. package/dist/mcp-server/tools/gitStatus/logic.js +215 -0
  70. package/dist/mcp-server/tools/gitStatus/registration.js +77 -0
  71. package/dist/mcp-server/tools/gitTag/index.js +7 -0
  72. package/dist/mcp-server/tools/gitTag/logic.js +142 -0
  73. package/dist/mcp-server/tools/gitTag/registration.js +84 -0
  74. package/dist/types-global/errors.js +68 -0
  75. package/dist/types-global/mcp.js +59 -0
  76. package/dist/types-global/tool.js +1 -0
  77. package/dist/utils/errorHandler.js +237 -0
  78. package/dist/utils/idGenerator.js +148 -0
  79. package/dist/utils/index.js +11 -0
  80. package/dist/utils/jsonParser.js +78 -0
  81. package/dist/utils/logger.js +266 -0
  82. package/dist/utils/rateLimiter.js +177 -0
  83. package/dist/utils/requestContext.js +49 -0
  84. package/dist/utils/sanitization.js +371 -0
  85. package/dist/utils/tokenCounter.js +124 -0
  86. package/package.json +62 -17
  87. package/build/index.js +0 -54
  88. package/build/resources/descriptors.js +0 -77
  89. package/build/resources/diff.js +0 -241
  90. package/build/resources/file.js +0 -222
  91. package/build/resources/history.js +0 -242
  92. package/build/resources/index.js +0 -99
  93. package/build/resources/repository.js +0 -286
  94. package/build/server.js +0 -120
  95. package/build/services/error-service.js +0 -73
  96. package/build/services/git-service.js +0 -965
  97. package/build/tools/advanced.js +0 -526
  98. package/build/tools/branch.js +0 -296
  99. package/build/tools/index.js +0 -29
  100. package/build/tools/remote.js +0 -279
  101. package/build/tools/repository.js +0 -170
  102. package/build/tools/workdir.js +0 -445
  103. package/build/types/git.js +0 -7
  104. package/build/utils/global-settings.js +0 -64
  105. package/build/utils/validation.js +0 -108
@@ -1,108 +0,0 @@
1
- /**
2
- * Validation Utilities
3
- * ===================
4
- *
5
- * Utilities for validating input parameters using Zod.
6
- */
7
- import { z } from 'zod';
8
- import path from 'path';
9
- import { getGlobalSettings } from './global-settings.js';
10
- /**
11
- * Common validation schemas used throughout the server
12
- */
13
- export const Schemas = {
14
- /**
15
- * Repository path validation
16
- */
17
- repoPath: z.string()
18
- .min(1, "Repository path is required")
19
- .transform(val => path.normalize(val)),
20
- /**
21
- * Commit validation
22
- */
23
- commit: {
24
- hash: z.string().regex(/^[0-9a-f]{4,40}$/, "Invalid commit hash format"),
25
- message: z.string().min(1, "Commit message is required"),
26
- author: z.object({
27
- name: z.string().optional(),
28
- email: z.string().email("Invalid email format").optional()
29
- }).optional(),
30
- date: z.date().optional(),
31
- allowEmpty: z.boolean().optional().default(false),
32
- amend: z.boolean().optional().default(false)
33
- },
34
- /**
35
- * Branch validation
36
- */
37
- branch: {
38
- name: z.string().min(1, "Branch name is required")
39
- .regex(/^[^\s]+$/, "Branch name cannot contain spaces"),
40
- checkout: z.boolean().optional().default(false),
41
- startPoint: z.string().optional()
42
- },
43
- /**
44
- * Remote validation
45
- */
46
- remote: {
47
- name: z.string().min(1, "Remote name is required"),
48
- url: z.string().url("Invalid URL format"),
49
- branch: z.string().optional()
50
- },
51
- /**
52
- * File validation
53
- */
54
- file: {
55
- path: z.string().min(1, "File path is required"),
56
- ref: z.string().optional().default('HEAD')
57
- },
58
- /**
59
- * Diff validation
60
- */
61
- diff: {
62
- fromRef: z.string().min(1, "Source reference is required"),
63
- toRef: z.string().optional().default('HEAD'),
64
- path: z.string().optional()
65
- },
66
- /**
67
- * Tag validation
68
- */
69
- tag: {
70
- name: z.string().min(1, "Tag name is required"),
71
- message: z.string().optional(),
72
- ref: z.string().optional()
73
- }
74
- };
75
- /**
76
- * Path validation helper functions
77
- */
78
- export const PathValidation = {
79
- /**
80
- * Normalizes a path to ensure consistent format
81
- * If path is "." and a global working directory is set, uses the global directory instead
82
- */
83
- normalizePath(inputPath) {
84
- // Check if this is a relative path (like ".") and we have a global working dir set
85
- if (inputPath === '.') {
86
- const globalWorkingDir = getGlobalSettings().globalWorkingDir;
87
- if (globalWorkingDir) {
88
- return path.normalize(globalWorkingDir);
89
- }
90
- }
91
- return path.normalize(inputPath);
92
- },
93
- /**
94
- * Validates if a path is within the allowed directory
95
- */
96
- isWithinDirectory(targetPath, basePath) {
97
- const normalizedTarget = path.normalize(targetPath);
98
- const normalizedBase = path.normalize(basePath);
99
- return normalizedTarget.startsWith(normalizedBase) &&
100
- normalizedTarget.length > normalizedBase.length;
101
- },
102
- /**
103
- * Joins and normalizes path components
104
- */
105
- joinPaths(...pathComponents) {
106
- return path.normalize(path.join(...pathComponents));
107
- }
108
- };