UNPKG

@opichi/smartcode

Version:

Universal code intelligence MCP server - analyze any codebase with TypeScript excellence and multi-language support

300 lines (240 loc) • 9.41 kB
# 🧠 Opichi Smartcode **Universal Code Intelligence MCP Server** - Analyze any codebase with TypeScript excellence and multi-language support. Transform your AI coding assistant from confused to brilliant with instant codebase understanding. ## 🌟 What Makes This Special - **šŸŒ Universal File Support**: Works with any file type - TypeScript, Python, Go, PHP, Ruby, JSON, Markdown, and more - **⚔ Lightning Fast**: Instant project indexing with smart caching - **šŸŽÆ Surgical Analysis**: Precise symbol finding and code structure analysis - **šŸ” Smart Search**: Find functions, classes, API routes across any language - **šŸ“Š Rich Context**: Get complete file analysis with imports, exports, and relationships - **šŸ› ļø Zero Config**: Auto-detects project languages and patterns ## šŸš€ Quick Start ### Installation **Option 1: NPX (Recommended)** ```bash # No installation needed - just use directly npx @opichi/smartcode ``` **Option 2: Global Install** ```bash npm install -g @opichi/smartcode ``` ### Configuration Add to your Claude Desktop config (`~/.config/claude/claude_desktop_config.json`): ```json { "mcpServers": { "opichi-smartcode": { "command": "npx", "args": ["@opichi/smartcode"] } } } ``` **Or if globally installed:** ```json { "mcpServers": { "opichi-smartcode": { "command": "opichi-smartcode" } } } ``` ### Usage 1. **Restart Claude Desktop** after configuration 2. In any project directory, try this **recommended workflow**: - *"Give me a project overview"* - Start with lightweight summary - *"Search for authentication functions"* - Find specific functionality - *"Show me functions in auth.service.ts"* - Drill down to file details - *"Get full code index"* - Complete analysis when needed ## šŸ› ļø Available Tools ### šŸŽÆ **Tier 1: Quick Navigation** (Start Here) #### šŸ“‹ **get_project_overview** Lightweight project summary - perfect for initial understanding. ``` "Give me a project overview" "What's the structure of this codebase?" "Show me the key files and entry points" ``` *Returns: Directory structure, key files, entry points, and quick stats* ### šŸ” **Tier 2: Focused Queries** (Drill Down) #### ⚔ **search_functions** Find functions by name, documentation, or signature. ``` "Search for authentication functions" "Find functions containing 'validate'" "Show me async functions" ``` *Returns: Matching functions with signatures and documentation* #### šŸ“„ **get_functions_by_file** Get all functions in a specific file with full details. ``` "Show me functions in auth.service.ts" "What functions are in the user controller?" ``` *Returns: Complete function list with signatures, docs, and export status* #### šŸ—ļø **get_types_by_pattern** Find types, interfaces, and classes by pattern. ``` "Find all User types" "Show me types matching 'Config*'" "Get all interfaces ending with 'Service'" ``` *Returns: Matching types with properties and documentation* #### 🧩 **get_components_by_pattern** Find React components by name or file pattern. ``` "Find components matching 'Button*'" "Show me all form components" ``` *Returns: Component details with props and documentation* #### šŸ›³ļø **get_routes_by_pattern** Find API routes by method, path, or handler pattern. ``` "Find all POST routes" "Show me routes containing 'auth'" "Get routes handled by userController" ``` *Returns: Route details with methods, paths, and handlers* ### šŸ”Ž **Tier 3: Deep Analysis** (When You Need Everything) #### šŸ“Š **get_code_index** Complete overview of entire project (use sparingly). ``` "Show me the full code index" "I need to see everything in this project" ``` *Returns: Complete table of contents with all functions, types, routes, and components* #### šŸ” **find_symbol** Find functions, classes, variables by exact name. ``` "Find symbol getUserName" "Where is the User class defined?" "Locate all functions named handleSubmit" ``` *Works across: TypeScript, JavaScript, Python, Go, PHP, Ruby, and more* #### šŸ”Ž **search_code** Search for patterns and text across all files. ``` "Search for authentication patterns" "Find all API endpoints" "Show me error handling code" ``` *Supports: Regex patterns, file type filtering, case sensitivity* #### šŸ“„ **analyze_file** Get complete analysis of any file. ``` "Analyze package.json" "Show me the structure of user.service.ts" "What's in the README.md?" ``` *Supports: TypeScript, JavaScript, JSON, Python, Go, PHP, Ruby, Markdown* #### šŸ—ļø **get_project_structure** Understand your project's architecture. ``` "Show me the project structure" "What type of project is this?" "What frameworks are being used?" ``` *Auto-detects: React, Node.js, Python, Go projects and their patterns* #### šŸ—Æļø **list_api_routes** Discover all API endpoints automatically. ``` "List all API routes" "Show me the REST endpoints" "What APIs does this project expose?" ``` *Detects: Express, Next.js, Python Flask/Django, Go, PHP, Ruby routes* ## ⚔ Why This 3-Tier Approach? ### **Context Window Efficiency** - **Tier 1** uses ~300 tokens vs 5000+ for full analysis - **Tier 2** gives precise results without overwhelming detail - **Tier 3** provides complete information only when needed ### **Smart Navigation Pattern** ``` 1. Start Light → get_project_overview (quick understanding) 2. Focus Search → search_functions("auth") (find what you need) 3. Drill Down → get_functions_by_file (detailed analysis) 4. Go Deep → get_code_index (comprehensive view) ``` ### **Perfect for AI Assistants** - **Faster responses** - No more waiting for massive index dumps - **Better accuracy** - AI gets relevant info without noise - **Scalable** - Works on small scripts and enterprise codebases - **Progressive disclosure** - Information when you need it ## 🧠 How It Works ### 1. **Universal File Support** - **TypeScript/JavaScript**: Advanced AST parsing with full type information - **Other Languages**: Smart regex patterns for Python, Go, PHP, Ruby, etc. - **Config Files**: Proper JSON parsing, Markdown extraction - **Auto-detection**: Identifies project languages and adapts accordingly ### 2. **Efficient Architecture** - **Smart Caching**: Persistent indexing with timestamp validation - **Minimal Dependencies**: No ML models or vector databases required - **Fast Startup**: Sub-second project analysis - **Surgical Extraction**: Only processes what you request ### 3. **Language Intelligence** - **Pattern Recognition**: Detects API routes across different frameworks - **Symbol Resolution**: Finds functions, classes, variables by name - **Context Awareness**: Understands imports, exports, and relationships - **Project Detection**: Identifies React, Node.js, Python, Go patterns ## šŸŽÆ Example Usage **Get Project Overview:** > You: "Get code index" > Agent: "Found 4 API routes, 6 exported functions, 38 types. Key functions: handleFindSymbol, handleAnalyzeFile, handleGetCodeIndex. Main types: TypeScriptAnalyzer, CodeIndexer, FileStructure." **Analyze Any File:** > You: "Analyze package.json" > Agent: "This is @opichi/smartcode v1.0.0, a universal code intelligence MCP server. Dependencies: @modelcontextprotocol/sdk, typescript. Scripts: build, watch, start." **Find Code Across Languages:** > You: "Find symbol getUserName" > Agent: "Found getUserName function in src/auth/service.ts:42 - async function getUserName(id: string): Promise<string>" **Discover API Structure:** > You: "List API routes" > Agent: "Found Express routes: GET /users, POST /auth/login, PUT /users/:id. Also detected Flask routes in Python files: @app.route('/api/data')" ## šŸ—ļø Architecture ``` src/ ā”œā”€ā”€ analyzer/ # Core analysis engines │ ā”œā”€ā”€ typescript.ts # TypeScript AST parsing │ └── indexer.ts # Universal file indexing ā”œā”€ā”€ tools/ # MCP tool implementations │ └── code-intelligence.ts # All 6 core tools └── index.ts # MCP server entry point ``` **Key Features:** - **Universal Parsing**: TypeScript AST + regex fallbacks - **Smart Caching**: `.mcp-cache/code-index.json` - **Multi-Language**: Auto-detects project file types - **Zero Config**: Works out of the box ## šŸš€ Published Package **NPM**: [`@opichi/smartcode`](https://www.npmjs.com/package/@opichi/smartcode) **Install**: `npm install -g @opichi/smartcode` **Use**: `npx @opichi/smartcode` ## šŸ”§ Development ### Local Development ```bash git clone git@github.com:opichillc/expert-coder.git cd expert-coder npm install npm run build node dist/index.cjs ``` ### Adding Language Support 1. Update `detectProjectFileTypes()` in `tools/code-intelligence.ts` 2. Add patterns to `apiPatterns` array 3. Extend `analyzeGenericFile()` regex patterns ## šŸ¤ Contributing 1. Fork the repository 2. Create feature branch: `git checkout -b feature/amazing-feature` 3. Commit changes: `git commit -m 'Add amazing feature'` 4. Push to branch: `git push origin feature/amazing-feature` 5. Open a Pull Request ## šŸ“ License MIT License - see [LICENSE](LICENSE) file for details. ## šŸ™ Acknowledgments - **Tree-sitter** for language parsing - **Qdrant** for vector search - **Hugging Face Transformers** for embeddings - **MCP SDK** for protocol implementation --- **Transform your AI coding assistant from confused to brilliant.** 🧠✨