@mario.andreschak/mcp-filesystem 3.45.0 → 3.45.1
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/index.js +25 -2
- package/dist/index.js.map +1 -1
- package/dist/resources.js +1 -1
- package/dist/shared.d.ts +0 -7
- package/dist/shared.js +0 -40
- package/dist/shared.js.map +1 -1
- package/dist/tools.d.ts +19 -1
- package/dist/tools.js +480 -141
- package/dist/tools.js.map +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -3,7 +3,7 @@ import { Server } from '@modelcontextprotocol/sdk/server/index.js';
|
|
|
3
3
|
import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
|
|
4
4
|
import { CallToolRequestSchema, ListResourceTemplatesRequestSchema, ListResourcesRequestSchema, ListToolsRequestSchema, ReadResourceRequestSchema, } from '@modelcontextprotocol/sdk/types.js';
|
|
5
5
|
import { configureRootsProvider } from './shared.js';
|
|
6
|
-
import { filesystemCallTool, filesystemToolDefinitions } from './tools.js';
|
|
6
|
+
import { filesystemCallTool, filesystemToolDefinitions, shutdownFilesystemSearches, } from './tools.js';
|
|
7
7
|
import { filesystemListResources, filesystemReadResource, isFilesystemAppUri, isTouchedFileUri, readTouchedFileResource, } from './resources.js';
|
|
8
8
|
export * from './tools.js';
|
|
9
9
|
export * from './resources.js';
|
|
@@ -23,7 +23,25 @@ function callerNodeIdOf(meta) {
|
|
|
23
23
|
server.setRequestHandler(ListToolsRequestSchema, async () => ({
|
|
24
24
|
tools: filesystemToolDefinitions(),
|
|
25
25
|
}));
|
|
26
|
-
server.setRequestHandler(CallToolRequestSchema, async (request) =>
|
|
26
|
+
server.setRequestHandler(CallToolRequestSchema, async (request, extra) => {
|
|
27
|
+
const progressToken = request.params._meta?.progressToken;
|
|
28
|
+
const result = await filesystemCallTool(request.params.name, request.params.arguments ?? {}, callerNodeIdOf(request.params._meta), {
|
|
29
|
+
signal: extra.signal,
|
|
30
|
+
...(progressToken !== undefined
|
|
31
|
+
? {
|
|
32
|
+
onProgress: async (progress) => {
|
|
33
|
+
await server.notification({
|
|
34
|
+
method: 'notifications/progress',
|
|
35
|
+
params: { progressToken, ...progress },
|
|
36
|
+
}, { relatedRequestId: extra.requestId });
|
|
37
|
+
},
|
|
38
|
+
}
|
|
39
|
+
: {}),
|
|
40
|
+
});
|
|
41
|
+
if (progressToken !== undefined)
|
|
42
|
+
await server.ping();
|
|
43
|
+
return result;
|
|
44
|
+
});
|
|
27
45
|
server.setRequestHandler(ListResourcesRequestSchema, async () => filesystemListResources());
|
|
28
46
|
server.setRequestHandler(ListResourceTemplatesRequestSchema, async () => ({ resourceTemplates: [] }));
|
|
29
47
|
server.setRequestHandler(ReadResourceRequestSchema, async (request) => {
|
|
@@ -44,12 +62,17 @@ async function shutdown() {
|
|
|
44
62
|
return;
|
|
45
63
|
closing = true;
|
|
46
64
|
configureRootsProvider(undefined);
|
|
65
|
+
shutdownFilesystemSearches();
|
|
47
66
|
await server.close().catch(() => undefined);
|
|
48
67
|
}
|
|
49
68
|
process.once('SIGINT', () => void shutdown());
|
|
50
69
|
process.once('SIGTERM', () => void shutdown());
|
|
51
70
|
process.once('SIGHUP', () => void shutdown());
|
|
71
|
+
process.stdin.once('end', () => void shutdown());
|
|
72
|
+
process.stdin.once('close', () => void shutdown());
|
|
73
|
+
server.onclose = () => void shutdown();
|
|
52
74
|
server.connect(transport).catch((error) => {
|
|
75
|
+
shutdownFilesystemSearches();
|
|
53
76
|
process.stderr.write(`@mario.andreschak/mcp-filesystem failed: ${error instanceof Error ? error.stack ?? error.message : String(error)}\n`);
|
|
54
77
|
process.exitCode = 1;
|
|
55
78
|
});
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AACnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EACL,qBAAqB,EACrB,kCAAkC,EAClC,0BAA0B,EAC1B,sBAAsB,EACtB,yBAAyB,GAC1B,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/resources.js
CHANGED
|
@@ -418,7 +418,7 @@ const FILESYSTEM_APP_HTML = `<!doctype html>
|
|
|
418
418
|
// Handshake: initialize -> initialized -> initial navigation.
|
|
419
419
|
rpc("ui/initialize", {
|
|
420
420
|
appInfo: { name: "filesystem-browser", version: "1.0.0" },
|
|
421
|
-
appCapabilities: { availableDisplayModes: ["inline", "fullscreen", "pip"] },
|
|
421
|
+
appCapabilities: { availableDisplayModes: ["inline", "fullscreen", "pip"] },
|
|
422
422
|
protocolVersion: "${MCP_APPS_PROTOCOL_VERSION}"
|
|
423
423
|
}).then(function (result) {
|
|
424
424
|
applyTheme(result && result.hostContext);
|
package/dist/shared.d.ts
CHANGED
|
@@ -7,7 +7,6 @@ export type DiagnosticLogger = {
|
|
|
7
7
|
};
|
|
8
8
|
export declare function createLogger(scope: string): DiagnosticLogger;
|
|
9
9
|
export declare function getDataDir(): string;
|
|
10
|
-
export declare function getHomeDir(): string;
|
|
11
10
|
export declare function isInside(root: string, candidate: string): boolean;
|
|
12
11
|
export declare function envRoots(envVarNames: string | string[]): string[] | null;
|
|
13
12
|
export type RootsProvider = () => Promise<Array<{
|
|
@@ -15,10 +14,4 @@ export type RootsProvider = () => Promise<Array<{
|
|
|
15
14
|
}>>;
|
|
16
15
|
export declare function configureRootsProvider(provider: RootsProvider | undefined): void;
|
|
17
16
|
export declare function loadEffectiveRoots(_serverName: string, envVarNames: string | string[], _callerNodeId?: string): Promise<string[]>;
|
|
18
|
-
export declare const ALLOW_PROTECTED_PATHS_ENV = "FLUJO_ALLOW_PROTECTED_PATHS";
|
|
19
|
-
export declare function isProtectedPathsEnabled(): Promise<boolean>;
|
|
20
|
-
export declare function isProtected(candidate: string): {
|
|
21
|
-
denied: boolean;
|
|
22
|
-
matchedRoot?: string;
|
|
23
|
-
};
|
|
24
17
|
export declare function killProcessTree(child: ChildProcess, graceMs?: number): () => void;
|
package/dist/shared.js
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import path from 'node:path';
|
|
2
|
-
import os from 'node:os';
|
|
3
2
|
import { spawn } from 'node:child_process';
|
|
4
3
|
import { fileURLToPath } from 'node:url';
|
|
5
4
|
function diagnostic(level, scope, message, detail) {
|
|
@@ -30,9 +29,6 @@ export function createLogger(scope) {
|
|
|
30
29
|
export function getDataDir() {
|
|
31
30
|
return path.resolve(process.env.FLUJO_DATA_DIR?.trim() || process.cwd());
|
|
32
31
|
}
|
|
33
|
-
export function getHomeDir() {
|
|
34
|
-
return path.resolve(process.env.FLUJO_HOME_DIR?.trim() || os.homedir());
|
|
35
|
-
}
|
|
36
32
|
export function isInside(root, candidate) {
|
|
37
33
|
const rel = path.relative(path.resolve(root), path.resolve(candidate));
|
|
38
34
|
return rel === '' || (!rel.startsWith('..') && !path.isAbsolute(rel));
|
|
@@ -91,42 +87,6 @@ export async function loadEffectiveRoots(_serverName, envVarNames, _callerNodeId
|
|
|
91
87
|
const confined = configured.filter((candidate) => ceiling.some((root) => isInside(root, candidate)));
|
|
92
88
|
return confined.length > 0 ? confined : ceiling;
|
|
93
89
|
}
|
|
94
|
-
function truthy(value) {
|
|
95
|
-
return typeof value === 'string' && /^(1|true|yes|on)$/i.test(value.trim());
|
|
96
|
-
}
|
|
97
|
-
export const ALLOW_PROTECTED_PATHS_ENV = 'FLUJO_ALLOW_PROTECTED_PATHS';
|
|
98
|
-
export async function isProtectedPathsEnabled() {
|
|
99
|
-
if (truthy(process.env[ALLOW_PROTECTED_PATHS_ENV]))
|
|
100
|
-
return false;
|
|
101
|
-
return truthy(process.env.FLUJO_PROTECTED_PATHS_ENABLED);
|
|
102
|
-
}
|
|
103
|
-
function protectedPaths() {
|
|
104
|
-
if (truthy(process.env[ALLOW_PROTECTED_PATHS_ENV]))
|
|
105
|
-
return [];
|
|
106
|
-
const home = getHomeDir();
|
|
107
|
-
const underHome = (...segments) => path.resolve(home, ...segments);
|
|
108
|
-
if (process.platform === 'win32') {
|
|
109
|
-
return ['AppData', 'Downloads', 'Desktop', 'Documents', 'Pictures', 'Music', 'Videos', 'OneDrive'].map((item) => underHome(item));
|
|
110
|
-
}
|
|
111
|
-
if (process.platform === 'darwin') {
|
|
112
|
-
return [
|
|
113
|
-
'Downloads', 'Desktop', 'Documents', 'Pictures', 'Music', 'Movies',
|
|
114
|
-
'Library/Mail', 'Library/Messages', 'Library/Safari', 'Library/Cookies',
|
|
115
|
-
'Library/Calendars', 'Library/Application Support/AddressBook',
|
|
116
|
-
'Library/Application Support/com.apple.TCC', 'Library/PersonalizationPortrait',
|
|
117
|
-
'Library/Metadata/CoreSpotlight', 'Library/Suggestions',
|
|
118
|
-
].map((item) => underHome(item)).concat(['/.Spotlight-V100', '/.fseventsd', '/.DocumentRevisions-V100'].map((item) => path.resolve(item)));
|
|
119
|
-
}
|
|
120
|
-
return ['Documents', 'Downloads', 'Desktop', '.ssh', '.gnupg', '.aws', '.config'].map((item) => underHome(item));
|
|
121
|
-
}
|
|
122
|
-
export function isProtected(candidate) {
|
|
123
|
-
const resolved = path.resolve(candidate);
|
|
124
|
-
const exempt = [getDataDir(), os.tmpdir()].map((item) => path.resolve(item));
|
|
125
|
-
if (exempt.some((root) => isInside(root, resolved)))
|
|
126
|
-
return { denied: false };
|
|
127
|
-
const matchedRoot = protectedPaths().find((root) => isInside(root, resolved));
|
|
128
|
-
return matchedRoot ? { denied: true, matchedRoot } : { denied: false };
|
|
129
|
-
}
|
|
130
90
|
export function killProcessTree(child, graceMs = 2000) {
|
|
131
91
|
const pid = child.pid;
|
|
132
92
|
if (pid === undefined)
|
package/dist/shared.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/tools.d.ts
CHANGED
|
@@ -1,3 +1,21 @@
|
|
|
1
1
|
import type { Tool, CallToolResult } from '@modelcontextprotocol/sdk/types.js';
|
|
2
|
+
export interface FilesystemToolProgress {
|
|
3
|
+
progress: number;
|
|
4
|
+
message?: string;
|
|
5
|
+
}
|
|
6
|
+
export interface FilesystemExecutionContext {
|
|
7
|
+
signal?: AbortSignal;
|
|
8
|
+
onProgress?: (progress: FilesystemToolProgress) => void | Promise<void>;
|
|
9
|
+
}
|
|
10
|
+
/** Test seam: force a ripgrep executable, force the Node fallback with null, or reset with undefined. */
|
|
11
|
+
export declare function _setRipgrepExecutableForTests(value: string | null | undefined): void;
|
|
12
|
+
/** Kill external search accelerators before the filesystem MCP process exits. */
|
|
13
|
+
export declare function shutdownFilesystemSearches(): void;
|
|
14
|
+
/**
|
|
15
|
+
* Translate the slash-drive form some models emit into a native Windows path.
|
|
16
|
+
* Keep the platform injectable so the narrow conversion can be verified on any
|
|
17
|
+
* host; all canonicalization and confinement still happen in resolvePath().
|
|
18
|
+
*/
|
|
19
|
+
export declare function _normalizeSlashDrivePathForTests(raw: string, platform?: NodeJS.Platform): string;
|
|
2
20
|
export declare function filesystemToolDefinitions(): Tool[];
|
|
3
|
-
export declare function filesystemCallTool(toolName: string, args: Record<string, unknown>, callerNodeId?: string): Promise<CallToolResult>;
|
|
21
|
+
export declare function filesystemCallTool(toolName: string, args: Record<string, unknown>, callerNodeId?: string, contextOrSignal?: FilesystemExecutionContext | AbortSignal): Promise<CallToolResult>;
|