babylon-mcp/package.json
Michael Mainguy 5459fe9179 feat: Add TypeScript API documentation indexing and search with improved test coverage
## New Features
- Implemented TSDoc extraction using TypeDoc API
- Added API documentation indexing with LanceDB vector search
- Created search_babylon_api MCP tool for querying API docs
- Added 6 indexing and testing scripts

## API Indexing System
- TSDocExtractor: Parses TypeScript source files and extracts documentation
- ApiIndexer: Converts API docs to embeddings and stores in LanceDB
- Support for all Babylon.js packages (core, gui, materials, loaders, etc.)
- Successfully indexed 44,253 API entries from core package

## Bug Fixes
- Fixed TypeScript strict mode errors with exactOptionalPropertyTypes
- Fixed optional property handling in tsConfigPath and returns fields
- Resolved EventEmitter MaxListeners warning in test suite
- Updated all failing handler tests for real implementation

## Test Coverage Improvements
- Added 27 new tests (92 → 119 tests passing)
- Lines: 93.88% (was 82.53%, target 80%) ✓
- Functions: 100% (was 91.17%, target 80%) ✓
- Statements: 93.3% (was 81.58%, target 80%) ✓
- Branches: 69.72% (was 51.37%, target 75%)

## New Test Files
- src/search/lancedb-search.test.ts (15 tests)
- Enhanced handlers.test.ts with API search tests
- Enhanced document-parser.test.ts with edge case tests

## Scripts Added
- scripts/index-api.ts: Index all Babylon.js API documentation
- scripts/test-api-indexing.ts: Test API indexing for core package
- scripts/test-api-search.ts: Test API search functionality
- scripts/get-api-details.ts: Display detailed API documentation
- scripts/search-handmenu-api.ts: Search for HandMenu API examples

## Technical Details
- TypeDoc integration for TSDoc extraction
- Vector embeddings using Xenova/all-MiniLM-L6-v2 model
- Semantic search across 11 Babylon.js packages
- GitHub source links with line numbers in search results

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-23 05:58:16 -06:00

46 lines
1.1 KiB
JSON

{
"name": "babylon-mcp",
"version": "1.0.0",
"type": "module",
"main": "dist/index.js",
"scripts": {
"build": "tsc",
"start": "node dist/mcp/index.js",
"dev": "tsx watch src/mcp/index.ts",
"clean": "rm -rf dist",
"typecheck": "tsc --noEmit",
"test": "vitest",
"test:ui": "vitest --ui",
"test:run": "vitest run",
"test:coverage": "vitest run --coverage",
"index-docs": "tsx scripts/index-docs.ts",
"index-api": "tsx scripts/index-api.ts"
},
"keywords": [],
"author": "",
"license": "ISC",
"description": "",
"dependencies": {
"@lancedb/lancedb": "^0.22.3",
"@modelcontextprotocol/sdk": "^1.22.0",
"@xenova/transformers": "^2.17.2",
"express": "^5.1.0",
"gray-matter": "^4.0.3",
"simple-git": "^3.30.0",
"zod": "^3.25.76"
},
"devDependencies": {
"@types/express": "^5.0.5",
"@types/node": "^24.10.1",
"@types/supertest": "^6.0.3",
"@vitest/coverage-v8": "^4.0.13",
"nodemon": "^3.1.11",
"supertest": "^7.1.4",
"ts-node": "^10.9.2",
"tsx": "^4.20.6",
"typedoc": "^0.28.14",
"typescript": "^5.9.3",
"vitest": "^4.0.13"
}
}