{"passport":{"unfragile":{"@version":"1.0","version":"2026-05","artifact":{"id":"npm_npm-eslintmcp","slug":"npm-eslintmcp","name":"@eslint/mcp","type":"mcp","url":"https://www.npmjs.com/package/@eslint/mcp","page_url":"https://unfragile.ai/npm-eslintmcp","categories":["mcp-servers"],"tags":["eslint","mcp"],"pricing":{"model":"open_source","free":true,"starting_price":null},"status":"active","verified":false},"capabilities":[{"id":"npm_npm-eslintmcp__cap_0","uri":"capability://tool.use.integration.mcp.native.eslint.rule.execution.and.linting","name":"mcp-native eslint rule execution and linting","description":"Exposes ESLint's core linting engine as an MCP resource/tool, allowing Claude and other MCP clients to invoke ESLint rules against code without spawning separate processes. Implements ESLint's plugin architecture through MCP's tool-calling interface, enabling dynamic rule configuration and multi-file linting workflows within a single MCP session.","intents":["I want Claude to lint my code in real-time while discussing refactoring strategies","I need to run ESLint checks as part of an AI-driven code review workflow","I want to integrate ESLint validation into an agentic coding assistant without subprocess overhead"],"best_for":["AI-assisted code quality workflows using Claude or other MCP-compatible LLMs","Teams building agentic coding assistants that need deterministic linting feedback","Developers integrating ESLint into MCP-based development tools"],"limitations":["Requires ESLint configuration files (.eslintrc.js, .eslintrc.json, etc.) to be present in the project root or specified path","No built-in caching of lint results — each invocation re-parses and re-analyzes the target file","Limited to ESLint's rule set; custom rules must be installed as npm packages and discoverable by the MCP server","Performance degrades on very large codebases (1000+ files) without explicit file filtering"],"requires":["Node.js 16.0.0 or higher","ESLint 8.0.0 or higher installed in the project","MCP client implementation (e.g., Claude Desktop, custom MCP host)",".eslintrc configuration file in the project or parent directory"],"input_types":["code (JavaScript, TypeScript, JSX, TSX as strings)","file paths (relative or absolute)","ESLint configuration objects (JSON-serializable)"],"output_types":["structured linting results (violations, warnings, errors with line/column numbers)","rule metadata (rule names, descriptions, fix suggestions)","formatted diagnostic messages"],"categories":["tool-use-integration","code-generation-editing"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"npm_npm-eslintmcp__cap_1","uri":"capability://tool.use.integration.dynamic.eslint.configuration.discovery.and.application","name":"dynamic eslint configuration discovery and application","description":"Automatically discovers and loads ESLint configuration files (.eslintrc.js, .eslintrc.json, .eslintrc.yml, eslintrc.config.js) from the project hierarchy, parses them, and applies rule sets and parser options to linting operations. Supports ESLint's cascading configuration model where nested .eslintrc files override parent configs, and handles environment-specific overrides (browser, node, es6, etc.).","intents":["I want the MCP server to respect my project's existing ESLint rules without manual configuration","I need to lint code using different rule sets for different directories (e.g., stricter rules for src/ than tests/)","I want to use custom ESLint plugins and parsers that are already installed in my project"],"best_for":["Teams with existing ESLint configurations who want to reuse them in AI-assisted workflows","Monorepos with per-package ESLint configs","Projects using custom ESLint plugins (e.g., eslint-plugin-react, eslint-plugin-vue)"],"limitations":["Does not support ESLint v9+ flat config format (eslint.config.js) — only legacy .eslintrc formats","Custom parser plugins must be installed as npm dependencies; cannot load parsers from arbitrary URLs","Configuration discovery stops at the first .eslintrc found; does not merge configs from multiple levels without explicit extends","Environment variables in config files are not interpolated — requires static config values"],"requires":["ESLint 8.x installed with configuration file present","npm or yarn package manager (for resolving plugin dependencies)","Read access to .eslintrc files and node_modules/"],"input_types":["file system paths to scan for .eslintrc files","ESLint configuration objects (for programmatic overrides)"],"output_types":["resolved ESLint configuration object with rules, parser, and environment settings","list of discovered config files and their merge order"],"categories":["tool-use-integration","automation-workflow"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"npm_npm-eslintmcp__cap_2","uri":"capability://automation.workflow.multi.file.batch.linting.with.parallel.execution","name":"multi-file batch linting with parallel execution","description":"Accepts a list of file paths or glob patterns and lints them in parallel using Node.js worker threads or async I/O, returning aggregated results with per-file diagnostics. Implements ESLint's caching layer to avoid re-linting unchanged files, and supports filtering results by severity (error, warning) or rule name.","intents":["I want to lint an entire directory and get a summary of all violations","I need to check only files that changed in a git commit before pushing","I want to filter linting results to show only errors, not warnings, for a quick review"],"best_for":["CI/CD pipelines that need fast, parallel linting feedback","Large codebases (100+ files) where sequential linting is too slow","Developers who want to lint only modified files to reduce feedback latency"],"limitations":["Caching is in-memory only — does not persist across MCP server restarts","Glob pattern matching is limited to the file system; does not support remote file sources","Parallel execution adds overhead for small batches (< 5 files); sequential linting may be faster","No built-in deduplication of results if the same file is linted multiple times in a batch"],"requires":["Node.js 16+ with worker_threads support","File system access to all target files","ESLint 8.0.0+"],"input_types":["array of file paths (strings)","glob patterns (e.g., 'src/**/*.js')","filter options (severity, rule names)"],"output_types":["array of linting results per file","aggregated summary (total errors, warnings, files processed)","per-rule violation counts"],"categories":["automation-workflow","data-processing-analysis"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"npm_npm-eslintmcp__cap_3","uri":"capability://code.generation.editing.automated.fix.application.and.suggestion.generation","name":"automated fix application and suggestion generation","description":"Invokes ESLint's built-in --fix mechanism to automatically correct violations that have fix implementations (e.g., semicolon insertion, whitespace normalization). For violations without automatic fixes, generates structured suggestions with before/after code snippets and rule documentation links, enabling Claude to propose manual fixes or ask for user confirmation.","intents":["I want Claude to automatically fix all auto-fixable linting errors in my code","I need suggestions for how to fix violations that ESLint can't auto-correct","I want to see what changes ESLint would make before applying them"],"best_for":["Developers using Claude as a code assistant who want one-click fixes","Teams automating code formatting as part of CI/CD","Agentic workflows that need to propose and apply code changes iteratively"],"limitations":["Auto-fix is not idempotent — applying fixes multiple times may produce different results if rules conflict","Some rules have overlapping fix implementations; applying fixes from one rule may prevent fixes from another","No rollback mechanism — if a fix introduces a syntax error, the user must manually revert","Fix suggestions for non-auto-fixable rules are generated from rule metadata and may not cover all edge cases"],"requires":["Write access to the target files (for auto-fix)","ESLint 8.0.0+ with rule definitions that include fix implementations","Backup or version control (recommended before applying auto-fixes)"],"input_types":["code string or file path","list of rule names to apply fixes for (optional filter)","boolean flag to enable/disable auto-fix"],"output_types":["fixed code string","list of applied fixes with line/column numbers","list of suggestions for non-auto-fixable violations","diff showing before/after changes"],"categories":["code-generation-editing","automation-workflow"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"npm_npm-eslintmcp__cap_4","uri":"capability://memory.knowledge.rule.metadata.and.documentation.retrieval","name":"rule metadata and documentation retrieval","description":"Exposes metadata for all loaded ESLint rules (name, description, category, fixable, deprecated status) and provides links to official documentation. Allows filtering rules by category (best-practices, errors, style, etc.) and searching by name or keyword, enabling Claude to explain rules to users and recommend relevant rules for specific code patterns.","intents":["I want Claude to explain why a specific ESLint rule is flagging my code","I need to find ESLint rules that enforce a particular coding standard (e.g., no console.log in production)","I want to see which rules are deprecated and should be replaced"],"best_for":["Educational contexts where Claude explains linting rules to developers","Teams configuring ESLint for the first time and need rule recommendations","Developers migrating between ESLint versions and need to identify deprecated rules"],"limitations":["Metadata is static and loaded at server startup — changes to rule definitions require server restart","Custom rules installed as npm packages may not have standardized metadata; only built-in ESLint rules are guaranteed to have complete metadata","Documentation links point to external URLs; no offline documentation is bundled","Rule categories are defined by ESLint core; custom categorization is not supported"],"requires":["ESLint 8.0.0+ with rule definitions","Network access (to fetch documentation links, optional)"],"input_types":["rule name (string)","search keyword (string)","category filter (string)"],"output_types":["rule metadata object (name, description, fixable, deprecated, docs URL)","list of rules matching filter criteria","formatted rule documentation excerpt"],"categories":["memory-knowledge","search-retrieval"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"npm_npm-eslintmcp__cap_5","uri":"capability://tool.use.integration.custom.rule.plugin.loading.and.execution","name":"custom rule plugin loading and execution","description":"Dynamically loads ESLint plugins (e.g., eslint-plugin-react, eslint-plugin-vue) from node_modules and registers their rules with the linting engine. Supports plugin configuration options and namespace-prefixed rules (e.g., react/jsx-uses-react). Validates plugin compatibility with the current ESLint version before loading.","intents":["I want to lint React/Vue/Angular code using framework-specific ESLint plugins","I need to enforce custom linting rules defined in my organization's private ESLint plugin","I want to use multiple ESLint plugins together without manual configuration"],"best_for":["Projects using framework-specific ESLint plugins (React, Vue, Angular, etc.)","Organizations with custom ESLint plugins for internal code standards","Polyglot codebases that need different plugins for different file types"],"limitations":["Plugins must be installed as npm dependencies in node_modules; cannot load from arbitrary file paths or URLs","Plugin loading is synchronous and blocks the MCP server during initialization — large plugins may cause startup delays","No sandboxing — malicious plugins can execute arbitrary code in the MCP server process","Plugin version conflicts are not automatically resolved; users must manage plugin versions manually"],"requires":["ESLint 8.0.0+","Plugin packages installed in node_modules (npm install eslint-plugin-react, etc.)","Plugin configuration in .eslintrc (plugins array)"],"input_types":["plugin name (string, e.g., 'react')","plugin configuration object (optional)"],"output_types":["list of loaded rules from the plugin","plugin metadata (version, author, description)","validation errors if plugin is incompatible"],"categories":["tool-use-integration","automation-workflow"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"npm_npm-eslintmcp__cap_6","uri":"capability://tool.use.integration.parser.selection.and.language.support","name":"parser selection and language support","description":"Supports multiple ESLint parsers (default Espree, @babel/eslint-parser, @typescript-eslint/parser, vue-eslint-parser, etc.) and automatically selects the appropriate parser based on file extension and ESLint configuration. Handles parser options (ecmaVersion, sourceType, parserOptions) and validates parser compatibility with the target file type.","intents":["I want to lint TypeScript files using the TypeScript parser","I need to lint Vue.js single-file components with the Vue parser","I want to lint modern JavaScript with JSX and async/await using Babel parser"],"best_for":["Polyglot projects with TypeScript, JSX, Vue, and other non-standard JavaScript","Teams using modern JavaScript features (decorators, optional chaining, nullish coalescing)","Projects that need language-specific linting rules"],"limitations":["Parsers must be installed as npm dependencies; cannot use parsers from CDNs or remote sources","Parser selection is based on file extension and ESLint config; no automatic language detection","Some parsers have conflicting dependencies (e.g., @babel/eslint-parser vs @typescript-eslint/parser); users must manage versions","Parser errors (e.g., syntax errors in TypeScript) are reported as linting failures, not parsing failures"],"requires":["ESLint 8.0.0+","Parser package installed (npm install @typescript-eslint/parser, etc.)","Parser configuration in .eslintrc (parser field)"],"input_types":["file path or extension (to infer parser)","code string with language hint (optional)"],"output_types":["selected parser name and version","parser options (ecmaVersion, sourceType, etc.)","parsing errors or AST metadata"],"categories":["tool-use-integration","code-generation-editing"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"npm_npm-eslintmcp__cap_7","uri":"capability://data.processing.analysis.severity.filtering.and.result.aggregation","name":"severity filtering and result aggregation","description":"Filters linting results by severity level (error, warning, off) and aggregates statistics across multiple files. Supports custom severity mappings (e.g., treat warnings as errors) and generates summary reports with violation counts, most-violated rules, and files with the most issues. Enables Claude to provide targeted feedback based on severity thresholds.","intents":["I want to see only critical errors, not warnings, to focus on the most important issues","I need a summary of which rules are most frequently violated in my codebase","I want to treat warnings as errors for stricter code quality enforcement"],"best_for":["CI/CD pipelines that need to fail on errors but warn on style issues","Teams with tiered code quality standards (critical errors vs. style warnings)","Developers who want a high-level overview of code quality trends"],"limitations":["Severity filtering is applied after linting, not during — all rules are still evaluated","Custom severity mappings are not persisted; must be specified per request","Aggregation statistics are computed in-memory; no historical tracking across runs","Summary reports do not include trend analysis or time-series data"],"requires":["Linting results from the MCP server","Optional custom severity mapping configuration"],"input_types":["array of linting results","severity filter (error, warning, off)","custom severity mapping (optional)"],"output_types":["filtered linting results","summary statistics (error count, warning count, files affected)","rule violation frequency report","files ranked by violation count"],"categories":["data-processing-analysis","automation-workflow"],"confidence":0.5,"matches":0,"success_rate":0}],"trust":{"score":38,"verified":false,"data_access_risk":"high","permissions":["Node.js 16.0.0 or higher","ESLint 8.0.0 or higher installed in the project","MCP client implementation (e.g., Claude Desktop, custom MCP host)",".eslintrc configuration file in the project or parent directory","ESLint 8.x installed with configuration file present","npm or yarn package manager (for resolving plugin dependencies)","Read access to .eslintrc files and node_modules/","Node.js 16+ with worker_threads support","File system access to all target files","ESLint 8.0.0+"],"failure_modes":["Requires ESLint configuration files (.eslintrc.js, .eslintrc.json, etc.) to be present in the project root or specified path","No built-in caching of lint results — each invocation re-parses and re-analyzes the target file","Limited to ESLint's rule set; custom rules must be installed as npm packages and discoverable by the MCP server","Performance degrades on very large codebases (1000+ files) without explicit file filtering","Does not support ESLint v9+ flat config format (eslint.config.js) — only legacy .eslintrc formats","Custom parser plugins must be installed as npm dependencies; cannot load parsers from arbitrary URLs","Configuration discovery stops at the first .eslintrc found; does not merge configs from multiple levels without explicit extends","Environment variables in config files are not interpolated — requires static config values","Caching is in-memory only — does not persist across MCP server restarts","Glob pattern matching is limited to the file system; does not support remote file sources","builder identity is not verified yet","no observed match outcomes yet"],"rank_breakdown":{"adoption":0.5463660840576325,"quality":0.26,"ecosystem":0.36,"match_graph":0.25,"freshness":0.52,"weights":{"adoption":0.25,"quality":0.25,"ecosystem":0.15,"match_graph":0.23,"freshness":0.12}},"observed_outcomes":{"matches":0,"success_rate":0,"avg_confidence":0,"top_intents":[],"last_matched_at":null},"maintenance":{"status":"active","updated_at":"2026-05-24T12:16:23.903Z","last_scraped_at":"2026-05-03T14:23:33.108Z","last_commit":null},"community":{"stars":null,"forks":null,"weekly_downloads":26965,"model_downloads":null,"model_likes":null}},"distribution":{"claim_url":"https://unfragile.ai/submit?claim=npm-eslintmcp","compare_url":"https://unfragile.ai/compare?artifact=npm-eslintmcp"}},"signature":"GzCAwBjqpSRH2EC7irCu5h1G8OlIldy4TCnHcs1wt5ZJxeqh9cque9XPT4lUfWIg5bJdNVyo6pfNcDYSApL5Cg==","signedAt":"2026-06-21T16:25:38.899Z","signedBy":"unfragile.ai","version":1},"_links":{"self":"https://unfragile.ai/api/v1/passport/npm-eslintmcp","artifact":"https://unfragile.ai/npm-eslintmcp","verify":"https://unfragile.ai/api/v1/verify?slug=npm-eslintmcp","publicKey":"https://unfragile.ai/api/v1/trust-passport-public-key","spec":"https://unfragile.ai/trust","schema":"https://unfragile.ai/schema.json","docs":"https://unfragile.ai/docs"}}