UNPKG

knip-mcp-server

Version:

MCP server for knip.dev integration to help AI agents identify and clean up unused code

89 lines 3.12 kB
import { z } from 'zod'; // MCP tool input/output schemas export const KnipScanInputSchema = z.object({ projectPath: z.string().optional(), configPath: z.string().optional(), includePaths: z.array(z.string()).optional(), excludePaths: z.array(z.string()).optional(), dryRun: z.boolean().default(true), workspace: z.string().optional(), }); export const KnipScanOutputSchema = z.object({ success: z.boolean(), result: z.object({ unusedFiles: z.array(z.string()), unusedExports: z.record(z.array(z.string())), unusedImports: z.record(z.array(z.string())), unusedDependencies: z.array(z.string()), unusedDevDependencies: z.array(z.string()), issues: z.array(z.object({ type: z.enum(['file', 'export', 'import', 'dependency', 'devDependency']), filePath: z.string(), name: z.string().optional(), line: z.number().optional(), column: z.number().optional(), severity: z.enum(['error', 'warning', 'info']), message: z.string(), })), }).optional(), error: z.string().optional(), }); export const KnipRemoveUnusedFilesInputSchema = z.object({ files: z.array(z.string()), dryRun: z.boolean().default(true), createBackup: z.boolean().default(true), backupDir: z.string().optional(), }); export const KnipRemoveUnusedImportsInputSchema = z.object({ filePath: z.string(), imports: z.array(z.string()).optional(), dryRun: z.boolean().default(true), createBackup: z.boolean().default(true), }); export const KnipFixIssuesInputSchema = z.object({ projectPath: z.string().optional(), issueTypes: z.array(z.enum(['files', 'imports', 'exports', 'dependencies'])).optional(), dryRun: z.boolean().default(true), createBackup: z.boolean().default(true), interactive: z.boolean().default(false), maxFiles: z.number().optional(), }); export const KnipGetConfigInputSchema = z.object({ projectPath: z.string().optional(), configPath: z.string().optional(), }); export const KnipValidateConfigInputSchema = z.object({ projectPath: z.string().optional(), configPath: z.string().optional(), config: z.object({}).optional(), }); // Error types export class KnipMcpError extends Error { code; details; constructor(message, code, details) { super(message); this.code = code; this.details = details; this.name = 'KnipMcpError'; } } export class KnipAnalysisError extends KnipMcpError { constructor(message, details) { super(message, 'KNIP_ANALYSIS_ERROR', details); this.name = 'KnipAnalysisError'; } } export class KnipConfigError extends KnipMcpError { constructor(message, details) { super(message, 'KNIP_CONFIG_ERROR', details); this.name = 'KnipConfigError'; } } export class KnipFileSystemError extends KnipMcpError { constructor(message, details) { super(message, 'KNIP_FILESYSTEM_ERROR', details); this.name = 'KnipFileSystemError'; } } //# sourceMappingURL=index.js.map