关于 IBM Code Engine MCP Server
IBM Code Engine MCP Server 让开发者通过 MCP 客户端管理 IBM Code Engine 容器部署流程。它涵盖本地构建、镜像推送和云端资源操作,并提供活动仪表板与管理界面。
主要功能
- 01Docker 或 Podman 容器构建
- 02推送镜像至 IBM Container Registry
- 03管理 Code Engine 资源
- 04一键执行构建、推送和部署
- 05查看工具调用与部署活动
- 06通过 Web 管理界面配置
适用场景
- 01从本地项目构建并部署容器
- 02管理 Code Engine 应用、作业和密钥
- 03查看部署状态及工具调用记录
- 04为多种 MCP 客户端共享服务器
MCP 相关
服务器通过 MCP 向客户端提供容器构建、IBM Container Registry 和 Code Engine 操作工具。支持 stdio 或 HTTP 运行,并可由多个客户端共用。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
npx -y code-engine-mcp-serverIBMCLOUD_API_KEY密钥IBM Cloud API key used to authenticate and call Code Engine APIsIBMCLOUD_REGIONDefault IBM Cloud region (for example: us-south)CONTAINER_RUNTIMEOptional container runtime override: docker or podman本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。
工具
65收录的工具列表 · 更新于 2 周前
此工具无需参数。
详细介绍
IBM Code Engine MCP Server

用于 IBM Code Engine 的 MCP 服务——使用自然语言,从 Cursor、Copilot、Claude 和 Cline 构建、推送和部署容器。
当前版本:v1.7.8 ——28 个工具,而非 112 个(每种资源对应一个工具,带有
action字段,功能相同,旧名称仍可用);供 VS Code 扩展使用的共享本地 HTTP 服务;带有 Remote client 标签页的Web 管理界面(测试工具、日志记录、用户和 API 密钥、事件);VS Code 内的 MCP Remote Config;以及用于检查指定服务是否确实为 code-engine MCP 服务的功能。请参阅 CHANGELOG.md 和工具参考。
搜索词: code-engine-mcp · ibm-code-engine · ibm-cloud · ibm-container-registry · mcp-server · model-context-protocol · cursor · github-copilot · claude-desktop · cline · docker · podman · serverless · container-deployment · typescript · npx · ai-agents · devops · cloud-native · watsonx-orchestrate
作者: Markus van Kempen | [email protected] · markusvankempen.github.io 没有小到不值得修复的 Bug,也没有怪到无法理解的语法。
工作原理
flowchart TD
A([AI Assistant\nCopilot / Claude / Cline / Bob]) -->|MCP JSON-RPC| B[Code Engine MCP Server]
B --> C{Tool Category}
C -->|Container Tools| D[Docker / Podman]
C -->|Registry Tools| E[IBM Container Registry\nus.icr.io]
C -->|Code Engine Tools| F[IBM Code Engine\nREST API]
C -->|Procedures| G[Multi-step Workflows]
D -->|build / push / validate| E
E -->|image reference| F
G -->|proc_build_push_deploy| D
G -->|proc_apply_manifest| F
F --> H[(Projects\nApps\nBuilds\nJobs\nSecrets\nDomains)]
H -->|ready| I([Live App\nhttps://app.region.codeengine.appdomain.cloud])
style A fill:#1261FE,color:#fff
style B fill:#0f3460,color:#fff
style G fill:#7b2d8b,color:#fff
style I fill:#198038,color:#fff
✨ 功能一览
- 28 个工具,每种资源对应一个。
ce_app、ce_job、ce_secret……每个工具都接受一个action(list、get、create、delete……)。此前的所有功能都仍然可用;请参阅工具参考。 - 适用于 Docker 或 Podman 的容器工作流工具(
local_container、dockerfile) - IBM Container Registry(
icr)以及完整的 Code Engine 功能:项目、应用、作业、构建、密钥、配置映射、域名、绑定、函数、舰队 - 多步骤流程:一次调用即可完成构建、推送和部署(
proc_build_push_deploy)、自定义域名、声明式清单 - 一个服务,多个客户端。 可通过 stdio 运行,也可作为 HTTP 服务运行,供 IDE、助手、Web UI 和 VS Code 扩展共用
- Web 管理界面(
/admin):概览、活动、用户、API 密钥、运行时设置,以及可测试工具和配置服务(日志记录、用户和密钥、事件)的 Remote client 标签页 - 支持 MCP 的 GitHub Copilot、Cursor、Cline、Bob、Windsurf、Antigravity、Claude Desktop 和
vscode-extension/中的 VS Code 扩展配置(包括 MCP Remote Config) - MCP 活动仪表板——实时显示工具调用时间线、会话分组、部署结果摘要,以及 Deployments 清单标签页
- 实时活动日志记录——为每次 MCP 工具调用提供可选的 JSONL 事件流(
MCP_ACTIVITY_*环境变量)
🚀 快速开始
# 1) Install dependencies
npm install
# 2) Build the server
npm run build
# 3) Run once to verify
node build/index.js
然后使用下方“配置”部分中的示例之一配置 MCP 客户端。
🤖 Agentic 体验(无需 Docker/Code Engine 术语)
这个 MCP 服务真正强大的地方在于,你无需了解 Docker 或 Code Engine 命令。你只需说明目标,大模型就会自主发现环境、运行工作流并修复问题。
以下是一次真实会话中的交互示例:
用户:
“我的应用在
developer-splash文件夹中。请将它部署到我的 Code Engine 项目。”
助手的自主思考过程:
- 发现:“让我检查一下有哪些项目和命名空间……找到了项目
my-project和命名空间my-namespace。” - 前提条件:“这个项目中还没有拉取密钥。我会从
.env文件中获取 API 密钥,并创建密钥icr-pull-secret。” - 执行:“现在我将运行完整工作流:构建 → 推送 → 部署 → 等待。”
- 验证:“应用已部署,但卡在‘部署中’状态。让我检查日志……容器正在运行,但就绪探针检查失败。”
- 自我修正:“啊,Dockerfile 中的
sed模式与 nginx alpine 的默认端口 80 配置格式不匹配。我会使用适合正则表达式的sed修复 Dockerfile,然后重新构建。” - 完成:“应用已上线!🎉 状态:就绪。”
助手对用户的回复:
“你的应用已部署并上线,访问地址为:
https://developer-splash.<subdomain>.<region>.codeengine.appdomain.cloud。我修复了 Dockerfile 中一个小的端口配置问题,现在应用已成功运行!”
使用此 MCP 服务,AI 会作为专家 DevOps 工程师与你并肩协作。
📊 MCP 活动仪表板(v1.4.0)
实时查看 AI 助手正在做什么——工具调用、步骤间的空闲间隔、部署结果和实时应用 URL。
flowchart LR
A[MCP tool call] -->|MCP_ACTIVITY_ENABLED| B[events.jsonl]
B --> C{Dashboard}
C -->|VS Code extension| D[Activity tab]
C -->|Browser| E[localhost:8767]
D --> F[Deployments tab\ninventory + actions]
活动日志记录(默认开启)
从 v1.6.0 起,服务会将每个工具的启动和完成记录到 ~/.code-engine-mcp/activity/events.jsonl——包括输入摘要、工作流子步骤(proc_build_push_deploy)、结果摘要,以及可选的 HTTP 冒烟测试标签。API 密钥、密码、TLS 密钥、环境变量值和密钥负载都会被隐藏。文件达到 5 MB 后会轮换。
MCP 客户端配置中的可选环境变量:
"MCP_ACTIVITY_ENABLED": "false",
"MCP_ACTIVITY_EVENTS_PATH": "/custom/path/events.jsonl",
"MCP_ACTIVITY_SESSION_ID": "session:my-chat-001",
"MCP_ACTIVITY_CHAT_LABEL": "Deploy Star Wars splash"
在 VS Code 扩展中,可通过 codeEngineMcp.activityEnabled 关闭日志记录。更改环境变量后,请重启 MCP 服务。
所有 MCP_ACTIVITY_* 变量请参阅 .env.example。
打开仪表板
| 方式 | 操作 |
|---|---|
| VS Code 扩展 | 命令面板 → IBM Code Engine MCP: 打开 MCP 活动仪表板 |
| 浏览器(开发仓库) | npm run dashboard → http://localhost:8767/ |
| 实时刷新 | 默认在浏览器中开启;可在面板内切换,或设置 codeEngineMcp.activityLiveRefresh(扩展) |
活动选项卡会显示会话时间线,包括工具耗时、空闲间隔和任务结果横幅(状态、镜像、实时 URL)。部署选项卡会列出 Code Engine 中的项目和应用,并支持通过 MCP 工具获取详情、重新部署和删除。
聊天提示词示例:
“我在 examples/starwars-splash 中有一个星球大战启动页。请仅使用 MCP 工具将它部署到 Code Engine——为 linux/amd64 构建、推送到我的 ICR 命名空间,并部署到我的 Code Engine 项目。准备就绪后,请告诉我实时 URL。”
助手运行期间打开活动仪表板,即可逐步查看 proc_build_push_deploy 的进度。
部署你的第一个应用
本节将演示如何完全通过 MCP 服务部署随附的 星球大战启动页示例——一个静态 nginx 容器。
**Apple Silicon 用户:**请始终使用
--platform linux/amd64构建。Code Engine 仅运行 amd64。
步骤 1 — 构建并推送镜像
cd examples/starwars-splash
podman build --platform linux/amd64 -t us.icr.io/<your-namespace>/starwars-splash:v1.0.0 .
podman push us.icr.io/<your-namespace>/starwars-splash:v1.0.0
或者向你的助手提出请求:
Build examples/starwars-splash as us.icr.io/my-namespace/starwars-splash:v1.0.0 for linux/amd64 and push it
MCP 响应 — build_container_image:
{
"success": true,
"command": "podman build --platform linux/amd64 -t us.icr.io/my-namespace/starwars-splash:v1.0.0 ...",
"build_output": "STEP 1/5: FROM nginx:alpine\nSTEP 2/5: COPY index.html /usr/share/nginx/html/index.html\nSTEP 3/5: RUN sed -i 's/listen 80;/listen 8080;/g' /etc/nginx/conf.d/default.conf\nSTEP 4/5: EXPOSE 8080\nSTEP 5/5: CMD [\"nginx\", \"-g\", \"daemon off;\"]\nSuccessfully tagged us.icr.io/my-namespace/starwars-splash:v1.0.0"
}
注意: 容器运行时(Podman/Docker)会将构建进度写入 stderr。
build_output字段会合并 stdout 和 stderr,让你看到完整的构建日志。
MCP 响应 — push_container_image:
{
"success": true,
"command": "podman push us.icr.io/my-namespace/starwars-splash:v1.0.0",
"output": "Getting image source signatures\nCopying blobs...\nWriting manifest to image destination"
}
步骤 2 — 创建镜像仓库拉取密钥
向你的助手提出请求(每个项目执行一次):
Create a registry secret called icr-pull-secret in project <project-id> for us.icr.io using my IBM Cloud API key
或者直接使用 ce_create_secret 工具:
{
"project_id": "<your-project-id>",
"name": "icr-pull-secret",
"format": "registry",
"data": {
"username": "iamapikey",
"password": "<your-ibm-cloud-api-key>",
"server": "us.icr.io",
"email": "[email protected]"
}
}
MCP 响应 — ce_create_secret:
{
"name": "icr-pull-secret",
"format": "registry",
"resource_type": "secret_registry_v2",
"created_at": "2026-05-08T22:10:00Z",
"project_id": "<your-project-id>"
}
步骤 3 — 部署应用
向你的助手提出请求:
Deploy us.icr.io/my-namespace/starwars-splash:v1.0.0 to Code Engine project <project-id>
as app "starwars-splash" using pull secret icr-pull-secret, min 1 instance
或者使用 ce_create_application 工具:
{
"project_id": "<your-project-id>",
"name": "starwars-splash",
"image": "us.icr.io/<your-namespace>/starwars-splash:v1.0.0",
"image_secret": "icr-pull-secret",
"scale_min_instances": 1,
"scale_max_instances": 3
}
MCP 响应 — ce_create_application:
{
"name": "starwars-splash",
"resource_type": "app_v2",
"status": "deploying",
"image_reference": "us.icr.io/my-namespace/starwars-splash:v1.0.0",
"image_secret": "icr-pull-secret",
"image_port": 8080,
"scale_min_instances": 1,
"scale_max_instances": 3,
"scale_cpu_limit": "1",
"scale_memory_limit": "4G",
"endpoint": "https://starwars-splash.<subdomain>.us-south.codeengine.appdomain.cloud",
"status_details": {
"latest_created_revision": "starwars-splash-00001",
"latest_ready_revision": null
}
}
步骤 4 — 检查部署状态
Get details for the starwars-splash app in project <project-id>
此操作会调用 ce_get_application,并在应用状态变为 ready 后返回公开 URL。
List the running instances of starwars-splash in project <project-id>
此操作会调用 ce_list_app_instances(为某个实例传入 instance_name;ce_get_app_instance 仍然可用),并显示:
- 实例名称和修订版本
- 容器状态(
running/pending/failed) - 重启次数
- 启动时间戳
- CPU 和内存分配
MCP 响应 — ce_get_application(就绪后):
{
"name": "starwars-splash",
"status": "ready",
"image_reference": "us.icr.io/my-namespace/starwars-splash:v1.0.0",
"image_port": 8080,
"scale_min_instances": 1,
"scale_max_instances": 3,
"scale_cpu_limit": "0.5",
"scale_memory_limit": "1G",
"region": "us-south",
"endpoint": "https://starwars-splash.<subdomain>.us-south.codeengine.appdomain.cloud",
"status_details": {
"latest_created_revision": "starwars-splash-00001",
"latest_ready_revision": "starwars-splash-00001"
}
}
步骤 5 — 映射自定义域名(可选)
若要通过自己的域名(例如 myapp.example.com)提供应用服务,你需要 TLS 证书。IBM Code Engine REST API 始终要求提供真实证书 — IBM 控制台中的“Platform managed”选项无法通过 API 使用。
5a — 获取 Let's Encrypt 证书(certbot)
# Install once
brew install certbot
# Request cert — certbot will print a DNS TXT challenge value
mkdir -p ~/certbot/{config,work,logs}
/opt/homebrew/bin/certbot certonly --manual --preferred-challenges dns \
-d <your-domain> --agree-tos --no-eff-email --email [email protected] \
--config-dir ~/certbot/config --work-dir ~/certbot/work --logs-dir ~/certbot/logs
Certbot 会暂停并提示你添加 TXT 记录:
Add TXT record: _acme-challenge.<your-domain> = <challenge-value>
确认 DNS 记录已传播,然后按 Enter。Certbot 会写入:
~/certbot/config/live/<your-domain>/fullchain.pem~/certbot/config/live/<your-domain>/privkey.pem
5b — 在 Code Engine 中创建 TLS 密钥
向你的助手提出请求:
Create a TLS secret called starwars-tls in project <project-id>
using cert ~/certbot/config/live/myapp.example.com/fullchain.pem
and key ~/certbot/config/live/myapp.example.com/privkey.pem
此操作会调用 ce_create_tls_secret_from_pem — 从磁盘读取 PEM 文件,并将其存储为 Code Engine tls 密钥。
MCP 响应 — ce_create_tls_secret_from_pem:
{
"name": "my-tls",
"format": "tls",
"resource_type": "secret_tls_v2",
"created_at": "2026-05-08T22:30:00Z",
"project_id": "<your-project-id>"
}
5c — 创建域名映射
向你的助手提出请求:
Map domain myapp.example.com to app my-app
in project <project-id> using TLS secret my-tls
此操作会调用 ce_create_domain_mapping 并返回 cname_target。
MCP 响应 — ce_create_domain_mapping:
{
"name": "myapp.example.com",
"status": "ready",
"cname_target": "custom.<subdomain>.us-south.codeengine.appdomain.cloud",
"component": {
"resource_type": "app_v2",
"name": "my-app"
},
"tls_secret": "my-tls",
"region": "us-south"
}
5d — 更新 CNAME
在你的 DNS 服务商处设置:
myapp.example.com CNAME custom.<subdomain>.us-south.codeengine.appdomain.cloud
使用 5c 中返回的 cname_target 值(它使用 custom. 前缀,而不是应用名称)。
DNS 传播完成后,https://<your-domain> 将通过有效的 TLS 证书提供应用服务。
证书续期: Let's Encrypt 证书会在 90 天后过期。重新运行 certbot 获取更新后的 PEM 文件,然后让 Copilot 使用
moderenew运行ce_create_tls_secret_from_pem— 它会就地更新现有密钥,因此域名映射可继续正常工作,无需做任何更改。直接调用ce_renew_tls_secret_from_pem仍然可用。
完整的一次性提示词
I have a Star Wars splash page in examples/starwars-splash.
Build it for linux/amd64 as us.icr.io/my-namespace/starwars-splash:v1.0.0,
push it, then deploy it to Code Engine project <project-id> with pull secret icr-pull-secret.
Tell me the public URL and confirm the instance is running.
🔒 安全与传输模型
两种凭据
-
IBM Cloud API 密钥(
IBMCLOUD_API_KEY):服务器用于与 IBM Cloud 通信的凭据。它保留在服务器进程中,调用方永远不会收到它。 -
MCP 调用方凭据:用于确定谁可以调用此服务器上的工具。它们不会发送到 IBM Cloud。
- Web 管理员会话(
/admin,内置用户admin,使用ADMIN_PASSWORD), - 用户凭据,以
Authorization: Basic user:password形式发送(server_users), - MCP API 密钥,以
Authorization: Bearer cemcp_…形式发送(server_api_keys;密钥仅显示一次)。
每种凭据都具有
read、write、admin作用域。通过 stdio 通信时没有请求头;请在服务器环境中设置MCP_API_KEY,或设置MCP_USERNAME和MCP_PASSWORD。详情请参阅:工具作用域和身份验证。 - Web 管理员会话(
传输方式
| 模式 | 启动方式 | 端点 |
|---|---|---|
| stdio(默认) | MCP 客户端启动 node build/index.js | 无;客户端拥有 stdin 和 stdout |
| HTTP | MCP_MODE=http PORT=8787 HOST=127.0.0.1 node build/index.js | POST/GET/DELETE /mcp(Streamable HTTP)、GET /sse 和 POST /messages(旧版 SSE)、/health、/admin、/test、/tools、/log、/docs |
运行一个服务比运行多个更好。 每个客户端都会启动一个 stdio 服务,因此每个 IDE 窗口都有自己的进程和内存。一个进程的审计跟踪、速率限制、会话和运行时设置,对另一个进程的 Web UI 不可见。如果你希望跟踪记录、日志、用户、密钥和设置保持一致,请运行一个 HTTP 服务并让所有客户端都连接到它。VS Code 扩展默认就是这样做的。
本地服务加固
- 除非服务需要远程访问,否则请绑定到
127.0.0.1。在公共地址上绑定(HOST=0.0.0.0、容器)时,内置的admin会被禁用,直到设置ADMIN_PASSWORD。 MCP_LOCAL_ONLY=true会让服务仅响应Host为localhost、127.0.0.1或[::1]的请求,因此,将自身名称重新绑定到127.0.0.1的网页无法访问该服务。VS Code 扩展会为其启动的服务设置此项。使用反向代理时请将其关闭。- 管理员 Cookie 设置了
HttpOnly和SameSite=Strict;连续五次登录失败后,该地址会被锁定十分钟;导出的设置不包含机密信息。
🌐 在 Code Engine 上托管任意 MCP 服务
你可以使用此 MCP 服务将另一个 MCP 服务部署到 Code Engine——无需 CLI、Dockerfile 或 YAML。关键组件是 supergateway:一个轻量级桥接工具,可将任意基于 STDIO 的 MCP 服务封装为 HTTP + SSE 端点,使其可供任何远程客户端访问。
Your AI Assistant
│ MCP JSON-RPC (STDIO, local)
▼
code-engine-mcp-server ──► ce_create_application
│
▼
Code Engine App
image: docker.io/supercorp/supergateway
args: --stdio "npx -y <any-mcp-server>"
--outputTransport sse
│ HTTPS + SSE (public URL)
▼
Any remote MCP client
(Claude Desktop, Cursor, VS Code, …)
任何基于 STDIO 的 MCP 服务都能成为可远程访问、自动扩缩的云服务,无需自定义基础设施。
此示例部署 @tokenizin/mcp-npx-fetch,这是一个可让 AI 助手从公共 URL 获取内容的 MCP 服务。
示例文件位于 examples/mcp-server-supergateway/。
步骤 1 — 部署托管的 MCP 服务
向你的助手提问:
Deploy a hosted MCP fetch server to my Code Engine project <project-id>.
Use image docker.io/supercorp/supergateway on port 8000.
Startup args: --stdio "npx -y @tokenizin/mcp-npx-fetch" --outputTransport sse
Name it "mcp-fetch-server". No pull secret needed.
这会调用 ce_create_application:
{
"project_id": "<your-project-id>",
"name": "mcp-fetch-server",
"image": "docker.io/supercorp/supergateway",
"port": 8000,
"run_args": ["--stdio", "npx -y @tokenizin/mcp-npx-fetch", "--outputTransport", "sse"]
}
MCP 响应 — ce_create_application:
{
"name": "mcp-fetch-server",
"resource_type": "app_v2",
"status": "deploying",
"image_reference": "docker.io/supercorp/supergateway",
"image_port": 8000,
"scale_min_instances": 0,
"scale_max_instances": 10,
"endpoint": "https://mcp-fetch-server.<subdomain>.<region>.codeengine.appdomain.cloud",
"status_details": {
"latest_created_revision": "mcp-fetch-server-00001",
"latest_ready_revision": null
}
}
无需拉取密钥——
docker.io/supercorp/supergateway是公共镜像。Code Engine 会在空闲时缩容至零;你只需为实际请求付费。
步骤 2 — 等待应用就绪
向你的助手提问:
Wait for mcp-fetch-server in project <project-id> to be ready
这会调用 ce_wait_for_app_ready:
{
"project_id": "<your-project-id>",
"app_name": "mcp-fetch-server",
"timeout_seconds": 120
}
MCP 响应 — ce_wait_for_app_ready:
{
"app_name": "mcp-fetch-server",
"status": "ready",
"endpoint": "https://mcp-fetch-server.<subdomain>.<region>.codeengine.appdomain.cloud",
"elapsed_seconds": 34,
"poll_history": [
{ "attempt": 1, "status": "deploying", "elapsed_seconds": 10 },
{ "attempt": 2, "status": "deploying", "elapsed_seconds": 20 },
{ "attempt": 3, "status": "ready", "elapsed_seconds": 34 }
]
}
步骤 3 — 验证运行中的实例
向你的助手提问:
List the running instances of mcp-fetch-server in project <project-id>
这会调用 ce_list_app_instances:
MCP 响应 — ce_list_app_instances:
{
"instances": [
{
"name": "mcp-fetch-server-00001-deployment-abc123",
"revision": "mcp-fetch-server-00001",
"status": "running",
"restart_count": 0,
"started_at": "2026-05-09T12:01:44Z"
}
]
}
步骤 4 — 连接 MCP 客户端
使用 mcp-remote 将 HTTP+SSE 端点桥接回 STDIO,供本地客户端使用。
VS Code mcp.json:
{
"servers": {
"fetch": {
"command": "npx",
"args": [
"mcp-remote",
"https://mcp-fetch-server.<subdomain>.<region>.codeengine.appdomain.cloud/sse"
]
}
}
}
Claude Desktop claude_desktop_config.json:
{
"mcpServers": {
"fetch": {
"command": "npx",
"args": [
"mcp-remote",
"https://mcp-fetch-server.<subdomain>.<region>.codeengine.appdomain.cloud/sse"
]
}
}
}
步骤 5 — 测试端点
验证服务是否正常运行并持续传输:
curl -N https://mcp-fetch-server.<subdomain>.<region>.codeengine.appdomain.cloud/sse
或者在 MCP Inspector 中打开:
npx @modelcontextprotocol/inspector
# Connect via SSE → paste the Code Engine URL
连接后,你会看到列出的 fetch 工具,并可直接从 Inspector 调用它。
完整的一次性提示词
Deploy a hosted MCP fetch server to my Code Engine project <project-id>.
Use image docker.io/supercorp/supergateway on port 8000 with no pull secret.
run_args: --stdio "npx -y @tokenizin/mcp-npx-fetch" --outputTransport sse
Name it "mcp-fetch-server", wait for it to be ready, and give me the /sse URL
so I can add it to my mcp.json.
请参阅 examples/mcp-server-supergateway/,获取可直接使用的客户端配置文件。
部署其他任意 STDIO MCP 服务
同样的模式适用于任何可通过 npx 运行的 MCP 服务——只需替换 --stdio 参数:
| MCP 服务 | --stdio 参数 |
|---|---|
| Fetch | npx -y @tokenizin/mcp-npx-fetch |
| Filesystem | npx -y @modelcontextprotocol/server-filesystem /data |
| Brave Search | npx -y @modelcontextprotocol/server-brave-search |
| 你自己的服务 | node /app/server.js |
文档
- 设置说明
- 工具参考(28 个工具,涵盖所有操作)
- 连接到远程或共享服务
- 工具范围与身份验证 — 说明只读、写入和破坏性操作的含义,以及何时需要管理员登录才能调用
- MCP Inspector 故障排除
- VS Code MCP 扩展 — 活动仪表板、回执可视化工具、设置与诊断
- IBM Code Engine API(IBM Cloud)
- 客户端示例 — Cursor、VS Code、Claude、Windsurf、
mcp>命令行和浏览器页面 - 客户端自述文件
- Cline MCP 配置示例
- 行为准则
- 贡献指南
- 维护者
🗂️ 项目结构
code-engine-mcp-server/
├── build/ # Compiled JavaScript output (dev repo)
├── docs/ # API references, client guides, community files
│ ├── API_CALL_SCENARIOS.md
│ ├── CODE_ENGINE_API_REFERENCE.md
│ ├── MCP_INSPECTOR_TROUBLESHOOTING.md
│ ├── SETUP_INSTRUCTIONS.md
│ ├── TOOL_ACCESS.md
│ ├── CODE_OF_CONDUCT.md
│ ├── CONTRIBUTING.md
│ └── MAINTAINERS.md
├── examples/
│ ├── developer-splash/ # nginx static container example
│ ├── starwars-splash/ # nginx Star Wars crawl example
│ ├── startrek-splash/ # nginx Star Trek splash example
│ ├── deploy-mcp-server-to-code-engine/ # Deploy this MCP server onto Code Engine
│ └── mcp-server-supergateway/ # Host any MCP server on Code Engine via supergateway
├── dashboard/ # MCP Activity Dashboard (dev repo) — npm run dashboard
│ ├── index.html # Activity + Deployments UI
│ ├── serve-dashboard.mjs # Local server on port 8767
│ └── activity/live/events.jsonl # Live tool-call log (gitignored runtime file)
├── internal/ # Internal release notes
├── src/ # Main TypeScript source code
├── CHANGELOG.md # Release history
├── LICENSE # Project license
├── README.md # Project overview and usage
├── mcp.example.json # Example MCP client configuration
├── vscode-extension/ # Optional VS Code extension
├── package.json # npm package metadata and scripts
├── server.json # MCP Registry metadata
└── tsconfig.json # TypeScript configuration
🧩 功能
工具(28 个)
- 本地容器: 检测 Docker 或 Podman、构建、标记、推送、运行、检查、清理(
local_container);检查或创建 Dockerfile(dockerfile) - IBM Container Registry: 命名空间和镜像(
icr) - Code Engine: 项目(状态、配额、出口 IP)、应用(创建、更新、等待、重启、回滚、同步
.env、查找闲置应用)、应用诊断(实例、日志、事件、修订版)、作业和作业运行、构建和构建运行、密钥(通用、注册表、TLS,支持原位更新和 ICR 拉取密钥刷新)、配置映射、域映射、服务绑定、函数、舰队 - 流程:
proc_build_push_deploy、proc_setup_custom_domain、proc_apply_manifest - 发现:
describe_server、list_schemas、get_schema - 本服务:
server_settings、server_access、server_users、server_api_keys、server_log - 工作区:
write_or_modify_file
每个工具都有一个 outputSchema,每个结果都有一个 next 提示,错误调用会说明需要修正的内容。请参阅可用工具和工具参考。
Web 管理界面和运维
- 在
/admin登录:概览、远程客户端(通过架构驱动的表单调用任意工具、开启活动日志和审计跟踪、创建用户和 MCP API 密钥、监听事件)、活动、事件、用户、API 密钥、运行时 - 每个工具的工具范围与身份验证、速率限制、协议开关、设置和日志导出(不含密钥)
VS Code 扩展
- 设置与诊断侧边栏、适用于每种 IDE 的 Configure MCP、MCP Remote Config 面板、活动仪表板、收据可视化工具
- 可选择 共享 HTTP 服务(默认)、
stdio或远程服务 URL,并检查该服务是否为 code-engine MCP 服务 - 详情:vscode-extension/README.md
开发者体验
- MCP 活动仪表板 — 会话时间线、空闲间隔可视化、部署结果横幅、部署清单选项卡
- 实时活动日志记录 — JSONL 事件流,包含输入摘要、流水线子步骤和 HTTP 探测重点信息
⚙️ 配置
获取 IBM Cloud API 密钥
所有 Code Engine 和 ICR 操作都需要 IBM Cloud API 密钥。请前往此处获取: IBM Cloud IAM → API keys → Create an IBM Cloud API key。
请将密钥保存在安全的地方(密码管理器)。你需要将它粘贴到以下某种配置方式中。
方式 A — VS Code 扩展(推荐)
IBM Code Engine MCP 扩展会处理所有事项:启动服务、存储 API 密钥以及注册 MCP,无需手动编辑 mcp.json。
从 Marketplace 安装:
| IDE / 平台 | 安装链接 |
|---|---|
| VS Code | marketplace.visualstudio.com |
| Cursor / Theia / Gitpod / Codium | open-vsx.org |
从本地 .vsix 安装 | 命令面板 → 扩展:从 VSIX 安装… |
设置 API 密钥(使用任何工具前都必须完成):
- 打开 IBM Code Engine MCP 侧边栏面板(活动栏中的云图标)
- 粘贴 IBM Cloud API 密钥并点击 Save
(密钥存储在 VS Code SecretStorage 中,绝不会保存在纯文本文件里) - 可在同一面板中更改区域(默认值:
us-south) - 在 Server connection → This computer 下选择服务运行方式:
- 共享 HTTP 服务(默认):扩展会在
127.0.0.1:8787上启动一个服务,聊天、IDE MCP 列表、Web UI 和 MCP Remote Config 都会使用它。请以admin/admin身份登录 Web UI(使用设置codeEngineMcp.localAdminPassword更改密码)。 - stdio:每个 IDE 窗口都会启动自己的进程。
- 或者 远程服务:任意主机上共享服务的 URL。
- 共享 HTTP 服务(默认):扩展会在
- 点击 Configure MCP — 这会将
code-engine条目(即扩展使用的同一连接)写入 VS Code、Cursor、Bob、Windsurf、Cline、Antigravity 和 Claude Desktop 的配置。保留这些文件中的其他服务。 - 点击 Run Diagnostics,确认所有配置均已就绪:
- ✅ 已在 PATH 中找到 Node.js
- ✅ 已配置 API 密钥
- ✅ 已注册 MCP 服务
- ✅ 已发现工具列表(标题会显示数量,例如
Discovered Tools (28))
完成第 5 步后,你可以打开 GitHub Copilot Chat 并立即询问:
“列出我所有的 Code Engine 项目”
提示: 如果安装后 Copilot 看不到这些工具,请运行一次 命令面板 → 重新加载窗口。
更多详情:vscode-extension/README.md。
方式 B — 纯 MCP 配置(不使用扩展)
适用于任何支持 MCP 的客户端:不使用扩展的 GitHub Copilot、Cline、Bob、Claude Desktop、Cursor 等。
API 密钥的放置位置(选择一种方式)
选项 1 — Shell 环境变量(最安全)
复制提供的模板并填入密钥:
cp .env.example .env # copy template (already in .gitignore)
# edit .env → set IBMCLOUD_API_KEY=your-key
source .env # load into current shell session
或者将导出命令永久添加到 shell 配置文件中,这样每个新终端都会设置该变量:
# ~/.zshrc or ~/.bash_profile
export IBMCLOUD_API_KEY="your-ibm-cloud-api-key-here"
查看 .env.example,了解所有可用变量(IBMCLOUD_REGION、CONTAINER_RUNTIME、DEBUG)。
然后在 MCP 配置中引用该变量,而不嵌入其值:
{
"servers": {
"code-engine": {
"type": "stdio",
"command": "npx",
"args": ["-y", "code-engine-mcp-server@latest"],
"env": {
"IBMCLOUD_API_KEY": "${env:IBMCLOUD_API_KEY}",
"IBMCLOUD_REGION": "us-south"
}
}
}
}
${env:VARIABLE}是 VS Code 的输入替换语法 — 它会在启动时读取 shell 环境中的值,因此 API 密钥不会存储在文件中。
选项 2 — VS Code 输入变量(连接时提示)
VS Code 可以在启动服务时提示你输入 API 密钥 — 非常适合共用设备:
{
"inputs": [
{
"id": "ibmcloud-api-key",
"type": "promptString",
"description": "IBM Cloud API key",
"password": true
}
],
"servers": {
"code-engine": {
"type": "stdio",
"command": "npx",
"args": ["-y", "code-engine-mcp-server@latest"],
"env": {
"IBMCLOUD_API_KEY": "${input:ibmcloud-api-key}",
"IBMCLOUD_REGION": "us-south"
}
}
}
}
选项 3 — 内联值(最简单,安全性最低)
直接粘贴密钥。切勿将此文件提交到 git。
{
"servers": {
"code-engine": {
"type": "stdio",
"command": "npx",
"args": ["-y", "code-engine-mcp-server@latest"],
"env": {
"IBMCLOUD_API_KEY": "your-ibm-cloud-api-key-here",
"IBMCLOUD_REGION": "us-south"
}
}
}
}
**安全性:**将配置文件添加到
.gitignore。对于工作区配置,请使用${env:...}或${input:...},不要使用内联值。
1) GitHub Copilot(VS Code)— 工作区 mcp.json
在工作区根目录中创建 .vscode/mcp.json(或复制 mcp.example.json):
cp mcp.example.json .vscode/mcp.json
echo '.vscode/mcp.json' >> .gitignore
粘贴上面其中一种 API 密钥配置方式。然后重启服务:
Cmd+Shift+P → MCP:重启服务 → code-engine。
或者,使用全局 MCP 配置 ~/Library/Application Support/Code/User/mcp.json(macOS),这样所有工作区都能使用该服务,而无需为每个项目单独创建文件。
2) Cline(VS Code 扩展)
- 打开 VS Code 设置(
Cmd+,) - 搜索 Cline: MCP Settings → Edit in settings.json
- 添加:
{
"cline.mcpServers": {
"code-engine": {
"command": "npx",
"args": ["-y", "code-engine-mcp-server@latest"],
"env": {
"IBMCLOUD_API_KEY": "your-api-key-here",
"IBMCLOUD_REGION": "us-south"
}
}
}
}
3) Bob(VS Code 扩展)
Bob 使用相同的 cline.mcpServers 配置格式:
- 打开 VS Code 设置(
Cmd+,) - 搜索 Cline: MCP Settings → Edit in settings.json
- 添加:
{
"cline.mcpServers": {
"code-engine": {
"command": "npx",
"args": ["-y", "code-engine-mcp-server@latest"],
"env": {
"IBMCLOUD_API_KEY": "your-api-key-here",
"IBMCLOUD_REGION": "us-south"
}
}
}
}
路径 C — 共享 HTTP 服务(本地或远程)
以 HTTP 模式运行一次服务,然后让每个客户端连接到它。同样的步骤适用于笔记本电脑以及 IBM Code Engine、Render、Fly.io、VM 或任何容器主机。该服务是一个普通的 Node HTTP 应用。
1. 启动服务
IBMCLOUD_API_KEY=<key> MCP_MODE=http PORT=8787 HOST=127.0.0.1 \
ADMIN_PASSWORD=<choose one> npx -y code-engine-mcp-server
在公共主机上使用 HOST=0.0.0.0,并始终设置 ADMIN_PASSWORD(未设置该变量时,内置的 admin 会被禁用)。在服务前端配置 TLS。
2. 安全模型
- IBM Cloud API 密钥保存在服务端(环境变量中,或存储在
server_settingssecrets中)。调用方不会发送或接收该密钥。 - 调用方使用用户身份(
Authorization: Basic …)、MCP API 密钥(Authorization: Bearer cemcp_…)或管理员会话 Cookie 向服务进行身份验证。通过/admin或使用server_users和server_api_keys创建这些凭证。 read、write、admin作用域和身份验证模式(open、writes、all)决定每个调用方可以执行哪些操作:docs/TOOL_ACCESS.md。
3. 客户端配置
VS Code、Cursor、Windsurf 及其他支持 Streamable HTTP 的工具(mcp.json):
{
"servers": {
"code-engine": {
"type": "http",
"url": "https://your-server.example/mcp",
"headers": { "Authorization": "Bearer cemcp_…" }
}
}
}
仅支持 stdio 的客户端可以使用 mcp-remote:
{
"mcpServers": {
"code-engine-remote": {
"command": "npx",
"args": ["-y", "mcp-remote", "https://your-server.example/mcp",
"--header", "Authorization: Bearer ${CODE_ENGINE_MCP_API_KEY}"],
"env": { "CODE_ENGINE_MCP_API_KEY": "cemcp_…" }
}
}
}
VS Code 扩展会为你写入这些条目(Setup → Server connection,然后选择 Configure MCP)。有关每种 IDE 的说明,请参阅 docs/REMOTE_MCP_CONNECTION.md。
4. 检查服务
GET /health 无需凭证即可响应(脚本可使用 ?format=json;JSON 中的服务名称为 code-engine-mcp-server)。打开 /admin,查看工具数量、调用日志和设置。
如果你的 shell 已导出密钥,建议使用
${env:IBMCLOUD_API_KEY},这样密钥就不会出现在settings.json中。
3) Claude Desktop
编辑 ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"code-engine": {
"command": "npx",
"args": ["-y", "code-engine-mcp-server@latest"],
"env": {
"IBMCLOUD_API_KEY": "your-api-key-here",
"IBMCLOUD_REGION": "us-south"
}
}
}
}
保存后重启 Claude Desktop。Claude 需要使用工具时,服务会按需启动。
安装与注册表链接
| 平台 | 链接 |
|---|---|
| npm(MCP 服务包) | code-engine-mcp-server |
| VS Code Marketplace(扩展) | MarkusvanKempen.code-engine-mcp |
| Open VSX Registry(Theia / Gitpod / Cursor) | markusvankempen.code-engine-mcp |
| MCP Registry | io.github.markusvankempen/code-engine-mcp-server |
VS Code 扩展是最简单的入门方式——它会自动处理服务启动、API 密钥存储和 MCP 注册。如果你更喜欢手动配置 MCP(用于 Cline、Claude Desktop、Cursor 或任何其他客户端),可直接使用 npm 包。
💬 示例提示词
检测容器运行时
向助手提问:
Can you detect which container runtime I have installed?
构建容器镜像
向助手提问:
Build a container image from ./Dockerfile with the name myapp:latest
在本地测试容器
向助手提问:
Test the myapp:latest image locally on port 8080
推送到注册表
向助手提问:
Push myapp:latest to icr.io/my-namespace/myapp:latest
列出 Code Engine 项目
向助手提问:
List all my Code Engine projects
完整工作流
向助手提问:
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
自定义域名
向助手提问:
Create a TLS secret called my-tls in project <project-id>
using cert ~/certbot/config/live/example.com/fullchain.pem
and key ~/certbot/config/live/example.com/privkey.pem.
Then map domain example.com to app my-app using that secret.
Tell me what CNAME value to set in DNS.
🛠️ 可用工具
该服务发布了 28 个工具。资源工具(ce_app、ce_job、ce_secret、……)接受一个 action 字段,因此一个工具即可涵盖该资源的列出、获取、创建、更新、删除及其他操作。此前的 112 个单一用途工具名称(ce_list_applications、ce_create_job、……)仍可按名称调用;它们只是在 tools/list 中隐藏起来,以缩短模型的工具菜单。
不确定时,先调用 describe_server;如需查看各操作的确切字段,可使用工具名称调用 get_schema。所有操作及其必填字段的完整列表见 工具参考。
{ "name": "ce_app", "arguments": { "action": "list", "project_id": "<project-id>" } }
用于项目发现的区域:us-south、us-east、eu-de、eu-gb、eu-es、jp-tok、jp-osa、au-syd、ca-tor、br-sao。
过程(
proc_*)会将多个步骤打包为一次调用,例如构建、推送、等待镜像并部署。 | 工具 | 类型 | 用途 | |---|---|---| |describe_server| 只读 | 发现工具:服务器版本、IBM Cloud API 密钥状态、支持的 CE 区域以及已发布的工具目录 | |list_schemas| 只读 | 列出所有架构 ID:数据架构(服务器、设置、日志、错误),以及每个工具名称对应的架构 | |get_schema| 只读 | 从 list_schemas 获取一个架构 | |local_container| 可删除或停止 | 本机上的 Docker 或 Podman:检测运行时、构建、标记、推送、运行、检查并清理镜像和容器 | |dockerfile| 写入 | 检查或创建适用于 Code Engine 的 Dockerfile(linux/amd64、端口 8080、非 root) | |icr| 可删除或停止 | IBM Container Registry:命名空间及其中的镜像 | |ce_project| 可删除或停止 | Code Engine 项目 | |ce_app| 可删除或停止 | Code Engine 应用(始终运行或缩容至零的 HTTP 服务) | |ce_app_inspect| 只读 | 对单个 Code Engine 应用进行只读诊断:运行中的实例、日志、Kubernetes 事件(无法启动的原因)以及修订版本(可回滚到的版本) | |ce_job| 可删除或停止 | Code Engine 作业定义(运行至完成的批处理任务) | |ce_job_run| 可删除或停止 | Code Engine 作业的运行记录 | |ce_build| 可删除或停止 | Code Engine 构建配置:在 IBM Cloud 中从 Git 构建容器镜像(无需本地 Docker) | |ce_build_run| 写入 | Code Engine 构建的运行记录 | |ce_secret| 可删除或停止 | Code Engine 密钥:通用键/值、镜像仓库拉取凭据、TLS、SSH | |ce_config_map| 可删除或停止 | Code Engine 配置映射:适用于应用和作业的非敏感键/值设置 | |ce_domain_mapping| 可删除或停止 | Code Engine 应用的自定义域名 | |ce_binding| 可删除或停止 | 服务绑定:通过 service_access 密钥将 IBM Cloud 服务实例连接到 Code Engine 应用或作业 | |ce_function| 可删除或停止 | Code Engine 无服务器函数(代码,而非容器镜像) | |ce_fleet| 可删除或停止 | Code Engine Fleet:处理任务队列的大型工作进程池 | |proc_build_push_deploy| 写入 | 流程:一步完成完整容器流水线——自动检测 Podman 或 Docker,为 linux/amd64 构建,推送到 IBM Container Registry(ICR),创建或更新 Code Engine 应用,等待其就绪,并返回公共 URL | |proc_setup_custom_domain| 写入 | 流程:一步完成自定义域名设置——从磁盘读取 TLS 证书 PEM 文件(例如 | |proc_apply_manifest| 写入 | 将声明式 JSON 部署清单(ce-deploy.json)应用到 Code Engine | |write_or_modify_file| 写入 | 在工作区中写入或更新文本文件 | |server_settings| 写入 | 此 MCP 服务保存的设置 | |server_access| 写入 | 谁以及什么可以访问此 MCP 服务 | |server_users| 可删除或停止 | 管理员 | |server_api_keys| 可删除或停止 | 管理员 | |server_log| 写入 | 此 MCP 服务自身的调用日志和出站事件订阅 | 类型: 只读 工具只查看;写入 会创建或更改内容;可以删除或停止 表示至少有一项操作会删除或停止某些内容,因此助手应先征求确认。
🔐 环境变量
IBM Cloud
IBMCLOUD_API_KEY:IBM Cloud API 密钥(Code Engine 和注册表操作必需)IBMCLOUD_REGION:默认 IBM Cloud 区域(可选,默认为us-south)CONTAINER_RUNTIME:强制使用docker或podman
HTTP 模式和 Web UI
| 变量 | 默认值 | 用途 |
|---|---|---|
MCP_MODE | stdio | 设为 http 以提供 /mcp、/sse 和 Web UI |
PORT | 8787 | 监听端口 |
HOST | 127.0.0.1 | 绑定地址;0.0.0.0 表示公开访问 |
ADMIN_USER | admin | 内置管理员名称 |
ADMIN_PASSWORD | 本地为 admin | 管理员密码;绑定到公开地址时必需 |
MCP_LOCAL_ONLY | 关闭 | true:仅响应发往 localhost、127.0.0.1、[::1] 的请求 |
CORS_ORIGINS | 无 | 额外允许的 CORS 来源,以逗号分隔 |
RATE_LIMIT_ENABLED、RATE_LIMIT、RATE_LIMIT_WINDOW_SECONDS | 开启、60、60 | 每个调用方在每个时间窗口内的调用次数 |
USER_STORE_PATH、TOOL_POLICY_PATH、DASHBOARD_CONFIG_PATH | ~/.code-engine-mcp/… | 用户和密钥、工具策略及设置的保存位置 |
通过 stdio 传递调用方身份
MCP_API_KEY,或MCP_USERNAME和MCP_PASSWORD:stdio 进程使用的凭据(stdio 没有请求头)
活动仪表板(自 v1.6.0 起默认开启): 工具调用记录在
~/.code-engine-mcp/activity/events.jsonl中;设置MCP_ACTIVITY_ENABLED=false可将其关闭。请参阅 MCP 活动仪表板 和 .env.example。
可选附加组件:
PROVENANCE_*变量可启用签名回执(默认关闭)。请参阅本 README 末尾的可选附加组件:Provenance。
📋 前置条件
- Node.js v18 或更高版本
- 已安装 Docker 或 Podman(用于容器构建/推送工具)
- IBM Cloud API 密钥(用于所有 Code Engine 和 ICR 操作)
MCP 服务直接与 IBM Cloud REST API 和 ICR API 通信。无需 IBM Cloud CLI 或 Code Engine 插件。
👩💻 开发
# Install, build, and test (mise loads Node from mise.toml)
mise run install
mise run test-all # server unit tests, every tool smoke call, extension tests
mise run test-extension # extension typecheck + IDE config tests
# Run in development mode
npm run dev
🧪 故障排除
服务无法连接
- 确认配置中的路径是绝对路径
- 检查 Node.js 是否位于 PATH 中:
node --version - 确认构建输出存在:
ls build/index.js - 手动测试:
node build/index.js
Docker/Podman 命令失败
- 确认已安装:
docker --version或podman --version - 检查 Docker 守护进程是否正在运行
- 确认权限(如有需要,将用户添加到 docker 组)
Code Engine 命令失败
- 确认已设置 API 密钥:检查 MCP 客户端配置中的
IBMCLOUD_API_KEY - 确认区域正确(默认为
us-south;也包含eu-es)。如有需要,请设置IBMCLOUD_REGION - 确认项目 ID 有效:使用
ce_list_projects查找 - 检查令牌是否过期——服务会自动重新获取 IAM 令牌;如果错误仍然存在,请在 IBM Cloud IAM → API keys 重新生成 API 密钥
🛡️ 安全
- 切勿将 API 密钥提交到版本控制系统
- 使用环境变量存储敏感数据
- 考虑使用 IBM Cloud IAM 进行身份验证
- 根据需要限制 MCP 服务权限
📄 许可证
Apache License 2.0 · opensource.org/licenses/Apache-2.0
🤝 参与贡献
欢迎参与贡献!请提交 issue 或 pull request(参阅贡献指南)。
🙋 支持
如有问题或疑问:
- 请查看设置说明和 MCP Inspector 故障排查
- 提交问题,并附上复现步骤和日志
可选:MCP 活动仪表板
MCP 工作流的核心可观测性功能。 与来源证明(签名回执)不同,活动日志记录轻量且默认启用(机密信息会被隐去)。设置
MCP_ACTIVITY_ENABLED=false即可关闭。
| 界面 | 命令 / URL |
|---|---|
| VS Code / Cursor 扩展 | IBM Code Engine MCP: Open MCP Activity Dashboard |
| 浏览器(开发仓库) | npm run dashboard → http://localhost:8767/ |
| 事件日志文件 | ~/.code-engine-mcp/activity/events.jsonl |
无需配置环境变量。服务会在首次调用工具时创建事件文件。使用 MCP_ACTIVITY_SESSION_ID 和 MCP_ACTIVITY_CHAT_LABEL 为仪表板下拉菜单中的会话添加标签。
故障排查: 如果仪表板没有显示新会话,请检查 MCP 服务环境中 MCP_ACTIVITY_ENABLED 是否为 false,并确认 MCP_ACTIVITY_EVENTS_PATH(若已设置)与仪表板读取的文件一致。重启 MCP 服务;如果之前清除了视图,请点击 Show all activity。
可选插件:来源证明
不属于 MCP 核心功能。 Code Engine MCP 服务无需来源证明即可部署、构建和管理应用。来源证明插件是一个实验性的可选层,可为选定的工具操作生成签名回执(默认:关闭)。
| 文档 | 用途 |
|---|---|
| provenance-addon/README.md | 回执可以(以及不可以)证明什么 |
| PROVENANCE-CHAT-COMMANDS.md | 选择启用时使用的聊天提示词 |
| PROVENANCE-E2E-FLOW.md | 技术端到端流程 |
| examples/startrek-splash/README.md | 有文档说明的 MCP 部署及可选回执 |
在 code-engine-mcp-server/.env 中启用(PROVENANCE_ENABLED=true),然后重启 MCP。启用来源证明后,proc_build_push_deploy 会在其 JSON 响应中返回 provenance_receipts。
聊天提示词示例(插件):
Using only Code Engine MCP tools, deploy examples/startrek-splash.
Provenance on — show provenance_receipts, verify with verify-receipt.mjs, and give me the live URL.
主题与关键词
code-engine · code-engine-mcp · code-engine-mcp-server · ibm-code-engine · ibm-cloud · ibm-container-registry · icr · serverless · knative · container-deployment · cloud-native · mcp · mcp-server · model-context-protocol · stdio · npx · cursor · vscode · openvscode · claude-desktop · github-copilot · cline · bob-ide · ai-agent · ai-agents · tool-calling · llm-tools · automation · typescript · nodejs · docker · podman · kubernetes · containers · deploy · devops · ci-cd · watsonx-orchestrate · ibm
作者: Markus van Kempen 邮箱: [email protected] · [email protected] 网站: markusvankempen.github.io 没有小到不值得修复的 Bug,也没有怪到无法理解的语法。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。