MCP Server Docker Compose Installation

Install the JFrog MCP Server using Docker Compose to deploy the MCP service alongside the JFrog Platform on non-Kubernetes environments.

Install the JFrog MCP Server on a non-Kubernetes host using Docker Compose.

Prerequisites

Before you begin, verify the following:

PrerequisiteDetails
PostgreSQLThe configuration script can install a bundled PostgreSQL database automatically, or you can connect to an existing external database. To set up an external database in advance, see PostgreSQL for MCP Server.
Docker Engine and Docker Compose v220.10 or later. See System Requirements.
JFrog Platform Deployment (JPD)A running JPD is required.

Install Steps

Follow these steps to install the JFrog MCP Server using a Docker Compose package.

  1. Download the latest Docker Compose package.

  2. Extract the contents of the compressed archive (.tar.gz file) and then go to the extracted folder.

    tar -xvf jfrog-wingman-<VERSION>-compose.tar.gz
    ❗️

    .env File Included Within the Docker Compose Archive

    The .env file is used by docker-compose and is updated during installations and upgrades.

    Some operating systems do not display dot files by default. Back up the file before upgrading.

    📘

    Docker for Mac

    When you use Docker Compose on Mac, /etc/localtime might not work as expected since it might not be a shared location in the Docker for Mac settings.

    You can remove the following line from the selected docker-compose.yaml file to avoid installation issues.

    - /etc/localtime:/etc/localtime:ro
  3. Update the .env file.

    You can set the installation directory for the JFrog MCP Server. The default value is $HOME/.jfrog/wingman.

    ROOT_DATA_DIR=
  4. Run the interactive configuration script from the extracted folder.

    ./config.sh

    The script runs through the following prompts in sequence.

    1. Beta Agreement

      The script displays the JFrog Online Beta Agreement and requires your acceptance before proceeding.

      The JFrog MCP Server is currently in beta. By continuing, you accept the JFrog Online Beta Agreement (accessible online at https://docs.jfrog.com/installation/docs/mcp-server-beta-agreement ).
      
      Do you accept and agree to the above? [y/N]

      Enter y to accept and continue. Entering n aborts the installation.

    2. Installation Directory

      If ROOT_DATA_DIR is already set in the .env file, this prompt is skipped automatically. Otherwise, the script prompts:

      Installation Directory (Default: /root/.jfrog/wingman):

      Press Enter to accept the default, or enter a custom path.

    3. Connection Details

      Provide values for the following keys when prompted:

      KeyDescription
      JFrog URLThe URL of the self-managed JPD. Used to register the MCP server in the JPD topology.
      Join KeyThe secret key used to establish trust between services in the JFrog Platform.
      Master KeyThe unique master key that the MCP server service requires.
      The JFrog URL allows Wingman to connect to a JFrog Platform Instance.
      (You can copy the JFrog URL from Administration > Security > General > Connection details)
      JFrog URL [http(s)://artifactory.server.host:8082]:
      The Join Key is the secret key used to establish trust between services in the JFrog Platform.
      (You can copy the Join Key from Administration > Security > General > Connection details)
      Join Key:
      Provide the Artifactory's master key. It can be found in the data directory of the artifactory under /etc/security/master.key
      Master Key:
    4. IP Address

      Enter the IP address of this machine, or press Enter to accept the auto-detected default.

      For IPv6 address, enclose value within square brackets as follows : [<ipv6_address>]
      Please specify the IP address of this machine (Default: <auto-detected>):
    5. PostgreSQL

      The script asks whether to install the bundled PostgreSQL instance or connect to an existing external database.

      The installer can install a PostgreSQL database, or you can connect to an existing compatible PostgreSQL database
      (https://jfrog.com/help/r/jfrog-installation-setup-documentation/requirements-matrix)
      If you are upgrading from an existing installation, select N if you have externalized PostgreSQL, select Y if not.
      Do you want to install PostgreSQL? [Y/n]:
      • Enter Y to install the bundled PostgreSQL database. The script then prompts for a database password.

        To setup PostgreSQL, please enter a password
        database password:
        
        confirm database password:
      • Enter N if you have already configured an external PostgreSQL database.

    6. Completion

      After you answer all prompts, the script creates the required directories, seeds the database (if bundled PostgreSQL was selected), and completes the setup.

      Creating third party directories (if necessary)
      
      Attempting to seed PostgreSQL. This may take some time.
      
      Successfully seeded PostgreSQL
      
      Log rotation for [<INSTALL_DIR>/var/log/console.log] has not been configured. Please setup manually
      
      Docker setup complete
      
      Installation directory: [<INSTALL_DIR>] contains data and configurations.
      
      Use docker-compose commands to start the application. Once the application has started, it can be accessed at [http://<client-ip>:8082]
      
      Examples:
      cd <EXTRACTED_FOLDER>
      
      start postgresql:    docker compose -p wingman-postgres -f docker-compose-postgres.yaml up -d
      stop  postgresql:    docker compose -p wingman-postgres -f docker-compose-postgres.yaml down
      start:               docker compose -p wingman up -d
      stop:                docker compose -p wingman down
      📘

      Run Commands from the Extracted Folder

      The compose files use environment variables from the .env file. Always run docker compose commands from within the extracted folder.

  5. Start the JFrog MCP Server.

    docker compose -p wingman up -d

Verify the Installation

  1. To check the status of the running JFrog MCP Server, run the following command.

    docker compose -p wingman ps
  2. To check the JFrog MCP Server logs, run the following command.

    docker compose -p wingman logs
Frequently Asked Questions
Q: Where is the MCP Server installation directory configured?

In the .env file using the ROOT_DATA_DIR variable. The default is $HOME/.jfrog/wingman.

Q: Can I switch from bundled PostgreSQL to an external database after installation?

Yes. Stop the MCP Server, update the database connection details in $JFROG_HOME/wingman/var/etc/system.yaml, and restart. See PostgreSQL for MCP Server.

Q: Why does Docker for Mac have issues with /etc/localtime?

/etc/localtime is not a shared location in Docker for Mac settings by default. Remove that line from your docker-compose.yaml to avoid installation issues.

Related Topics

🚧

JFrog MCP Server Beta

The JFrog MCP Server is in beta. Client integration details may change as the feature evolves. By using this service, you agree to the JFrog MCP Server Beta Agreement.