MCP ExplorerExplorer

Tsg Indexer

@entrepeneur4lyfon 9 months ago
3 MIT
FreeCommunity
AI Systems
A library for indexing code repositories using Tree-sitter Stack Graphs, designed to be used in MCP servers and other tools.

Overview

What is Tsg Indexer

TSG Indexer is a Rust library designed for indexing code repositories using Tree-sitter Stack Graphs, enabling advanced code navigation and analysis.

Use cases

Use cases include enhancing code navigation in IDEs, performing static code analysis, and integrating with other tools for better code understanding and management.

How to use

To use TSG Indexer, add it to your Cargo.toml file as a dependency. You can enable optional features like CLI and LSP support through feature flags.

Key features

Key features include support for 20+ programming languages, recursive directory traversal for comprehensive analysis, multiple output formats (JSON, DOT graph), and the ability to generate TSG files for unsupported languages.

Where to use

TSG Indexer is ideal for use in MCP servers and other tools that require code indexing and navigation capabilities.

Content

TSG Indexer

A library for indexing code repositories using Tree-sitter Stack Graphs, designed to be used in MCP servers and other tools.

Overview

TSG Indexer is a Rust library that uses Tree-sitter Stack Graphs to analyze code repositories and build graph representations of code structure. It captures relationships between definitions and references across files, enabling powerful code navigation and analysis capabilities.

Key features:

TSG Indexer is a library that uses tree-sitter-stack-graphs to analyze code repositories and build a graph representation of the code structure. This graph captures the relationships between definitions and references across files, enabling powerful code navigation and analysis.

Support for 20+ programming languages including Rust, Python, JavaScript, TypeScript, Java, and more
Recursive directory traversal for comprehensive codebase analysis
Multiple output formats (JSON, DOT graph)
Optional CLI and LSP support via feature flags
Ability to generate TSG files for unsupported languages
The library is designed to be integrated with Model Control Protocol (MCP) servers and other tools that need code indexing and navigation capabilities. It leverages the tree-sitter parsing system and stack-graphs technology from GitHub to create a comprehensive code analysis solution.

Features

  • Support for multiple languages:
    • Rust
    • Python
    • JavaScript
    • TypeScript
    • Java
    • Swift
    • Objective-C
    • CSS
    • Scala
    • Zig
    • YAML
    • Go
    • PHP
    • XML
    • JSDoc
    • Bash
    • JSON
    • HTML
    • C#
    • Ruby
    • Markdown
    • Lua
    • Dart
    • And more!
  • Recursive directory traversal
  • Multiple output formats:
    • JSON
    • DOT graph
  • Feature flags for optional functionality:
    • cli - Command-line interface support
    • lsp - Language Server Protocol support

Installation

Add to your Cargo.toml:

[dependencies]
tsg_indexer = { version = "0.1.0", features = ["cli", "lsp"] }

Or clone and build the repository:

# Clone the repository
git clone https://github.com/entrepeneur4lyf/tsg_indexer.git
cd tsg_indexer

# Build the project
cargo build --release

Library Usage

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 Usage

When built with the cli feature:

# 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/

Use with MCP Servers

This library is designed to be used in Model Control Protocol (MCP) servers for code indexing and navigation capabilities. It provides the core functionality needed for parsing and analyzing code repositories with tree-sitter and stack-graphs.

MCP Integration

To integrate with an MCP server:

  1. Add tsg_indexer as a dependency with appropriate features
  2. Use the library’s API to index code and build stack graphs
  3. Leverage the graph data for code navigation, reference finding, and more

Example

# Index the examples directory (with CLI feature enabled)
tsg_indexer_cli examples/

# The output will show the graph structure in JSON format by default

Contributing

Contributions are welcome! Here are some ways you can contribute:

  • Report bugs
  • Add support for more languages
  • Improve error handling
  • Add more output formats
  • Optimize performance

License

MIT License & Apache 2.0 License - I am not 100% sure how to properly license this lol.

Acknowledgments

Tools

No tools

Comments

Recommend MCP Servers

View All MCP Servers