brianveltman/sonatype-mcp
If you are the rightful owner of sonatype-mcp and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.
The Sonatype MCP Server is a Model Context Protocol server designed for Sonatype Nexus Repository Manager, facilitating AI assistants to interact with Nexus repositories through a standardized interface.
Sonatype MCP Server
A Model Context Protocol (MCP) server for Sonatype Nexus Repository Manager that enables AI assistants to interact with Nexus repositories through a standardized interface.
Features
- Repository Management: List, view, and manage repositories
- Component Operations: Search, retrieve, and manage components
- System Administration: Monitor system status, blob stores, and metrics
- Security: HTTP Basic Authentication with read-only mode support
Installation
Prerequisites
- Node.js 18 or higher
- Access to a Nexus Repository Manager instance
- Valid Nexus credentials
Using npm
npm install -g @brianveltman/sonatype-mcp
Usage
Claude Desktop Integration
Add to your claude_desktop_config.json
:
{
"mcpServers": {
"sonatype-mcp": {
"command": "npx",
"args": [
"-y",
"@brianveltman/sonatype-mcp",
"--nexus-url", "http://localhost:8081",
"--nexus-username", "your-username",
"--nexus-password", "your-password"
]
}
}
}
With Firewall Quarantine Support
To enable Firewall quarantine tools, add Firewall credentials:
{
"mcpServers": {
"sonatype-mcp": {
"command": "npx",
"args": [
"-y",
"@brianveltman/sonatype-mcp",
"--nexus-url", "http://localhost:8081",
"--nexus-username", "your-username",
"--nexus-password", "your-password",
"--firewall-url", "http://localhost:8070",
"--firewall-username", "firewall-user",
"--firewall-password", "firewall-password"
]
}
}
}
Visual Studio Code Integration
Add to your mcp.json
:
{
"servers": {
"sonatype-mcp": {
"command": "npx",
"args": [
"-y",
"@brianveltman/sonatype-mcp",
"--nexus-url",
"http://localhost:8081",
"--nexus-username",
"your-username",
"--nexus-password",
"your-password"
],
"type": "stdio"
}
},
"inputs": []
}
With Firewall Support
{
"servers": {
"sonatype-mcp": {
"command": "npx",
"args": [
"-y",
"@brianveltman/sonatype-mcp",
"--nexus-url",
"http://localhost:8081",
"--nexus-username",
"your-username",
"--nexus-password",
"your-password",
"--firewall-url",
"http://localhost:8070",
"--firewall-username",
"firewall-user",
"--firewall-password",
"firewall-password"
],
"type": "stdio"
}
},
"inputs": []
}
Available Tools
Repository Management
nexus_list_repositories
- List all repositories with filteringnexus_get_repository
- Get repository detailsnexus_create_repository
- Create proxy, hosted, or group repositories (write mode)nexus_update_repository
- Update repository configuration (write mode)nexus_delete_repository
- Delete repositories (write mode)
Component Management
nexus_search_components
- Search components across repositoriesnexus_get_component
- Get component detailsnexus_delete_component
- Delete components (write mode)nexus_get_component_versions
- List all versions of a componentnexus_upload_component
- Upload components with assets to repositories (write mode)
Asset Management
nexus_upload_asset
- Upload individual assets to raw repositories (write mode)
System Administration
nexus_get_system_status
- Get system health statusnexus_list_blob_stores
- List blob store configurationsnexus_list_tasks
- List scheduled tasksnexus_get_usage_metrics
- Get usage metrics including total components and daily request counts (requires nexus:metrics:read privilege)nexus_generate_support_zip
- Generate and optionally save a support zip file containing diagnostic information for troubleshooting
Firewall Quarantine (Optional)
firewall_get_quarantined_components
- Retrieve components quarantined by Sonatype Firewall policies (requires Firewall credentials)firewall_release_from_quarantine
- Release components from Firewall quarantine by waiving policy violations (write mode, requires Firewall credentials)
Usage Examples
Common Prompts for AI Assistants
Once you have the MCP server configured, you can use natural language prompts with your AI assistant:
Repository Management
- "List all Maven repositories"
- "Show me details about the npm-public repository"
- "Create a new hosted Maven repository called 'internal-releases'"
- "What repositories do we have for Docker images?"
Component Search and Analysis
- "Search for all versions of the Spring Boot starter components"
- "Find all components in the maven-central repository that contain 'jackson'"
- "Show me all versions of com.fasterxml.jackson.core:jackson-core"
- "What's the latest version of lodash in our npm repository?"
System Monitoring
- "Check the system health status"
- "Show me the current usage metrics for our Nexus instance"
- "List all blob stores and their sizes"
- "What scheduled tasks are currently running?"
- "Generate a support zip file for troubleshooting"
- "Create a support zip with system info and logs, save it to the raw repository"
Security and Compliance
- "Search for components with known vulnerabilities"
- "Find all snapshot versions in our release repositories"
- "Show me components uploaded in the last 24 hours"
- "Show me all components quarantined by Firewall policies"
- "Check if any components containing 'log4j' are quarantined"
- "Release quarantine ID 'abc123' with a comment explaining the business justification"
Advanced Use Cases
Dependency Analysis
"Search for all components that depend on log4j and show me their versions.
Then check if any of them are using vulnerable versions."
Repository Cleanup
"Find all snapshot artifacts older than 30 days in the maven-snapshots repository
and prepare a list for cleanup."
Release Management
"Check if version 2.1.0 of our internal library 'com.company:core-utils'
exists in the releases repository, and if not, help me upload it."
Storage Management
"Show me which blob stores are consuming the most space and identify
the largest components in each repository."
Troubleshooting and Support
"Generate a comprehensive support zip file including system information,
thread dumps, metrics, and log files, but exclude security information
for sharing with external support."
Firewall Quarantine Management
"Check all repositories for quarantined components, identify which policy
violations are causing the most quarantines, and provide a summary report
with recommendations for policy adjustments."
Interactive Workflows
The MCP server enables complex, multi-step workflows:
- Component Discovery: Start by searching for components
- Detailed Analysis: Get specific component details
- Repository Operations: Create, update, or manage repositories
- Upload Management: Upload new versions or assets
- Monitoring: Check system health and usage metrics
Example Conversation Flow
You: "What Maven repositories do we have?"
AI: [Lists repositories using nexus_list_repositories]
You: "Show me the largest components in maven-releases"
AI: [Searches components and shows results with sizes]
You: "Upload version 1.2.0 of com.example:my-app to maven-releases"
AI: [Uses nexus_upload_component to upload the specified version]
You: "Check if the upload was successful"
AI: [Searches for the component to verify upload]
Troubleshooting Examples
Permission Issues
If you encounter permission errors:
- "Check the system status to see if I have the required permissions"
- "List the repositories I have access to"
- "Show me what admin tasks are available"
Component Not Found
When searching doesn't return expected results:
- "Search for 'spring' in all repositories, not just maven-central"
- "Check if the component name has special characters or different casing"
- "List all components in the repository to see what's actually there"
Upload Issues
For upload problems:
- "Verify the repository format supports the type of component I'm trying to upload"
- "Check if the repository is in read-only mode"
- "Show me the repository configuration for upload settings"
Best Practices
Efficient Searching
- Use specific search terms to reduce result sets
- Filter by repository when you know the target location
- Combine multiple search criteria for precise results
Repository Management
- Always check repository details before making changes
- Use descriptive names for new repositories
- Verify blob store configuration before creating repositories
Monitoring and Maintenance
- Regularly check system health status
- Monitor usage metrics to understand growth patterns
- Review scheduled tasks for maintenance operations
Integration Examples
CI/CD Pipeline Integration
"After our build completes, check if the new artifact version already exists
in the releases repository. If not, upload it and verify the upload succeeded."
Dependency Auditing
"Generate a report of all third-party dependencies in our maven-central proxy,
grouped by organization, and highlight any with recent security advisories."
Storage Optimization
"Identify duplicate artifacts across repositories and suggest consolidation
opportunities to optimize storage usage."
Development
Building from Source
git clone https://github.com/brianveltman/sonatype-mcp.git
cd sonatype-mcp
yarn install
yarn build
Running in Development
yarn dev
Running Tests
yarn test
Security
- Uses HTTP Basic Authentication
- Supports read-only mode for enhanced security
- Input validation on all parameters
- Comprehensive error handling
Contributing
- Fork the repository
- Create a feature branch
- Make your changes
- Add tests if applicable
- Submit a pull request
Example how to use the source with Claude
{
"mcpServers": {
"sonatype-mcp": {
"command": "node",
"args": [
"/path-to/mcp-sonatype/build/index.js",
"--nexus-url",
"http://localhost:8081",
"--nexus-username",
"your-username",
"--nexus-password",
"your-password"
]
}
}
}
License
MIT License - see LICENSE file for details
Support
For issues and questions:
- GitHub Issues: https://github.com/brianveltman/sonatype-mcp/issues