ts-project-indexer-mcp
Version:
A powerful MCP (Model Context Protocol) server that indexes and analyzes TypeScript/JavaScript projects, providing intelligent code exploration, dependency tracking, method discovery, and project structure analysis for AI assistants and development tools.
310 lines (237 loc) ⢠8.74 kB
Markdown
# TypeScript Project Indexer MCP
A powerful **MCP (Model Context Protocol)** server that indexes and analyzes TypeScript/JavaScript projects, providing intelligent code exploration, dependency tracking, method discovery, and project structure analysis for AI assistants and development tools.
## š Features
- **š Project Analysis**: Deep analysis of TypeScript/JavaScript codebases
- **š Method Discovery**: Find functions, classes, interfaces, and types across your project
- **š Dependency Tracking**: Track imports, exports, and module dependencies
- **š File Indexing**: Comprehensive file structure analysis with metadata
- **š Smart Search**: Powerful search capabilities for code elements
- **ā” Performance Optimized**: Efficient caching and batch processing
- **š Cross-Platform**: Works on Windows, macOS, and Linux
- **š¤ AI-Ready**: Perfect integration with AI assistants and development tools
## š¦ Installation
### Via npm (Recommended)
```bash
npm install -g ts-project-indexer-mcp
```
### Via Git
```bash
git clone https://github.com/ugorur/ts-project-indexer-mcp.git
cd ts-project-indexer-mcp
npm install
npm run build
```
## š ļø Configuration
### MCP Settings for Claude Desktop
Add to your `claude_desktop_config.json`:
```json
{
"mcpServers": {
"typescript-project-indexer": {
"command": "npx",
"args": [
"-y",
"ts-project-indexer-mcp"
],
"env": {}
}
}
}
```
### MCP Settings for Cline
Add to your MCP configuration:
```json
{
"typescript-project-indexer": {
"autoApprove": [
"analyze_project",
"search_methods",
"get_project_files",
"get_project_stats",
"find_usages"
],
"disabled": false,
"timeout": 60,
"type": "stdio",
"command": "npx",
"args": [
"-y",
"ts-project-indexer-mcp"
]
}
}
```
### Alternative: Local Installation
If you prefer to install globally:
```bash
npm install -g ts-project-indexer-mcp
```
Then use:
```json
{
"mcpServers": {
"typescript-project-indexer": {
"command": "ts-project-indexer",
"args": [],
"env": {}
}
}
}
```
> **ā ļø Important Change in v1.1.0**: Project paths are no longer passed as command line arguments. Instead, use the `analyze_project` tool with an absolute `projectPath` parameter.
## šÆ Usage Examples
### Basic Project Analysis
```javascript
// Analyze a specific project (absolute path required)
await mcp.callTool('analyze_project', {
projectPath: '/home/user/my-project',
includePatterns: ['**/*.ts', '**/*.js'],
excludePatterns: ['node_modules/**', 'dist/**']
});
// Windows example
await mcp.callTool('analyze_project', {
projectPath: 'C:\\Users\\user\\my-project',
includePatterns: ['**/*.ts', '**/*.js'],
excludePatterns: ['node_modules/**', 'dist/**']
});
```
### Search for Methods
```javascript
// Find all functions containing 'config'
await mcp.callTool('search_methods', {
query: 'config',
type: 'function',
includeUsages: true
});
```
### Find Usage Locations
```javascript
// Find where a file is imported
await mcp.callTool('find_usages', {
filePath: 'src/config.ts',
searchType: 'imports',
includeDetails: true
});
```
### Get Project Statistics
```javascript
// Get comprehensive project stats
await mcp.callTool('get_project_stats', {});
```
## š§ Available Tools
### `analyze_project`
Analyzes and indexes the entire project structure.
**Parameters:**
- `projectPath` (string, **required**): **Absolute path** to project root (e.g., `/home/user/project` or `C:\Users\user\project`)
- `includePatterns` (array): File patterns to include (default: `['**/*.ts', '**/*.js', '**/*.json']`)
- `excludePatterns` (array): File patterns to exclude (default: `['node_modules/**', 'dist/**', '**/*.d.ts']`)
- `forceReindex` (boolean): Force full reindexing (default: `false`)
> **ā ļø Important**: The `projectPath` parameter is required and must be an absolute path. Relative paths are not supported for security and reliability reasons.
### `search_methods`
Search for methods, functions, and classes in the project.
**Parameters:**
- `query` (string): Search query (required)
- `type` (string): Type filter (`method`, `function`, `class`, `interface`, `type`, `all`)
- `includeUsages` (boolean): Include usage locations (default: `false`)
### `find_usages`
Find where a file, method, or class is imported or used.
**Parameters:**
- `filePath` (string): Path to file to find imports/usages for
- `methodName` (string): Name of method/function to find usages for
- `className` (string): Name of class to find usages for
- `searchType` (string): Search type (`imports`, `usages`, `both`)
- `includeDetails` (boolean): Include detailed context (default: `true`)
### `get_project_files`
Get list of all indexed project files with metadata.
### `get_project_stats`
Get comprehensive project statistics.
### `debug_dependencies`
Debug dependencies to see what is being indexed.
**Parameters:**
- `limit` (number): Maximum dependencies to show (default: `20`)
- `filterBy` (string): Filter dependencies by string match
## š Resources
### `project://files`
List of all indexed project files with metadata.
### `project://methods`
Index of all methods, functions, and classes.
## š” Use Cases
### For AI Assistants
- **Code Understanding**: Help AI understand project structure and relationships
- **Intelligent Refactoring**: Find all usages before making changes
- **Documentation Generation**: Extract comprehensive project information
- **Code Review**: Analyze dependencies and method relationships
### For Development Tools
- **IDE Integration**: Enhance code navigation and search
- **Build Tools**: Analyze project dependencies for optimization
- **Documentation Tools**: Generate API documentation automatically
- **Testing Tools**: Find test coverage gaps
### For Project Management
- **Complexity Analysis**: Understand codebase complexity
- **Dependency Mapping**: Visualize project dependencies
- **Code Metrics**: Generate comprehensive code statistics
- **Architecture Analysis**: Understand project structure
## šļø Architecture
```
TypeScript Project Indexer MCP
āāā Core Engine
ā āāā Project Indexer # Main analysis engine
ā āāā Code Parser # AST parsing and analysis
ā āāā Path Resolver # Import/export resolution
ā āāā Type System # TypeScript type analysis
āāā Caching Layer
ā āāā Memory Cache # Fast in-memory storage
ā āāā Persistent Cache # Disk-based caching
āāā MCP Server
ā āāā Tool Handlers # MCP tool implementations
ā āāā Resource Handlers # MCP resource providers
ā āāā Protocol Layer # MCP communication
āāā Utilities
āāā File System # Cross-platform file operations
āāā Pattern Matching # Glob pattern support
āāā Error Handling # Robust error management
```
## š Performance & Caching
- **Smart Caching**: Intelligent caching system with 24-hour retention
- **Batch Processing**: Processes files in optimized batches
- **Incremental Analysis**: Only re-analyzes changed files
- **Memory Management**: Efficient memory usage for large projects
- **Cross-Platform**: Optimized path handling for all operating systems
## š¤ Contributing
We welcome contributions! Please see our [Contributing Guidelines](CONTRIBUTING.md) for details.
### Development Setup
```bash
git clone https://github.com/ugorur/ts-project-indexer-mcp.git
cd ts-project-indexer-mcp
npm install
npm run dev
```
### Running Tests
```bash
npm test
```
### Building
```bash
npm run build
```
## š License
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
## šØāš» Author
**Ugur Orur**
- GitHub: [@ugorur](https://github.com/ugorur)
- Project: [ts-project-indexer-mcp](https://github.com/ugorur/ts-project-indexer-mcp)
## š Acknowledgments
- Built with [Model Context Protocol (MCP)](https://modelcontextprotocol.io/)
- Powered by TypeScript AST analysis
- Inspired by the need for better AI-code integration
## š Roadmap
- [ ] **Language Support**: JavaScript ES6+, JSX/TSX
- [ ] **IDE Plugins**: VSCode extension
- [ ] **Advanced Analysis**: Cyclomatic complexity metrics
- [ ] **Export Formats**: JSON, XML, YAML export options
- [ ] **Real-time Updates**: File watcher integration
- [ ] **Cloud Integration**: Remote project analysis
- [ ] **Team Features**: Shared analysis results
- [ ] **Performance**: Even faster analysis for large codebases
---
**Made with ā¤ļø for the developer community**