TypeScript代码索引与搜索工具

一个强大的TypeScript代码索引和搜索工具,支持语言服务器协议(LSP)和模型上下文协议(MCP)集成,提供语义搜索、符号搜索和向量数据库功能。

  • by 0x5457
  • Go
  • 本地部署
  • 5 星标
  • 更新于
在 GitHub 查看 0x5457/ts-index

使用说明

ts-index(在中文中,这通常直接保留原样,因为它是特定技术或工具的名称,但若要解释其含义,可以理解为“TypeScript 索引”或“TypeScript 索引文件”,具体取决于上下文)

一个功能强大的TypeScript代码索引和搜索工具,支持语言服务器协议(Language Server Protocol)并集成模型上下文协议(Model Context Protocol,简称MCP)。

关键特性

  • 语义搜索使用嵌入技术进行高级代码搜索,以支持自然语言查询
  • 符号搜索精确的符号名称匹配和查找
  • LSP 集成TypeScript分析的语言服务器协议支持
  • MCP服务器通过模型上下文协议暴露索引和搜索功能
  • 向量数据库基于SQLite的存储,具备向量搜索功能
  • 多种运输方式支持stdio、HTTP和SSE通信协议

技术栈

使用方法

为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