Back to Browse

Nexus MCP Server

Developer ToolsModerate6.5MCP RegistryLocal
Free

Server data from the Official MCP Registry

Read-only-first Sonatype Nexus Repository 3 inspection, audit and documentation.

About

Read-only-first Sonatype Nexus Repository 3 inspection, audit and documentation.

Security Report

6.5
Moderate6.5Moderate Risk

Valid MCP server (1 strong, 2 medium validity signals). 6 known CVEs in dependencies (0 critical, 1 high severity) Imported from the Official MCP Registry.

7 files analyzed · 6 issues found

Security scores are indicators to help you make informed decisions, not guarantees. Always review permissions before connecting any MCP server.

Permissions Required

This plugin requests these system permissions. Most are normal for its category.

env_vars

Check that this permission is expected for this type of plugin.

HTTP Network Access

Connects to external APIs or services over the internet.

What You'll Need

Set these up before or after installing:

Nexus base URL, for example https://nexus.example.comOptional

Environment variable: NEXUS_URL

Nexus user; a read-only account is recommendedOptional

Environment variable: NEXUS_USERNAME

Password for NEXUS_USERNAMERequired

Environment variable: NEXUS_PASSWORD

Verify the Nexus TLS certificateOptional

Environment variable: NEXUS_VERIFY_TLS

readonly, audit or adminOptional

Environment variable: NEXUS_MCP_MODE

With admin mode, list and allow repository deletion and task runsOptional

Environment variable: NEXUS_MCP_ENABLE_WRITE_TOOLS

List the nexus_api_call tool for REST paths under /service/rest/Optional

Environment variable: NEXUS_MCP_ENABLE_RAW_API

How to Install

Add this to your MCP configuration file:

{
  "mcpServers": {
    "io-github-oomchiller-nexus-mcp-server": {
      "env": {
        "NEXUS_URL": "your-nexus-url-here",
        "NEXUS_MCP_MODE": "your-nexus-mcp-mode-here",
        "NEXUS_PASSWORD": "your-nexus-password-here",
        "NEXUS_USERNAME": "your-nexus-username-here",
        "NEXUS_VERIFY_TLS": "your-nexus-verify-tls-here",
        "NEXUS_MCP_ENABLE_RAW_API": "your-nexus-mcp-enable-raw-api-here",
        "NEXUS_MCP_ENABLE_WRITE_TOOLS": "your-nexus-mcp-enable-write-tools-here"
      },
      "args": [
        "nexus-mcp-server"
      ],
      "command": "uvx"
    }
  }
}

Documentation

View on GitHub

From the project's GitHub README.

Sonatype Nexus MCP Server

CI Release License

A Model Context Protocol server that lets AI assistants inspect, audit and document a Sonatype Nexus Repository Manager 3.x instance. It is read-only by default; administrative tools are not even listed unless you enable them.

flowchart LR
    AI[MCP client] <-->|stdio / Streamable HTTP| Server[nexus-mcp-server]
    Server <-->|REST API| Nexus[Nexus Repository 3.x]

Features

  • Inventory of repositories, blob stores, tasks, cleanup policies, routing rules, content selectors, users, roles and privileges, as far as the configured account can see them.
  • A relationship graph (repository → blob store, group → members, repository → cleanup policy, role → privilege) behind architecture explanations, risk checks and generated Markdown documentation.
  • Bounded full-content audit of one repository, with completion evidence.
  • Drift check of repositories against a declared state.
  • OpenAPI discovery of the instance's REST operations.
  • Every tool declares readOnlyHint, destructiveHint, idempotentHint and openWorldHint; outputs and logs redact the configured password and secret-looking keys.
  • Starts without configuration, so clients and registries can list its tools; calls then report what is missing.

Used in production in read-only mode on Nexus Pro 3.96.1-01; partially verified on OSS 3.70. See docs/COMPATIBILITY.md.

Quick start

The server is listed in the MCP Registry as io.github.oomchiller/nexus-mcp-server; registry-aware clients can install it from there. Manual setup:

Container

docker run --rm -i \
  -e NEXUS_URL=https://nexus.example.com \
  -e NEXUS_USERNAME=readonly-user \
  -e NEXUS_PASSWORD \
  ghcr.io/oomchiller/nexus-mcp-server:0.2.1

Images are published for linux/amd64 and linux/arm64, run as an unprivileged user over stdio, and are configured through the environment only. Release digests are listed on the releases page.

Local process

{
  "mcpServers": {
    "nexus": {
      "command": "uvx",
      "args": ["--from", "git+https://github.com/oomchiller/nexus-mcp-server@v0.2.1", "nexus-mcp-server"],
      "env": {
        "NEXUS_URL": "https://nexus.example.com",
        "NEXUS_USERNAME": "readonly-user",
        "NEXUS_PASSWORD": "change-me"
      }
    }
  }
}

More client examples (Claude Desktop, Codex CLI, Gemini CLI) are in examples/.

Configuration

Settings come from the environment or a .env file in the working directory.

VariableDefaultMeaning
NEXUS_URLunsetNexus base URL. Without it the server starts, and calls report that Nexus is not configured.
NEXUS_USERNAME / NEXUS_PASSWORDunsetBasic authentication. Use a read-only Nexus account.
NEXUS_VERIFY_TLStrueVerify the Nexus TLS certificate.
NEXUS_CA_BUNDLEunsetPEM file of CA certificates to trust instead of the public roots; needs NEXUS_VERIFY_TLS=true.
NEXUS_TIMEOUT_SECONDS30HTTP timeout.
NEXUS_ALLOWED_HOSTShost of NEXUS_URLComma-separated hosts the client may contact.
NEXUS_LOG_LEVELINFOLog level (stderr).
NEXUS_MCP_MODEreadonlyreadonly, audit (same gates as readonly) or admin.
NEXUS_MCP_ENABLE_WRITE_TOOLSfalseWith admin, lists and allows the write tools.
NEXUS_MCP_ENABLE_RAW_APIfalseLists nexus_api_call.
NEXUS_MCP_RAW_API_GET_ONLYfalseRestrict nexus_api_call to GET.
NEXUS_MCP_MAX_RAW_RESPONSE_BYTES1048576Largest Nexus response accepted.
NEXUS_MCP_GRAPH_TTL_SECONDS60How long graph tools reuse one Knowledge Graph build; 0 rebuilds on every call.
NEXUS_MCP_ENABLE_PROMPTStrueRegister prompts.
NEXUS_MCP_ENABLE_RESOURCEStrueRegister resources.

Token authentication is not implemented.

The server does not read SSL_CERT_FILE or the system trust store. For a Nexus behind a private CA, set NEXUS_CA_BUNDLE rather than disabling verification. An unreadable bundle, or a bundle with verification disabled, stops the server at startup.

Gateways that run several instances side by side and prefix only tool names (Docker MCP Gateway) should set NEXUS_MCP_ENABLE_PROMPTS=false and NEXUS_MCP_ENABLE_RESOURCES=false.

Command line

--transport {stdio,sse,streamable-http}   default stdio
--host HOST / --port PORT                 HTTP bind, default 127.0.0.1:8000, no authentication
--nexus-url URL                           overrides NEXUS_URL
--nexus-username USERNAME                 overrides NEXUS_USERNAME
--verify-ssl / --no-verify-ssl            overrides NEXUS_VERIFY_TLS
--ca-bundle PATH                          overrides NEXUS_CA_BUNDLE

Keep NEXUS_PASSWORD in the environment, not on the command line.

Tools

GroupTools
Explanationnexus_understand_architecture, nexus_explain_repository, nexus_explain_storage_strategy
Inventory and documentationnexus_generate_inventory_json, nexus_generate_architecture_md, nexus_generate_repository_catalog_md, nexus_audit_repository_content
Auditnexus_detect_architecture_smells, nexus_generate_audit_report
Driftnexus_compare_live_state_with_declared_state
OpenAPInexus_openapi_list_operations, nexus_generate_capability_map

Listed only when enabled:

ToolRequires
nexus_api_callNEXUS_MCP_ENABLE_RAW_API=true; paths are canonicalized and restricted to /service/rest/.
nexus_delete_repository, nexus_run_taskNEXUS_MCP_MODE=admin and NEXUS_MCP_ENABLE_WRITE_TOOLS=true.

Resources: nexus://instance/summary, nexus://repositories, nexus://blobstores, nexus://tasks, nexus://cleanup-policies, nexus://security/summary, nexus://architecture, nexus://knowledge_graph. Prompts: nexus_audit_prompt, nexus_iac_drift_prompt.

Limits worth knowing: drift compares repository name, format and type only; risk checks cover a small set of graph rules; findings are only as complete as the REST APIs visible to the account. Optional endpoints that are missing for version, edition or permission reasons appear as limitations, not failures.

Safety

  • Read-only by default. Write tools and the raw API are not listed unless enabled, and every write is still checked against the mode at call time.
  • The client contacts only NEXUS_ALLOWED_HOSTS and only paths relative to NEXUS_URL.
  • Redaction is defence in depth, not a substitute for a least-privilege Nexus account. See SECURITY.md.

Development

uv sync --locked
uv run pytest
uv run ruff check . && uv run ruff format --check .
uv run mypy src tests

See CONTRIBUTING.md, ARCHITECTURE.md, DECISIONS.md and ROADMAP.md.

License

MIT; see LICENSE.

Reviews

No reviews yet

Be the first to review this server!