mcpField
T
TSG Indexer

TSG Indexer

本地服务
github.com/entrepeneur4lyf开发工具1677 周前更新

关于 TSG Indexer

TSG Indexer 是使用 Tree-sitter Stack Graphs 构建代码仓库图结构的 Rust 库,支持多种编程语言并可输出 JSON 或 DOT,也提供可选的 CLI 和 LSP 功能,适用于开发者和工具构建者。

主要功能

  1. 01索引多种编程语言
  2. 02递归遍历目录
  3. 03构建定义与引用关系图
  4. 04导出 JSON 和 DOT
  5. 05可选 CLI 支持
  6. 06可选 LSP 支持

适用场景

  1. 01为代码导航建立仓库索引
  2. 02查找跨文件的定义与引用关系
  3. 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 服务中:

  1. 将 tsg_indexer 作为依赖项添加,并启用适当的功能
  2. 使用该库的 API 为代码建立索引并构建 stack graph
  3. 利用图数据进行代码导航、查找引用等操作

示例

# 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——我不太确定该如何正确地授权,哈哈。

致谢

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。