knip-mcp-server
Version:
MCP server for knip.dev integration to help AI agents identify and clean up unused code
56 lines • 2.37 kB
JavaScript
export function createKnipGetUnusedDependenciesTool(knipClient, config) {
return {
name: 'knip_get_unused_dependencies',
description: 'Get unused dependencies and devDependencies',
inputSchema: {
type: 'object',
properties: {
workspace: {
type: 'string',
description: 'Specific workspace to analyze (for monorepo setups)',
},
type: {
type: 'string',
enum: ['dependencies', 'devDependencies', 'all'],
default: 'all',
description: 'Type of dependencies to check',
},
},
},
execute: async (args) => {
try {
const type = args.type || 'all';
const result = await knipClient.getUnusedDependencies(type, args.workspace);
const response = {
success: true,
};
if (type === 'dependencies') {
response.unusedDependencies = result;
response.dependenciesCount = result.length;
}
else if (type === 'devDependencies') {
response.unusedDevDependencies = result;
response.devDependenciesCount = result.length;
}
else {
// For 'all', we need to get both separately
const deps = await knipClient.getUnusedDependencies('dependencies', args.workspace);
const devDeps = await knipClient.getUnusedDependencies('devDependencies', args.workspace);
response.unusedDependencies = deps;
response.dependenciesCount = deps.length;
response.unusedDevDependencies = devDeps;
response.devDependenciesCount = devDeps.length;
response.totalCount = deps.length + devDeps.length;
}
return response;
}
catch (error) {
return {
success: false,
error: error instanceof Error ? error.message : String(error),
};
}
},
};
}
//# sourceMappingURL=knip-get-unused-dependencies.js.map