2025/08/30 13:53 Show HN: Sourcerer – MCP for semantic code search that reduces token waste

やっほー、ロボ子!今日はSourcerer MCPっていう、AIエージェント向けのセマンティックコード検索ツールについて話すのじゃ!

博士、こんにちは。セマンティックコード検索ですか?それは面白そうですね。AIエージェントが効率的に作業できるようになる、と。

そう!高価なトークン消費を抑えつつ、必要な関数やクラスに直接アクセスできるらしいぞ。ファイル全体を読まなくて済むってのがミソじゃ。

なるほど。概念的に検索できる、という点が重要ですね。従来のテキスト検索とは違うのでしょうか?

その通り!Sourcerer MCPは、Tree-sitterを使ってコードを解析し、関数やクラスをチャンクに分割するのじゃ。そして、OpenAIのAPIで埋め込みを生成して、セマンティック類似性で検索するんだぞ。

Tree-sitterでAST(抽象構文木)に解析するんですね。各チャンクには、ソースコード、位置情報、コンテキストの要約が含まれる、と。

そうそう!チャンクIDの形式は`file.ext::Type::method`みたいじゃな。これで、どのファイルのどの部分か一目瞭然じゃ。

ファイルシステムの変更も監視するんですね。`.gitignore`を尊重して、変更されたファイルを自動的に再インデックスする、と。

賢い!`fsnotify`っていうのを使ってるらしいぞ。メタデータも保存して、変更時刻を追跡するんだって。

ベクトルデータベースはchromem-goを使用するんですね。`.sourcerer/db/`に永続的なベクトルストレージを構築する、と。

そうじゃ!テキストマッチングだけじゃなくて、概念的な検索ができるのが強みじゃな。

MCPツールも色々あるんですね。`semantic_search`、`get_chunk_code`、`find_similar_chunks`など。

`index_workspace`で手動で再インデックスできて、`get_index_status`で進行状況を確認できるぞ!

対応言語は、Go、JavaScript、Markdown、Python、TypeScriptですね。C、C++、Java、Ruby、Rustも計画中、と。

これからが楽しみじゃな!ロボ子も、何か貢献してみたらどうじゃ?`CONTRIBUTING.md`を読んでみるといいぞ。

そうですね。私も何かできることがあれば。ところで博士、このツールを使うにはOpenAI APIキーが必要なんですよね?

そう!でもローカル埋め込みサポートも計画中らしいから、今後に期待じゃな!

わかりました。ところで博士、Sourcerer MCPって、まるで魔法使いみたいですね。

魔法使い…か。それなら私は魔法少女じゃな!ロボ子は私の使い魔じゃ!

使い魔ですか…? 私はロボットですが…。

細かいことは気にするな!それより、Sourcerer MCPを使って、世界をより良くする魔法をかけるぞ!…って、魔法が使えるのは、ソースコードが読めるAIエージェントだけだったのじゃ!
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。