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. 04JSONとDOTへの出力
  5. 05任意のCLI機能
  6. 06任意のLSP機能

活用シーン

  1. 01コードナビゲーション用のリポジトリ索引を作成
  2. 02ファイル間の定義と参照の関係を特定
  3. 03MCPサーバーでグラフデータを利用

MCP 対応

TSG IndexerはMCPサーバーへの組み込みを想定したライブラリで、コードナビゲーションや参照検索向けの索引とグラフデータを提供します。プロジェクト自体はMCPサーバーとして説明されていません。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

インストール方法は未掲載です

このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。

リポジトリ

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

TSG Indexer

Tree-sitter Stack Graphs を使用してコードリポジトリをインデックス化するライブラリです。MCP サーバーやその他のツールでの使用を想定して設計されています。

概要

TSG Indexer は、Tree-sitter Stack Graphs を使用してコードリポジトリを分析し、コード構造のグラフ表現を構築する Rust ライブラリです。ファイル間の定義と参照の関係を捉えることで、高度なコードナビゲーションおよび分析機能を実現します。

主な機能:

TSG Indexer は、tree-sitter-stack-graphs を使用してコードリポジトリを分析し、コード構造のグラフ表現を構築するライブラリです。このグラフは、ファイル間の定義と参照の関係を捉え、高度なコードナビゲーションおよび分析を可能にします。

Rust、Python、JavaScript、TypeScript、Java など、20 以上のプログラミング言語をサポート 包括的なコードベース分析のための再帰的なディレクトリ走査 複数の出力形式(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 - 適切なライセンスの適用方法が完全にはわかっていません(笑)。

謝辞

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。