@j0hanz/fs-context-mcp 2.1.4 → 2.1.5

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 (79) hide show
  1. package/README.md +46 -29
  2. package/dist/instructions.md +56 -34
  3. package/dist/lib/constants.d.ts +3 -0
  4. package/dist/lib/constants.d.ts.map +1 -1
  5. package/dist/lib/constants.js +46 -0
  6. package/dist/lib/constants.js.map +1 -1
  7. package/dist/lib/file-operations/read-multiple-files.d.ts.map +1 -1
  8. package/dist/lib/file-operations/read-multiple-files.js +1 -1
  9. package/dist/lib/file-operations/read-multiple-files.js.map +1 -1
  10. package/dist/lib/file-operations/search-content.d.ts +4 -0
  11. package/dist/lib/file-operations/search-content.d.ts.map +1 -1
  12. package/dist/lib/file-operations/search-content.js +15 -6
  13. package/dist/lib/file-operations/search-content.js.map +1 -1
  14. package/dist/lib/fs-helpers.d.ts.map +1 -1
  15. package/dist/lib/fs-helpers.js +5 -1
  16. package/dist/lib/fs-helpers.js.map +1 -1
  17. package/dist/lib/observability.d.ts.map +1 -1
  18. package/dist/lib/observability.js +42 -1
  19. package/dist/lib/observability.js.map +1 -1
  20. package/dist/lib/path-policy.d.ts +3 -0
  21. package/dist/lib/path-policy.d.ts.map +1 -0
  22. package/dist/lib/path-policy.js +69 -0
  23. package/dist/lib/path-policy.js.map +1 -0
  24. package/dist/lib/path-validation.d.ts +2 -0
  25. package/dist/lib/path-validation.d.ts.map +1 -1
  26. package/dist/lib/path-validation.js +18 -4
  27. package/dist/lib/path-validation.js.map +1 -1
  28. package/dist/schemas.d.ts +1 -0
  29. package/dist/schemas.d.ts.map +1 -1
  30. package/dist/schemas.js +11 -1
  31. package/dist/schemas.js.map +1 -1
  32. package/dist/server.d.ts.map +1 -1
  33. package/dist/server.js +5 -18
  34. package/dist/server.js.map +1 -1
  35. package/dist/tools/list-directory.d.ts +4 -0
  36. package/dist/tools/list-directory.d.ts.map +1 -0
  37. package/dist/tools/list-directory.js +85 -0
  38. package/dist/tools/list-directory.js.map +1 -0
  39. package/dist/tools/read-multiple.d.ts +4 -0
  40. package/dist/tools/read-multiple.d.ts.map +1 -0
  41. package/dist/tools/read-multiple.js +109 -0
  42. package/dist/tools/read-multiple.js.map +1 -0
  43. package/dist/tools/read.d.ts +4 -0
  44. package/dist/tools/read.d.ts.map +1 -0
  45. package/dist/tools/read.js +92 -0
  46. package/dist/tools/read.js.map +1 -0
  47. package/dist/tools/roots.d.ts +4 -0
  48. package/dist/tools/roots.d.ts.map +1 -0
  49. package/dist/tools/roots.js +41 -0
  50. package/dist/tools/roots.js.map +1 -0
  51. package/dist/tools/search-content.d.ts +4 -0
  52. package/dist/tools/search-content.d.ts.map +1 -0
  53. package/dist/tools/search-content.js +156 -0
  54. package/dist/tools/search-content.js.map +1 -0
  55. package/dist/tools/search-files.d.ts +4 -0
  56. package/dist/tools/search-files.d.ts.map +1 -0
  57. package/dist/tools/search-files.js +82 -0
  58. package/dist/tools/search-files.js.map +1 -0
  59. package/dist/tools/shared.d.ts +61 -0
  60. package/dist/tools/shared.d.ts.map +1 -0
  61. package/dist/tools/shared.js +175 -0
  62. package/dist/tools/shared.js.map +1 -0
  63. package/dist/tools/stat-many.d.ts +4 -0
  64. package/dist/tools/stat-many.d.ts.map +1 -0
  65. package/dist/tools/stat-many.js +89 -0
  66. package/dist/tools/stat-many.js.map +1 -0
  67. package/dist/tools/stat.d.ts +4 -0
  68. package/dist/tools/stat.d.ts.map +1 -0
  69. package/dist/tools/stat.js +76 -0
  70. package/dist/tools/stat.js.map +1 -0
  71. package/dist/tools/tree.d.ts +4 -0
  72. package/dist/tools/tree.d.ts.map +1 -0
  73. package/dist/tools/tree.js +59 -0
  74. package/dist/tools/tree.js.map +1 -0
  75. package/dist/tools.d.ts +12 -31
  76. package/dist/tools.d.ts.map +1 -1
  77. package/dist/tools.js +19 -837
  78. package/dist/tools.js.map +1 -1
  79. package/package.json +13 -13
package/README.md CHANGED
@@ -45,7 +45,7 @@ All operations are restricted to explicitly approved directories, with no write
45
45
  ### Search
46
46
 
47
47
  - Content search across files using `grep`
48
- - Respects `.gitignore` patterns and common ignore directories
48
+ - Respects root `.gitignore` patterns and common ignore directories
49
49
  - Configurable search timeout and worker threads
50
50
 
51
51
  ### Security
@@ -54,6 +54,7 @@ All operations are restricted to explicitly approved directories, with no write
54
54
  - Access restricted to explicitly approved directories
55
55
  - Path traversal protection (blocks `..` and symlink escapes)
56
56
  - RE2-based regex engine prevents ReDoS attacks
57
+ - Sensitive files (e.g., `.env`, `.npmrc`) are blocked by default; override via env allowlist
57
58
 
58
59
  ## When to Use
59
60
 
@@ -148,6 +149,7 @@ Notes:
148
149
 
149
150
  - Windows drive-relative paths like `C:path` are rejected. Use `C:\path` or `C:/path`.
150
151
  - Reserved Windows device names (e.g., `CON`, `NUL`) are blocked.
152
+ - If multiple roots are configured, tools require an explicit `path` to disambiguate.
151
153
 
152
154
  ## Configuration
153
155
 
@@ -155,16 +157,30 @@ All configuration is optional. Sizes in bytes, timeouts in milliseconds.
155
157
 
156
158
  ### Environment Variables
157
159
 
158
- | Variable | Default | Description |
159
- | --------------------------- | ----------------- | --------------------------------------------------------- |
160
- | `MAX_FILE_SIZE` | 10MB | Max file size for read operations (range: 1MB-100MB) |
161
- | `MAX_READ_MANY_TOTAL_SIZE` | 512KB | Max combined size for `read_many` (range: 10KB-100MB) |
162
- | `MAX_SEARCH_SIZE` | 1MB | Max file size for content search (range: 100KB-10MB) |
163
- | `DEFAULT_SEARCH_TIMEOUT` | 30000 | Timeout for search/list operations (range: 100-3600000ms) |
164
- | `FS_CONTEXT_SEARCH_WORKERS` | min(cpu cores, 8) | Search worker threads (range: 0-16; 0 disables) |
160
+ | Variable | Default | Description |
161
+ | ---------------------------- | ----------------- | ----------------------------------------------------------------- |
162
+ | `MAX_FILE_SIZE` | 10MB | Max file size for read operations (range: 1MB-100MB) |
163
+ | `MAX_READ_MANY_TOTAL_SIZE` | 512KB | Max combined size for `read_many` (range: 10KB-100MB) |
164
+ | `MAX_SEARCH_SIZE` | 1MB | Max file size for content search (range: 100KB-10MB) |
165
+ | `DEFAULT_SEARCH_TIMEOUT` | 30000 | Timeout for search/list operations (range: 100-3600000ms) |
166
+ | `FS_CONTEXT_SEARCH_WORKERS` | min(cpu cores, 8) | Search worker threads (range: 0-16; 0 disables) |
167
+ | `FS_CONTEXT_ALLOW_SENSITIVE` | false | Allow reading sensitive files (set to `true` to disable denylist) |
168
+ | `FS_CONTEXT_DENYLIST` | (empty) | Additional denylist patterns (comma-separated globs) |
169
+ | `FS_CONTEXT_ALLOWLIST` | (empty) | Allowlist patterns that override denylist (comma-separated globs) |
170
+ | `FS_CONTEXT_TOOL_LOG_ERRORS` | false | Log tool failures to stderr with duration |
165
171
 
166
172
  See [CONFIGURATION.md](CONFIGURATION.md) for examples and CLI usage.
167
173
 
174
+ ### Sensitive File Policy
175
+
176
+ By default, reads and content searches are blocked for common secret filenames to reduce accidental leakage. The default denylist includes patterns like `.env`, `.npmrc`, `.aws/credentials`, `*.pem`, and `.mcpregistry_*_token`.
177
+
178
+ You can customize with:
179
+
180
+ - `FS_CONTEXT_ALLOW_SENSITIVE=true` to disable the default denylist.
181
+ - `FS_CONTEXT_DENYLIST` to add extra deny patterns (comma-separated globs using `*`).
182
+ - `FS_CONTEXT_ALLOWLIST` to allow specific paths even if they match the denylist.
183
+
168
184
  ## Resources
169
185
 
170
186
  This server exposes standard MCP resources to provide static documentation and handle large content efficiently.
@@ -199,12 +215,12 @@ Returns: Allowed directory paths. Structured output includes `ok` and
199
215
  ### `ls`
200
216
 
201
217
  List the immediate contents of a directory (non-recursive). Omit `path` to use
202
- the first allowed root.
218
+ the sole allowed root (when only one root is configured).
203
219
 
204
- | Parameter | Type | Required | Default | Description |
205
- | --------------- | ------- | -------- | ------------ | ----------------------------------------------- |
206
- | `path` | string | No | `first root` | Directory path to list (omit to use first root) |
207
- | `includeHidden` | boolean | No | `false` | Include hidden files and directories |
220
+ | Parameter | Type | Required | Default | Description |
221
+ | --------------- | ------- | -------- | ----------- | ------------------------------------------------------- |
222
+ | `path` | string | No | `only root` | Directory path to list (omit when only one root exists) |
223
+ | `includeHidden` | boolean | No | `false` | Include hidden files and directories |
208
224
 
209
225
  Returns: Entries with name, relativePath, type, size, and modified time.
210
226
  Structured output includes `ok`, `path`, `entries`, and `totalEntries`.
@@ -213,21 +229,22 @@ Structured output includes `ok`, `path`, `entries`, and `totalEntries`.
213
229
 
214
230
  ### `find`
215
231
 
216
- Search for files using glob patterns. Omit `path` to search from the first
217
- allowed root. By default, `find` excludes common dependency/build directories
232
+ Search for files using glob patterns. Omit `path` to search from the sole
233
+ allowed root (when only one root is configured). By default, `find` excludes common dependency/build directories
218
234
  (node_modules, dist, .git, etc.); set `includeIgnored: true` to include ignored
219
235
  directories and disable built-in excludes.
220
236
 
221
- | Parameter | Type | Required | Default | Description |
222
- | ---------------- | ------- | -------- | ------------ | ------------------------------------------------------ |
223
- | `path` | string | No | `first root` | Base directory to search from (omit to use first root) |
224
- | `pattern` | string | Yes | - | Glob pattern (e.g., `**/*.ts`, `src/**/*.js`) |
225
- | `includeIgnored` | boolean | No | `false` | Include ignored dirs and disable built-in excludes |
226
- | `maxResults` | number | No | `100` | Maximum matches to return (1-10000) |
237
+ | Parameter | Type | Required | Default | Description |
238
+ | ---------------- | ------- | -------- | ----------- | -------------------------------------------------------------- |
239
+ | `path` | string | No | `only root` | Base directory to search from (omit when only one root exists) |
240
+ | `pattern` | string | Yes | - | Glob pattern (e.g., `**/*.ts`, `src/**/*.js`) |
241
+ | `includeIgnored` | boolean | No | `false` | Include ignored dirs and disable built-in excludes |
242
+ | `maxResults` | number | No | `100` | Maximum matches to return (1-10000) |
227
243
 
228
244
  Notes:
229
245
 
230
246
  - When `includeIgnored=false`, results also respect a root `.gitignore` file (if present under the base `path`).
247
+ - Nested `.gitignore` files are not parsed.
231
248
 
232
249
  Returns: Matching paths (relative) with size and modified date. Structured
233
250
  output includes `ok`, `results`, `totalMatches`, and `truncated`.
@@ -236,10 +253,10 @@ output includes `ok`, `results`, `totalMatches`, and `truncated`.
236
253
 
237
254
  ### `tree`
238
255
 
239
- Render a directory tree (bounded recursion). Omit `path` to use the first
240
- allowed root.
256
+ Render a directory tree (bounded recursion). Omit `path` to use the sole
257
+ allowed root (when only one root is configured).
241
258
 
242
- - `path` (string, optional; default: `first root`): Base directory to render
259
+ - `path` (string, optional; default: `only root`): Base directory to render
243
260
  - `maxDepth` (number, optional; default: `5`): Maximum recursion depth (0 = just the root)
244
261
  - `maxEntries` (number, optional; default: `1000`): Maximum number of entries before truncating
245
262
  - `includeHidden` (boolean, optional; default: `false`): Include hidden files/directories
@@ -340,11 +357,11 @@ Search for text content within files.
340
357
 
341
358
  `pattern` is treated as a literal string and matched case-insensitively.
342
359
 
343
- | Parameter | Type | Required | Default | Description |
344
- | --------------- | ------- | -------- | ------------ | ---------------------------------------- |
345
- | `path` | string | No | `first root` | Base directory or file path to search in |
346
- | `pattern` | string | Yes | - | Text pattern to search for |
347
- | `includeHidden` | boolean | No | `false` | Include hidden files and directories |
360
+ | Parameter | Type | Required | Default | Description |
361
+ | --------------- | ------- | -------- | ----------- | ------------------------------------------------------------------------- |
362
+ | `path` | string | No | `only root` | Base directory or file path to search in (omit when only one root exists) |
363
+ | `pattern` | string | Yes | - | Text pattern to search for |
364
+ | `includeHidden` | boolean | No | `false` | Include hidden files and directories |
348
365
 
349
366
  Example (search a single file):
350
367
 
@@ -1,52 +1,74 @@
1
- # FS Context MCP Server Instructions
1
+ # fs-context Instructions
2
2
 
3
- > **Guidance for the Agent:** These instructions are available as a resource (`internal://instructions`). Load them when you are confused about tool usage.
3
+ > Guidance for the Agent: These instructions are available as a resource (`internal://instructions`) or prompt (`get-help`). Load them when you are unsure about tool usage.
4
4
 
5
5
  ## 1. Core Capability
6
6
 
7
- - **Domain:** Read-only filesystem exploration, search, and inspection within allowed roots.
8
- - **Primary Resources:** `Roots`, `DirectoryEntries`, `TreeEntries`, `SearchMatches`, `FileInfo`.
9
- - **Available Tools:** `roots`, `ls`, `tree`, `find`, `grep`, `read`, `read_many`, `stat`, `stat_many` (9 read-only tools).
7
+ - **Domain:** Read-only filesystem exploration, search, and inspection within explicitly allowed roots.
8
+ - **Primary Resources:** Directory trees, file content, metadata, and search results.
10
9
 
11
10
  ## 2. The "Golden Path" Workflows (Critical)
12
11
 
13
- _Follow this order; do not guess paths._
12
+ _Describe the standard order of operations using ONLY tools that exist._
14
13
 
15
- ### Workflow A: Workspace Discovery
14
+ ### Workflow A: Discovery & Navigation
16
15
 
17
- 1. Call `roots` to confirm access.
18
- 2. Call `tree` or `ls` to map structure.
19
- 3. Call `read` or `read_many` to inspect files.
20
- > **Constraint:** Never assume a path; list or tree first.
16
+ 1. Call `roots` to confirm designated access points.
17
+ 2. Call `ls` (for single directory) or `tree` (for structure) to map layout.
18
+ > Constraint: Never guess paths. Always list first.
21
19
 
22
- ### Workflow B: Find and Inspect Code
20
+ ### Workflow B: Search & Retrieval
23
21
 
24
- 1. Call `find` to locate files by glob.
25
- 2. Call `grep` to confirm content matches.
26
- 3. Call `read` (or `read_many`) to open the exact file.
27
- > **Constraint:** `find` is path-only; use `grep` for content.
22
+ 1. Call `find` to locate files by name/glob pattern.
23
+ 2. Call `grep` to find code by content/regex.
24
+ 3. Call `read` (single) or `read_many` (batch) to inspect specific files.
25
+ > Constraint: Large readings return incomplete previews with resource URIs (`fs-context://result/...`).
28
26
 
29
- ### Workflow C: File Metadata Inspection
27
+ ## 3. Tool Nuances & Gotchas
30
28
 
31
- 1. Call `stat` for single file/directory metadata (size, modified, permissions, MIME type).
32
- 2. Call `stat_many` for batch operations (up to 100 paths).
33
- 3. Use `tokenEstimate` field to gauge content size before reading.
34
- > **Constraint:** `stat` does not read file content; use `read` for that.
29
+ _Do NOT repeat JSON schema. Focus on behavior and pitfalls._
35
30
 
36
- ## 3. Tool Nuances & "Gotchas"
31
+ - **`ls`**
32
+ - **Purpose:** Non-recursive directory listing.
33
+ - **Inputs:** `path` (relative to root). default: root.
34
+ - **Multi-root:** If multiple roots are configured, you must provide `path`.
35
+ - **Default filters:** Excludes common ignored directories (node_modules, dist, .git, etc). Set `includeIgnored=true` to include them.
36
+ - **Latency:** Fast.
37
+ - **Common failure modes:** `E_NOT_FOUND` if path incorrect.
37
38
 
38
- - **`roots`**: Returns allowed directories (MCP roots or CLI `--allowed-dirs`). Call this first to confirm access.
39
- - **`ls`**: Non-recursive listing. Returns name, type, size, modified date. Use `includeHidden` for dotfiles.
40
- - **`find`**: Glob-only path matching. When `includeIgnored=false`, built-in ignores and a root `.gitignore` are honored.
41
- - **`tree`**: Bounded by `maxDepth`/`maxEntries`; may truncate when entry limits are hit. Returns both ASCII art and JSON structure.
42
- - **`grep`**: Literal, case-insensitive search; skips binaries and files >1MB. Returns line numbers and match context.
43
- - **`read` / `read_many`**: `head` is mutually exclusive with `startLine`/`endLine`. Large content may return a resource link (`fs-context://result/{id}`).
44
- - **`read_many`**: No binary detection; use `stat` first if unsure. Max 100 files per call.
45
- - **`stat` / `stat_many`**: Returns metadata only (no content). Includes `tokenEstimate` (approx. size/4). Max 100 paths for batch.
46
- - **Resource Caching:** Large results return `resourceUri` (e.g., `fs-context://result/{id}`) instead of inline content. These are ephemeral and not guaranteed to persist.
39
+ - **`find`**
40
+ - **Purpose:** Recursive file search by globs.
41
+ - **Inputs:** `pattern` (glob like `**/*.ts`), `path` (base dir).
42
+ - **Multi-root:** If multiple roots are configured, you must provide `path`.
43
+ - **Side effects:** None.
44
+ - **Latency:** Scans disk; bounded by `maxResults` (default 100).
45
+ - **Gitignore scope:** Only the root `.gitignore` is applied (nested `.gitignore` is not parsed).
46
+
47
+ - **`grep`**
48
+ - **Purpose:** Content search using RE2 regex.
49
+ - **Inputs:** `pattern` (regex), `path` (base).
50
+ - **Limits:** Skips binaries & files >1MB. Truncates results >50 matches.
51
+ - **Multi-root:** If multiple roots are configured, you must provide `path`.
52
+ - **Sensitive files:** Access to common secret files is blocked by default. Override with `FS_CONTEXT_ALLOW_SENSITIVE=1` or add `FS_CONTEXT_ALLOWLIST`.
53
+
54
+ - **`read` / `read_many`**
55
+ - **Purpose:** Read file contents.
56
+ - **Inputs:** `path`/`paths`. Optional: `head` (first N lines) OR `startLine`/`endLine`.
57
+ - **Gotchas:** `head` is mutually exclusive with `startLine`/`endLine`. Large content returns `resourceUri` link.
58
+ - **Sensitive files:** Access to common secret files (e.g., `.env`, `.npmrc`) is blocked by default. Override with `FS_CONTEXT_ALLOW_SENSITIVE=1` or add `FS_CONTEXT_ALLOWLIST`.
59
+
60
+ - **`stat` / `stat_many`**
61
+ - **Purpose:** Metadata (size, modified, type) without content.
62
+ - **Inputs:** `path`/`paths`.
63
+
64
+ - **`tree`**
65
+ - **Purpose:** ASCII + JSON tree visualization.
66
+ - **Limits:** Max depth/entries apply. Good for high-level "glance".
67
+ - **Multi-root:** If multiple roots are configured, you must provide `path`.
47
68
 
48
69
  ## 4. Error Handling Strategy
49
70
 
50
- - `E_ACCESS_DENIED`: Call `roots` and retry with an allowed path.
51
- - `E_TOO_LARGE`: Use `head` or `startLine`/`endLine` to reduce size.
52
- - `E_TIMEOUT`: Narrow the path scope or reduce `maxResults`/`maxEntries`.
71
+ - `E_ACCESS_DENIED`: You are trying to access a path outside allowed `roots`.
72
+ - `E_NOT_FOUND`: Re-run `ls` or `find` to verify the path exists.
73
+ - `E_TIMEOUT` / `E_UNKNOWN`: Reduce scope (subdir) or batch size.
74
+ - Resource Links (`fs-context://...`): Content was too large for inline. Read the provided URI to get full content.
@@ -14,6 +14,9 @@ export declare const DEFAULT_LIST_MAX_ENTRIES = 10000;
14
14
  export declare const DEFAULT_SEARCH_MAX_FILES = 20000;
15
15
  export declare const MAX_LINE_CONTENT_LENGTH = 200;
16
16
  export declare const BINARY_CHECK_BUFFER_SIZE = 512;
17
+ export declare const DEFAULT_SENSITIVE_PATTERNS: readonly [".env", ".env.*", ".npmrc", ".pypirc", ".aws/credentials", ".aws/config", ".mcpregistry_*_token", "*.pem", "*.key", "*.p12", "*.pfx", "*.crt", "*.cer", "*id_rsa*", "*id_dsa*"];
18
+ export declare const SENSITIVE_FILE_DENYLIST: string[];
19
+ export declare const SENSITIVE_FILE_ALLOWLIST: string[];
17
20
  export declare const KNOWN_BINARY_EXTENSIONS: Set<string>;
18
21
  export declare const DEFAULT_EXCLUDE_PATTERNS: string[];
19
22
  export declare function getMimeType(ext: string): string;
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/lib/constants.ts"],"names":[],"mappings":"AA6BA,eAAO,MAAM,oBAAoB,QAA0B,CAAC;AAG5D,eAAO,MAAM,wBAAwB,QAKpC,CAAC;AACF,eAAO,MAAM,kBAAkB,QAK9B,CAAC;AAEF,eAAO,MAAM,gCAAgC,QAK5C,CAAC;AACF,eAAO,MAAM,yBAAyB,QAKrC,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,cAAc,QAK1B,CAAC;AAGF,eAAO,MAAM,iBAAiB,KAAK,CAAC;AACpC,eAAO,MAAM,wBAAwB,QAAQ,CAAC;AAC9C,eAAO,MAAM,wBAAwB,QAAQ,CAAC;AAG9C,eAAO,MAAM,uBAAuB,MAAM,CAAC;AAC3C,eAAO,MAAM,wBAAwB,MAAM,CAAC;AAE5C,eAAO,MAAM,uBAAuB,aAyClC,CAAC;AAEH,eAAO,MAAM,wBAAwB,UAwBpC,CAAC;AA6DF,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAG/C"}
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/lib/constants.ts"],"names":[],"mappings":"AAkDA,eAAO,MAAM,oBAAoB,QAA0B,CAAC;AAG5D,eAAO,MAAM,wBAAwB,QAKpC,CAAC;AACF,eAAO,MAAM,kBAAkB,QAK9B,CAAC;AAEF,eAAO,MAAM,gCAAgC,QAK5C,CAAC;AACF,eAAO,MAAM,yBAAyB,QAKrC,CAAC;AAMF;;;;GAIG;AACH,eAAO,MAAM,cAAc,QAK1B,CAAC;AAGF,eAAO,MAAM,iBAAiB,KAAK,CAAC;AACpC,eAAO,MAAM,wBAAwB,QAAQ,CAAC;AAC9C,eAAO,MAAM,wBAAwB,QAAQ,CAAC;AAG9C,eAAO,MAAM,uBAAuB,MAAM,CAAC;AAC3C,eAAO,MAAM,wBAAwB,MAAM,CAAC;AAE5C,eAAO,MAAM,0BAA0B,2LAgB7B,CAAC;AAEX,eAAO,MAAM,uBAAuB,UAGnC,CAAC;AAEF,eAAO,MAAM,wBAAwB,UAAqB,CAAC;AAE3D,eAAO,MAAM,uBAAuB,aAyClC,CAAC;AAEH,eAAO,MAAM,wBAAwB,UAwBpC,CAAC;AA6DF,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAG/C"}
@@ -11,6 +11,27 @@ function parseEnvInt(envVar, defaultValue, min, max) {
11
11
  }
12
12
  return parsed;
13
13
  }
14
+ function parseEnvBool(envVar, defaultValue) {
15
+ const value = process.env[envVar];
16
+ if (value === undefined)
17
+ return defaultValue;
18
+ const normalized = value.trim().toLowerCase();
19
+ if (['1', 'true', 'yes', 'y', 'on'].includes(normalized))
20
+ return true;
21
+ if (['0', 'false', 'no', 'n', 'off'].includes(normalized))
22
+ return false;
23
+ console.error(`[WARNING] Invalid ${envVar} value: ${value} (must be true/false). Using default: ${String(defaultValue)}`);
24
+ return defaultValue;
25
+ }
26
+ function parseEnvList(envVar) {
27
+ const value = process.env[envVar];
28
+ if (!value)
29
+ return [];
30
+ return value
31
+ .split(/[,\n]/u)
32
+ .map((entry) => entry.trim())
33
+ .filter((entry) => entry.length > 0);
34
+ }
14
35
  // Auto-tuned parallelism based on CPU cores (no env override)
15
36
  function getOptimalParallelism() {
16
37
  const cpuCores = availableParallelism();
@@ -23,6 +44,9 @@ export const MAX_SEARCHABLE_FILE_SIZE = parseEnvInt('MAX_SEARCH_SIZE', 1024 * 10
23
44
  export const MAX_TEXT_FILE_SIZE = parseEnvInt('MAX_FILE_SIZE', 10 * 1024 * 1024, 1024 * 1024, 100 * 1024 * 1024);
24
45
  export const DEFAULT_READ_MANY_MAX_TOTAL_SIZE = parseEnvInt('MAX_READ_MANY_TOTAL_SIZE', 512 * 1024, 10 * 1024, 100 * 1024 * 1024);
25
46
  export const DEFAULT_SEARCH_TIMEOUT_MS = parseEnvInt('DEFAULT_SEARCH_TIMEOUT', 30000, 100, 3600000);
47
+ const ALLOW_SENSITIVE_FILES = parseEnvBool('FS_CONTEXT_ALLOW_SENSITIVE', false);
48
+ const ENV_DENYLIST = parseEnvList('FS_CONTEXT_DENYLIST');
49
+ const ENV_ALLOWLIST = parseEnvList('FS_CONTEXT_ALLOWLIST');
26
50
  /**
27
51
  * Number of search worker threads to use.
28
52
  * Default: CPU cores (capped at 8 for optimal I/O performance).
@@ -36,6 +60,28 @@ export const DEFAULT_SEARCH_MAX_FILES = 20000;
36
60
  // Non-configurable constants
37
61
  export const MAX_LINE_CONTENT_LENGTH = 200;
38
62
  export const BINARY_CHECK_BUFFER_SIZE = 512;
63
+ export const DEFAULT_SENSITIVE_PATTERNS = [
64
+ '.env',
65
+ '.env.*',
66
+ '.npmrc',
67
+ '.pypirc',
68
+ '.aws/credentials',
69
+ '.aws/config',
70
+ '.mcpregistry_*_token',
71
+ '*.pem',
72
+ '*.key',
73
+ '*.p12',
74
+ '*.pfx',
75
+ '*.crt',
76
+ '*.cer',
77
+ '*id_rsa*',
78
+ '*id_dsa*',
79
+ ];
80
+ export const SENSITIVE_FILE_DENYLIST = [
81
+ ...(ALLOW_SENSITIVE_FILES ? [] : DEFAULT_SENSITIVE_PATTERNS),
82
+ ...ENV_DENYLIST,
83
+ ];
84
+ export const SENSITIVE_FILE_ALLOWLIST = [...ENV_ALLOWLIST];
39
85
  export const KNOWN_BINARY_EXTENSIONS = new Set([
40
86
  '.png',
41
87
  '.jpg',
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/lib/constants.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/lib/constants.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"read-multiple-files.d.ts","sourceRoot":"","sources":["../../../src/lib/file-operations/read-multiple-files.ts"],"names":[],"mappings":"AAgBA,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;IACrC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAWD,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AA8TD,wBAAsB,iBAAiB,CACrC,SAAS,EAAE,SAAS,MAAM,EAAE,EAC5B,OAAO,GAAE,mBAAwB,GAChC,OAAO,CAAC,kBAAkB,EAAE,CAAC,CAgC/B"}
1
+ {"version":3,"file":"read-multiple-files.d.ts","sourceRoot":"","sources":["../../../src/lib/file-operations/read-multiple-files.ts"],"names":[],"mappings":"AAgBA,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;IACrC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAWD,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AA+TD,wBAAsB,iBAAiB,CACrC,SAAS,EAAE,SAAS,MAAM,EAAE,EAC5B,OAAO,GAAE,mBAAwB,GAChC,OAAO,CAAC,kBAAkB,EAAE,CAAC,CAgC/B"}
@@ -115,7 +115,7 @@ async function validateFilesInParallel(filePaths, signal) {
115
115
  const tasks = filePaths
116
116
  .map((filePath, index) => ({ filePath, index }))
117
117
  .filter((task) => task.filePath);
118
- const { results } = await processInParallel(tasks, async (task) => tryValidateFile(task.filePath, task.index, signal), PARALLEL_CONCURRENCY);
118
+ const { results } = await processInParallel(tasks, async (task) => tryValidateFile(task.filePath, task.index, signal), PARALLEL_CONCURRENCY, signal);
119
119
  const validated = new Map();
120
120
  for (const info of results) {
121
121
  if (!info)
@@ -1 +1 @@
1
- {"version":3,"file":"read-multiple-files.js","sourceRoot":"","sources":["../../../src/lib/file-operations/read-multiple-files.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"read-multiple-files.js","sourceRoot":"","sources":["../../../src/lib/file-operations/read-multiple-files.ts"],"names":[],"mappings":"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"}
@@ -18,6 +18,10 @@ interface SearchOptions {
18
18
  }
19
19
  export interface SearchContentOptions extends Partial<SearchOptions> {
20
20
  signal?: AbortSignal;
21
+ onProgress?: (progress: {
22
+ total?: number;
23
+ current: number;
24
+ }) => void;
21
25
  }
22
26
  export interface MatcherOptions {
23
27
  caseSensitive: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"search-content.d.ts","sourceRoot":"","sources":["../../../src/lib/file-operations/search-content.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"search-content.d.ts","sourceRoot":"","sources":["../../../src/lib/file-operations/search-content.ts"],"names":[],"mappings":"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"}
@@ -9,6 +9,7 @@ import { DEFAULT_EXCLUDE_PATTERNS, DEFAULT_SEARCH_MAX_FILES, DEFAULT_SEARCH_TIME
9
9
  import { ErrorCode, McpError } from '../errors.js';
10
10
  import { assertNotAborted, createTimedAbortSignal, isProbablyBinary, withAbort, } from '../fs-helpers.js';
11
11
  import { publishOpsTraceEnd, publishOpsTraceError, publishOpsTraceStart, shouldPublishOpsTrace, } from '../observability.js';
12
+ import { assertAllowedFileAccess, isSensitivePath } from '../path-policy.js';
12
13
  import { getAllowedDirectories, isPathWithinDirectories, normalizePath, toAccessDeniedWithHint, validateExistingDirectory, validateExistingPathDetailed, } from '../path-validation.js';
13
14
  import { globEntries } from './glob-engine.js';
14
15
  const INTERNAL_MAX_RESULTS = 500;
@@ -307,6 +308,7 @@ async function executeSearchSingleFile(file, baseDir, pattern, opts, signal) {
307
308
  const summary = createScanSummary();
308
309
  const matches = [];
309
310
  summary.filesScanned = 1;
311
+ assertAllowedFileAccess(file.requestedPath, file.resolvedPath);
310
312
  const matcher = buildMatcher(pattern, context.matcherOptions);
311
313
  await scanSequentialFile(file, matcher, context.scanOptions, signal, opts.maxResults, matches, summary);
312
314
  shouldStopOnSignalOrLimit(signal, matches.length, opts.maxResults, summary);
@@ -352,7 +354,7 @@ async function resolveEntryPath(entry, allowedDirs, signal) {
352
354
  return null;
353
355
  }
354
356
  }
355
- async function* collectFromStream(stream, opts, allowedDirs, signal, summary) {
357
+ async function* collectFromStream(stream, opts, allowedDirs, signal, summary, onProgress) {
356
358
  for await (const entry of stream) {
357
359
  if (!entry.dirent.isFile())
358
360
  continue;
@@ -364,11 +366,18 @@ async function* collectFromStream(stream, opts, allowedDirs, signal, summary) {
364
366
  summary.skippedInaccessible++;
365
367
  continue;
366
368
  }
369
+ if (isSensitivePath(resolved.requestedPath, resolved.resolvedPath)) {
370
+ summary.skippedInaccessible++;
371
+ continue;
372
+ }
367
373
  summary.filesScanned++;
374
+ if (onProgress && summary.filesScanned % 50 === 0) {
375
+ onProgress({ current: summary.filesScanned });
376
+ }
368
377
  yield resolved;
369
378
  }
370
379
  }
371
- function collectFilesStream(root, opts, allowedDirs, signal) {
380
+ function collectFilesStream(root, opts, allowedDirs, signal, onProgress) {
372
381
  const summary = createScanSummary();
373
382
  const stream = globEntries({
374
383
  cwd: root,
@@ -383,7 +392,7 @@ function collectFilesStream(root, opts, allowedDirs, signal) {
383
392
  suppressErrors: true,
384
393
  });
385
394
  return {
386
- stream: collectFromStream(stream, opts, allowedDirs, signal, summary),
395
+ stream: collectFromStream(stream, opts, allowedDirs, signal, summary, onProgress),
387
396
  summary,
388
397
  };
389
398
  }
@@ -913,9 +922,9 @@ function buildSearchResult(root, pattern, filePattern, matches, summary) {
913
922
  summary: buildSummary(summary, matches),
914
923
  };
915
924
  }
916
- async function executeSearch(root, pattern, opts, allowedDirs, signal) {
925
+ async function executeSearch(root, pattern, opts, allowedDirs, signal, onProgress) {
917
926
  return await withSearchExecution(pattern, opts, async (context) => {
918
- const { stream, summary } = collectFilesStream(root, opts, allowedDirs, signal);
927
+ const { stream, summary } = collectFilesStream(root, opts, allowedDirs, signal, onProgress);
919
928
  const matches = await scanMatches(stream, pattern, context.matcherOptions, context.scanOptions, opts.maxResults, signal, summary);
920
929
  return buildSearchResult(root, pattern, opts.filePattern, matches, summary);
921
930
  });
@@ -929,7 +938,7 @@ export async function searchContent(basePath, pattern, options = {}) {
929
938
  const stats = await withAbort(fsp.stat(details.resolvedPath), signal);
930
939
  if (stats.isDirectory()) {
931
940
  const root = await validateExistingDirectory(details.resolvedPath, signal);
932
- return await executeSearch(root, pattern, opts, allowedDirs, signal);
941
+ return await executeSearch(root, pattern, opts, allowedDirs, signal, options.onProgress);
933
942
  }
934
943
  if (stats.isFile()) {
935
944
  const baseDir = path.dirname(details.requestedPath);