JFrog Artifactory MCP Server
Provides tools for managing artifacts, repositories, and cleanup operations on JFrog Artifactory through natural language interactions.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@JFrog Artifactory MCP Serverlist all repositories"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
JFrog Artifactory MCP Server
A Model Context Protocol (MCP) server that provides seamless integration with JFrog Artifactory, enabling AI assistants to manage artifacts, repositories, and perform cleanup operations through natural language interactions.
๐ Deployment Options
This MCP server can be deployed in two modes:
Local Mode (stdio) - Traditional installation where each developer runs the server locally
Remote Mode (HTTP) - NEW! Deploy once on a central server, and all developers connect remotely
๐ Want to host this centrally?
Quick Start (5 min): QUICK_SETUP.md
Complete Guide: REMOTE_DEPLOYMENT.md
Benefits of remote deployment:
โ No local installation required for developers
โ Single point of updates and maintenance
โ Centralized monitoring and logging
โ Consistent version across team
Related MCP server: JFrog MCP Server
๐ Features
Artifact Management
๐ List Artifacts - Browse repository contents and folder structures
๐ฅ Download Artifacts - Retrieve artifacts from repositories to local filesystem
๐ค Upload Artifacts - Deploy artifacts to repositories
๐ Get Artifact Details - Retrieve metadata, checksums, and properties
๐๏ธ Delete Artifacts - Remove individual artifacts with safety confirmations
Repository Operations
๐ List Repositories - Browse available repositories with optional filtering
๐ง Repository Management - Access repository configurations and details
Cleanup & Maintenance
๐งน Smart Cleanup - Remove artifacts older than specified days/weeks
๐ Search Old Artifacts - Find artifacts by age with detailed size information
๐ Storage Analytics - Calculate storage usage and cleanup impact
๐ก๏ธ Dry Run Mode - Preview cleanup operations before execution
Safety Features
โ ๏ธ Confirmation Required - Explicit confirmation needed for deletions
๐ Input Validation - Prevents accidental root deletions and invalid paths
โ Existence Checks - Verifies artifacts exist before operations
๐ Detailed Reporting - Comprehensive operation logs and error handling
๐ Requirements
Python 3.8 or higher
JFrog Artifactory instance (Cloud or On-Premise)
Valid JFrog authentication credentials
๐ ๏ธ Installation
1. Clone the Repository
git clone https://github.com/your-org/jfrog-mcp-server.git
cd jfrog-mcp-server2. Install Dependencies
pip install -r requirements.txt3. Install the Package
pip install -e .โ๏ธ Configuration
Environment Variables
Create a .env file in the project root:
# JFrog Artifactory Configuration
JFROG_BASE_URL=https://your-instance.jfrog.io/artifactory
JFROG_ACCESS_TOKEN=your-access-token
# Alternative: Username/Password Authentication
# JFROG_USERNAME=your-username
# JFROG_PASSWORD=your-password
# Optional: Logging Configuration
LOG_LEVEL=INFOAuthentication Options
Option 1: Access Token (Recommended)
JFROG_BASE_URL=https://your-instance.jfrog.io/artifactory
JFROG_ACCESS_TOKEN=your-access-tokenOption 2: Username/Password
JFROG_BASE_URL=https://your-instance.jfrog.io/artifactory
JFROG_USERNAME=your-username
JFROG_PASSWORD=your-passwordMCP Client Configuration
Add to your MCP client configuration (e.g., Claude Desktop config.json):
{
"mcpServers": {
"jfrog-artifactory": {
"command": "python",
"args": ["-m", "jfrog_mcp"],
"env": {
"JFROG_BASE_URL": "https://your-instance.jfrog.io/artifactory",
"JFROG_ACCESS_TOKEN": "your-access-token"
}
}
}
}๐ Running as Remote HTTP Server
To deploy the MCP server as a centralized HTTP service:
Quick Start with Docker
# Build and run
docker-compose up -d
# Check status
curl http://localhost:8000/healthRun with Python
# Start HTTP server on port 8000
python -m jfrog_mcp --http
# Or specify custom host/port
python -m jfrog_mcp --http --host 0.0.0.0 --port 8000๐ For complete remote deployment guide, security setup, and client configuration, see REMOTE_DEPLOYMENT.md
๐ง Usage Examples
Repository Management
# List all repositories
get_repositories()
# Filter repositories by type
get_repositories(package_type="maven")Artifact Operations
# Browse repository contents
list_artifacts("my-repo-local")
list_artifacts("my-repo-local", "path/to/folder")
list_artifacts("my-repo-local", "", deep=True) # Recursive listing
# Get artifact details
get_artifact_details("libs-release-local", "com/example/app/1.0.0/app-1.0.0.jar")
# Download an artifact
download_artifact("libs-release-local", "path/to/artifact.jar", "/local/path/artifact.jar")
# Upload an artifact
push_artifact("libs-release-local", "com/example/app/1.0.0/app-1.0.0.jar", "/local/path/app-1.0.0.jar")Safe Deletion
# This will show a warning and NOT delete
delete_artifact("my-repo", "path/to/artifact.jar")
# This will actually delete the artifact
delete_artifact("my-repo", "path/to/artifact.jar", confirm_deletion=True)Cleanup Operations
# Search for old artifacts (safe preview)
search_old_artifacts("libs-snapshot-local", older_than_days=30)
# Preview cleanup (dry run - safe)
cleanup_old_artifacts("libs-snapshot-local", older_than_days=30, dry_run=True)
# Execute cleanup
cleanup_old_artifacts("libs-snapshot-local", older_than_days=30, dry_run=False)
# Target specific folders
cleanup_old_artifacts("docker-local", older_than_days=60, folder_path="old-images/", dry_run=False)๐ ๏ธ Available Tools
Tool | Description | Safety Level |
| List available repositories | โ Safe |
| Browse repository contents | โ Safe |
| Get artifact metadata | โ Safe |
| Download artifacts locally | โ Safe |
| Upload artifacts to repository | โ ๏ธ Modifying |
| Delete single artifact | ๐ Requires Confirmation |
| Find artifacts by age | โ Safe |
| Bulk cleanup by age | ๐ Supports Dry Run |
๐ก๏ธ Safety Features
Deletion Protection
All deletion operations require explicit
confirm_deletion=TrueparameterInput validation prevents empty paths and repository root deletion
Existence verification before attempting deletion
Clear error messages for invalid operations
Dry Run Mode
Cleanup operations default to
dry_run=TruePreview exactly what would be deleted before execution
Detailed reports showing affected artifacts and storage impact
Error Handling
Comprehensive error messages with actionable guidance
Graceful handling of network issues and authentication failures
Detailed logging for troubleshooting
๐ Troubleshooting
Common Issues
Authentication Errors
Error: 401 UnauthorizedVerify your access token or username/password
Check token permissions in JFrog Artifactory
Ensure base URL is correct
Connection Issues
Error: Connection timeoutVerify JFrog Artifactory URL is accessible
Check network connectivity and firewall settings
Validate base URL format (should include
/artifactory)
Permission Errors
Error: 403 ForbiddenVerify your user has appropriate repository permissions
Check if repository exists and is accessible
Review JFrog permission model for your user/token
Debug Mode
Enable debug logging:
export LOG_LEVEL=DEBUG๐ค Contributing
Fork the repository
Create a feature branch (
git checkout -b feature/amazing-feature)Commit your changes (
git commit -m 'Add amazing feature')Push to the branch (
git push origin feature/amazing-feature)Open a Pull Request
Development Setup
# Install development dependencies
pip install -e ".[dev]"
# Run tests
python -m pytest tests/
# Run linting
flake8 jfrog_mcp/๐ License
This project is licensed under the MIT License - see the LICENSE file for details.
๐ Support
For support and questions:
Open an issue on GitHub
Check the JFrog Artifactory REST API documentation
Review MCP protocol documentation
๐๏ธ Architecture
jfrog_mcp/
โโโ __init__.py # Package initialization
โโโ __main__.py # CLI entry point
โโโ config.py # Configuration management
โโโ server.py # MCP server and tool definitions
โโโ api/
โโโ __init__.py
โโโ artifactory.py # JFrog Artifactory API client๐ฎ Future Features
Build information management
Repository creation and configuration
Advanced search with AQL (Artifactory Query Language)
Artifact properties management
Replication status monitoring
Docker registry specific operations
Maven/Gradle metadata handling
Bulk operations with progress tracking
Made with โค๏ธ for the JFrog and MCP communities
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/karthik-philips-ta/jfrog-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server