Queries Nexus 3 repositories via MCP to search Maven, Python, and Docker data with per-request authentication.
Configuration
View docs{
"mcpServers": {
"addozhang-nexus-mcp-server": {
"url": "http://localhost:8000/mcp",
"headers": {
"X-Nexus-Url": "https://nexus.example.com",
"X-Nexus-Password": "YOUR_PASSWORD",
"X-Nexus-Username": "admin",
"X-Nexus-Verify-SSL": "true"
}
}
}
}You can query Nexus Repository Manager 3 repositories through this MCP server, enabling AI assistants to access Maven, Python, and Docker data via safe, per-request authenticated endpoints. It supports multiple transport modes and exposes read-only tools to search, list, and retrieve metadata from Nexus REST API v1 endpoints.
This MCP server provides a straightforward way for your AI assistant or client to query Nexus repositories. You will connect through an HTTP MCP endpoint, supplying Nexus connection details in headers for each request. You can choose between Server-Sent Events (SSE) in the default transport or the streamable HTTP transport if your client prefers that protocol. All tool actions are read-only and do not modify any data in Nexus.
Prerequisites you need before starting are Python (for local development) or Docker (for containerized deployment). Ensure you have network access to your Nexus instance.
# From source
# 1) Clone the repository
git clone https://github.com/your-org/nexus-mcp-server.git
cd nexus-mcp-server
# 2) Create a virtual environment (optional but recommended)
python -m venv venv
source venv/bin/activate # or venv/bin/activate.fish
# 3) Install in development mode
pip install -e ".[dev]"
# 4) Run the MCP server (default SSE transport, hosted at http://0.0.0.0:8000)
python -m nexus_mcpOr run the server in a Docker container to avoid local environment setup.
# Quick start (SSE by default)
docker run -p 8000:8000 addozhang/nexus-mcp-server:latest
# If you prefer streamable-http transport, set the environment variable
# NEXUS_MCP_TRANSPORT=streamable-http
docker run -e NEXUS_MCP_TRANSPORT=streamable-http -p 8000:8000 addozhang/nexus-mcp-server:latestFor a container-based deployment, you can also use docker-compose to start the server with the default port mappings.
# docker-compose upConfiguration and security details help you tailor the MCP server to your environment and protect access to Nexus data.
Server configuration is controlled via command line arguments or environment variables. The available options include binding host and port and selecting the transport mode. You can adjust the host, port, and transport as needed for your deployment.
Authentication is performed per request using HTTP headers. You provide the Nexus instance URL, a username, and a password with every request. An optional header controls SSL verification for self-signed certificates.
If you plan to integrate with Claude Desktop or other clients, you can configure MCP client settings to include the required headers for every request.
Troubleshooting, deployment notes, and environment considerations are described in the practical sections below. You should verify server status, ensure your Nexus instance is reachable, and confirm that the appropriate headers are supplied for every tool invocation.
Connection issues can occur if the MCP server is not running, the port is blocked, or the Nexus URL is unreachable. Ensure the server process is active, the correct port is open, and the Nexus URL is accessible from your network.
Authentication errors usually mean headers are missing or credentials are incorrect. Verify X-Nexus-Url, X-Nexus-Username, and X-Nexus-Password are provided for each request, and check that the user has read permissions on the repositories.
If you encounter empty results, double-check the repository names and the existence of artifacts, packages, or images in Nexus. For Python packages, try both hyphen and underscore naming conventions.
Transport mode issues: if streamable-http is not compatible with your client, switch to SSE by starting the server with the default mode or by setting the transport accordingly. Ensure firewalls allow HTTP connections.
Search Maven artifacts across Nexus repositories.
Retrieve all versions of a Maven artifact (paginated).
Search Python packages in Nexus repositories.
Retrieve all versions of a Python package (paginated).
List all Docker images within a repository.
Get all tags for a Docker image.