eslint-plugin-mcp-security

security MCP Server

ESLint security rules for MCP servers — catches SANDWORM_MODE credential harvesting, path traversal, command injection, and CVE patterns at dev time

VerifiedInstall Ready
securitysecurity
6 views2 stars0 forksv0.2.5MIT

Why This Matters

Discovered via github-topic:mcp and last synced 3mo ago.

VerifiedInstall Ready
Source
github-topic:mcp
Stars
2
Last synced
3mo ago
Install
Instructions detected

Install

1. Install the package

npm install eslint-plugin-mcp-security
19
Tools
0
Resources
0
Prompts
Standard I/O
Transport

Available Tools (19)

Tool

Catches

no-eval-in-handler

`eval()`, `new Function()`, `vm` module in tool handlers

CVE

CVSS

no-duplicate-tool-names

Multiple `.tool()` calls with the same name — silent overwrites

Covered

`no-duplicate-tool-names`, `no-credential-paths-in-descriptions`, `no-dynamic-tool-registration`

no-unvalidated-tool-input

Handler accessing parameters without an input schema

require-tool-input-schema

`.tool()` calls missing a Zod schema argument

no-mcpserver-reuse

McpServer instance shared across requests (CVE-2026-25536)

Status

Rules

Rule

What it catches

no-sensitive-data-in-tool-result

`process.env` or credential file reads returned in tool results

no-shell-injection-in-tools

`exec`, `execSync`, `spawn` with user input in tool handlers

no-unscoped-tool-permissions

`process.exit()`, recursive delete in handlers

no-credential-paths-in-descriptions

Tool descriptions referencing `~/.ssh`, `~/.aws`, `.env` — SANDWORM_MODE pattern

no-dynamic-tool-registration

Non-literal tool names or descriptions — runtime injection risk

Partial

`require-auth-check-in-handler`

no-path-traversal-in-resources

Filesystem operations without path boundary validation

require-auth-check-in-handler

Handlers with no auth/verify/session check

no-hardcoded-secrets-in-server

API keys, tokens, connection strings in source code