原型 · 预览版:收录官方注册中心里的全部服务器,每 30 分钟同步一次。评价和账户功能将在后续阶段推出。
PopNx MCP为使用 AI 的人准备的 MCP 服务器 · 用大白话讲清楚

Kotlin & Java Library Sources

作者:aoreshkov版本 0.10.1i★ –i在你的电脑上运行
注册名称io.github.aoreshkov/kotlin-lib-mcp

安装

概览

作者提供的说明(英文原文)

Kotlin/Java library sources, public API and KDoc from the real Maven sources jar, for AI agents

PopNx MCP 的三大支柱

这三项永远不会合并成一个分数:意见、测量和人气是不同的东西。

它能帮你做什么

我们还没有为它写通俗的介绍。下面是我们从注册中心读取到的事实。

  • 连接方式: 在你的电脑上运行
  • 传输方式: stdio
  • 分类: 其他

安装

选择你使用的 AI 应用,然后复制设置。

安装之前

  • 基础检查:1 项中通过 1 项
  • 在你的电脑上运行,拥有你的用户账户的权限(文件、网络、应用)。
  • 注册中心没有列出需要填写的密钥。

你需要

你用的是哪个应用?

在上方选择你的应用。我们会记住它,下次按钮会显示“安装到 …”。

打开 Claude Desktop → Settings → Developer → Edit Config,把下面的内容粘贴到 claude_desktop_config.json

{
  "mcpServers": {
    "kotlin-lib": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "ghcr.io/aoreshkov/kotlin-lib-mcp:0.10.1",
        "--max-concurrent-fetches",
        "2"
      ]
    }
  }
}

在终端中运行这条命令

claude mcp add kotlin-lib -- docker run -i --rm ghcr.io/aoreshkov/kotlin-lib-mcp:0.10.1 --max-concurrent-fetches 2

在 Cursor 中打开

或者自己复制设置

粘贴到项目中的 .cursor/mcp.json,或 ~/.cursor/mcp.json

{
  "mcpServers": {
    "kotlin-lib": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "ghcr.io/aoreshkov/kotlin-lib-mcp:0.10.1",
        "--max-concurrent-fetches",
        "2"
      ]
    }
  }
}

浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。

在 VS Code 中打开

或者自己复制设置

粘贴到项目中的 .vscode/mcp.json

{
  "servers": {
    "kotlin-lib": {
      "type": "stdio",
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "ghcr.io/aoreshkov/kotlin-lib-mcp:0.10.1",
        "--max-concurrent-fetches",
        "2"
      ]
    }
  }
}

浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。

这个服务器在你的电脑上运行,而 ChatGPT 只能连接互联网上的服务器。请选择其他应用。

你的选择通过 Cookie 保存在这台设备上,无需账户。

这些设置是根据作者在注册中心的条目生成的。如果 README 的写法不同,请以 README 为准。

它能做什么

它在你的电脑上运行;安装后,工具列表会显示在你的 AI 应用中。

基础检查i

我们检查的是任何人都能看到的信息;我们没有阅读代码。不适用的检查项不计入总数。 · 检查于 2026年11月7日

  • ✓ 通过

    作者与仓库一致

    注册名称已通过 GitHub 账户 aoreshkov 验证,该账户拥有此仓库

  • … 尚未检查

    仍在维护

    我们还没有从 GitHub 读取这个仓库

  • … 尚未检查

    有许可证

    我们还没有从 GitHub 读取这个仓库

  • – 不适用

    端点有响应

    它在你的电脑上运行,没有互联网端点

  • – 不适用

    使用 OAuth 登录

    在你的电脑上运行,改用本地设置

  • … 尚未检查

    工具描述中没有隐藏指令

    它在你的电脑上运行;我们只能读取互联网端点的工具列表

与“其他”中的其他服务器比较i

  • 星标数多于此分类中其他 32715 个服务器的 0%
  • 发布到注册中心的时间比此分类中其他 32715 个服务器的 80% 更新
  • 基础检查结果等于或优于此分类中其他 32715 个服务器的 100%

与注册中心里这个分类中所有活跃的服务器比较。只有当发布者拥有该仓库时,星标数才计入。

常见问题

Kotlin & Java Library Sources 安全吗?

它在 1 项适用的基础检查中通过了 1 项。我们没有阅读代码。在添加密钥或令牌之前,请先看看这个服务器要求哪些权限,并使用只具备所需权限的密钥。

它需要哪些密钥或代码?

注册中心没有列出必需的密钥,不过有些服务器会在首次使用时要求你登录。

它在我的电脑上运行还是在云端?

它在你的电脑上运行。你的 AI 应用会在需要时启动它,数据不会经过作者的服务器(除非它自己调用在线服务)。

它还在维护吗?

GitHub 仓库最后更新于–,最新版本(0.10.1)于9天前进入注册中心。

哪些应用可以使用它?

支持 MCP 的应用,例如 Claude Desktop、Claude Code、Cursor 和 VS Code。你的电脑上还需要有 Docker。

有什么可以替代它?

同一分类中有:Spec Driven Development, Remote Desktop Commander, First Sale Scout

替代选择

同一分类中其他作者的服务器,按星标数排序。

如何看卡片:★ GitHub 星标i三大支柱:评价 · 检查 · 使用情况i更新 = 最新版本发布到注册中心的时间i

Spec Driven Development

作者:formulahendry

MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.

在你的电脑上运行★ 440MIT14个月前更新
安装

Remote Desktop Commander

作者:desktop-commander

Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.

在云端运行★ 211前天更新
安装

First Sale Scout

作者:firstsale.pro

Playbooks and a 14-day checklist for founders winning their first paying customers.

在云端运行今天更新
安装

作者的 README

打开 README

按原文从作者的仓库复制。PopNx MCP 没有审查或背书其内容。HTML、图片和脚本已被移除。链接会离开本站。

kotlin-lib-mcp

Give your AI agent the real sources of any Maven-published Kotlin/Java library.

An MCP server that, on request, downloads the sources of a library (e.g. io.ktor:ktor-client-core:3.5.1), parses them with the Kotlin Analysis API (standalone K2/FIR mode), and exposes structured information — public API surface, KDoc, dependencies/metadata, raw source + search — to MCP clients: Claude Code, Claude Desktop, IntelliJ IDEA (AI Assistant / Junie), VS Code and GitHub Copilot. An optional Compose Desktop dashboard runs the same server in-process.

[Twelve tools](#tools) — fetch_library · list_packages · list_declarations · get_api_signature · get_kdoc · get_source · search_source · diff_versions · diff_api · get_dependencies · list_versions · get_latest_version — plus MCP resources and a prompt.

Those install the Docker image. For the Claude Code plugin (which runs on your JDK), IntelliJ IDEA, or to run the release zip without Docker, see Quick start.

Compose Desktop dashboard

Why this and not a docs-lookup server?

Most documentation MCP servers scrape rendered doc sites or feed the model pre-digested summaries. This one works from the published sources jar — the ground truth:

  • Resolved signatures, not regex guesses. Declarations are analyzed with the same Analysis API that powers the Kotlin IDE, so get_api_signature returns real, type-resolved signatures (with graceful best-effort fallback when transitive dependencies are missing).
  • KMP-aware. Kotlin Multiplatform libraries publish per-target sources jars; these are resolved properly via .module Gradle metadata, and every symbol is tagged with its targets.
  • KDoc as data. Summaries, descriptions and tags are extracted per declaration — not whole HTML pages.
  • Exact version you asked for, offline after the first fetch. Everything is cached on disk keyed by group/artifact/version; no re-downloads, no drift between the docs and the version you actually depend on.
  • Raw source when you need it. get_source and bounded search_source let the agent read the actual implementation, not just the API.

Quick start (no build required)

Option 1 — Claude Code plugin. The server plus skills that make Claude reach for it, two commands (/kotlin-lib:api, /kotlin-lib:migrate) and a setup helper. Needs a JDK 25+ — the one on your PATH, or any other set by path in the plugin's java option; no Docker. It downloads the release zip on first use:

/plugin marketplace add aoreshkov/kotlin-lib-mcp

/plugin install kotlin-lib@kotlin-lib-mcp

See plugin/README.md for what it bundles.

Option 2 — release zip. Download the latest release, unzip (needs a Java 25+ runtime), then:

claude mcp add kotlin-lib -- /path/to/kotlin-lib-mcp-server-<version>/bin/server --transport stdio

Option 3 — Docker.

claude mcp add kotlin-lib -- docker run -i --rm -v kotlin-lib-mcp-cache:/home/mcp/.cache ghcr.io/aoreshkov/kotlin-lib-mcp

Option 4 — IntelliJ IDEA / Android Studio. JetBrains IDEs are MCP clients too — which is where most Kotlin gets written. Open Settings | Tools | AI Assistant | Model Context Protocol (MCP), click Add, pick the stdio transport and paste:

{

"mcpServers": { "kotlin-lib": { "command": "docker", "args": ["run", "-i", "--rm", "-v", "kotlin-lib-mcp-cache:/home/mcp/.cache", "ghcr.io/aoreshkov/kotlin-lib-mcp"] } } }

Choose global or project level, Apply, and the tools appear in the AI Assistant chat. Junie takes the same JSON in its own MCP settings. Swap command/args for the release-zip launcher (bin/server --transport stdio) if you'd rather not use Docker.

Option 5 — MCP Registry. The server is published to the official MCP registry as io.github.aoreshkov/kotlin-lib-mcp, and listed in the GitHub MCP Registry; registry-aware clients can install it from there. The entry declares two optional arguments a client can ask you for when it installs: --repo, for each extra Maven repository (a private one, or https://maven.google.com for AndroidX), and --max-concurrent-fetches.

Or in .mcp.json / Claude Desktop config:

{

"mcpServers": { "kotlin-lib": { "command": "C:/path/to/kotlin-lib-mcp-server- /bin/server.bat", "args": ["--transport", "stdio"] } } }

Streamable HTTP. Run --transport http --port 3000 and point the client at http://127.0.0.1:3000/mcp. Out of the box it is reachable from this machine only: the server binds to loopback, and DNS-rebinding protection rejects any Host (or Origin) header other than localhost, 127.0.0.1 or [::1]. There is no built-in authentication, so to serve other machines put an authenticating reverse proxy in front, then bind wider with --host (e.g. 0.0.0.0) and name the public host with --allowed-host (plus --allowed-origin for browser clients).

In Docker, loopback is the container's own, which a published port cannot reach. Bind every interface inside the container and publish the port on the host's loopback instead — the endpoint is still http://127.0.0.1:3000/mcp, and still unreachable from other machines:

docker run --rm -p 127.0.0.1:3000:3000 -v kotlin-lib-mcp-cache:/home/mcp/.cache \

ghcr.io/aoreshkov/kotlin-lib-mcp --transport http --host 0.0.0.0 --port 3000

CLI flags — server --help lists them all with their defaults, the OTEL_* variables and examples: --transport stdio|http; --port, --host, --allowed-host and --allowed-origin, which apply to the http transport only, so passing one with stdio is a usage error; --cache-dir; --repo (repeatable, searched after Maven Central) and --no-maven-central (only the --repo repositories, for a mirror that proxies Central); --max-concurrent-fetches; and the opt-ins --forward-logs-to-client (stdio only), --otel (see Telemetry) and --tasks (see Tasks). --version prints the server's version. A command-line mistake exits 2 and an internal error 70 (sysexits.h). SIGTERM or Ctrl-C stops the server cleanly within 5 seconds: task records are saved and buffered traces flushed before the process ends.

Tools

All tools take a Maven coordinate (group:artifact:version). Call `fetch_library` first — it downloads, extracts and analyzes the sources once; every other tool answers from the cached index. fetch_library, list_versions and get_latest_version also accept group:artifact, and fetch_library accepts group:artifact:latest to resolve the latest stable release.

ToolPurpose
fetch_libraryDownload + analyze + cache; returns a summary. Idempotent. Version may be omitted or latest
list_packagesPackages with declaration counts and KMP targets; paged
list_declarationsDeclarations with signatures and deprecations; filter by package, visibility and deprecated; paged
get_api_signatureResolved signature of one declaration by FQ name, with its deprecation and ReplaceWith
get_kdocKDoc (summary, description, tags) of one declaration
get_sourceRaw source of a file (path) or one declaration (fqName); paged by line
search_sourceSubstring/regex search; bounded, returns file:line snippets
diff_versionsUnified diff between two fetched versions; summary-first, paged, path-filtered
diff_apiPublic-API changes between two fetched versions — added, removed, changed, deprecated (with ReplaceWith); summary-first, paged, package- and change-filtered
get_dependenciesDependency tree from .pom/.module; bounded depth and maxNodes
list_versionsPublished versions from maven-metadata.xml, newest-first; paged
get_latest_versionLatest stable release (and newest overall) from maven-metadata.xml

Every tool ships the metadata the MCP spec encourages clients to use: a display title, behavior annotations (readOnlyHint: true everywhere except fetch_library, which is additive-only — destructiveHint: false, idempotentHint: true; tools that reach Maven repositories set openWorldHint: true, cache-only tools false), a typed `outputSchema` derived from the response DTO's serializer, and an icon. Results carry both compact JSON text and the matching structuredContent object, so structured-output clients and plain-text clients see the same payload.

fetch_library also reports progress notifications (download → analyze → cache) when the client sends a progressToken. Logs go to stderr by default (which the spec blesses for all stdio logging); the deprecated MCP logging capability — mirroring logs to clients as notifications/message (respecting logging/setLevel) — is opt-in via --forward-logs-to-client, for stdio clients that surface MCP log messages but drop stderr. It is refused with --transport http, where every session would receive every other session's logs.

Elicitation

When fetch_library is called without a version (io.ktor:ktor-client-core, or …:latest) it has to guess. If the client advertised the `elicitation` capability, it asks instead: an elicitation/create form-mode request carrying a single-select version picker — the titled oneOf shape from SEP-1330, with the latest stable release pre-selected as the schema default.

The userThe server
accepts a versionfetches exactly that one

| declines | fetches the latest stable release, as it

只显示了开头部分;其余内容请在仓库中阅读

问 PopNx