kmp-api-lookup-mcp
kmp-api-lookup-mcp
用于快速查找 Kotlin/Native iOS klib API 的 MCP 服务器。
该服务器将本地 Kotlin/Native 平台 klibs 索引到持久化的 SQLite 数据库中,并提供一个紧凑的 MCP API 用于符号查找和索引维护。
安装
前置要求
Node.js 22+
本地安装有 Kotlin/Native,且可通过
KONAN_HOME或~/.konan访问平台 klibs
从 npm 安装(推荐)
npm install -g kmp-api-lookup-mcp通过 npx 运行(无需全局安装)
npx -y kmp-api-lookup-mcp这不会全局安装该包。npm 会按需下载并运行已发布的二进制文件。
从源码安装
git clone https://github.com/SuLG-ik/kmp-api-lookup-mcp.git
cd kmp-api-lookup-mcp
npm install
npm run build
npm linkRelated MCP server: code-context-mcp
快速入门
作为 MCP 服务器
将服务器添加到您的 MCP 客户端配置中。
常见的配置文件位置:
macOS Claude Desktop:
~/Library/Application Support/Claude/claude_desktop_config.jsonWindows Claude Desktop:
%APPDATA%/Claude/claude_desktop_config.jsonLinux Claude Desktop:
~/.config/Claude/claude_desktop_config.json
仓库中包含了可直接复制的示例文件:
claude_desktop_config.json.example用于全局 npm 安装claude_desktop_config.npx.json.example用于通过npx运行已发布的包claude_desktop_config.konan_home.json.example用于带有显式KONAN_HOME的全局 npm 安装claude_desktop_config.from_source.json.example用于从仓库运行已构建的服务器
如果包已全局安装:
{
"mcpServers": {
"kmp-api-lookup": {
"command": "kmp-api-lookup-mcp"
}
}
}如果您不想全局安装该包:
{
"mcpServers": {
"kmp-api-lookup": {
"command": "npx",
"args": ["-y", "kmp-api-lookup-mcp"]
}
}
}这对于快速设置很方便,但首次启动可能会较慢,因为 npx 可能需要下载该包。
如果您想直接指向特定的 Kotlin/Native 安装目录:
{
"mcpServers": {
"kmp-api-lookup": {
"command": "kmp-api-lookup-mcp",
"env": {
"KONAN_HOME": "/Users/you/.konan/kotlin-native-prebuilt-macos-aarch64-2.2.21"
}
}
}
}如果您从源码运行服务器:
{
"mcpServers": {
"kmp-api-lookup": {
"command": "node",
"args": ["/absolute/path/to/kmp-api-lookup-mcp/dist/index.js"]
}
}
}首次运行
服务器启动后,通常的步骤是:
调用
get_klib_index_status查看索引是否已存在。如果索引缺失,针对您需要的 Kotlin/Native 版本和目标平台调用
rebuild_klib_index。使用
lookup_symbol开始查询符号。
重建请求示例:
{
"kotlinVersion": "2.2.21",
"target": "ios_simulator_arm64",
"frameworks": ["AVFoundation", "AVKit", "MediaPlayer", "AVFAudio"]
}当前范围
基于 stdio 的 TypeScript npm ESM MCP 服务器
用户缓存目录中的持久化 SQLite 缓存
通过
KONAN_HOME、~/.konan或显式路径发现预构建的 Kotlin/Native 安装从
klib dump-metadata-signatures手动重建索引从
klib dump-metadata按需获取完整的 Kotlin 签名、类层次结构和导入信息带有简短文本摘要的结构化 JSON MCP 响应
已实现的工具
lookup_symbol
将 Kotlin/Native Apple 平台类、成员或顶级平台别名/常量解析为紧凑的开发卡片。
输入:
{
"query": "AVPlayer",
"frameworks": ["AVFoundation"],
"detail": "compact",
"queryKind": "auto"
}行为:
像
AVPlayer这样的类查询会返回一张包含以下内容的类卡片:完整的 Kotlin 类签名
超类和已实现的接口
当
detail被省略或设置为compact时,所有构造函数、实例方法和类方法,按成员名称分组以减小输出大小在紧凑模式下,当属性存在匹配的 getter/setter 方法时,会有一个单独的
properties列表,并带有显式的accessors.getter和accessors.setter标志紧凑模式仅移除重复的属性访问器方法;它不会从类表面修剪不相关的方法
当
detail设置为full时,包含完整的直接成员集、ObjC 桥接扩展成员和Meta类成员用于代码生成的
requiredImports
像
AVPlayer.play或play这样的成员查询会返回一张紧凑的分组卡片,其中包含重载签名和导入信息。精确的顶级平台别名和常量(如
AVPlayerStatus、AVLayerVideoGravity或AVPlayerItemDidPlayToEndTimeNotification)会解析为包作用域的成员卡片,而不是退化为模糊的类匹配。如果查询有歧义,工具会返回一个简短的候选项列表,而不是转储原始搜索行。
输出特意省略了诸如数据库路径、内部 ID、原始元数据转储、匹配阶段和安装路径等嘈杂字段。
detail默认为compact。仅在确实需要整个类表面时才使用"detail": "full"。
get_klib_index_status
返回紧凑的索引摘要。
输入:
{}输出包括:
ready已发现的 Kotlin/Native 版本和目标平台
带有计数的已索引数据集
聚合符号计数
lastRebuildAt
rebuild_klib_index
从本地 klibs 构建或刷新 SQLite 索引。
输入:
{
"kotlinVersion": "2.2.21",
"target": "ios_simulator_arm64",
"frameworks": ["Foundation", "UIKit"],
"force": false,
"dryRun": false,
"cleanBefore": true
}规则:
kotlinVersion和konanHome是可选的,但您最多只能提供其中一个。如果两者都省略,则使用最新发现的本地 Kotlin/Native 安装。
如果省略
target,服务器优先选择ios_simulator_arm64,其次是ios_arm64,然后是ios_x64。如果省略
frameworks,重建将涵盖所选目标平台的所有框架。dryRun=true计算重建计划而不写入 SQLite。force=true忽略新鲜度检查。cleanBefore=true在写入新记录之前删除受影响框架的现有行。
存储布局
服务器将数据存储在仓库之外。
SQLite 数据库:用户缓存目录 +
klib-index.sqlite服务元数据:用户缓存目录 +
state.json
典型的缓存位置:
macOS:
~/Library/Caches/kmp-api-lookup-mcp/Linux:
${XDG_CACHE_HOME:-~/.cache}/kmp-api-lookup-mcp/Windows:
%LOCALAPPDATA%/kmp-api-lookup-mcp/
发现规则
安装按以下顺序发现:
工具提供显式
konanHome参数时KONAN_HOME~/.konan/kotlin-native-prebuilt-*
每个安装都通过检查以下内容进行验证:
bin/klibklib/platform/
MCP 配置
从源码运行
{
"mcpServers": {
"kmp-api-lookup": {
"command": "node",
"args": ["/absolute/path/to/kmp-api-lookup-mcp/dist/index.js"]
}
}
}可选的环境变量覆盖:
{
"mcpServers": {
"kmp-api-lookup": {
"command": "node",
"args": ["/absolute/path/to/kmp-api-lookup-mcp/dist/index.js"],
"env": {
"KONAN_HOME": "/Users/you/.konan/kotlin-native-prebuilt-macos-aarch64-2.2.21"
}
}
}
}作为已安装的二进制文件运行
{
"mcpServers": {
"kmp-api-lookup": {
"command": "kmp-api-lookup-mcp"
}
}
}典型的已安装二进制文件配置
{
"mcpServers": {
"kmp-api-lookup": {
"command": "kmp-api-lookup-mcp",
"env": {
"KONAN_HOME": "/Users/you/.konan/kotlin-native-prebuilt-macos-aarch64-2.2.21"
}
}
}
}开发
脚本
npm run dev从 TypeScript 源码启动服务器npm run build编译到dist/npm start运行已编译的服务器npm run typecheck运行 TypeScript 类型检查npm test运行 Vitestnpm run test:watch在监视模式下启动 Vitest
本地工作流
npm install
npm run typecheck
npm run build
npm test发布
npm 发布由 GitHub Actions 处理。
推送格式为
vX.Y.Z的标签,其中X.Y.Z与package.json中的version匹配。Publish Package工作流会验证包并将其发布到 npm。npm 包必须配置为从
SuLG-ik/kmp-api-lookup-mcpGitHub 仓库进行可信发布。请参阅 PUBLISHING.md 了解一次性 npm 设置和确切的发布步骤。
测试覆盖率
当前的测试套件涵盖:
MCP 工具注册
dump-metadata-signatures行解析合成夹具上的 SQLite 存储和搜索行为
服务器运行时创建
项目结构
.
├── src/
│ ├── index.ts
│ ├── config/
│ ├── indexer/
│ ├── server/
│ ├── storage/
│ ├── tools/
│ ├── search-utils.ts
│ └── types.ts
├── test/
├── package.json
├── tsconfig.json
├── tsconfig.build.json
└── vitest.config.tsThis server cannot be deployed
Maintenance
Related MCP Connectors
iTunes Search MCP — Apple's public catalog search
- IndicesOAuthio.indices
Official Indices MCP server. Turn any website into a reliable API.
Build, run, and inspect iOS apps in disposable hosted Simulators from cloud coding agents.
Related MCP Servers
- AlicenseBqualityFmaintenanceGives Goose/Cursor access to your iOS/macOS project index through the Model Control Protocol (MCP) and IndexStoreDB. This provides exhaustive lists of function call sites to help your agent with refactoring and code navigation.468Apache 2.0
- AlicenseNot gradedqualityAmaintenanceIndexes codebases into a SQLite database to provide metadata, exports, dependency graphs, and change tracking for JS/TS projects. It enables users to search for symbols, map internal dependencies, and monitor file changes through MCP tools and a web dashboard.67 npm4MIT
- AlicenseNot gradedqualityAmaintenanceA comprehensive MCP server and CLI for Bazel-based Apple platform development, providing 112 tools across 19 workflow categories for building, testing, debugging, and managing iOS, macOS, tvOS, watchOS, visionOS, and Swift Package Manager projects.102 npm7MIT
- FlicenseNot gradedqualityDmaintenanceProvides code intelligence by indexing source code into SQLite and offering MCP tools for symbol search, flow tracing, and context retrieval to assist with code navigation and understanding.-