For the complete documentation index, see llms.txt. Markdown versions of all docs pages are available by appending .md to any docs URL.
Build image or store source code
Build the Docker image for your MCP server project or store the source code in a GitHub repository.
Before you can add your MCP server to the Solo Enterprise for agentregistry catalog so that registry users can access and deploy the server to a connected environment, you must create a Docker image for the server or store the server’s source code in a GitHub repository. The method that you need to use depends on the environment that you plan to deploy your MCP server to.
| Deployment target | Example provider | Docker image vs. GitHub repo |
|---|---|---|
| AI runtimes in Kubernetes | Solo Enterprise for kagent | Build the Docker container image and push it to a container registry. |
| Agentic cloud platforms | AWS Bedrock AgentCore | Store the Dockerfile and source code in a GitHub repository. |
Before you begin
Set up an OIDC provider so that users can authenticate with the registry.
Install Solo Enterprise for agentregistry and the
arctlCLI.Port-forward the Solo Enterprise for agentregistry server on port 12121 if you have not done so already. The registry is not exposed externally by default, so you need port-forwarding to reach it from your local machine.
kubectl -n agentregistry-system port-forward svc/agentregistry-enterprise-server 12121:12121
Build the image
To run the MCP server in an environment, you need to build the MCP server Docker image.
Review the image location and tag in your
mcp.yamlfile. The Docker image location is stored here and is used when you build and push the image.cat mymcp/mcp.yamlExample output:
apiVersion: ar.dev/v1alpha1 kind: MCPServer metadata: name: mymcp spec: description: mymcp MCP server source: package: launch: args: - type: positional value: src/main.py - type: positional value: --transport - type: positional value: http - type: positional value: --host - type: positional value: 0.0.0.0 - type: positional value: --port - type: positional value: "3000" command: python3 origin: identifier: localhost:5001/mymcp:latest oci: serverName: mymcp type: oci transport: path: /mcp port: 3000 type: http title: mymcpNote
By default, agentregistry uses
localhost:5001as the container registry andlatestas the image tag, such aslocalhost:5001/mymcp:latest. If you want to use agentregistry to push images to your own container registry, update this file with the registry and image tag that you want to use. This update is not required if you want to build images locally only without pushing them to your container registry.Build the MCP server Docker image.
arctl build mymcpExample output:
Building MCP server image: localhost:5001/mymcp:latest Building Docker image for python project... #0 building with "desktop-linux" instance using docker driver #1 [internal] load build definition from Dockerfile #1 transferring dockerfile: 1.84kB 0.0s done #1 DONE 0.1s #2 [internal] load metadata for ghcr.io/astral-sh/uv:latest #2 ... #3 [auth] library/python:pull token for registry-1.docker.io ... #24 unpacking to localhost:5001/mymcp:latest 0.9s done #24 DONE 3.1s ✓ Successfully built Docker image: localhost:5001/mymcp:latestTo also push the image to your container registry, include the
--pushoption. You can also set the target platform with--platform, such aslinux/amd64. You must log in to your container registry first, for example withdocker loginfor DockerHub. For more information, see the arctl build command reference.If you did not push the image to a container registry, load the Docker image into your cluster. This step is required in local test setups such as kind to test the deployment of your MCP server. It is not required if you pushed the image to a container registry that your cluster can pull from.
kind load docker-image localhost:5001/mymcp:latest --name <cluster-name>
Store source code
To deploy an MCP server to an agentic cloud platform, such as AWS Bedrock AgentCore, you must store the source code and Dockerfile for your MCP server in a GitHub repository. When you add your MCP server to the Solo Enterprise for agentregistry catalog, you provide the link to the GitHub repository. During the deployment to an agentic cloud platform, Solo Enterprise for agentregistry automatically compiles the source code into an image that is compatible to run on the cloud platform that you target.
Note
If you plan to use a private repository, you must configure your GitHub or GitLab credentials in Solo Enterprise for agentregistry before you can register or deploy the MCP server. For more information, see Private repo access.
Note
The steps in this guide assume that you want to create your own GitHub test repo and push the MCP server source code to it. Alternatively, you can use the sample repository that is provided by Solo.io. This repository contains the same MCP server source code that is generated when you follow the Create and run locally guide.
Create a GitHub repository and get the URL to your repository, such as
https://github.com/myorg/mymcp.git. For more information, see the GitHub docs.Install the
gitCLI.Link your local machine to your remote repository on GitHub.
git remote add origin <github-repo-url>Push your MCP server source code and Dockerfile to GitHub.
cd mymcp git checkout main git add -A git commit -m 'initial commit' git push origin mainGo to your GitHub repository and verify that you see the files of your MCP server scaffold.