This is the production environment!

MCP4E Launcher

MCP4E MCP Servers are started, updated, and managed via the MCP4E Launcher application. This application assists with fetching configuration, validating licensing, downloading the latest release for an MCP Server, and automatically applying updates as they become available.

The current architecture of the MCP4E Launcher is intended to launch one MCP Server (or cluster of MCP Servers) with one simple command:

Bash (or equivalent shell): LICENSE_KEY=YOUR_LICENSE_KEY ./mcp4e-launcher

With this one-line launch command, the MCP4E launcher application will pull configuration from MCP4E's website and passes those merged environment vairables (from the parent process) and pulled-variables as ENVIRONMENT variables into the sub-process (which will be the licensed MCP Server). Local variables supercede what's configured online.

For customers who do not want to publish particularly private fields on MCP4E.com's license management page, you can directly pass the SECRET_KEY=SECRET_VALUE as an additional environment variable. Environment variables are separated by spaces. E.g., SECRET_1=SOMETHING SECRET_2=ANOTHER_SECRET LICENSE_KEY=SOME_KEY ./mcp4e-launcher.

Docker-based deployment of MCP Servers

One of the main benefits of deploying MCP4E-powered MCP Servers via docker is network port flexibility. Because we follow specific conventions when buliding our sub-processes (MCP Servers), running multiple MCP-Server applications naturally leads to port collisions. This is entirely avoided by leveraging Docker's port mapping capabilities.
It is possible to run multiple MCP servers on the same virtual machine due to Docker's convenient port re-mapping capabilities and localized networking. When running multiple MCP servers on the same system, we recommend using Docker with a corresponding compose.yaml file that manages all of those containers in one convenient location.

Dockerization process: customization may be desired depending on your specific MCP Server's usage of local filesystem resources or otherwise. Adjust this script per your environment's needs.

                FROM scratch
                COPY mcp4e-launcher /usr/local/bin/mcp4e-launcher
                RUN chmod +x /usr/local/bin/mcp4e-launcher
                USER 1000:1000

                EXPOSE 8080
                EXPOSE 8081
                EXPOSE 9000
                EXPOSE 9001
                ENTRYPOINT ["mcp4e-launcher"]
            

Likewise, a sample corresponding compose.yaml file might look like:

 services:
  some-mcp-server-name:
    image: "your_custom_image:latest"
    healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost:8080/actuator/health"]
    environment:
      - LICENSE_KEY=YOUR_LICENSE_KEY
      - SECRETS_GO=HERE
    ports:
      - "8080:8080"
      - "9000:9000"
      - "9001:9001"
            

Networking

Port Purpose
8080 MCP4E Health Checker (management port, prometheus metrics, etc)
9000 MCP Server port
9001 MCP Server management port (if applicable)

v1.0.0

Downloads

MacOS users: MCP4E Launcher on MacOS is intended solely for testing purposes / proof of concept work. We recommend running the binary via Docker or directly on a linux (x86_64) server. As such is not yet trusted by Apple (no code-signing certificate has been applied) after compilation. You must manually disable quarantining the executable to run the executable.
In a terminal run: xattr -d com.apple.quarantine mcp4e-darwin-aarch64