mcpField
S
Sonatype Nexus

Sonatype Nexus

Local
github.comDeveloper Tools0Updated 1w ago

About Sonatype Nexus

An MCP server for inspecting, auditing, and documenting Sonatype Nexus Repository 3.x. It is read-only by default, with administrative write tools hidden unless enabled, and can produce architecture documentation and compare live state with declared state.

Key features

  1. 01Inspect repositories and related configuration
  2. 02Generate architecture and Markdown documentation
  3. 03Audit repository contents and check risks
  4. 04Compare live and declared state
  5. 05Discover instance REST API operations
  6. 06Default to read-only with secret redaction

Use cases

  1. 01Inventory Nexus repositories and storage configuration
  2. 02Create architecture and repository catalog documents
  3. 03Audit repository content or check architecture risks
  4. 04Check for drift in repository configuration

MCP support

Accepts MCP client requests over stdio or Streamable HTTP and accesses Nexus Repository 3.x through its REST API. It exposes tools, resources, and prompts; write tools are disabled by default.

Configuration

Local server config is the same for every client. Copy it into your client’s MCP config file.

mcp.json · Universal config
{
"mcpServers": {
"oomchiller-nexus": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"NEXUS_URL",
"-e",
"NEXUS_USERNAME",
"-e",
"NEXUS_PASSWORD",
"-e",
"NEXUS_VERIFY_TLS",
"-e",
"NEXUS_MCP_MODE",
"-e",
"NEXUS_MCP_ENABLE_WRITE_TOOLS",
"-e",
"NEXUS_MCP_ENABLE_RAW_API",
"ghcr.io/oomchiller/nexus-mcp-server:0.2.1"
],
"env": {
"NEXUS_URL": "<NEXUS_URL>",
"NEXUS_USERNAME": "<NEXUS_USERNAME>",
"NEXUS_PASSWORD": "<NEXUS_PASSWORD>",
"NEXUS_VERIFY_TLS": "<NEXUS_VERIFY_TLS>",
"NEXUS_MCP_MODE": "<NEXUS_MCP_MODE>",
"NEXUS_MCP_ENABLE_WRITE_TOOLS": "<NEXUS_MCP_ENABLE_WRITE_TOOLS>",
"NEXUS_MCP_ENABLE_RAW_API": "<NEXUS_MCP_ENABLE_RAW_API>"
}
}
}
}
Run commanddocker run -i --rm -e NEXUS_URL -e NEXUS_USERNAME -e NEXUS_PASSWORD -e NEXUS_VERIFY_TLS -e NEXUS_MCP_MODE -e NEXUS_MCP_ENABLE_WRITE_TOOLS -e NEXUS_MCP_ENABLE_RAW_API ghcr.io/oomchiller/nexus-mcp-server:0.2.1
Environment variables to set
NEXUS_URLNexus base URL, for example https://nexus.example.com
NEXUS_USERNAMENexus user; a read-only account is recommended
NEXUS_PASSWORDSecretPassword for NEXUS_USERNAME
NEXUS_VERIFY_TLSVerify the Nexus TLS certificate
NEXUS_MCP_MODEreadonly, audit or admin
NEXUS_MCP_ENABLE_WRITE_TOOLSWith admin mode, list and allow repository deletion and task runs
NEXUS_MCP_ENABLE_RAW_APIList the nexus_api_call tool for REST paths under /service/rest/

Local servers need a runtime on your machine (e.g. Node.js 18+). Config file locations differ by client; see your client’s docs.

Packages
ocighcr.io/oomchiller/nexus-mcp-server:0.2.1

Tools

No tool list yet

Local servers expose tools only once running on your machine, and the maintainer has not provided a tool list.

Details

From the project 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/[email protected]", "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.

Comments

Markdown supported

New to MCP?

From what the protocol is to installing your first server, these answers cover most first questions.

An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.