@j0hanz/fs-context-mcp 2.0.3 → 2.0.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.
package/README.md CHANGED
@@ -255,7 +255,7 @@ Search for text content within files.
255
255
  - Omit `path` to search from the first allowed root.
256
256
  - Pass a file path in `path` to search only that file.
257
257
 
258
- `pattern` is treated as a literal string.
258
+ `pattern` is treated as a literal string and matched case-insensitively.
259
259
 
260
260
  | Parameter | Type | Required | Default | Description |
261
261
  | --------------- | ------- | -------- | ------------ | ---------------------------------------- |
@@ -272,6 +272,12 @@ Example (search a single file):
272
272
  Returns: Matching lines with file path, line number, content, and optional
273
273
  context.
274
274
 
275
+ Notes:
276
+
277
+ - `grep` skips binary files by default.
278
+ - Very large files are skipped based on `MAX_SEARCH_SIZE` (default 1MB).
279
+ “No matches” is not proof the text is absent from skipped files.
280
+
275
281
  Note: the `grep` tool currently exposes only `path`, `pattern`, and
276
282
  `includeHidden`. Context fields are omitted unless enabled internally.
277
283
 
@@ -1,212 +1,226 @@
1
- # FS Context MCP Server
1
+ # FS Context MCP Server — AI Usage Instructions
2
2
 
3
- > Read-only tools for exploring directories, searching files, and reading
4
- > content via the Model Context Protocol (MCP).
5
-
6
- This server lets assistants inspect files safely. All operations are limited to
7
- explicitly allowed directories and never write to disk.
3
+ Use this server to explore, search, and read filesystem content within allowed workspace roots. All operations are read-only. Prefer using these tools over "remembering" file contents in chat.
8
4
 
9
5
  ---
10
6
 
11
- ## Quick Reference
7
+ ## Operating Rules
12
8
 
13
- | Goal | Tool | Key Parameters |
14
- | ------------------- | ----------- | ------------------------------ |
15
- | Check access | `roots` | - |
16
- | List contents | `ls` | `path` |
17
- | Find files | `find` | `pattern` (glob), `maxResults` |
18
- | Search in files | `grep` | `pattern` |
19
- | Read file | `read` | `head` |
20
- | Read multiple files | `read_many` | `paths[]` - preferred for 2+ |
21
- | File metadata | `stat` | `path` |
22
- | Batch file metadata | `stat_many` | `paths[]` - preferred for 2+ |
9
+ - Use tools only when you need to verify, discover, or read filesystem state.
10
+ - Call `roots` first to confirm accessible directories before any other operation.
11
+ - Operate by paths (relative to roots when practical) rather than guessing file locations.
12
+ - Batch operations when available: use `read_many` for 2+ files, `stat_many` for 2+ metadata checks.
13
+ - All tools are read-only; no destructive operations exist.
14
+ - Keep operations atomic; if a request is vague, ask a clarifying question before calling tools.
23
15
 
24
- ---
16
+ ### Quick Decision Rules
25
17
 
26
- ## Core Concepts
18
+ - If you are unsure what directories are accessible: call `roots` first.
19
+ - If you need to locate files by name or pattern: use `find` (glob search).
20
+ - If you need to locate text inside files: use `grep` (content search).
21
+ - If reading multiple files: use `read_many` (up to 100 paths).
22
+ - If unsure whether a file is text or binary: use `stat` to check `mimeType` first.
23
+ - If a file is too large: use `head` parameter to preview first N lines.
27
24
 
28
- - **Allowed directories:** All tools only operate inside the allowed roots.
29
- Run `roots` first to confirm scope. If nothing is configured and the client
30
- provides no roots, the server starts with no accessible directories and logs
31
- a warning until roots are provided.
32
- - **Globs vs patterns:** `find` uses glob patterns. `grep` treats `pattern` as a
33
- literal string.
34
- - **Symlinks:** Symlinks are never followed for security.
25
+ ### Client UX Notes (VS Code)
26
+
27
+ - Non-read-only tools typically require user confirmation this server has none.
28
+ - Tool lists can be cached; users can reset cached tools via **MCP: Reset Cached Tools**.
29
+ - Only run MCP servers from trusted sources; VS Code prompts users to trust servers.
35
30
 
36
31
  ---
37
32
 
38
- ## Workflows
33
+ ## Data Model (What the Server Operates On)
39
34
 
40
- ### Project discovery
35
+ ### Workspace Roots
41
36
 
42
- ```text
43
- roots
44
- ls(path=".")
45
- read_many(["package.json", "README.md"])
46
- ```
37
+ - Absolute directory paths the server is allowed to access.
38
+ - Configured via CLI arguments, `--allow-cwd` flag, or client-provided MCP Roots protocol.
39
+ - All path operations are validated against these roots.
47
40
 
48
- ### Find and read code
41
+ ### File/Directory Entries
49
42
 
50
- ```text
51
- find(pattern="**/*.ts")
52
- read_many([...results])
53
- ```
43
+ - `name` — basename of the entry
44
+ - `path` — absolute or relative path
45
+ - `type` — `file` | `directory` | `symlink` | `other`
46
+ - `size` — bytes (optional for directories)
47
+ - `modified` — ISO 8601 timestamp
48
+ - `mimeType` — extension-based MIME type (for `stat` results)
54
49
 
55
- ### Search patterns in code
50
+ ### Search Matches (grep)
56
51
 
57
- ```text
58
- grep(pattern="TODO")
59
- ```
52
+ - `file` — relative path from search base
53
+ - `line` — 1-based line number
54
+ - `content` — matched line text (truncated to 200 chars)
60
55
 
61
56
  ---
62
57
 
63
- ## Common Glob Patterns
58
+ ## Workflows (Recommended)
64
59
 
65
- | Pattern | Matches |
66
- | --------------------- | ----------------------------------------- |
67
- | `**/*.ts` | All TypeScript files |
68
- | `src/**/*.{js,jsx}` | JS/JSX files under `src/` |
69
- | `**/test/**` | All files in any `test/` directory |
70
- | `**/*.test.ts` | Test files by naming convention |
71
- | `!**/node_modules/**` | Exclude `node_modules/` (use in excludes) |
72
-
73
- ---
60
+ ### 1) Project Discovery
74
61
 
75
- ## Best Practices
62
+ ```text
63
+ roots → confirm access
64
+ ls(path=".") → see top-level structure
65
+ read_many(paths=["package.json", "README.md"]) → understand project
66
+ ```
76
67
 
77
- **Do:**
68
+ ### 2) Find & Read Code
78
69
 
79
- - Use `read_many` for 2+ files (parallel, resilient).
80
- - Set `maxResults` limits on searches for large codebases.
81
- - Preview large files with `head=50` before full reads.
70
+ ```text
71
+ find(pattern="**/*.ts", maxResults=500) → locate candidates
72
+ grep(path="src", pattern="registerTool") → find references
73
+ read(path="src/tools.ts", head=100) → read implementation
74
+ ```
82
75
 
83
- **Don't:**
76
+ ### 3) Check Before Reading (Avoid Binary/Huge Files)
84
77
 
85
- - Loop `read` for multiple files.
86
- - Search without `maxResults` on large codebases.
78
+ ```text
79
+ stat(path="docs/logo.png") → confirm type/size
80
+ stat_many(paths=["README.md", "dist/index.js"])→ batch metadata check
81
+ ```
87
82
 
88
83
  ---
89
84
 
90
- ## Tool Details
85
+ ## Tools (What to Use, When)
91
86
 
92
- ### `roots`
87
+ ### roots
93
88
 
94
- List all directories this server can access.
89
+ List workspace roots this server can access.
95
90
 
96
- | Parameter | Default | Description |
97
- | --------- | ------- | ----------- |
98
- | (none) | - | - |
91
+ - Use when: first call in any session, or when access errors occur.
92
+ - Args: none
93
+ - Notes: If empty, no other tools will work until roots are configured.
99
94
 
100
- ---
95
+ ### ls
101
96
 
102
- ### `ls`
97
+ List immediate contents of a directory (non-recursive).
103
98
 
104
- List the immediate contents of a directory (non-recursive). Returns entry name,
105
- relative path, type, size, and modified date. Omit `path` to use the first
106
- allowed root. Symlinks are not followed.
99
+ - Use when: orienting in a directory, seeing what files exist.
100
+ - Args:
101
+ - `path` (optional) directory to list; omit for first root
102
+ - `includeHidden` (optional, default false) — include dotfiles
103
+ - Notes: Returns name, relativePath, type, size, modified. Use `find` for recursive search.
107
104
 
108
- | Parameter | Default | Description |
109
- | --------------- | ------- | ------------------------------------ |
110
- | `path` | - | Directory path |
111
- | `includeHidden` | false | Include hidden files and directories |
105
+ ### find
112
106
 
113
- For recursive or filtered file searches, use `find` instead.
107
+ Find files by glob pattern (e.g., `**/*.ts`).
114
108
 
115
- ---
116
-
117
- ### `find`
109
+ - Use when: locating files by name/extension pattern.
110
+ - Args:
111
+ - `pattern` (required) — glob pattern (max 1000 chars, no absolute paths)
112
+ - `path` (optional) — base directory; omit for first root
113
+ - `maxResults` (optional, default 100, max 10000)
114
+ - `includeIgnored` (optional, default false) — include node_modules, dist, .git, etc.
115
+ - Notes: Default excludes common build/dependency directories. Returns relative paths.
118
116
 
119
- Find files using glob patterns. Automatically excludes common dependency/build
120
- directories (node_modules, dist, .git, etc.). Omit `path` to use the first
121
- allowed root.
117
+ ### grep
122
118
 
123
- | Parameter | Default | Description |
124
- | ---------------- | ------- | ------------------------- |
125
- | `path` | - | Base directory |
126
- | `pattern` | - | Glob: `**/*.ts`, `src/**` |
127
- | `includeIgnored` | false | Include ignored dirs |
128
- | `maxResults` | 100 | Limit (up to 10,000) |
119
+ Search for text within file contents (case-insensitive, literal match).
129
120
 
130
- ---
121
+ - Use when: finding references, function usages, or specific text in code.
122
+ - Args:
123
+ - `pattern` (required) — text to search for (max 1000 chars)
124
+ - `path` (optional) — directory or single file to search; omit for first root
125
+ - `includeHidden` (optional, default false) — include dotfiles
126
+ - Notes: Skips binary files and files > 1MB (configurable). Returns file, line, content.
131
127
 
132
- ### `grep`
128
+ ### read
133
129
 
134
- Grep-like search across file contents. `pattern` is treated as a literal string.
135
- Omit `path` to use the first allowed root.
130
+ Read text contents of a single file.
136
131
 
137
- | Parameter | Default | Description |
138
- | --------------- | ------- | ------------------------------------ |
139
- | `path` | - | Base directory or file path |
140
- | `pattern` | - | Text pattern |
141
- | `includeHidden` | false | Include hidden files and directories |
132
+ - Use when: opening one file, previewing large files.
133
+ - Args:
134
+ - `path` (required) file path
135
+ - `head` (optional, 1-100000) read only first N lines
136
+ - Notes: Rejects binary files. Use `head` for large files to avoid E_TOO_LARGE.
142
137
 
143
- Tip: pass a file path to search only that file.
138
+ ### read_many
144
139
 
145
- ---
140
+ Read multiple text files in one request.
146
141
 
147
- ### `read`
142
+ - Use when: opening 2+ files efficiently.
143
+ - Args:
144
+ - `paths` (required) — array of file paths (max 100)
145
+ - `head` (optional) — limit lines per file
146
+ - Notes: Does not detect binary; use `stat_many` first if unsure. Returns per-file results with content or error.
148
147
 
149
- Read a single text file (UTF-8). Binary files are rejected.
148
+ ### stat
150
149
 
151
- | Parameter | Default | Description |
152
- | --------- | ------- | ------------- |
153
- | `path` | - | File path |
154
- | `head` | - | First N lines |
150
+ Get metadata for a single file or directory.
155
151
 
156
- ---
152
+ - Use when: checking file type, size, or mimeType before reading.
153
+ - Args:
154
+ - `path` (required) — file or directory path
155
+ - Notes: Returns name, path, type, size, modified, permissions, mimeType, symlinkTarget.
157
156
 
158
- ### `read_many`
157
+ ### stat_many
159
158
 
160
- Read multiple files in parallel. Each file reports success or error. Binary
161
- files are not filtered.
159
+ Get metadata for multiple files/directories in one request.
162
160
 
163
- | Parameter | Default | Description |
164
- | --------- | ------- | --------------- |
165
- | `paths` | - | Array (max 100) |
166
- | `head` | - | First N lines |
161
+ - Use when: batch checking 2+ paths.
162
+ - Args:
163
+ - `paths` (required) array of paths (max 100)
164
+ - Notes: Returns per-path results with info or error.
167
165
 
168
166
  ---
169
167
 
170
- ### `stat`
171
-
172
- Get metadata about a file or directory without reading contents.
173
-
174
- | Parameter | Default | Description |
175
- | --------- | ------- | ------------------------- |
176
- | `path` | - | Path to file or directory |
168
+ ## Response Shape
177
169
 
178
- Returns: name, path, type, size, modified, mimeType, symlinkTarget.
170
+ All tools return structured JSON with:
179
171
 
180
- ---
172
+ ```json
173
+ {
174
+ "ok": true
175
+ // ... tool-specific data
176
+ }
177
+ ```
181
178
 
182
- ### `stat_many`
179
+ On error:
180
+
181
+ ```json
182
+ {
183
+ "ok": false,
184
+ "error": {
185
+ "code": "E_NOT_FOUND",
186
+ "message": "File not found: src/missing.ts",
187
+ "path": "src/missing.ts",
188
+ "suggestion": "Check the path exists within allowed roots"
189
+ }
190
+ }
191
+ ```
183
192
 
184
- Get metadata for multiple files/directories in parallel.
193
+ ### Common Error Codes
185
194
 
186
- | Parameter | Default | Description |
187
- | --------- | ------- | ------------------------ |
188
- | `paths` | - | Array of paths (max 100) |
195
+ | Code | Meaning | Resolution |
196
+ | --------------------- | ----------------------- | --------------------------------- |
197
+ | `E_ACCESS_DENIED` | Path outside roots | Check `roots`, use valid path |
198
+ | `E_NOT_FOUND` | Path does not exist | Verify path with `ls` or `find` |
199
+ | `E_NOT_FILE` | Expected file, got dir | Use `ls` instead |
200
+ | `E_NOT_DIRECTORY` | Expected dir, got file | Use `read` instead |
201
+ | `E_TOO_LARGE` | File exceeds size limit | Use `head` parameter |
202
+ | `E_TIMEOUT` | Operation took too long | Narrow scope, reduce `maxResults` |
203
+ | `E_INVALID_PATTERN` | Malformed glob pattern | Simplify pattern |
204
+ | `E_PERMISSION_DENIED` | OS-level access denied | Check file permissions |
189
205
 
190
206
  ---
191
207
 
192
- ## Error Codes
208
+ ## Limits & Defaults
193
209
 
194
- | Code | Cause | Solution |
195
- | --------------------- | ---------------------------- | ---------------------- |
196
- | `E_ACCESS_DENIED` | Path outside allowed dirs | Check `roots` |
197
- | `E_NOT_FOUND` | Path does not exist | Verify path with `ls` |
198
- | `E_NOT_FILE` | Expected file, got directory | Use `ls` instead |
199
- | `E_NOT_DIRECTORY` | Expected directory, got file | Use `read` instead |
200
- | `E_TOO_LARGE` | File exceeds size limit | Use `head` for partial |
201
- | `E_TIMEOUT` | Operation took too long | Use `maxResults` |
202
- | `E_INVALID_PATTERN` | Malformed glob/regex | Check pattern syntax |
203
- | `E_PERMISSION_DENIED` | OS-level access denied | Check file permissions |
210
+ | Limit | Default | Configurable Via |
211
+ | ----------------------- | ---------- | ------------------------- |
212
+ | Max file size (read) | 10 MB | `MAX_FILE_SIZE` env |
213
+ | Max search file size | 1 MB | `MAX_SEARCH_SIZE` env |
214
+ | Search timeout | 30 seconds | `DEFAULT_SEARCH_TIMEOUT` |
215
+ | Max results (find) | 100 | `maxResults` arg (≤10000) |
216
+ | Max paths (read_many) | 100 | |
217
+ | Line content truncation | 200 chars | — |
204
218
 
205
219
  ---
206
220
 
207
- ## Security
221
+ ## Security Notes
208
222
 
209
- - Read-only: no writes, deletes, or modifications.
210
- - Path validation: symlinks cannot escape allowed directories.
211
- - Binary detection: prevents accidental binary reads.
212
- - Input sanitization: patterns validated for ReDoS protection.
223
+ - **Read-only:** no writes, deletes, or modifications.
224
+ - **Path validation:** symlinks cannot escape allowed roots.
225
+ - **Binary detection:** `read` rejects binary files; `grep` skips them.
226
+ - **Input sanitization:** glob patterns validated to prevent ReDoS.
@@ -51,12 +51,12 @@ export class McpError extends Error {
51
51
  }
52
52
  }
53
53
  const ERROR_SUGGESTIONS = {
54
- [ErrorCode.E_ACCESS_DENIED]: 'Check that the path is within an allowed directory. Use list_allowed_directories to see available paths.',
55
- [ErrorCode.E_NOT_FOUND]: 'Verify the path exists. Use list_directory to explore available files and directories.',
56
- [ErrorCode.E_NOT_FILE]: 'The path points to a directory or other non-file. Use list_directory to explore its contents.',
57
- [ErrorCode.E_NOT_DIRECTORY]: 'The path points to a file, not a directory. Use read_file to read file contents.',
58
- [ErrorCode.E_TOO_LARGE]: 'The file exceeds the size limit. Use head or tail parameters to read partial content, or increase maxSize.',
59
- [ErrorCode.E_TIMEOUT]: 'The operation timed out. Try with a smaller scope, fewer files, or increase timeoutMs.',
54
+ [ErrorCode.E_ACCESS_DENIED]: 'Check that the path is within an allowed directory. Use roots to see available workspace roots.',
55
+ [ErrorCode.E_NOT_FOUND]: 'Verify the path exists. Use ls to explore available files and directories.',
56
+ [ErrorCode.E_NOT_FILE]: 'The path points to a directory or other non-file. Use ls to explore its contents.',
57
+ [ErrorCode.E_NOT_DIRECTORY]: 'The path points to a file, not a directory. Use read to read file contents.',
58
+ [ErrorCode.E_TOO_LARGE]: 'The file exceeds the size limit. Use head to read a partial preview, or narrow the scope of what you read.',
59
+ [ErrorCode.E_TIMEOUT]: 'The operation timed out. Try a smaller scope (narrower path), fewer results (maxResults), or search fewer files.',
60
60
  [ErrorCode.E_INVALID_PATTERN]: 'The glob or regex pattern is invalid. Check syntax and escape special characters.',
61
61
  [ErrorCode.E_INVALID_INPUT]: 'One or more input parameters are invalid. Check the tool documentation for correct usage.',
62
62
  [ErrorCode.E_PERMISSION_DENIED]: 'Permission denied by the operating system. Check file permissions.',
@@ -1 +1 @@
1
- {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/lib/errors.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/lib/errors.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@j0hanz/fs-context-mcp",
3
- "version": "2.0.3",
3
+ "version": "2.0.5",
4
4
  "mcpName": "io.github.j0hanz/fs-context",
5
5
  "description": "🔍 Read-only MCP server for secure filesystem exploration, searching, and analysis",
6
6
  "type": "module",