Prototype · Preview: every server in the official registry, synced every 30 minutes. Reviews and accounts come in a later step.
PopNx MCPMCP servers for people who use AI · explained in plain words

Kotlin & Java Library Sources

by aoreshkovversion 0.10.1i★ –iRuns on your computer
Registry nameio.github.aoreshkov/kotlin-lib-mcp

Install

Overview

Description from the maker (original English)

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

PopNx MCP’s three pillars

These three are never merged into one score: opinions, measurements and popularity are different things.

What you can do with it

We have not written a plain-language summary for this one yet. Below are the facts we read from the registry.

  • Connection: Runs on your computer
  • Transport: stdio
  • Category: Other

Install

Pick the AI app you use, then copy the settings.

Before you install

  • Basic checks: 1 of 1 passed
  • Runs on your computer with your user’s permissions (files, network, apps).
  • The registry lists no key to fill in.

You need

Which app do you use?

Pick your app above. We remember it, so next time the button says “Install in …”.

Open Claude Desktop → Settings → Developer → Edit Config, and paste this into 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"
      ]
    }
  }
}

Run this in your terminal

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

Open in Cursor

Or copy the settings yourself

Paste into .cursor/mcp.json in your project, or ~/.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"
      ]
    }
  }
}

Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.

Open in VS Code

Or copy the settings yourself

Paste into .vscode/mcp.json in your project

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

Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.

This one runs on your computer, and ChatGPT can only connect to servers on the internet. Pick another app.

Your choice stays on this device in a cookie; no account needed.

These settings are generated from the maker’s registry entry. If the README says otherwise, follow the README.

What it can do

Runs on your computer; the tool list appears in your AI app after you install it.

Basic checksi

We check information anyone can see; we have not read the code. Checks that do not apply are left out of the count. · Checked Nov 7, 2026

  • ✓ Pass

    Maker matches the repo

    The registry name was verified with the GitHub account aoreshkov, which owns the repo

  • … Not checked yet

    Still maintained

    We have not read this repo from GitHub yet

  • … Not checked yet

    Has a licence

    We have not read this repo from GitHub yet

  • – Not applicable

    Endpoint responds

    This one runs on your computer; there is no internet endpoint

  • – Not applicable

    Sign-in with OAuth

    Runs on your computer and uses local settings instead

  • … Not checked yet

    No hidden instructions in tool descriptions

    Runs on your computer; we can only read tool lists from internet endpoints

Compared with others in Otheri

  • More stars than 0% of the other 32709 servers in this category
  • Published to the registry more recently than 80% of the other 32709 servers in this category
  • Basic checks equal to or better than 100% of the other 32709 servers in this category

Compared with every active server in this category in the registry. Stars count only when the publisher owns the repo.

Common questions

Is Kotlin & Java Library Sources safe?

It passed 1 of 1 applicable basic checks. We have not read the code. Before adding a key or token, see what access the server asks for and use a key with only the permissions you need.

What keys or codes does it need?

The registry does not list a required key, though some servers ask you to sign in on first use.

Does it run on my computer or in the cloud?

It runs on your computer. Your AI app starts it when needed, and data does not pass through the maker’s servers (unless it calls an online service itself).

Is it still maintained?

The GitHub repo last changed –, and the latest version (0.10.1) reached the registry 9 days ago.

Which apps can use it?

Apps that support MCP, such as Claude Desktop, Claude Code, Cursor and VS Code. You also need Docker on your computer.

What can I use instead?

In the same category: Spec Driven Development, Remote Desktop Commander, SwarmMemo

Alternatives

Servers in the same category from other makers, sorted by stars.

Reading a card:★ GitHub starsiThree pillars: reviews · checks · usageiUpdated = latest version published to the registryi

Spec Driven Development

by formulahendry

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

Runs on your computer★ 440MITUpdated 14 months ago
Install

Remote Desktop Commander

by desktop-commander

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

Runs in the cloud★ 211Updated 2 days ago
Install

SwarmMemo

by Hugo0

Talk with agent swarms: rooms, private messages and paid tasks for AI agents

Runs in the cloudUpdated today
Install

README from the maker

Open the README

Copied from the maker’s repo as written. PopNx MCP has not reviewed or endorsed it. HTML, images and scripts are removed. Links lead off this site.

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

Only the beginning is shown; read the rest in the repo

Ask PopNx