关于 TSG Indexer
TSG Indexer 是使用 Tree-sitter Stack Graphs 构建代码仓库图结构的 Rust 库,支持多种编程语言并可输出 JSON 或 DOT,也提供可选的 CLI 和 LSP 功能,适用于开发者和工具构建者。
主要功能
- 01索引多种编程语言
- 02递归遍历目录
- 03构建定义与引用关系图
- 04导出 JSON 和 DOT
- 05可选 CLI 支持
- 06可选 LSP 支持
适用场景
- 01为代码导航建立仓库索引
- 02查找跨文件的定义与引用关系
- 03在 MCP 服务中使用图数据
MCP 相关
TSG Indexer 是供 MCP 服务集成的库,为代码导航和引用查找提供索引与图数据;项目本身并未描述为 MCP 服务。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
TSG Indexer
一个使用 Tree-sitter Stack Graphs 为代码仓库建立索引的库,专为 MCP 服务及其他工具设计。
概述
TSG Indexer 是一个 Rust 库,使用 Tree-sitter Stack Graphs 分析代码仓库,并构建代码结构的图表示。它能够捕获跨文件的定义与引用之间的关系,从而提供强大的代码导航和分析能力。
主要功能:
TSG Indexer 是一个使用 tree-sitter-stack-graphs 分析代码仓库并构建代码结构图表示的库。该图捕获跨文件的定义与引用之间的关系,从而提供强大的代码导航和分析能力。
支持 20 多种编程语言,包括 Rust、Python、JavaScript、TypeScript、Java 等 递归遍历目录,全面分析代码库 支持多种输出格式(JSON、DOT 图) 通过功能标志启用可选的 CLI 和 LSP 支持 能够为不支持的语言生成 TSG 文件 该库旨在集成到 Model Control Protocol(MCP)服务及其他需要代码索引和导航能力的工具中。它利用 GitHub 的 tree-sitter 解析系统和 stack-graphs 技术,打造全面的代码分析解决方案。
功能
- 支持多种语言:
- Rust
- Python
- JavaScript
- TypeScript
- Java
- Swift
- Objective-C
- CSS
- Scala
- Zig
- YAML
- Go
- PHP
- XML
- JSDoc
- Bash
- JSON
- HTML
- C#
- Ruby
- Markdown
- Lua
- Dart
- 以及更多!
- 递归遍历目录
- 支持多种输出格式:
- JSON
- DOT 图
- 用于启用可选功能的功能标志:
cli- 命令行界面支持lsp- Language Server Protocol 支持
安装
添加到 Cargo.toml:
[dependencies]
tsg_indexer = { version = "0.1.0", features = ["cli", "lsp"] }
或克隆并构建代码仓库:
# Clone the repository
git clone https://github.com/entrepeneur4lyf/tsg_indexer.git
cd tsg_indexer
# Build the project
cargo build --release
库的使用
use tsg_indexer::{IndexerConfig, run_indexer};
use std::path::PathBuf;
fn main() -> anyhow::Result<()> {
// Create configuration
let config = IndexerConfig {
path: PathBuf::from("src/"),
format: "json".to_string(),
output: Some(PathBuf::from("output.json")),
verbose: true,
};
// Run the indexer
run_indexer(config)
}
CLI 使用
使用 cli 功能构建时:
# Index a single file
tsg_indexer_cli examples/test_rust.rs
# Index a directory recursively
tsg_indexer_cli src/
# Output in DOT format
tsg_indexer_cli --format dot src/
# Output to a file
tsg_indexer_cli --output graph.json src/
# Verbose mode
tsg_indexer_cli --verbose src/
与 MCP 服务搭配使用
该库旨在用于 Model Control Protocol(MCP)服务,提供代码索引和导航能力。它提供了借助 tree-sitter 和 stack-graphs 解析与分析代码仓库所需的核心功能。
MCP 集成
若要集成到 MCP 服务中:
- 将 tsg_indexer 作为依赖项添加,并启用适当的功能
- 使用该库的 API 为代码建立索引并构建 stack graph
- 利用图数据进行代码导航、查找引用等操作
示例
# Index the examples directory (with CLI feature enabled)
tsg_indexer_cli examples/
# The output will show the graph structure in JSON format by default
贡献
欢迎贡献!你可以通过以下方式参与:
- 报告错误
- 添加对更多语言的支持
- 改进错误处理
- 添加更多输出格式
- 优化性能
许可证
MIT License 和 Apache 2.0 License——我不太确定该如何正确地授权,哈哈。
致谢
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。