{"id":29664301,"url":"https://github.com/brianveltman/sonatype-mcp","last_synced_at":"2026-01-20T17:53:38.006Z","repository":{"id":304129990,"uuid":"1017947997","full_name":"brianveltman/sonatype-mcp","owner":"brianveltman","description":"MCP server for Sonatype Nexus Repository Manager","archived":false,"fork":false,"pushed_at":"2025-07-14T02:35:21.000Z","size":307,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-07-22T12:52:22.783Z","etag":null,"topics":["ai-assistant","claude","claude-code","mcp","nexus"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/brianveltman.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-07-11T10:56:29.000Z","updated_at":"2025-07-17T06:20:26.000Z","dependencies_parsed_at":"2025-07-11T11:44:19.434Z","dependency_job_id":null,"html_url":"https://github.com/brianveltman/sonatype-mcp","commit_stats":null,"previous_names":["brianveltman/sonatype-mcp"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/brianveltman/sonatype-mcp","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brianveltman%2Fsonatype-mcp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brianveltman%2Fsonatype-mcp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brianveltman%2Fsonatype-mcp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brianveltman%2Fsonatype-mcp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/brianveltman","download_url":"https://codeload.github.com/brianveltman/sonatype-mcp/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brianveltman%2Fsonatype-mcp/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":267778838,"owners_count":24143132,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-07-29T02:00:12.549Z","response_time":2574,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ai-assistant","claude","claude-code","mcp","nexus"],"created_at":"2025-07-22T12:36:37.871Z","updated_at":"2026-01-20T17:53:37.926Z","avatar_url":"https://github.com/brianveltman.png","language":"TypeScript","funding_links":[],"categories":["Community Servers","カテゴリ","📦 Other","MCP Servers \u0026 Protocol"],"sub_categories":["🛠️ \u003ca name=\"developer-tools\"\u003e\u003c/a\u003e開発ツール"],"readme":"# Sonatype MCP Server\n\nA Model Context Protocol (MCP) server for Sonatype Nexus Repository Manager that enables AI assistants to interact with Nexus repositories through a standardized interface.\n\n![NPM Downloads](https://img.shields.io/npm/d18m/%40brianveltman%2Fsonatype-mcp)\n\n## Features\n\n- **Repository Management**: List, view, and manage repositories\n- **Component Operations**: Search, retrieve, and manage components\n- **System Administration**: Monitor system status, blob stores, and metrics\n- **Security**: HTTP Basic Authentication with read-only mode support\n\n## Installation\n\n### Prerequisites\n\n- Node.js 18 or higher\n- Access to a Nexus Repository Manager instance\n- Valid Nexus credentials\n\n### Using npm\n\n```bash\nnpm install -g @brianveltman/sonatype-mcp\n```\n\n## Usage\n\n### Claude Desktop Integration\n\nAdd to your `claude_desktop_config.json`:\n\n```json\n{\n  \"mcpServers\": {\n    \"sonatype-mcp\": {\n      \"command\": \"npx\",\n      \"args\": [\n        \"-y\",\n        \"@brianveltman/sonatype-mcp\",\n        \"--nexus-url\", \"http://localhost:8081\",\n        \"--nexus-username\", \"your-username\",\n        \"--nexus-password\", \"your-password\"\n      ]\n    }\n  }\n}\n```\n\n#### With Firewall Quarantine Support\n\nTo enable Firewall quarantine tools, add Firewall credentials:\n\n```json\n{\n  \"mcpServers\": {\n    \"sonatype-mcp\": {\n      \"command\": \"npx\",\n      \"args\": [\n        \"-y\",\n        \"@brianveltman/sonatype-mcp\",\n        \"--nexus-url\", \"http://localhost:8081\",\n        \"--nexus-username\", \"your-username\",\n        \"--nexus-password\", \"your-password\",\n        \"--firewall-url\", \"http://localhost:8070\",\n        \"--firewall-username\", \"firewall-user\",\n        \"--firewall-password\", \"firewall-password\"\n      ]\n    }\n  }\n}\n```\n\n### Visual Studio Code Integration\n\nAdd to your `mcp.json`:\n\n```json\n{\n\t\"servers\": {\n\t\t\"sonatype-mcp\": {\n\t\t\t\"command\": \"npx\",\n\t\t\t\"args\": [\n\t\t\t\t\"-y\",\n\t\t\t\t\"@brianveltman/sonatype-mcp\",\n\t\t\t\t\"--nexus-url\",\n\t\t\t\t\"http://localhost:8081\",\n\t\t\t\t\"--nexus-username\",\n\t\t\t\t\"your-username\",\n\t\t\t\t\"--nexus-password\",\n\t\t\t\t\"your-password\"\n\t\t\t],\n\t\t\t\"type\": \"stdio\"\n\t\t}\n\t},\n\t\"inputs\": []\n}\n```\n\n#### With Firewall Support\n\n```json\n{\n\t\"servers\": {\n\t\t\"sonatype-mcp\": {\n\t\t\t\"command\": \"npx\",\n\t\t\t\"args\": [\n\t\t\t\t\"-y\",\n\t\t\t\t\"@brianveltman/sonatype-mcp\",\n\t\t\t\t\"--nexus-url\",\n\t\t\t\t\"http://localhost:8081\",\n\t\t\t\t\"--nexus-username\",\n\t\t\t\t\"your-username\",\n\t\t\t\t\"--nexus-password\",\n\t\t\t\t\"your-password\",\n\t\t\t\t\"--firewall-url\",\n\t\t\t\t\"http://localhost:8070\",\n\t\t\t\t\"--firewall-username\",\n\t\t\t\t\"firewall-user\",\n\t\t\t\t\"--firewall-password\",\n\t\t\t\t\"firewall-password\"\n\t\t\t],\n\t\t\t\"type\": \"stdio\"\n\t\t}\n\t},\n\t\"inputs\": []\n}\n```\n\n## Available Tools\n\n### Repository Management\n- `nexus_list_repositories` - List all repositories with filtering\n- `nexus_get_repository` - Get repository details\n- `nexus_create_repository` - Create proxy, hosted, or group repositories (write mode)\n- `nexus_update_repository` - Update repository configuration (write mode)\n- `nexus_delete_repository` - Delete repositories (write mode)\n\n### Component Management\n- `nexus_search_components` - Search components across repositories\n- `nexus_get_component` - Get component details\n- `nexus_delete_component` - Delete components (write mode)\n- `nexus_get_component_versions` - List all versions of a component\n- `nexus_upload_component` - Upload components with assets to repositories (write mode)\n\n### Asset Management\n- `nexus_upload_asset` - Upload individual assets to raw repositories (write mode)\n\n### System Administration\n- `nexus_get_system_status` - Get system health status\n- `nexus_list_blob_stores` - List blob store configurations\n- `nexus_list_tasks` - List scheduled tasks\n- `nexus_get_usage_metrics` - Get usage metrics including total components and daily request counts (requires nexus:metrics:read privilege)\n- `nexus_generate_support_zip` - Generate and optionally save a support zip file containing diagnostic information for troubleshooting\n\n### Firewall Quarantine (Optional)\n- `firewall_get_quarantined_components` - Retrieve components quarantined by Sonatype Firewall policies (requires Firewall credentials)\n- `firewall_release_from_quarantine` - Release components from Firewall quarantine by waiving policy violations (write mode, requires Firewall credentials)\n\n## Usage Examples\n\n### Common Prompts for AI Assistants\n\nOnce you have the MCP server configured, you can use natural language prompts with your AI assistant:\n\n#### Repository Management\n- *\"List all Maven repositories\"*\n- *\"Show me details about the npm-public repository\"*\n- *\"Create a new hosted Maven repository called 'internal-releases'\"*\n- *\"What repositories do we have for Docker images?\"*\n\n#### Component Search and Analysis\n- *\"Search for all versions of the Spring Boot starter components\"*\n- *\"Find all components in the maven-central repository that contain 'jackson'\"*\n- *\"Show me all versions of com.fasterxml.jackson.core:jackson-core\"*\n- *\"What's the latest version of lodash in our npm repository?\"*\n\n#### System Monitoring\n- *\"Check the system health status\"*\n- *\"Show me the current usage metrics for our Nexus instance\"*\n- *\"List all blob stores and their sizes\"*\n- *\"What scheduled tasks are currently running?\"*\n- *\"Generate a support zip file for troubleshooting\"*\n- *\"Create a support zip with system info and logs, save it to the raw repository\"*\n\n#### Security and Compliance\n- *\"Search for components with known vulnerabilities\"*\n- *\"Find all snapshot versions in our release repositories\"*\n- *\"Show me components uploaded in the last 24 hours\"*\n- *\"Show me all components quarantined by Firewall policies\"*\n- *\"Check if any components containing 'log4j' are quarantined\"*\n- *\"Release quarantine ID 'abc123' with a comment explaining the business justification\"*\n\n### Advanced Use Cases\n\n#### Dependency Analysis\n```\n\"Search for all components that depend on log4j and show me their versions. \nThen check if any of them are using vulnerable versions.\"\n```\n\n#### Repository Cleanup\n```\n\"Find all snapshot artifacts older than 30 days in the maven-snapshots repository \nand prepare a list for cleanup.\"\n```\n\n#### Release Management\n```\n\"Check if version 2.1.0 of our internal library 'com.company:core-utils' \nexists in the releases repository, and if not, help me upload it.\"\n```\n\n#### Storage Management\n```\n\"Show me which blob stores are consuming the most space and identify \nthe largest components in each repository.\"\n```\n\n#### Troubleshooting and Support\n```\n\"Generate a comprehensive support zip file including system information, \nthread dumps, metrics, and log files, but exclude security information \nfor sharing with external support.\"\n```\n\n#### Firewall Quarantine Management\n```\n\"Check all repositories for quarantined components, identify which policy \nviolations are causing the most quarantines, and provide a summary report \nwith recommendations for policy adjustments.\"\n```\n\n### Interactive Workflows\n\nThe MCP server enables complex, multi-step workflows:\n\n1. **Component Discovery**: Start by searching for components\n2. **Detailed Analysis**: Get specific component details\n3. **Repository Operations**: Create, update, or manage repositories\n4. **Upload Management**: Upload new versions or assets\n5. **Monitoring**: Check system health and usage metrics\n\n### Example Conversation Flow\n\n```\nYou: \"What Maven repositories do we have?\"\nAI: [Lists repositories using nexus_list_repositories]\n\nYou: \"Show me the largest components in maven-releases\"\nAI: [Searches components and shows results with sizes]\n\nYou: \"Upload version 1.2.0 of com.example:my-app to maven-releases\"\nAI: [Uses nexus_upload_component to upload the specified version]\n\nYou: \"Check if the upload was successful\"\nAI: [Searches for the component to verify upload]\n```\n\n### Troubleshooting Examples\n\n#### Permission Issues\nIf you encounter permission errors:\n- *\"Check the system status to see if I have the required permissions\"*\n- *\"List the repositories I have access to\"*\n- *\"Show me what admin tasks are available\"*\n\n#### Component Not Found\nWhen searching doesn't return expected results:\n- *\"Search for 'spring' in all repositories, not just maven-central\"*\n- *\"Check if the component name has special characters or different casing\"*\n- *\"List all components in the repository to see what's actually there\"*\n\n#### Upload Issues\nFor upload problems:\n- *\"Verify the repository format supports the type of component I'm trying to upload\"*\n- *\"Check if the repository is in read-only mode\"*\n- *\"Show me the repository configuration for upload settings\"*\n\n### Best Practices\n\n#### Efficient Searching\n- Use specific search terms to reduce result sets\n- Filter by repository when you know the target location\n- Combine multiple search criteria for precise results\n\n#### Repository Management\n- Always check repository details before making changes\n- Use descriptive names for new repositories\n- Verify blob store configuration before creating repositories\n\n#### Monitoring and Maintenance\n- Regularly check system health status\n- Monitor usage metrics to understand growth patterns\n- Review scheduled tasks for maintenance operations\n\n### Integration Examples\n\n#### CI/CD Pipeline Integration\n```\n\"After our build completes, check if the new artifact version already exists \nin the releases repository. If not, upload it and verify the upload succeeded.\"\n```\n\n#### Dependency Auditing\n```\n\"Generate a report of all third-party dependencies in our maven-central proxy, \ngrouped by organization, and highlight any with recent security advisories.\"\n```\n\n#### Storage Optimization\n```\n\"Identify duplicate artifacts across repositories and suggest consolidation \nopportunities to optimize storage usage.\"\n```\n\n## Development\n\n### Building from Source\n\n```bash\ngit clone https://github.com/brianveltman/sonatype-mcp.git\ncd sonatype-mcp\nyarn install\nyarn build\n```\n\n### Running in Development\n\n```bash\nyarn dev\n```\n\n### Running Tests\n\n```bash\nyarn test\n```\n\n## Security\n\n- Uses HTTP Basic Authentication\n- Supports read-only mode for enhanced security\n- Input validation on all parameters\n- Comprehensive error handling\n\n## Contributing\n\n1. Fork the repository\n2. Create a feature branch\n3. Make your changes\n4. Add tests if applicable\n5. Submit a pull request\n\n### Example how to use the source with Claude\n```json\n{\n  \"mcpServers\": {\n    \"sonatype-mcp\": {\n      \"command\": \"node\",\n      \"args\": [\n        \"/path-to/mcp-sonatype/build/index.js\",\n        \"--nexus-url\",\n        \"http://localhost:8081\",\n        \"--nexus-username\",\n        \"your-username\",\n        \"--nexus-password\",\n        \"your-password\"\n      ]\n    }\n  }\n}\n```\n\n## License\n\nMIT License - see LICENSE file for details\n\n## Support\n\nFor issues and questions:\n- GitHub Issues: https://github.com/brianveltman/sonatype-mcp/issues\n\n## References\n\n- [Model Context Protocol](https://modelcontextprotocol.io/)\n- [Nexus Repository Manager API](https://help.sonatype.com/en/repositories-api.html)\n- [Sonatype Nexus Repository Manager](https://help.sonatype.com/)","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbrianveltman%2Fsonatype-mcp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbrianveltman%2Fsonatype-mcp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbrianveltman%2Fsonatype-mcp/lists"}