@j0hanz/filesystem-mcp 1.19.0 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (301) hide show
  1. package/README.md +333 -838
  2. package/dist/cli-help.d.ts +3 -0
  3. package/dist/cli-help.d.ts.map +1 -0
  4. package/dist/cli-help.js +169 -0
  5. package/dist/cli-help.js.map +1 -0
  6. package/dist/cli.d.ts +28 -0
  7. package/dist/cli.d.ts.map +1 -0
  8. package/dist/cli.js +168 -123
  9. package/dist/cli.js.map +1 -0
  10. package/dist/core/concurrency.d.ts +70 -0
  11. package/dist/core/concurrency.d.ts.map +1 -0
  12. package/dist/core/concurrency.js +173 -0
  13. package/dist/core/concurrency.js.map +1 -0
  14. package/dist/core/config.d.ts +19 -0
  15. package/dist/core/config.d.ts.map +1 -0
  16. package/dist/core/config.js +11 -0
  17. package/dist/core/config.js.map +1 -0
  18. package/dist/core/cursor.d.ts +23 -0
  19. package/dist/core/cursor.d.ts.map +1 -0
  20. package/dist/core/cursor.js +62 -0
  21. package/dist/core/cursor.js.map +1 -0
  22. package/dist/core/errors.d.ts +96 -0
  23. package/dist/core/errors.d.ts.map +1 -0
  24. package/dist/core/errors.js +356 -0
  25. package/dist/core/errors.js.map +1 -0
  26. package/dist/core/file-uri.d.ts +24 -0
  27. package/dist/core/file-uri.d.ts.map +1 -0
  28. package/dist/core/file-uri.js +52 -0
  29. package/dist/core/file-uri.js.map +1 -0
  30. package/dist/core/fmt.d.ts +38 -0
  31. package/dist/core/fmt.d.ts.map +1 -0
  32. package/dist/core/fmt.js +109 -0
  33. package/dist/core/fmt.js.map +1 -0
  34. package/dist/core/fs.d.ts +108 -0
  35. package/dist/core/fs.d.ts.map +1 -0
  36. package/dist/core/fs.js +243 -0
  37. package/dist/core/fs.js.map +1 -0
  38. package/dist/core/glob.d.ts +41 -0
  39. package/dist/core/glob.d.ts.map +1 -0
  40. package/dist/core/glob.js +399 -0
  41. package/dist/core/glob.js.map +1 -0
  42. package/dist/core/input-required.d.ts +147 -0
  43. package/dist/core/input-required.d.ts.map +1 -0
  44. package/dist/core/input-required.js +261 -0
  45. package/dist/core/input-required.js.map +1 -0
  46. package/dist/core/mime.d.ts +15 -0
  47. package/dist/core/mime.d.ts.map +1 -0
  48. package/dist/core/mime.js +188 -0
  49. package/dist/core/mime.js.map +1 -0
  50. package/dist/core/observability.d.ts +10 -0
  51. package/dist/core/observability.d.ts.map +1 -0
  52. package/dist/core/observability.js +76 -0
  53. package/dist/core/observability.js.map +1 -0
  54. package/dist/core/page-store.d.ts +41 -0
  55. package/dist/core/page-store.d.ts.map +1 -0
  56. package/dist/core/page-store.js +74 -0
  57. package/dist/core/page-store.js.map +1 -0
  58. package/dist/core/path-completer.d.ts +10 -0
  59. package/dist/core/path-completer.d.ts.map +1 -0
  60. package/dist/core/path-completer.js +227 -0
  61. package/dist/core/path-completer.js.map +1 -0
  62. package/dist/core/path-discovery.d.ts +8 -0
  63. package/dist/core/path-discovery.d.ts.map +1 -0
  64. package/dist/core/path-discovery.js +105 -0
  65. package/dist/core/path-discovery.js.map +1 -0
  66. package/dist/core/path-utils.d.ts +9 -0
  67. package/dist/core/path-utils.d.ts.map +1 -0
  68. package/dist/core/path-utils.js +121 -0
  69. package/dist/core/path-utils.js.map +1 -0
  70. package/dist/core/path.d.ts +148 -0
  71. package/dist/core/path.d.ts.map +1 -0
  72. package/dist/core/path.js +674 -0
  73. package/dist/core/path.js.map +1 -0
  74. package/dist/core/primitives.d.ts +23 -0
  75. package/dist/core/primitives.d.ts.map +1 -0
  76. package/dist/core/primitives.js +54 -0
  77. package/dist/core/primitives.js.map +1 -0
  78. package/dist/core/read.d.ts +74 -0
  79. package/dist/core/read.d.ts.map +1 -0
  80. package/dist/core/read.js +562 -0
  81. package/dist/core/read.js.map +1 -0
  82. package/dist/core/schema.d.ts +139 -0
  83. package/dist/core/schema.d.ts.map +1 -0
  84. package/dist/core/schema.js +345 -0
  85. package/dist/core/schema.js.map +1 -0
  86. package/dist/core/search.d.ts +100 -0
  87. package/dist/core/search.d.ts.map +1 -0
  88. package/dist/core/search.js +248 -0
  89. package/dist/core/search.js.map +1 -0
  90. package/dist/core/sensitive.d.ts +6 -0
  91. package/dist/core/sensitive.d.ts.map +1 -0
  92. package/dist/core/sensitive.js +142 -0
  93. package/dist/core/sensitive.js.map +1 -0
  94. package/dist/core/store.d.ts +57 -0
  95. package/dist/core/store.d.ts.map +1 -0
  96. package/dist/core/store.js +162 -0
  97. package/dist/core/store.js.map +1 -0
  98. package/dist/core/util.d.ts +26 -0
  99. package/dist/core/util.d.ts.map +1 -0
  100. package/dist/core/util.js +66 -0
  101. package/dist/core/util.js.map +1 -0
  102. package/dist/core/watcher-registry.d.ts +68 -0
  103. package/dist/core/watcher-registry.d.ts.map +1 -0
  104. package/dist/core/watcher-registry.js +312 -0
  105. package/dist/core/watcher-registry.js.map +1 -0
  106. package/dist/http-policy.d.ts +121 -0
  107. package/dist/http-policy.d.ts.map +1 -0
  108. package/dist/http-policy.js +340 -0
  109. package/dist/http-policy.js.map +1 -0
  110. package/dist/index.d.ts +1 -0
  111. package/dist/index.d.ts.map +1 -0
  112. package/dist/index.js +77 -41
  113. package/dist/index.js.map +1 -0
  114. package/dist/instructions.d.ts +12 -0
  115. package/dist/instructions.d.ts.map +1 -0
  116. package/dist/instructions.js +71 -0
  117. package/dist/instructions.js.map +1 -0
  118. package/dist/prompts.d.ts +8 -6
  119. package/dist/prompts.d.ts.map +1 -0
  120. package/dist/prompts.js +74 -168
  121. package/dist/prompts.js.map +1 -0
  122. package/dist/resources.d.ts +73 -9
  123. package/dist/resources.d.ts.map +1 -0
  124. package/dist/resources.js +392 -163
  125. package/dist/resources.js.map +1 -0
  126. package/dist/server.d.ts +62 -1
  127. package/dist/server.d.ts.map +1 -0
  128. package/dist/server.js +139 -1
  129. package/dist/server.js.map +1 -0
  130. package/dist/tools/batch.d.ts +89 -0
  131. package/dist/tools/batch.d.ts.map +1 -0
  132. package/dist/tools/batch.js +157 -0
  133. package/dist/tools/batch.js.map +1 -0
  134. package/dist/tools/create.d.ts +2 -0
  135. package/dist/tools/create.d.ts.map +1 -0
  136. package/dist/tools/create.js +142 -0
  137. package/dist/tools/create.js.map +1 -0
  138. package/dist/tools/define.d.ts +110 -0
  139. package/dist/tools/define.d.ts.map +1 -0
  140. package/dist/tools/define.js +394 -0
  141. package/dist/tools/define.js.map +1 -0
  142. package/dist/tools/delete-file.d.ts +2 -4
  143. package/dist/tools/delete-file.d.ts.map +1 -0
  144. package/dist/tools/delete-file.js +330 -87
  145. package/dist/tools/delete-file.js.map +1 -0
  146. package/dist/tools/diff.d.ts +2 -0
  147. package/dist/tools/diff.d.ts.map +1 -0
  148. package/dist/tools/diff.js +94 -0
  149. package/dist/tools/diff.js.map +1 -0
  150. package/dist/tools/edit.d.ts +2 -0
  151. package/dist/tools/edit.d.ts.map +1 -0
  152. package/dist/tools/edit.js +442 -0
  153. package/dist/tools/edit.js.map +1 -0
  154. package/dist/tools/index.d.ts +26 -0
  155. package/dist/tools/index.d.ts.map +1 -0
  156. package/dist/tools/index.js +52 -0
  157. package/dist/tools/index.js.map +1 -0
  158. package/dist/tools/list.d.ts +2 -0
  159. package/dist/tools/list.d.ts.map +1 -0
  160. package/dist/tools/list.js +291 -0
  161. package/dist/tools/list.js.map +1 -0
  162. package/dist/tools/move.d.ts +2 -0
  163. package/dist/tools/move.d.ts.map +1 -0
  164. package/dist/tools/move.js +321 -0
  165. package/dist/tools/move.js.map +1 -0
  166. package/dist/tools/patch.d.ts +2 -0
  167. package/dist/tools/patch.d.ts.map +1 -0
  168. package/dist/tools/patch.js +155 -0
  169. package/dist/tools/patch.js.map +1 -0
  170. package/dist/tools/progress.d.ts +52 -0
  171. package/dist/tools/progress.d.ts.map +1 -0
  172. package/dist/tools/progress.js +172 -0
  173. package/dist/tools/progress.js.map +1 -0
  174. package/dist/tools/read.d.ts +2 -4
  175. package/dist/tools/read.d.ts.map +1 -0
  176. package/dist/tools/read.js +398 -152
  177. package/dist/tools/read.js.map +1 -0
  178. package/dist/tools/replace-in-files.d.ts +2 -4
  179. package/dist/tools/replace-in-files.d.ts.map +1 -0
  180. package/dist/tools/replace-in-files.js +435 -264
  181. package/dist/tools/replace-in-files.js.map +1 -0
  182. package/dist/tools/roots.d.ts +2 -4
  183. package/dist/tools/roots.d.ts.map +1 -0
  184. package/dist/tools/roots.js +29 -52
  185. package/dist/tools/roots.js.map +1 -0
  186. package/dist/tools/search-content.d.ts +2 -4
  187. package/dist/tools/search-content.d.ts.map +1 -0
  188. package/dist/tools/search-content.js +262 -228
  189. package/dist/tools/search-content.js.map +1 -0
  190. package/dist/tools/search-files.d.ts +2 -4
  191. package/dist/tools/search-files.d.ts.map +1 -0
  192. package/dist/tools/search-files.js +162 -161
  193. package/dist/tools/search-files.js.map +1 -0
  194. package/dist/tools/stat.d.ts +2 -4
  195. package/dist/tools/stat.d.ts.map +1 -0
  196. package/dist/tools/stat.js +202 -62
  197. package/dist/tools/stat.js.map +1 -0
  198. package/dist/transport/http.d.ts +5 -0
  199. package/dist/transport/http.d.ts.map +1 -0
  200. package/dist/transport/http.js +276 -0
  201. package/dist/transport/http.js.map +1 -0
  202. package/dist/transport/shared.d.ts +45 -0
  203. package/dist/transport/shared.d.ts.map +1 -0
  204. package/dist/transport/shared.js +65 -0
  205. package/dist/transport/shared.js.map +1 -0
  206. package/dist/transport/stdio.d.ts +32 -0
  207. package/dist/transport/stdio.d.ts.map +1 -0
  208. package/dist/transport/stdio.js +279 -0
  209. package/dist/transport/stdio.js.map +1 -0
  210. package/dist/transport.d.ts +5 -0
  211. package/dist/transport.d.ts.map +1 -0
  212. package/dist/transport.js +4 -0
  213. package/dist/transport.js.map +1 -0
  214. package/package.json +37 -46
  215. package/dist/assets/logo.svg +0 -35
  216. package/dist/completions.d.ts +0 -2
  217. package/dist/completions.js +0 -572
  218. package/dist/config.d.ts +0 -119
  219. package/dist/config.js +0 -31
  220. package/dist/lib/abort.d.ts +0 -7
  221. package/dist/lib/abort.js +0 -81
  222. package/dist/lib/constants.d.ts +0 -42
  223. package/dist/lib/constants.js +0 -313
  224. package/dist/lib/errors.d.ts +0 -28
  225. package/dist/lib/errors.js +0 -301
  226. package/dist/lib/file-operations/core.d.ts +0 -53
  227. package/dist/lib/file-operations/core.js +0 -144
  228. package/dist/lib/file-operations/metadata.d.ts +0 -77
  229. package/dist/lib/file-operations/metadata.js +0 -878
  230. package/dist/lib/file-operations/search.d.ts +0 -46
  231. package/dist/lib/file-operations/search.js +0 -1194
  232. package/dist/lib/file-operations/traversal.d.ts +0 -40
  233. package/dist/lib/file-operations/traversal.js +0 -310
  234. package/dist/lib/fs-helpers.d.ts +0 -46
  235. package/dist/lib/fs-helpers.js +0 -606
  236. package/dist/lib/globs.d.ts +0 -2
  237. package/dist/lib/globs.js +0 -19
  238. package/dist/lib/logger.d.ts +0 -27
  239. package/dist/lib/logger.js +0 -91
  240. package/dist/lib/observability.d.ts +0 -33
  241. package/dist/lib/observability.js +0 -373
  242. package/dist/lib/paths.d.ts +0 -35
  243. package/dist/lib/paths.js +0 -634
  244. package/dist/lib/resource-store.d.ts +0 -28
  245. package/dist/lib/resource-store.js +0 -195
  246. package/dist/lib/utils.d.ts +0 -7
  247. package/dist/lib/utils.js +0 -37
  248. package/dist/lib/zod-codecs.d.ts +0 -2
  249. package/dist/lib/zod-codecs.js +0 -18
  250. package/dist/pkg-info.d.ts +0 -7
  251. package/dist/pkg-info.js +0 -9
  252. package/dist/resources/generated-instructions.d.ts +0 -1
  253. package/dist/resources/generated-instructions.js +0 -105
  254. package/dist/resources/tool-catalog.d.ts +0 -2
  255. package/dist/resources/tool-catalog.js +0 -78
  256. package/dist/resources/tool-info.d.ts +0 -9
  257. package/dist/resources/tool-info.js +0 -206
  258. package/dist/resources/workflows.d.ts +0 -1
  259. package/dist/resources/workflows.js +0 -72
  260. package/dist/schemas.d.ts +0 -505
  261. package/dist/schemas.js +0 -676
  262. package/dist/server/bootstrap.d.ts +0 -6
  263. package/dist/server/bootstrap.js +0 -563
  264. package/dist/server/event-store.d.ts +0 -18
  265. package/dist/server/event-store.js +0 -71
  266. package/dist/server/roots-manager.d.ts +0 -28
  267. package/dist/server/roots-manager.js +0 -227
  268. package/dist/server/task-store.d.ts +0 -10
  269. package/dist/server/task-store.js +0 -91
  270. package/dist/tools/apply-patch.d.ts +0 -4
  271. package/dist/tools/apply-patch.js +0 -235
  272. package/dist/tools/calculate-hash.d.ts +0 -4
  273. package/dist/tools/calculate-hash.js +0 -187
  274. package/dist/tools/contract.d.ts +0 -50
  275. package/dist/tools/contract.js +0 -1
  276. package/dist/tools/create-directory.d.ts +0 -4
  277. package/dist/tools/create-directory.js +0 -68
  278. package/dist/tools/diff-files.d.ts +0 -4
  279. package/dist/tools/diff-files.js +0 -136
  280. package/dist/tools/edit-file.d.ts +0 -4
  281. package/dist/tools/edit-file.js +0 -256
  282. package/dist/tools/icons.d.ts +0 -15
  283. package/dist/tools/icons.js +0 -24
  284. package/dist/tools/list-directory.d.ts +0 -4
  285. package/dist/tools/list-directory.js +0 -218
  286. package/dist/tools/move-file.d.ts +0 -4
  287. package/dist/tools/move-file.js +0 -178
  288. package/dist/tools/read-multiple.d.ts +0 -4
  289. package/dist/tools/read-multiple.js +0 -207
  290. package/dist/tools/shared.d.ts +0 -172
  291. package/dist/tools/shared.js +0 -599
  292. package/dist/tools/stat-many.d.ts +0 -4
  293. package/dist/tools/stat-many.js +0 -104
  294. package/dist/tools/task-support.d.ts +0 -29
  295. package/dist/tools/task-support.js +0 -472
  296. package/dist/tools/tree.d.ts +0 -4
  297. package/dist/tools/tree.js +0 -102
  298. package/dist/tools/write-file.d.ts +0 -4
  299. package/dist/tools/write-file.js +0 -60
  300. package/dist/tools.d.ts +0 -5
  301. package/dist/tools.js +0 -54
@@ -1,102 +0,0 @@
1
- import { basename } from 'node:path';
2
- import { DEFAULT_SEARCH_TIMEOUT_MS } from '../lib/constants.js';
3
- import { classifyError, ErrorCode } from '../lib/errors.js';
4
- import { formatTreeAscii, treeDirectory, } from '../lib/file-operations/metadata.js';
5
- import { TreeInputSchema, TreeOutputSchema } from '../schemas.js';
6
- import { DIRECTORY_ICONS } from './icons.js';
7
- import { buildToolErrorResponse, buildToolResponse, createProgressReporter, executeToolWithDiagnostics, notifyProgress, READ_ONLY_TOOL_ANNOTATIONS, resolvePathOrRoot, } from './shared.js';
8
- import { registerStandardTool } from './task-support.js';
9
- export const TREE_TOOL = {
10
- name: 'tree',
11
- title: 'Tree',
12
- description: 'Render a directory tree (bounded recursion). Returns ASCII tree + structured JSON. ' +
13
- '`maxDepth=0` returns only the root node.',
14
- inputSchema: TreeInputSchema,
15
- outputSchema: TreeOutputSchema,
16
- annotations: READ_ONLY_TOOL_ANNOTATIONS,
17
- icons: DIRECTORY_ICONS,
18
- taskSupport: 'optional',
19
- };
20
- async function handleTree(args, signal, onProgress) {
21
- const basePath = resolvePathOrRoot(args.path);
22
- const result = await treeDirectory(basePath, {
23
- maxDepth: args.maxDepth,
24
- maxEntries: args.maxEntries,
25
- includeHidden: args.includeHidden,
26
- includeIgnored: args.includeIgnored,
27
- includeSizes: args.includeSizes,
28
- ...(signal ? { signal } : {}),
29
- ...(onProgress ? { onProgress } : {}),
30
- });
31
- const ascii = formatTreeAscii(result.tree);
32
- const structured = {
33
- ok: true,
34
- root: result.root,
35
- tree: result.tree,
36
- ascii,
37
- truncated: result.truncated,
38
- totalEntries: result.totalEntries,
39
- };
40
- const text = result.truncated ? `${ascii}\n[truncated]` : ascii;
41
- return buildToolResponse(text, structured);
42
- }
43
- export function registerTreeTool(server, options = {}) {
44
- const handler = (args, ctx) => {
45
- const targetPath = args.path ?? '.';
46
- return executeToolWithDiagnostics({
47
- toolName: 'tree',
48
- ctx,
49
- outputSchema: TreeOutputSchema,
50
- timedSignal: { timeoutMs: DEFAULT_SEARCH_TIMEOUT_MS },
51
- context: { path: targetPath },
52
- run: async (signal) => {
53
- const context = args.path ? basename(args.path) : '.';
54
- let progressCursor = 0;
55
- const knownTotal = args.maxEntries;
56
- notifyProgress(ctx, {
57
- current: 0,
58
- total: knownTotal,
59
- message: `${TREE_TOOL.title}: ${context}`,
60
- });
61
- const baseReporter = createProgressReporter(ctx);
62
- const onProgress = (progress) => {
63
- const { current } = progress;
64
- if (current > progressCursor)
65
- progressCursor = current;
66
- baseReporter({
67
- current,
68
- total: knownTotal,
69
- message: `${TREE_TOOL.title}: ${context} [${current} entries]`,
70
- });
71
- };
72
- try {
73
- const result = await handleTree(args, signal, onProgress);
74
- const sc = result.structuredContent;
75
- const count = sc.totalEntries ?? 0;
76
- const { truncated } = sc;
77
- let suffix = `${count} ${count === 1 ? 'entry' : 'entries'}`;
78
- if (truncated)
79
- suffix += ' [truncated]';
80
- const finalCurrent = Math.max(count, progressCursor + 1);
81
- notifyProgress(ctx, {
82
- current: finalCurrent,
83
- total: finalCurrent,
84
- message: `${TREE_TOOL.title}: ${context} • ${suffix}`,
85
- });
86
- return result;
87
- }
88
- catch (error) {
89
- const finalCurrent = Math.max(progressCursor + 1, 1);
90
- notifyProgress(ctx, {
91
- current: finalCurrent,
92
- total: finalCurrent,
93
- message: `${TREE_TOOL.title}: ${context} • ${classifyError(error)}`,
94
- });
95
- throw error;
96
- }
97
- },
98
- onError: (error) => buildToolErrorResponse(error, ErrorCode.NOT_DIRECTORY, targetPath),
99
- });
100
- };
101
- registerStandardTool(server, TREE_TOOL, handler, options);
102
- }
@@ -1,4 +0,0 @@
1
- import type { McpServer } from '@modelcontextprotocol/server';
2
- import { type ToolContract, type ToolRegistrationOptions } from './shared.js';
3
- export declare const WRITE_FILE_TOOL: ToolContract;
4
- export declare function registerWriteFileTool(server: McpServer, options?: ToolRegistrationOptions): void;
@@ -1,60 +0,0 @@
1
- import { mkdir } from 'node:fs/promises';
2
- import { basename, dirname } from 'node:path';
3
- import { withAbort } from '../lib/abort.js';
4
- import { ErrorCode } from '../lib/errors.js';
5
- import { atomicWriteFile } from '../lib/fs-helpers.js';
6
- import { Logger } from '../lib/logger.js';
7
- import { validatePathForWrite } from '../lib/paths.js';
8
- import { formatBytes } from '../config.js';
9
- import { WriteFileInputSchema, WriteFileOutputSchema } from '../schemas.js';
10
- import { FILE_EDIT_ICONS } from './icons.js';
11
- import { buildToolErrorResponse, buildToolResponse, DESTRUCTIVE_WRITE_TOOL_ANNOTATIONS, executeToolWithDiagnostics, } from './shared.js';
12
- import { registerStandardTool } from './task-support.js';
13
- export const WRITE_FILE_TOOL = {
14
- name: 'write',
15
- title: 'Write File',
16
- description: 'Write content to a file, OVERWRITING ALL existing content. Creates the file and parent directories if needed.',
17
- inputSchema: WriteFileInputSchema,
18
- outputSchema: WriteFileOutputSchema,
19
- annotations: DESTRUCTIVE_WRITE_TOOL_ANNOTATIONS,
20
- icons: FILE_EDIT_ICONS,
21
- taskSupport: 'forbidden',
22
- };
23
- async function handleWriteFile(args, signal) {
24
- const validPath = await validatePathForWrite(args.path, signal);
25
- // Ensure parent directory exists
26
- await withAbort(mkdir(dirname(validPath), { recursive: true }), signal);
27
- await atomicWriteFile(validPath, args.content, { encoding: 'utf-8', signal });
28
- const bytesWritten = Buffer.byteLength(args.content, 'utf-8');
29
- Logger.info(`write: ${args.path} (${bytesWritten} bytes)`);
30
- return buildToolResponse(`Successfully wrote to file: ${args.path}`, {
31
- ok: true,
32
- path: validPath,
33
- bytesWritten,
34
- });
35
- }
36
- export function registerWriteFileTool(server, options = {}) {
37
- const handler = (args, ctx) => executeToolWithDiagnostics({
38
- toolName: 'write',
39
- ctx,
40
- outputSchema: WriteFileOutputSchema,
41
- timedSignal: {},
42
- context: { path: args.path },
43
- run: async (signal) => {
44
- const result = await handleWriteFile(args, signal);
45
- void ctx.log?.('info', `write: ${args.path} (${String(result.structuredContent.bytesWritten ?? 0)} bytes)`);
46
- return result;
47
- },
48
- onError: (error) => buildToolErrorResponse(error, ErrorCode.UNKNOWN, args.path),
49
- });
50
- registerStandardTool(server, WRITE_FILE_TOOL, handler, options, {
51
- progressMessage: (args) => `${WRITE_FILE_TOOL.title}: ${basename(args.path)}`,
52
- completionMessage: (args, result) => {
53
- const name = basename(args.path);
54
- if (result.isError)
55
- return `${WRITE_FILE_TOOL.title}: ${name} • ${result.errorCode}`;
56
- const sc = result.structuredContent;
57
- return `${WRITE_FILE_TOOL.title}: ${name} • ${formatBytes(sc.bytesWritten ?? 0)}`;
58
- },
59
- });
60
- }
package/dist/tools.d.ts DELETED
@@ -1,5 +0,0 @@
1
- import type { McpServer } from '@modelcontextprotocol/server';
2
- import { type ToolContract } from './tools/contract.js';
3
- import type { ToolRegistrationOptions } from './tools/shared.js';
4
- export declare const ALL_TOOLS: ToolContract[];
5
- export declare function registerAllTools(server: McpServer, options?: ToolRegistrationOptions): void;
package/dist/tools.js DELETED
@@ -1,54 +0,0 @@
1
- import { APPLY_PATCH_TOOL, registerApplyPatchTool, } from './tools/apply-patch.js';
2
- import { CALCULATE_HASH_TOOL, registerCalculateHashTool, } from './tools/calculate-hash.js';
3
- import {} from './tools/contract.js';
4
- import { CREATE_DIRECTORY_TOOL, registerCreateDirectoryTool, } from './tools/create-directory.js';
5
- import { DELETE_FILE_TOOL, registerDeleteFileTool, } from './tools/delete-file.js';
6
- import { DIFF_FILES_TOOL, registerDiffFilesTool } from './tools/diff-files.js';
7
- import { EDIT_FILE_TOOL, registerEditFileTool } from './tools/edit-file.js';
8
- import { LIST_DIRECTORY_TOOL, registerListDirectoryTool, } from './tools/list-directory.js';
9
- import { MOVE_FILE_TOOL, registerMoveFileTool } from './tools/move-file.js';
10
- import { READ_MANY_TOOL, registerReadMultipleFilesTool, } from './tools/read-multiple.js';
11
- import { READ_FILE_TOOL, registerReadFileTool } from './tools/read.js';
12
- import { registerSearchAndReplaceTool, SEARCH_AND_REPLACE_TOOL, } from './tools/replace-in-files.js';
13
- import { LIST_ALLOWED_DIRECTORIES_TOOL, registerListAllowedDirectoriesTool, } from './tools/roots.js';
14
- import { registerSearchContentTool, SEARCH_CONTENT_TOOL, } from './tools/search-content.js';
15
- import { registerSearchFilesTool, SEARCH_FILES_TOOL, } from './tools/search-files.js';
16
- import { GET_MULTIPLE_FILE_INFO_TOOL, registerGetMultipleFileInfoTool, } from './tools/stat-many.js';
17
- import { GET_FILE_INFO_TOOL, registerGetFileInfoTool } from './tools/stat.js';
18
- import { registerTreeTool, TREE_TOOL } from './tools/tree.js';
19
- import { registerWriteFileTool, WRITE_FILE_TOOL } from './tools/write-file.js';
20
- const TOOL_ENTRIES = [
21
- {
22
- contract: LIST_ALLOWED_DIRECTORIES_TOOL,
23
- register: registerListAllowedDirectoriesTool,
24
- },
25
- { contract: LIST_DIRECTORY_TOOL, register: registerListDirectoryTool },
26
- { contract: SEARCH_FILES_TOOL, register: registerSearchFilesTool },
27
- { contract: TREE_TOOL, register: registerTreeTool },
28
- { contract: READ_FILE_TOOL, register: registerReadFileTool },
29
- {
30
- contract: READ_MANY_TOOL,
31
- register: registerReadMultipleFilesTool,
32
- },
33
- { contract: GET_FILE_INFO_TOOL, register: registerGetFileInfoTool },
34
- {
35
- contract: GET_MULTIPLE_FILE_INFO_TOOL,
36
- register: registerGetMultipleFileInfoTool,
37
- },
38
- { contract: SEARCH_CONTENT_TOOL, register: registerSearchContentTool },
39
- { contract: CREATE_DIRECTORY_TOOL, register: registerCreateDirectoryTool },
40
- { contract: WRITE_FILE_TOOL, register: registerWriteFileTool },
41
- { contract: EDIT_FILE_TOOL, register: registerEditFileTool },
42
- { contract: MOVE_FILE_TOOL, register: registerMoveFileTool },
43
- { contract: DELETE_FILE_TOOL, register: registerDeleteFileTool },
44
- { contract: CALCULATE_HASH_TOOL, register: registerCalculateHashTool },
45
- { contract: DIFF_FILES_TOOL, register: registerDiffFilesTool },
46
- { contract: APPLY_PATCH_TOOL, register: registerApplyPatchTool },
47
- { contract: SEARCH_AND_REPLACE_TOOL, register: registerSearchAndReplaceTool },
48
- ];
49
- export const ALL_TOOLS = TOOL_ENTRIES.map((e) => e.contract);
50
- export function registerAllTools(server, options = {}) {
51
- for (const { register } of TOOL_ENTRIES) {
52
- register(server, options);
53
- }
54
- }