Skip to main content
Glama
karthik-philips-ta

JFrog Artifactory MCP Server

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:

  1. Local Mode (stdio) - Traditional installation where each developer runs the server locally

  2. Remote Mode (HTTP) - NEW! Deploy once on a central server, and all developers connect remotely

๐Ÿ‘‰ Want to host this centrally?

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-server

2. Install Dependencies

pip install -r requirements.txt

3. 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=INFO

Authentication Options

JFROG_BASE_URL=https://your-instance.jfrog.io/artifactory
JFROG_ACCESS_TOKEN=your-access-token

Option 2: Username/Password

JFROG_BASE_URL=https://your-instance.jfrog.io/artifactory
JFROG_USERNAME=your-username
JFROG_PASSWORD=your-password

MCP 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/health

Run 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

get_repositories

List available repositories

โœ… Safe

list_artifacts

Browse repository contents

โœ… Safe

get_artifact_details

Get artifact metadata

โœ… Safe

download_artifact

Download artifacts locally

โœ… Safe

push_artifact

Upload artifacts to repository

โš ๏ธ Modifying

delete_artifact

Delete single artifact

๐Ÿ”’ Requires Confirmation

search_old_artifacts

Find artifacts by age

โœ… Safe

cleanup_old_artifacts

Bulk cleanup by age

๐Ÿ”’ Supports Dry Run

๐Ÿ›ก๏ธ Safety Features

Deletion Protection

  • All deletion operations require explicit confirm_deletion=True parameter

  • Input 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=True

  • Preview 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 Unauthorized
  • Verify your access token or username/password

  • Check token permissions in JFrog Artifactory

  • Ensure base URL is correct

Connection Issues

Error: Connection timeout
  • Verify JFrog Artifactory URL is accessible

  • Check network connectivity and firewall settings

  • Validate base URL format (should include /artifactory)

Permission Errors

Error: 403 Forbidden
  • Verify 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

  1. Fork the repository

  2. Create a feature branch (git checkout -b feature/amazing-feature)

  3. Commit your changes (git commit -m 'Add amazing feature')

  4. Push to the branch (git push origin feature/amazing-feature)

  5. 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:

๐Ÿ—๏ธ 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

F
license - not found
-
quality - not tested
C
maintenance

Maintenance

โ€“Maintainers
โ€“Response time
โ€“Release cycle
โ€“Releases (12mo)
Commit activity

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

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