Register Local Custom MCP Servers

Register local custom MCP server endpoints in the JFrog MCP Registry

A custom local MCP server is a privately developed package (Python or npm) stored securely in a local JFrog Artifactory repository. It provides specific tools and capabilities to AI agents — for example, connectors to internal databases, internal APIs, or private platforms. Once registered in the JFrog MCP Registry, the server becomes discoverable in the AI Catalog, allowing developers to securely connect their AI agents to it via the governed JFrog Agent Guard.

Registration acts as the approval mechanism for these servers within your organization and links the physical Artifactory binary to the MCP Registry. You can register local servers through the JFrog Platform UI or the AI Catalog REST API.

Prerequisites Before Registering a Local Custom MCP server

Ensure the following requirements are met:

  • Upload the binary: Publish your MCP package to a local npm or local PyPI repository using the standard package managers. All uploaded artifacts must be fully self-contained and include all runtime dependencies.
  • Check project scoping: Ensure the local repository is assigned to the JFrog Project where you intend to register the server.
  • ALLOW permission for the target project within the AI Catalog.
  • READ access to the repository containing the custom MCP server package.
  • Custom MCP registration currently supports npm and PyPI.
  • Public MCPs are available through Discovery (public catalog) and can be allowed for your project from there.

Register a Local Custom MCP Server

Registering an MCP server links the physical Artifactory binary to the MCP Registry, approving it for organizational use. Use either procedure:

Register through the UI

  1. In the Platform module, navigate to AI/ML > AI Catalog.

  2. Select Registry.

  3. Click Add AI Asset > Add MCP Server.

    📘

    Note:

    If you filter the MCP Servers list by selecting Custom and there are no existing MCP Servers for your search term, a Register MCP Server button appears and you can, alternatively, click that to continue.

  4. Select the Local (Artifactory) tab and set up:

    1. Select the project for which you want to register the MCP server.
    2. Select the local repository that contains the server binary, and enter the artifact.
  5. Click Next.

  6. Define the Tool Policy: choose how to govern the tools within this server:

    • Allow all tools: Automatically approves all current tools and any tools added to this server in future updates.
    • Select tools manually: Opens the Allow List and Block List configuration. This enables you to define granular policies using static text and Regex patterns. See Configure Tool Policies.
  7. Click Next.

  8. (Optional) Configure runtime settings:

    1. Runtime arguments: Enter the required strings for execution and provide a description for each argument. These are optional command-line execution flags.
    2. Environment variables: Define required keys with descriptions and toggles for isSecret (to mask values in the UI) and isRequired.
  9. Click Next.

  10. Enter the path to the README file in Markdown format.

  11. Click Complete registration. The MCP Server Info page is displayed, and the MCP Server appears in the Registry page.

You have completed the registration. In order to use the MCP server, you must now Install it on your IDE by clicking Install. For instructions how to install, see Install and MCP Server

Register through the REST API

To automate custom MCP registration in your CI/CD pipeline, send a POST request to the registration endpoint:

https://<JFROG_DOMAIN>/ml/core/api/v1/mcp-registry/custom-server.

Example 1: With runtime arguments and environment variables

curl --location 'https://{JFROG_DOMAIN}/ml/core/api/v1/mcp-registry/custom-server' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {TOKEN}' \
--data '{
    "projectKey": "ai-research",
    "repoArtifactInfo": {
      "repoKey": "custom-mcp",
      "repoPath": "custom-mcp/mcp-server/1.0.0/mcp_server.tgz",
      "readmePath": "custom-mcp/mcp-server/1.0.0/README.md"
    },
    "mcpServerInfo": {
      "description": "Internal Database Connector for AI Agents",
      "version": "1.0.0",
      "environmentVariables": [
        {
          "name": "DB_CONNECTION_STRING",
          "description": "Connection string for the production DB",
          "format": "string",
          "isRequired": true,
          "isSecret": true
        }
      ],
      "runtimeArguments": [
        {
          "name": "--port",
          "description": "Runtime port for the MCP server",
          "format": "integer",
          "type": "int",
          "defaultValue": "8080"
        }
      ]
    }
}'

Example 2: Without runtime arguments and environment variables

curl --location 'https://{JFROG_DOMAIN}/ml/core/api/v1/mcp-registry/custom-server' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {TOKEN}' \
--data '{
    "projectKey": "ai-research",
    "repoArtifactInfo": {
      "repoKey": "custom-mcp",
      "repoPath": "custom-mcp/mcp-server/1.0.0/mcp_server.tgz",
      "readmePath": "custom-mcp/mcp-server/1.0.0/README.md"
    },
    "mcpServerInfo": {
      "description": "A basic utility MCP server with default settings",
      "version": "1.0.0",
      "environmentVariables": [],
      "runtimeArguments": []
    }
}'

JSON Payload Parameters

ParameterDescriptionRequired?
{TOKEN}Your authentication token.Yes
projectKeyThe target JFrog project key for this MCP serverYes
repoArtifactInfo.repoKeyThe local Artifactory repository name housing the package.Yes
repoArtifactInfo.repoPathFull artifact path including the repository key as the first segment
Must start with the same value as repoKey.
Yes
mcpServerInfo.descriptionA readable summary of the MCP server's purpose and capabilities.Yes
mcpServerInfo.versionThe version of the custom MCP server.Yes
repoArtifactInfo.readmePathThe path to a Markdown README file within the repository.No
mcpServerInfo.environmentVariablesArray of required configuration keys (for example, API keys, URLs).No
mcpServerInfo.runtimeArgumentsArray of command-line execution flags (for example, --verbose).No

Managing Registrations

Discovery

Registered MCPs are listed in the AI Catalog. You can filter tools by Name or Type and sort them by Name or Last Update.

Unregister Custom MCP Servers

Unregistering an MCP server immediately removes its metadata and governance policies from the AI Catalog, disconnecting it from developer IDEs, but does not delete the physical binary from Artifactory.

Unregister Through the UI

  1. In the Platform module, navigate to AI/ML > AI Catalog > Registry.

  2. Locate the MCP server in the list, click it to open the Select a project pane.

  3. Select the project to which the MCP server you want to remove is registered.

  4. Click Block.

  5. Confirm the action by following the instructions in the confirmation message.

The MCP server is immediately removed from the MCP Registry and developers can no longer connect to it.


Did this page help you?