ts-index(在中文中,这通常直接保留原样,因为它是特定技术或工具的名称,但若要解释其含义,可以理解为“TypeScript 索引”或“TypeScript 索引文件”,具体取决于上下文)
一个功能强大的TypeScript代码索引和搜索工具,支持语言服务器协议(Language Server Protocol)并集成模型上下文协议(Model Context Protocol,简称MCP)。
关键特性
- 语义搜索使用嵌入技术进行高级代码搜索,以支持自然语言查询
- 符号搜索精确的符号名称匹配和查找
- LSP 集成TypeScript分析的语言服务器协议支持
- MCP服务器通过模型上下文协议暴露索引和搜索功能
- 向量数据库基于SQLite的存储,具备向量搜索功能
- 多种运输方式支持stdio、HTTP和SSE通信协议
技术栈
- TypeScript 解析器: Tree-sitter-TypeScript(或译为:树状解析器-TypeScript) - 用于 Tree-sitter 的 TypeScript 和 TSX 语法
- 向量数据库: asg017/sqlite-vec 翻译为中文是:asg017/sqlite-向量(或向量数据库插件) - SQLite的向量搜索扩展
使用方法
为TypeScript项目创建索引
ts-index index --project /path/to/project --db /path/to/index.db按语义搜索代码
ts-index search "function to parse JSON" --project /path/to/project --db /path/to/index.db按精确符号名称搜索
ts-index search "parseJSON" --symbol --db /path/to/index.db语言服务器协议命令
# Analyze symbol at position
ts-index lsp analyze src/utils.ts --project /path/to/project --line 10 --character 5
# Get code completions
ts-index lsp completion src/utils.ts --project /path/to/project --line 10 --character 5
# Search workspace symbols
ts-index lsp symbols --project /path/to/project --query "parse"
# Install language server
ts-index lsp install vtsls
# Check LSP health
ts-index lsp health运行MCP服务器
# stdio mode (default)
ts-index mcp --project /path/to/project --db /path/to/index.db
# HTTP mode
ts-index mcp --transport http --address :8080 --db /path/to/index.db
# SSE mode
ts-index mcp --transport sse --address :8080 --db /path/to/index.db发展
命令
# Run linter
make lint
# Run linter with auto-fix
make lint-fix
# Run test
make test建筑
go build -o bin/ts-index ./cmd/ts-index