modelcontextprotocol/servers
Minor capabilities, nothing alarming.
View source ↗AI review
The repository contains test code that accesses environment variables and performs filesystem operations, but these are isolated to test suites and do not represent runtime risks. The `get-env.ts` tool exposes all environment variables, which could be a concern if deployed in sensitive contexts, but it is part of the 'everything' reference server intended for demonstration. No hidden instructions or prompt injection vectors were found.
- medium Environment variable exposure in 'everything' server — src/everything/tools/get-env.ts:34 returns all environment variables as JSON. This is a reference/demo server, but if used in production, it could leak secrets. Consider documenting this risk or restricting to non-sensitive environments.
- low Test code accesses environment variables and filesystem — Multiple test files (e.g., src/everything/__tests__/tools.test.ts, src/filesystem/__tests__/lib.test.ts) set or read environment variables and perform filesystem operations. These are standard test practices and not exploitable at runtime.
- low Sensitive file path references in tests — src/filesystem/__tests__/lib.test.ts and path-validation.test.ts reference '/etc/passwd' in test assertions. This is only for validating path traversal protections and poses no real risk.
Model: deepseek-chat
Static findings
Outbound network · Makes outbound network requests
CLAUDE.md:17
fetch/ Py mcp-server-fetch (web content fetching)
src/everything/tools/gzip-file-as-resource.ts:195
const response = await fetch(url, { signal: controller.signal });
Shell / command execution · Executes shell / system commands
scripts/release.py:42
subprocess.run(
src/filesystem/__tests__/startup-validation.test.ts:2
import { spawn } from 'child_process';
src/filesystem/__tests__/structured-content.test.ts:7
import { spawn } from 'child_process';
Environment variables (config / keys) · Reads environment variables (config / API keys)
src/everything/__tests__/tools.test.ts:164
process.env.TEST_VAR_EVERYTHING = 'test_value';
src/everything/tools/get-env.ts:34
text: JSON.stringify(process.env, null, 2),
src/everything/tools/gzip-file-as-resource.ts:12
process.env.GZIP_MAX_FETCH_SIZE ?? String(10 * 1024 * 1024)
src/everything/transports/sse.ts:74
const PORT = process.env.PORT || 3001;
src/everything/transports/streamableHttp.ts:201
const PORT = process.env.PORT || 3001;
src/memory/__tests__/file-path.test.ts:16
originalEnv = process.env.MEMORY_FILE_PATH;
src/memory/index.ts:16
if (process.env.MEMORY_FILE_PATH) {
src/sequentialthinking/__tests__/lib.test.ts:21
process.env.DISABLE_THOUGHT_LOGGING = 'true';
src/sequentialthinking/lib.ts:21
this.disableThoughtLogging = (process.env.DISABLE_THOUGHT_LOGGING || "").toLowerCase() === "true";
Filesystem writes · Reads or writes the filesystem
src/filesystem/__tests__/directory-tree.test.ts:73
await fs.rm(testDir, { recursive: true, force: true });
src/filesystem/__tests__/path-validation.test.ts:29
await fs.rm(testDir, { recursive: true, force: true });
src/filesystem/__tests__/startup-validation.test.ts:53
await fs.rm(testDir, { recursive: true, force: true });
src/filesystem/__tests__/structured-content.test.ts:50
await fs.rm(testDir, { recursive: true, force: true });
src/filesystem/lib.ts:177
await fs.unlink(tempPath);
src/git/tests/test_server.py:33
shutil.rmtree(repo_path)
src/memory/__tests__/file-path.test.ts:31
await fs.unlink(oldMemoryPath);
src/memory/__tests__/knowledge-graph.test.ts:23
await fs.unlink(testFilePath);
Sensitive credential files · Reads sensitive credential files
src/filesystem/__tests__/lib.test.ts:170
const testPath = process.platform === 'win32' ? 'C:\\Windows\\System32\\file.txt' : '/etc/passwd';
src/filesystem/__tests__/path-validation.test.ts:75
expect(isPathWithinAllowedDirectories('/etc/passwd', allowed)).toBe(false);
src/git/src/mcp_server_git/server.py:137
# working tree to prevent path traversal (e.g. '../../etc/passwd' or an
Scanning every extension your team installs?
Pro & Team add monitoring, private scans, and a CI gate for unsafe extensions.
MCPVet is a heuristic aid, not a security guarantee. A clean grade does not prove an extension is safe; always review code and instructions you don't trust.