@j0hanz/filesystem-context-mcp 1.0.6 → 1.0.8
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/config/types.d.ts +18 -1
- package/dist/config/types.d.ts.map +1 -1
- package/dist/instructions.md +145 -181
- package/dist/lib/directory-helpers.d.ts +5 -0
- package/dist/lib/directory-helpers.d.ts.map +1 -0
- package/dist/lib/directory-helpers.js +39 -0
- package/dist/lib/directory-helpers.js.map +1 -0
- package/dist/lib/file-operations.d.ts.map +1 -1
- package/dist/lib/file-operations.js +32 -265
- package/dist/lib/file-operations.js.map +1 -1
- package/dist/lib/formatters.d.ts +12 -0
- package/dist/lib/formatters.d.ts.map +1 -1
- package/dist/lib/formatters.js +27 -0
- package/dist/lib/formatters.js.map +1 -1
- package/dist/lib/fs-helpers.d.ts +2 -1
- package/dist/lib/fs-helpers.d.ts.map +1 -1
- package/dist/lib/fs-helpers.js +24 -6
- package/dist/lib/fs-helpers.js.map +1 -1
- package/dist/lib/mcp-logger.d.ts +11 -0
- package/dist/lib/mcp-logger.d.ts.map +1 -0
- package/dist/lib/mcp-logger.js +45 -0
- package/dist/lib/mcp-logger.js.map +1 -0
- package/dist/lib/path-validation.d.ts +1 -6
- package/dist/lib/path-validation.d.ts.map +1 -1
- package/dist/lib/path-validation.js.map +1 -1
- package/dist/lib/search-helpers.d.ts +13 -0
- package/dist/lib/search-helpers.d.ts.map +1 -0
- package/dist/lib/search-helpers.js +181 -0
- package/dist/lib/search-helpers.js.map +1 -0
- package/dist/lib/sorting.d.ts +12 -0
- package/dist/lib/sorting.d.ts.map +1 -0
- package/dist/lib/sorting.js +41 -0
- package/dist/lib/sorting.js.map +1 -0
- package/dist/prompts/analyze-codebase.d.ts.map +1 -1
- package/dist/prompts/analyze-codebase.js +124 -38
- package/dist/prompts/analyze-codebase.js.map +1 -1
- package/dist/prompts/filesystem-query.d.ts.map +1 -1
- package/dist/prompts/filesystem-query.js +123 -68
- package/dist/prompts/filesystem-query.js.map +1 -1
- package/dist/prompts/find-duplicates.d.ts.map +1 -1
- package/dist/prompts/find-duplicates.js +56 -47
- package/dist/prompts/find-duplicates.js.map +1 -1
- package/dist/prompts/project-overview.d.ts.map +1 -1
- package/dist/prompts/project-overview.js +106 -35
- package/dist/prompts/project-overview.js.map +1 -1
- package/dist/prompts/search-and-replace.d.ts.map +1 -1
- package/dist/prompts/search-and-replace.js +104 -57
- package/dist/prompts/search-and-replace.js.map +1 -1
- package/dist/prompts/shared.d.ts +11 -0
- package/dist/prompts/shared.d.ts.map +1 -0
- package/dist/prompts/shared.js +32 -0
- package/dist/prompts/shared.js.map +1 -0
- package/dist/resources/index.d.ts +3 -0
- package/dist/resources/index.d.ts.map +1 -0
- package/dist/resources/index.js +54 -0
- package/dist/resources/index.js.map +1 -0
- package/dist/schemas/inputs.d.ts.map +1 -1
- package/dist/schemas/inputs.js +11 -7
- package/dist/schemas/inputs.js.map +1 -1
- package/dist/schemas/outputs.d.ts +10 -8
- package/dist/schemas/outputs.d.ts.map +1 -1
- package/dist/schemas/outputs.js +2 -0
- package/dist/schemas/outputs.js.map +1 -1
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +22 -15
- package/dist/server.js.map +1 -1
- package/dist/tools/analyze-directory.d.ts.map +1 -1
- package/dist/tools/analyze-directory.js +12 -5
- package/dist/tools/analyze-directory.js.map +1 -1
- package/dist/tools/directory-tree.d.ts.map +1 -1
- package/dist/tools/directory-tree.js +15 -3
- package/dist/tools/directory-tree.js.map +1 -1
- package/dist/tools/get-file-info.d.ts.map +1 -1
- package/dist/tools/get-file-info.js +4 -1
- package/dist/tools/get-file-info.js.map +1 -1
- package/dist/tools/list-allowed-dirs.d.ts.map +1 -1
- package/dist/tools/list-allowed-dirs.js +15 -2
- package/dist/tools/list-allowed-dirs.js.map +1 -1
- package/dist/tools/list-directory.d.ts.map +1 -1
- package/dist/tools/list-directory.js +15 -8
- package/dist/tools/list-directory.js.map +1 -1
- package/dist/tools/read-file.d.ts.map +1 -1
- package/dist/tools/read-file.js +6 -2
- package/dist/tools/read-file.js.map +1 -1
- package/dist/tools/read-media-file.d.ts.map +1 -1
- package/dist/tools/read-media-file.js +4 -1
- package/dist/tools/read-media-file.js.map +1 -1
- package/dist/tools/read-multiple-files.d.ts.map +1 -1
- package/dist/tools/read-multiple-files.js +6 -2
- package/dist/tools/read-multiple-files.js.map +1 -1
- package/dist/tools/search-content.d.ts.map +1 -1
- package/dist/tools/search-content.js +42 -5
- package/dist/tools/search-content.js.map +1 -1
- package/dist/tools/search-files.d.ts.map +1 -1
- package/dist/tools/search-files.js +14 -5
- package/dist/tools/search-files.js.map +1 -1
- package/package.json +1 -1
package/dist/config/types.d.ts
CHANGED
|
@@ -149,7 +149,7 @@ export interface DetailedError {
|
|
|
149
149
|
details?: Record<string, unknown>;
|
|
150
150
|
}
|
|
151
151
|
export interface ErrorResponse {
|
|
152
|
-
[
|
|
152
|
+
[key: string]: unknown;
|
|
153
153
|
content: {
|
|
154
154
|
type: 'text';
|
|
155
155
|
text: string;
|
|
@@ -177,4 +177,21 @@ export interface ImageDimensions {
|
|
|
177
177
|
height: number;
|
|
178
178
|
}
|
|
179
179
|
export type ImageParser = (buffer: Buffer) => ImageDimensions | null;
|
|
180
|
+
export interface ValidatedPathDetails {
|
|
181
|
+
requestedPath: string;
|
|
182
|
+
resolvedPath: string;
|
|
183
|
+
isSymlink: boolean;
|
|
184
|
+
}
|
|
185
|
+
export interface ScanFileResult {
|
|
186
|
+
matches: ContentMatch[];
|
|
187
|
+
linesSkippedDueToRegexTimeout: number;
|
|
188
|
+
fileHadMatches: boolean;
|
|
189
|
+
}
|
|
190
|
+
export interface ParallelResult<R> {
|
|
191
|
+
results: R[];
|
|
192
|
+
errors: {
|
|
193
|
+
index: number;
|
|
194
|
+
error: Error;
|
|
195
|
+
}[];
|
|
196
|
+
}
|
|
180
197
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/config/types.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/config/types.ts"],"names":[],"mappings":"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"}
|
package/dist/instructions.md
CHANGED
|
@@ -1,245 +1,209 @@
|
|
|
1
1
|
# Filesystem Context MCP Server
|
|
2
2
|
|
|
3
|
-
> **Read-only**
|
|
3
|
+
> **Read-only** tools for exploring directories, searching files, and analyzing codebases via the [Model Context Protocol (MCP)](https://modelcontextprotocol.io/).
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
## Tool Selection Guide
|
|
5
|
+
This server enables AI assistants to safely explore and analyze filesystem contents without modification capabilities. All operations are sandboxed to explicitly allowed directories.
|
|
8
6
|
|
|
9
|
-
|
|
7
|
+
---
|
|
10
8
|
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
|
14
|
-
|
|
|
15
|
-
|
|
|
16
|
-
|
|
|
17
|
-
|
|
|
18
|
-
|
|
|
19
|
-
|
|
|
20
|
-
|
|
|
21
|
-
|
|
|
22
|
-
| Read
|
|
9
|
+
## Quick Reference
|
|
10
|
+
|
|
11
|
+
| Goal | Tool | Key Parameters |
|
|
12
|
+
| ------------------- | -------------------------- | ----------------------------------- |
|
|
13
|
+
| Check access | `list_allowed_directories` | — |
|
|
14
|
+
| Project structure | `directory_tree` | `maxDepth`, `excludePatterns` |
|
|
15
|
+
| List contents | `list_directory` | `recursive`, `sortBy` |
|
|
16
|
+
| Directory stats | `analyze_directory` | `topN`, `excludePatterns` |
|
|
17
|
+
| Find files | `search_files` | `pattern` (glob), `maxResults` |
|
|
18
|
+
| Search in files | `search_content` | `pattern` (regex), `contextLines` |
|
|
19
|
+
| Read file | `read_file` | `head`, `tail`, `lineStart/lineEnd` |
|
|
20
|
+
| Read multiple files | `read_multiple_files` | `paths[]` — **preferred for 2+** |
|
|
21
|
+
| File metadata | `get_file_info` | `path` |
|
|
22
|
+
| Binary/media files | `read_media_file` | `maxSize` |
|
|
23
23
|
|
|
24
24
|
---
|
|
25
25
|
|
|
26
|
-
##
|
|
26
|
+
## Workflows
|
|
27
27
|
|
|
28
|
-
|
|
28
|
+
### Project Discovery
|
|
29
29
|
|
|
30
30
|
```text
|
|
31
|
-
|
|
32
|
-
2. directory_tree(path, maxDepth=3) → See project structure
|
|
33
|
-
3. analyze_directory(path) → Get statistics
|
|
31
|
+
list_allowed_directories → directory_tree(maxDepth=3) → analyze_directory → read_multiple_files([package.json, README.md])
|
|
34
32
|
```
|
|
35
33
|
|
|
36
|
-
|
|
34
|
+
### Find & Read Code
|
|
37
35
|
|
|
38
|
-
|
|
36
|
+
```text
|
|
37
|
+
search_files(pattern="**/*.ts") → read_multiple_files([...results])
|
|
38
|
+
```
|
|
39
39
|
|
|
40
|
-
###
|
|
40
|
+
### Search Patterns
|
|
41
41
|
|
|
42
|
-
|
|
42
|
+
```text
|
|
43
|
+
search_content(pattern="TODO|FIXME", filePattern="**/*.ts", contextLines=2)
|
|
44
|
+
```
|
|
43
45
|
|
|
44
|
-
###
|
|
46
|
+
### Common Glob Patterns
|
|
45
47
|
|
|
46
|
-
|
|
48
|
+
| Pattern | Matches |
|
|
49
|
+
| --------------------- | ----------------------------------------- |
|
|
50
|
+
| `**/*.ts` | All TypeScript files |
|
|
51
|
+
| `src/**/*.{js,jsx}` | JS/JSX files under `src/` |
|
|
52
|
+
| `**/test/**` | All files in any `test/` directory |
|
|
53
|
+
| `**/*.test.ts` | Test files by naming convention |
|
|
54
|
+
| `!**/node_modules/**` | Exclude `node_modules/` (use in excludes) |
|
|
47
55
|
|
|
48
|
-
|
|
49
|
-
| ----------------- | -------- | ------- | --------------------------- |
|
|
50
|
-
| `path` | string | — | Directory to visualize |
|
|
51
|
-
| `maxDepth` | number | 5 | How deep to traverse (0-50) |
|
|
52
|
-
| `excludePatterns` | string[] | [] | Glob patterns to skip |
|
|
53
|
-
| `includeHidden` | boolean | false | Include dotfiles |
|
|
54
|
-
| `includeSize` | boolean | false | Show file sizes |
|
|
55
|
-
| `maxFiles` | number | — | Limit total files returned |
|
|
56
|
+
---
|
|
56
57
|
|
|
57
|
-
|
|
58
|
+
## Best Practices
|
|
58
59
|
|
|
59
|
-
|
|
60
|
+
**Do:**
|
|
60
61
|
|
|
61
|
-
|
|
62
|
+
- Use `read_multiple_files` for 2+ files (parallel, resilient)
|
|
63
|
+
- Set `maxResults`, `maxDepth`, `maxEntries` limits
|
|
64
|
+
- Use `excludePatterns=["node_modules", ".git", "dist"]`
|
|
65
|
+
- Preview with `head=50` before full reads
|
|
62
66
|
|
|
63
|
-
|
|
64
|
-
| --------------- | ------- | ------- | ---------------------------------- |
|
|
65
|
-
| `path` | string | — | Directory to list |
|
|
66
|
-
| `recursive` | boolean | false | Include subdirectories |
|
|
67
|
-
| `sortBy` | enum | "name" | `name`, `size`, `modified`, `type` |
|
|
68
|
-
| `maxDepth` | number | 10 | Depth limit when recursive |
|
|
69
|
-
| `maxEntries` | number | — | Limit results (up to 100,000) |
|
|
70
|
-
| `includeHidden` | boolean | false | Include dotfiles |
|
|
67
|
+
**Don't:**
|
|
71
68
|
|
|
72
|
-
|
|
69
|
+
- Loop `read_file` — batch with `read_multiple_files`
|
|
70
|
+
- Recursive search without `maxDepth`
|
|
71
|
+
- Search without `maxResults` on large codebases
|
|
73
72
|
|
|
74
|
-
|
|
73
|
+
## Tool Details
|
|
75
74
|
|
|
76
|
-
|
|
77
|
-
| ----------------- | -------- | ------- | ------------------------------ |
|
|
78
|
-
| `path` | string | — | Directory to analyze |
|
|
79
|
-
| `maxDepth` | number | 10 | How deep to analyze |
|
|
80
|
-
| `topN` | number | 10 | Number of largest/recent files |
|
|
81
|
-
| `excludePatterns` | string[] | [] | Patterns to skip |
|
|
82
|
-
| `includeHidden` | boolean | false | Include dotfiles |
|
|
75
|
+
### `directory_tree`
|
|
83
76
|
|
|
84
|
-
|
|
77
|
+
JSON tree structure for AI parsing.
|
|
85
78
|
|
|
86
|
-
|
|
79
|
+
| Parameter | Default | Description |
|
|
80
|
+
| ----------------- | ------- | --------------------- |
|
|
81
|
+
| `path` | — | Directory path |
|
|
82
|
+
| `maxDepth` | 5 | Depth limit (0-50) |
|
|
83
|
+
| `excludePatterns` | [] | Glob patterns to skip |
|
|
84
|
+
| `includeHidden` | false | Include dotfiles |
|
|
85
|
+
| `includeSize` | false | Show file sizes |
|
|
86
|
+
| `maxFiles` | — | Limit total files |
|
|
87
87
|
|
|
88
|
-
|
|
89
|
-
| ----------------- | -------- | ------- | -------------------------------------- |
|
|
90
|
-
| `path` | string | — | Base directory |
|
|
91
|
-
| `pattern` | string | — | **Glob**: `**/*.ts`, `src/**/test*.js` |
|
|
92
|
-
| `excludePatterns` | string[] | [] | Patterns to skip |
|
|
93
|
-
| `maxResults` | number | — | Limit results (up to 10,000) |
|
|
94
|
-
| `maxDepth` | number | — | Depth limit |
|
|
95
|
-
| `sortBy` | enum | "path" | `name`, `size`, `modified`, `path` |
|
|
88
|
+
### `search_files`
|
|
96
89
|
|
|
97
|
-
|
|
90
|
+
Find files by glob pattern.
|
|
98
91
|
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
92
|
+
| Parameter | Default | Description |
|
|
93
|
+
| ----------------- | ------- | ------------------------- |
|
|
94
|
+
| `path` | — | Base directory |
|
|
95
|
+
| `pattern` | — | Glob: `**/*.ts`, `src/**` |
|
|
96
|
+
| `excludePatterns` | [] | Patterns to skip |
|
|
97
|
+
| `maxResults` | — | Limit (up to 10,000) |
|
|
98
|
+
| `sortBy` | "path" | `name/size/modified/path` |
|
|
103
99
|
|
|
104
100
|
### `search_content`
|
|
105
101
|
|
|
106
|
-
Grep-like search
|
|
107
|
-
|
|
108
|
-
| Parameter
|
|
109
|
-
|
|
|
110
|
-
| `path`
|
|
111
|
-
| `pattern`
|
|
112
|
-
| `filePattern`
|
|
113
|
-
| `
|
|
114
|
-
| `caseSensitive`
|
|
115
|
-
| `wholeWord`
|
|
116
|
-
| `isLiteral`
|
|
117
|
-
| `
|
|
118
|
-
| `
|
|
119
|
-
| `maxFilesScanned` | number | — | Limit files to scan |
|
|
120
|
-
| `maxFileSize` | number | 1MB | Skip files larger than this |
|
|
121
|
-
| `timeoutMs` | number | — | Operation timeout |
|
|
122
|
-
| `skipBinary` | boolean | true | Skip binary files |
|
|
123
|
-
|
|
124
|
-
**Example:** `search_content(path, pattern="export (function|class)", filePattern="**/*.ts", contextLines=2)`
|
|
102
|
+
Grep-like regex search in files.
|
|
103
|
+
|
|
104
|
+
| Parameter | Default | Description |
|
|
105
|
+
| --------------- | ------- | ------------------------- |
|
|
106
|
+
| `path` | — | Base directory |
|
|
107
|
+
| `pattern` | — | Regex: `TODO\|FIXME` |
|
|
108
|
+
| `filePattern` | `**/*` | Glob filter |
|
|
109
|
+
| `contextLines` | 0 | Lines before/after (0-10) |
|
|
110
|
+
| `caseSensitive` | false | Case matching |
|
|
111
|
+
| `wholeWord` | false | Word boundaries |
|
|
112
|
+
| `isLiteral` | false | Escape regex |
|
|
113
|
+
| `maxResults` | 100 | Limit matches |
|
|
114
|
+
| `skipBinary` | true | Skip binary files |
|
|
125
115
|
|
|
126
116
|
### `read_file`
|
|
127
117
|
|
|
128
|
-
Read
|
|
118
|
+
Read single file with line selection.
|
|
129
119
|
|
|
130
|
-
| Parameter |
|
|
131
|
-
| ----------- |
|
|
132
|
-
| `path` |
|
|
133
|
-
| `encoding` |
|
|
134
|
-
| `maxSize` |
|
|
135
|
-
| `head` |
|
|
136
|
-
| `tail` |
|
|
137
|
-
| `lineStart` |
|
|
138
|
-
| `lineEnd` |
|
|
120
|
+
| Parameter | Default | Description |
|
|
121
|
+
| ----------- | ------- | ------------------------------- |
|
|
122
|
+
| `path` | — | File path |
|
|
123
|
+
| `encoding` | utf-8 | `utf-8/ascii/base64/hex/latin1` |
|
|
124
|
+
| `maxSize` | 10MB | Size limit |
|
|
125
|
+
| `head` | — | First N lines |
|
|
126
|
+
| `tail` | — | Last N lines |
|
|
127
|
+
| `lineStart` | — | Start line (1-indexed) |
|
|
128
|
+
| `lineEnd` | — | End line (inclusive) |
|
|
139
129
|
|
|
140
|
-
|
|
130
|
+
> ⚠️ Cannot combine `head/tail` with `lineStart/lineEnd`
|
|
141
131
|
|
|
142
132
|
### `read_multiple_files`
|
|
143
133
|
|
|
144
|
-
|
|
134
|
+
Parallel batch reads — failures don't block others.
|
|
145
135
|
|
|
146
|
-
| Parameter |
|
|
147
|
-
| ---------- |
|
|
148
|
-
| `paths` |
|
|
149
|
-
| `encoding` |
|
|
150
|
-
| `maxSize` |
|
|
151
|
-
| `head` |
|
|
152
|
-
| `tail` |
|
|
136
|
+
| Parameter | Default | Description |
|
|
137
|
+
| ---------- | ------- | ------------------ |
|
|
138
|
+
| `paths` | — | Array (max 100) |
|
|
139
|
+
| `encoding` | utf-8 | Encoding for all |
|
|
140
|
+
| `maxSize` | 10MB | Per-file limit |
|
|
141
|
+
| `head` | — | First N lines each |
|
|
142
|
+
| `tail` | — | Last N lines each |
|
|
153
143
|
|
|
154
|
-
### `
|
|
155
|
-
|
|
156
|
-
Metadata only: size, timestamps, permissions, MIME type.
|
|
157
|
-
|
|
158
|
-
| Parameter | Type | Description |
|
|
159
|
-
| --------- | ------ | ----------------- |
|
|
160
|
-
| `path` | string | File or directory |
|
|
161
|
-
|
|
162
|
-
### `read_media_file`
|
|
163
|
-
|
|
164
|
-
Returns binary files as base64 with MIME type. Includes image dimensions.
|
|
165
|
-
|
|
166
|
-
| Parameter | Type | Default | Description |
|
|
167
|
-
| --------- | ------ | ------- | ------------------ |
|
|
168
|
-
| `path` | string | — | Path to media file |
|
|
169
|
-
| `maxSize` | number | 50MB | Maximum file size |
|
|
170
|
-
|
|
171
|
-
---
|
|
172
|
-
|
|
173
|
-
## Efficiency Best Practices
|
|
174
|
-
|
|
175
|
-
### ✅ Do
|
|
176
|
-
|
|
177
|
-
- **Batch reads**: Use `read_multiple_files` for 2+ files
|
|
178
|
-
- **Limit scope**: Always set `maxResults`, `maxDepth`, `maxEntries`
|
|
179
|
-
- **Exclude noise**: Use `excludePatterns=["node_modules", ".git", "dist"]`
|
|
180
|
-
- **Preview large files**: Use `head=50` or `tail=50` before full read
|
|
181
|
-
- **Search then read**: `search_files` → `read_multiple_files`
|
|
144
|
+
### `list_directory`
|
|
182
145
|
|
|
183
|
-
|
|
146
|
+
Flat listing with metadata.
|
|
184
147
|
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
148
|
+
| Parameter | Default | Description |
|
|
149
|
+
| ------------ | ------- | ------------------------- |
|
|
150
|
+
| `path` | — | Directory path |
|
|
151
|
+
| `recursive` | false | Include subdirs |
|
|
152
|
+
| `sortBy` | "name" | `name/size/modified/type` |
|
|
153
|
+
| `maxDepth` | 10 | Depth when recursive |
|
|
154
|
+
| `maxEntries` | — | Limit (up to 100,000) |
|
|
189
155
|
|
|
190
|
-
|
|
156
|
+
### `analyze_directory`
|
|
191
157
|
|
|
192
|
-
|
|
158
|
+
Statistics: counts, sizes, types, largest/recent files.
|
|
193
159
|
|
|
194
|
-
|
|
160
|
+
| Parameter | Default | Description |
|
|
161
|
+
| ----------------- | ------- | ------------------ |
|
|
162
|
+
| `path` | — | Directory path |
|
|
163
|
+
| `maxDepth` | 10 | Analysis depth |
|
|
164
|
+
| `topN` | 10 | Top largest/recent |
|
|
165
|
+
| `excludePatterns` | [] | Patterns to skip |
|
|
195
166
|
|
|
196
|
-
|
|
197
|
-
list_allowed_directories
|
|
198
|
-
directory_tree(path, maxDepth=3, excludePatterns=["node_modules",".git"])
|
|
199
|
-
analyze_directory(path, excludePatterns=["node_modules"])
|
|
200
|
-
read_multiple_files([package.json, README.md, tsconfig.json])
|
|
201
|
-
```
|
|
167
|
+
### `read_media_file`
|
|
202
168
|
|
|
203
|
-
|
|
169
|
+
Binary files as base64 with MIME type and dimensions.
|
|
204
170
|
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
171
|
+
| Parameter | Default | Description |
|
|
172
|
+
| --------- | ------- | --------------- |
|
|
173
|
+
| `path` | — | Media file path |
|
|
174
|
+
| `maxSize` | 50MB | Size limit |
|
|
209
175
|
|
|
210
|
-
###
|
|
176
|
+
### `get_file_info`
|
|
211
177
|
|
|
212
|
-
|
|
213
|
-
search_content(path, pattern="async function", filePattern="**/*.ts", contextLines=2)
|
|
214
|
-
```
|
|
178
|
+
Detailed metadata about a file or directory.
|
|
215
179
|
|
|
216
|
-
|
|
180
|
+
| Parameter | Default | Description |
|
|
181
|
+
| --------- | ------- | ------------------------- |
|
|
182
|
+
| `path` | — | Path to file or directory |
|
|
217
183
|
|
|
218
|
-
|
|
219
|
-
analyze_directory(path) → See largestFiles
|
|
220
|
-
get_file_info(largefile) → Check exact size
|
|
221
|
-
read_file(largefile, head=100) → Preview beginning
|
|
222
|
-
```
|
|
184
|
+
**Returns:** name, path, type, size, created, modified, accessed, permissions, isHidden, mimeType, symlinkTarget (if applicable).
|
|
223
185
|
|
|
224
186
|
---
|
|
225
187
|
|
|
226
|
-
## Error
|
|
188
|
+
## Error Codes
|
|
227
189
|
|
|
228
|
-
|
|
|
229
|
-
|
|
|
230
|
-
| `E_ACCESS_DENIED`
|
|
231
|
-
| `E_NOT_FOUND`
|
|
232
|
-
| `E_NOT_FILE`
|
|
233
|
-
| `E_NOT_DIRECTORY`
|
|
234
|
-
| `E_TOO_LARGE`
|
|
235
|
-
| `E_BINARY_FILE`
|
|
236
|
-
| `E_TIMEOUT`
|
|
237
|
-
| `E_INVALID_PATTERN`
|
|
190
|
+
| Code | Cause | Solution |
|
|
191
|
+
| --------------------- | ---------------------------- | ------------------------------------- |
|
|
192
|
+
| `E_ACCESS_DENIED` | Path outside allowed dirs | Check `list_allowed_directories` |
|
|
193
|
+
| `E_NOT_FOUND` | Path doesn't exist | Verify path with `list_directory` |
|
|
194
|
+
| `E_NOT_FILE` | Expected file, got directory | Use `list_directory` instead |
|
|
195
|
+
| `E_NOT_DIRECTORY` | Expected directory, got file | Use `read_file` instead |
|
|
196
|
+
| `E_TOO_LARGE` | File exceeds size limit | Use `head/tail` or increase `maxSize` |
|
|
197
|
+
| `E_BINARY_FILE` | Binary in text operation | Use `read_media_file` |
|
|
198
|
+
| `E_TIMEOUT` | Operation took too long | Reduce limits |
|
|
199
|
+
| `E_INVALID_PATTERN` | Malformed glob/regex | Check glob/regex syntax |
|
|
200
|
+
| `E_PERMISSION_DENIED` | OS-level access denied | Check file permissions |
|
|
238
201
|
|
|
239
202
|
---
|
|
240
203
|
|
|
241
|
-
## Security
|
|
204
|
+
## Security
|
|
242
205
|
|
|
243
|
-
- **Read-only
|
|
244
|
-
- **Path validation
|
|
245
|
-
- **Binary detection
|
|
206
|
+
- **Read-only** — no writes, deletes, or modifications
|
|
207
|
+
- **Path validation** — symlinks cannot escape allowed directories
|
|
208
|
+
- **Binary detection** — prevents accidental base64 bloat
|
|
209
|
+
- **Input sanitization** — patterns validated for ReDoS protection
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export declare function createExcludeMatcher(excludePatterns: string[]): (name: string, relativePath: string) => boolean;
|
|
2
|
+
export declare function handleDirectoryError(_error: unknown): void;
|
|
3
|
+
export declare function classifyAccessError(error: unknown): 'symlink' | 'inaccessible';
|
|
4
|
+
export declare function insertSorted<T>(arr: T[], item: T, compare: (a: T, b: T) => boolean, maxLen: number): void;
|
|
5
|
+
//# sourceMappingURL=directory-helpers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"directory-helpers.d.ts","sourceRoot":"","sources":["../../src/lib/directory-helpers.ts"],"names":[],"mappings":"AAKA,wBAAgB,oBAAoB,CAClC,eAAe,EAAE,MAAM,EAAE,GACxB,CAAC,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,KAAK,OAAO,CAOjD;AAGD,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI,CAE1D;AAGD,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,OAAO,GACb,SAAS,GAAG,cAAc,CAS5B;AAGD,wBAAgB,YAAY,CAAC,CAAC,EAC5B,GAAG,EAAE,CAAC,EAAE,EACR,IAAI,EAAE,CAAC,EACP,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,OAAO,EAChC,MAAM,EAAE,MAAM,GACb,IAAI,CASN"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { Minimatch } from 'minimatch';
|
|
2
|
+
import { ErrorCode, McpError } from './errors.js';
|
|
3
|
+
// Create matcher from exclude patterns
|
|
4
|
+
export function createExcludeMatcher(excludePatterns) {
|
|
5
|
+
if (excludePatterns.length === 0) {
|
|
6
|
+
return () => false;
|
|
7
|
+
}
|
|
8
|
+
const matchers = excludePatterns.map((pattern) => new Minimatch(pattern));
|
|
9
|
+
return (name, relativePath) => matchers.some((m) => m.match(name) || m.match(relativePath));
|
|
10
|
+
}
|
|
11
|
+
// Handle directory operation errors (currently no-op)
|
|
12
|
+
export function handleDirectoryError(_error) {
|
|
13
|
+
void _error;
|
|
14
|
+
}
|
|
15
|
+
// Classify symlink/access errors for summary tracking
|
|
16
|
+
export function classifyAccessError(error) {
|
|
17
|
+
if (error instanceof McpError &&
|
|
18
|
+
(error.code === ErrorCode.E_ACCESS_DENIED ||
|
|
19
|
+
error.code === ErrorCode.E_SYMLINK_NOT_ALLOWED)) {
|
|
20
|
+
return 'symlink';
|
|
21
|
+
}
|
|
22
|
+
return 'inaccessible';
|
|
23
|
+
}
|
|
24
|
+
// Insert item into sorted array maintaining sort order (descending by comparator)
|
|
25
|
+
export function insertSorted(arr, item, compare, maxLen) {
|
|
26
|
+
if (maxLen <= 0)
|
|
27
|
+
return;
|
|
28
|
+
const idx = arr.findIndex((el) => compare(item, el));
|
|
29
|
+
if (idx === -1) {
|
|
30
|
+
if (arr.length < maxLen)
|
|
31
|
+
arr.push(item);
|
|
32
|
+
}
|
|
33
|
+
else {
|
|
34
|
+
arr.splice(idx, 0, item);
|
|
35
|
+
if (arr.length > maxLen)
|
|
36
|
+
arr.pop();
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=directory-helpers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"directory-helpers.js","sourceRoot":"","sources":["../../src/lib/directory-helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAEtC,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAElD,uCAAuC;AACvC,MAAM,UAAU,oBAAoB,CAClC,eAAyB;IAEzB,IAAI,eAAe,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACjC,OAAO,GAAG,EAAE,CAAC,KAAK,CAAC;IACrB,CAAC;IACD,MAAM,QAAQ,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,IAAI,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;IAC1E,OAAO,CAAC,IAAY,EAAE,YAAoB,EAAW,EAAE,CACrD,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC;AACjE,CAAC;AAED,sDAAsD;AACtD,MAAM,UAAU,oBAAoB,CAAC,MAAe;IAClD,KAAK,MAAM,CAAC;AACd,CAAC;AAED,sDAAsD;AACtD,MAAM,UAAU,mBAAmB,CACjC,KAAc;IAEd,IACE,KAAK,YAAY,QAAQ;QACzB,CAAC,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,eAAe;YACvC,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,qBAAqB,CAAC,EACjD,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,OAAO,cAAc,CAAC;AACxB,CAAC;AAED,kFAAkF;AAClF,MAAM,UAAU,YAAY,CAC1B,GAAQ,EACR,IAAO,EACP,OAAgC,EAChC,MAAc;IAEd,IAAI,MAAM,IAAI,CAAC;QAAE,OAAO;IACxB,MAAM,GAAG,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC;IACrD,IAAI,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC;QACf,IAAI,GAAG,CAAC,MAAM,GAAG,MAAM;YAAE,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1C,CAAC;SAAM,CAAC;QACN,GAAG,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;QACzB,IAAI,GAAG,CAAC,MAAM,GAAG,MAAM;YAAE,GAAG,CAAC,GAAG,EAAE,CAAC;IACrC,CAAC;AACH,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"file-operations.d.ts","sourceRoot":"","sources":["../../src/lib/file-operations.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"file-operations.d.ts","sourceRoot":"","sources":["../../src/lib/file-operations.ts"],"names":[],"mappings":"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"}
|