Skip to main content
Glama

CodeCompass MCP

extract.ts9.61 kB
import { Tool } from '@modelcontextprotocol/sdk/types.js'; export const extractTools: Tool[] = [ { name: 'extract_components', description: 'Extract UI components from a codebase for reuse', inputSchema: { type: 'object', properties: { url: { type: 'string', description: 'GitHub repository URL', }, componentPaths: { type: 'array', items: { type: 'string' }, description: 'Specific component paths to extract (optional)', }, framework: { type: 'string', description: 'UI framework (e.g., "react", "vue", "angular")', }, extractionOptions: { type: 'object', properties: { includeStyles: { type: 'boolean', description: 'Include component styles', default: true, }, includeTests: { type: 'boolean', description: 'Include component tests', default: true, }, includeDocs: { type: 'boolean', description: 'Include component documentation', default: true, }, minComplexity: { type: 'number', description: 'Minimum complexity score for extraction', default: 3, }, maxDependencies: { type: 'number', description: 'Maximum number of dependencies', default: 5, }, }, }, }, required: ['url', 'framework'], }, }, { name: 'extract_utilities', description: 'Extract utility functions and helpers from a codebase', inputSchema: { type: 'object', properties: { url: { type: 'string', description: 'GitHub repository URL', }, utilityTypes: { type: 'array', items: { type: 'string', enum: ['validation', 'formatting', 'data-processing', 'math', 'date', 'string', 'array', 'object'], }, description: 'Types of utilities to extract', }, extractionCriteria: { type: 'object', properties: { minReusability: { type: 'number', description: 'Minimum reusability score (0-100)', default: 70, }, maxComplexity: { type: 'number', description: 'Maximum complexity score', default: 10, }, requireTests: { type: 'boolean', description: 'Only extract utilities with tests', default: false, }, requireDocumentation: { type: 'boolean', description: 'Only extract utilities with documentation', default: false, }, }, }, }, required: ['url'], }, }, { name: 'extract_hooks', description: 'Extract React hooks or similar patterns from a codebase', inputSchema: { type: 'object', properties: { url: { type: 'string', description: 'GitHub repository URL', }, hookTypes: { type: 'array', items: { type: 'string', enum: ['state', 'effect', 'context', 'custom', 'data-fetching', 'form'], }, description: 'Types of hooks to extract', }, framework: { type: 'string', description: 'Framework (e.g., "react", "vue-composition")', }, extractionOptions: { type: 'object', properties: { includeTypes: { type: 'boolean', description: 'Include TypeScript types', default: true, }, includeExamples: { type: 'boolean', description: 'Include usage examples', default: true, }, removeDependencies: { type: 'boolean', description: 'Remove external dependencies', default: true, }, }, }, }, required: ['url', 'framework'], }, }, { name: 'extract_types', description: 'Extract TypeScript types and interfaces from a codebase', inputSchema: { type: 'object', properties: { url: { type: 'string', description: 'GitHub repository URL', }, typeCategories: { type: 'array', items: { type: 'string', enum: ['api', 'domain', 'ui', 'utility', 'config', 'generic'], }, description: 'Categories of types to extract', }, extractionOptions: { type: 'object', properties: { includeGenerics: { type: 'boolean', description: 'Include generic types', default: true, }, includeUnions: { type: 'boolean', description: 'Include union types', default: true, }, includeComments: { type: 'boolean', description: 'Include type comments/documentation', default: true, }, resolveImports: { type: 'boolean', description: 'Resolve imported types', default: true, }, }, }, }, required: ['url'], }, }, { name: 'extract_api_definitions', description: 'Extract API definitions and schemas from a codebase', inputSchema: { type: 'object', properties: { url: { type: 'string', description: 'GitHub repository URL', }, apiType: { type: 'string', enum: ['rest', 'graphql', 'rpc', 'websocket'], description: 'Type of API', }, extractionOptions: { type: 'object', properties: { includeSchemas: { type: 'boolean', description: 'Include request/response schemas', default: true, }, includeValidation: { type: 'boolean', description: 'Include validation rules', default: true, }, includeDocumentation: { type: 'boolean', description: 'Include API documentation', default: true, }, generateOpenAPI: { type: 'boolean', description: 'Generate OpenAPI specification', default: false, }, }, }, }, required: ['url', 'apiType'], }, }, { name: 'extract_configuration', description: 'Extract configuration patterns and settings from a codebase', inputSchema: { type: 'object', properties: { url: { type: 'string', description: 'GitHub repository URL', }, configTypes: { type: 'array', items: { type: 'string', enum: ['env', 'build', 'runtime', 'database', 'api', 'feature-flags'], }, description: 'Types of configuration to extract', }, extractionOptions: { type: 'object', properties: { includeDefaults: { type: 'boolean', description: 'Include default values', default: true, }, includeValidation: { type: 'boolean', description: 'Include configuration validation', default: true, }, includeDocumentation: { type: 'boolean', description: 'Include configuration documentation', default: true, }, createSchema: { type: 'boolean', description: 'Create configuration schema', default: true, }, }, }, }, required: ['url'], }, }, { name: 'extract_patterns', description: 'Extract design patterns and architectural patterns from a codebase', inputSchema: { type: 'object', properties: { url: { type: 'string', description: 'GitHub repository URL', }, patternTypes: { type: 'array', items: { type: 'string', enum: ['mvc', 'mvvm', 'observer', 'factory', 'singleton', 'strategy', 'decorator', 'adapter'], }, description: 'Types of patterns to extract', }, extractionOptions: { type: 'object', properties: { includeExamples: { type: 'boolean', description: 'Include usage examples', default: true, }, includeTests: { type: 'boolean', description: 'Include pattern tests', default: true, }, includeDocumentation: { type: 'boolean', description: 'Include pattern documentation', default: true, }, createGeneric: { type: 'boolean', description: 'Create generic implementation', default: true, }, }, }, }, required: ['url'], }, }, ];

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/TheAlchemist6/codecompass-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server