kmp-api-lookup-mcp は何をしますか?
Kotlin/Native iOS klib APIをインデックス化するMCPサーバーで、高速なシンボル検索とローカルデータベース管理を実現します。
概要
このMCPサーバーは、Kotlin Multiplatform(KMP)プロジェクトのiOSターゲットで生成されるklibファイルから公開APIを抽出し、SQLiteベースのローカルデータベースに格納します。これにより、AIエージェントや開発ツールがネイティブiOSシンボルを即座に検索・参照できるようになります。
主な機能
- klibのインデックス化: Kotlin/Nativeコンパイラが出力する
.klibファイルを解析し、公開シンボルを抽出します。 - 高速シンボル検索: データベースに対して部分一致または完全一致のクエリを実行し、関連する関数、クラス、プロパティを瞬時に返します。
- ローカルデータベース管理: インデックスデータはSQLiteデータベースに保存され、オフラインでも利用可能です。データベースの作成、更新、クリアがサポートされています。
- MCPプロトコル対応: Model Context Protocol(MCP)に準拠しており、Claude Code、Cursor、CodexなどのAIエージェントと統合できます。
使用方法
前提条件
- Node.js v18以上
- KMPプロジェクト(iOSターゲットを含むこと)
インストール
npx @heymonth/kmp-api-lookup-mcp
または、プロジェクトにローカルインストール:
npm install @heymonth/kmp-api-lookup-mcp
設定(Claude Codeの場合)
claude_desktop_config.jsonに以下を追加:
{
"mcpServers": {
"kmp-api-lookup": {
"command": "npx",
"args": ["@heymonth/kmp-api-lookup-mcp"]
}
}
}
利用可能なツール
| ツール名 | 説明 |
|---|---|
index_klib | 指定されたklibファイルを解析し、データベースにインデックスを追加します。 |
search_symbols | インデックスからシンボルを検索します。部分一致および完全一致に対応。 |
list_indexed_klibs | 現在データベースに登録されているklibの一覧を表示します。 |
clear_database | ローカルデータベースを初期化し、すべてのインデックスデータを削除します。 |
動作の仕組み
- KMPビルド後、iOSフレームワークの出力ディレクトリ(例:
build/bin/iosArm64/releaseFramework)にある.klibファイルを特定します。 - MCPサーバーがklibファイルを読み取り、Kotlin/Nativeのシリアル化形式を解析して公開シンボルを抽出します。
- 抽出されたシンボルはSQLiteデータベースに保存されます。各エントリにはシンボル名、種類(関数/クラス/プロパティ)、モジュール名、ソースファイルのパスなどが含まれます。
- AIエージェントが
search_symbolsツールを呼び出すと、データベースをクエリし、該当するシンボル情報を返します。
注意事項
- このツールはKotlin/Nativeが生成するklibファイルのみを対象としています。Javaバイトコードや他のプラットフォームのライブラリはサポートしていません。
- データベーススキーマは将来のバージョンで変更される可能性があります。互換性についてはリリースノートを参照してください。
ライセンス
MIT License