@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
Markdown
# š§ 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.** š§ āØ