
Security News
Ruby's Bundler 4.0.18 Extends Cooldown to bundle lock and bundle cache
The supply chain control that delays freshly published gems now covers lockfile generation and gem vendoring in Ruby projects.
code-engine-mcp-server
Advanced tools

Model Context Protocol (MCP) server for IBM Code Engine and Docker/Podman integration. It enables AI assistants to build, run, push, and deploy containerized workloads with a single MCP server.
# 1) Install dependencies
npm install
# 2) Build the server
npm run build
# 3) Run once to verify
node build/index.js
Then configure your MCP client using one of the examples in the Configuration section below.
code-engine-mcp-server/
├── api/
│ └── code-engine-openapi.yaml # OpenAPI reference used for API coverage
├── build/ # Compiled JavaScript output
├── docs/ # API references and setup guides
├── internal/ # Internal release/publishing notes
├── src/ # Main TypeScript source code
├── CHANGELOG.md # Release history
├── CODE_OF_CONDUCT.md # Community guidelines
├── CONTRIBUTING.md # Contribution workflow
├── LICENSE # Project license
├── MAINTAINERS.md # Maintainer list
├── README.md # Project overview and usage
├── mcp.example.json # Example MCP client configuration
├── package.json # npm package metadata and scripts
├── server.json # MCP Registry metadata
└── tsconfig.json # TypeScript configuration
Copy mcp.example.json to .vscode/mcp.json in your workspace root:
cp mcp.example.json ../.vscode/mcp.json
Then edit .vscode/mcp.json and replace the placeholder with your IBM Cloud API key:
{
"servers": {
"code-engine": {
"type": "stdio",
"command": "node",
"args": [
"${workspaceFolder}/code-engine-mcp-server/build/index.js"
],
"env": {
"IBMCLOUD_API_KEY": "your-ibm-cloud-api-key-here"
}
}
}
}
Restart the server: Cmd+Shift+P -> "MCP: Restart Server" -> code-engine.
Security: Add
.vscode/mcp.jsonto your.gitignoreto avoid committing your API key.
Get your API key at IBM Cloud IAM → API keys.
{
"cline.mcpServers": {
"code-engine": {
"command": "node",
"args": ["/absolute/path/to/code-engine-mcp-server/build/index.js"],
"env": {
"IBMCLOUD_API_KEY": "your-api-key-here"
}
}
}
}
Edit ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"code-engine": {
"command": "node",
"args": ["/absolute/path/to/code-engine-mcp-server/build/index.js"],
"env": {
"IBMCLOUD_API_KEY": "your-api-key-here"
}
}
}
}
Install this MCP server in Cursor with one click:
Package and registry links:
Ask your assistant:
Can you detect which container runtime I have installed?
Ask your assistant:
Build a container image from ./Dockerfile with the name myapp:latest
Ask your assistant:
Test the myapp:latest image locally on port 8080
Ask your assistant:
Push myapp:latest to icr.io/my-namespace/myapp:latest
Ask your assistant:
List all my Code Engine projects
Ask your assistant:
I have a Node.js app in ./my-app with a Dockerfile. Can you:
1. Build it as myapp:v1.0.0
2. Test it locally on port 3000
3. Push it to icr.io/my-namespace/myapp:v1.0.0
4. Deploy it to my Code Engine project "production"
5. Show me the application URL
43 tools total: 8 container tools + 35 Code Engine tools.
| Tool | Description | Key Parameters |
|---|---|---|
detect_container_runtime | Detect Docker or Podman | — |
list_local_images | List local container images | runtime |
list_local_containers | List local containers | runtime, all |
build_container_image | Build a container image | dockerfile_path, image_name, context_path |
push_container_image | Push image to registry | image_name, runtime |
test_container_locally | Run container for local testing | image_name, port_mapping, env_vars |
get_container_logs | Get logs from a running container | container_id, runtime |
stop_local_container | Stop and remove a container | container_id, runtime |
| Tool | Description | Key Parameters |
|---|---|---|
ce_list_projects | List all projects in a region | — |
ce_get_project | Get project details | project_id |
ce_create_project | Create a new project | name, resource_group_id |
ce_delete_project | Delete a project | project_id |
| Tool | Description | Key Parameters |
|---|---|---|
ce_list_applications | List applications in a project | project_id |
ce_get_application | Get application details | project_id, app_name |
ce_create_application | Deploy a new application | project_id, name, image, port, env_vars |
ce_update_application | Update image, scaling, env | project_id, app_name, image, scale_* |
ce_delete_application | Delete an application | project_id, app_name |
ce_list_app_instances | List running instances (pods) | project_id, app_name |
ce_get_app_logs | Get logs for an app instance | project_id, app_name, instance_name |
| Tool | Description | Key Parameters |
|---|---|---|
ce_list_builds | List build configurations | project_id |
ce_get_build | Get build configuration details | project_id, build_name |
ce_create_build | Create a build configuration | project_id, name, output_image, output_secret |
ce_delete_build | Delete a build configuration | project_id, build_name |
ce_list_build_runs | List build runs | project_id |
ce_get_build_run | Get build run status | project_id, build_run_name |
ce_create_build_run | Start a build run | project_id, build_name |
ce_delete_build_run | Delete a build run | project_id, build_run_name |
| Tool | Description | Key Parameters |
|---|---|---|
ce_list_jobs | List job definitions | project_id |
ce_get_job | Get job definition details | project_id, job_name |
ce_create_job | Create a job definition | project_id, name, image |
ce_delete_job | Delete a job definition | project_id, job_name |
ce_list_job_runs | List job runs | project_id, job_name (optional) |
ce_get_job_run | Get job run status | project_id, job_run_name |
ce_create_job_run | Submit a job run | project_id, job_name |
ce_delete_job_run | Delete a job run | project_id, job_run_name |
| Tool | Description | Key Parameters |
|---|---|---|
ce_list_secrets | List secrets (names + keys only) | project_id |
ce_get_secret | Get secret metadata (no values) | project_id, secret_name |
ce_create_secret | Create a secret | project_id, name, format, data |
ce_delete_secret | Delete a secret | project_id, secret_name |
| Tool | Description | Key Parameters |
|---|---|---|
ce_list_config_maps | List configmaps | project_id |
ce_get_config_map | Get configmap details | project_id, config_map_name |
ce_create_config_map | Create a configmap | project_id, name, data |
ce_delete_config_map | Delete a configmap | project_id, config_map_name |
IBMCLOUD_API_KEY: IBM Cloud API key (required for Code Engine operations)IBMCLOUD_REGION: Default IBM Cloud region (optional, defaults to us-south)CONTAINER_RUNTIME: Force specific runtime (docker or podman)DEBUG: Enable debug logging# Run in development mode
npm run dev
# Build
npm run build
# Test manually
node build/index.js
node --versionls build/index.jsnode build/index.jsdocker --version or podman --versionibmcloud --versionibmcloud plugin listibmcloud ce project listMIT (see LICENSE)
Contributions are welcome! Please open an issue or submit a pull request.
Markus van Kempen
Email: markus.van.kempen@gmail.com | mvankempen@ca.ibm.com
Website: markusvankempen.github.io
Research | Floor 7 1/2
For issues and questions:
FAQs
IBM Code Engine MCP Server - deploy containers to IBM Cloud Code Engine from Cursor, Copilot, Claude, and Cline using natural language
The npm package code-engine-mcp-server receives a total of 117 weekly downloads. As such, code-engine-mcp-server popularity was classified as not popular.
We found that code-engine-mcp-server demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Security News
The supply chain control that delays freshly published gems now covers lockfile generation and gem vendoring in Ruby projects.

Security News
During a UK cyber test, a Mythos 5 agent used sockpuppets, social engineering, and prompt injection to try to get a maintainer to merge malware.

Company News
Socket is now in the AWS Security Hub Extended plan. Adopt it through AWS, apply committed spend, and block malicious open source packages.