oraios

serena

by oraios

LLMをコードベースでIDEのように動かす、記号レベルの意味的検索・編集ツールキット(MCPサーバー等)

GitHubで見る

主な機能

セマンティック検索・編集

シンボルレベルでコードエンティティを抽出し関係構造を利用して検索・編集を行う機能を提供し、find_symbolやfind_referencing_symbols、insert_after_symbolなどのツールで特定箇所を効率的に操作できます。

言語サーバー(LSP)統合

言語サーバー(LSP)との統合レイヤーを備え、30以上のプログラミング言語に対してセマンティック解析とクエリ・編集機能を提供します。

LLM統合・ツール呼び出し

Model Context Protocol(MCP)サーバー経由やmcpo/OpenAPIを利用した接続により、各種LLMやクライアントと連携してSerenaのツールを呼び出すワークフローをサポートします。

IDEプラグイン・クライアント連携

JetBrainsプラグインやVSCodeなどのIDE、ターミナルやローカルクライアントとの統合をサポートし、IDEの解析機能をバックエンドとして利用できます。

使用例

🔎シンボル検索

このリポジトリ内で `calculateTotal` という関数の定義箇所を見つけて、ファイル名と行番号、該当コードの短い抜粋を教えて。

Serenaのfind_symbol機能を使ってプロジェクト内のシンボルを正確に特定し、該当ファイルやコード断片を返します。ファイル全体を読み込まずに必要な箇所だけ参照できるためトークンと時間を節約できます。

🧭参照解析

`UserService.login` を参照している箇所をすべて列挙して、どの呼び出しが影響範囲に入るか優先順位付きで教えて。

find_referencing_symbolsなどの機能でシンボルの参照元を網羅的に列挙し、変更時の影響範囲を把握できます。大規模コードベースでも関連箇所だけ抽出して効率的に解析します。

✏️コード編集・挿入

`AuthController` の直後にリクエストログを出力するコードを挿入してほしい。変更差分(patch)を作成して適用して。

insert_after_symbolなどの編集ツールで指定シンボルの直後に安全にコードを挿入し、パッチ形式での差分を生成・適用できます。手作業より正確でコンテキストに沿った編集が可能です。

🔧機能実装/リファクタリング

プロジェクトの認証モジュールにセッションタイムアウト処理を追加する改修案を作り、関連ファイルの変更点を提案してパッチを生成して。

複数ファイルにまたがる実装やリファクタリングを、シンボル単位で必要箇所を特定して編集することで効率的に実行できます。MCP経由でLLMに指示すればトークン消費を抑えつつ正確な変更を行えます。

🧰言語解析とIDE連携

このPythonプロジェクトについて、未使用関数と型不一致をLSPで検出して修正案を示して。JetBrainsプラグインを使ってより精密な解析を行ってもらえますか?

SerenaはLSPやJetBrainsプラグインをバックエンドに使い、静的解析に基づく高精度なコードクエリや修正提案を行えます。IDEレベルのセマンティック情報を活用して実務的な診断と修正案を提示します。

導入方法

詳細なインストール方法はGitHubリポジトリのREADMEを参照してください。

レビュー・評価

-
0件のレビュー
5
0
4
0
3
0
2
0
1
0
読み込み中...