在IBM Code Engine上部署MCP Context Forge网关的完整指南

在IBM Code Engine上部署MCP Context Forge网关的完整指南

mcp-context-forge A Model Context Protocol (MCP) Gateway. Serves as a central management point for tools, resources, and prompts that can be accessed by MCP-compatible LLM applications. mcp-context-forge 项目地址: https://gitcode.com/gh_mirrors/mc/mcp-context-forge

前言

MCP Context Forge是一个功能强大的网关服务,本文将详细介绍如何将其部署到IBM Code Engine平台上。作为云原生应用托管服务,IBM Code Engine提供了简单高效的部署方式,特别适合微服务架构的应用。

一、部署前准备

在开始部署前,请确保满足以下要求:

  1. IBM Cloud账户:有效的IBM Cloud账号
  2. 容器构建工具:Docker或Podman任选其一
  3. IBM Cloud CLI:版本不低于2.16
  4. Code Engine项目:在IBM Cloud控制台中创建或选择现有项目
  5. 环境配置文件:准备.env.env.ce两个配置文件

二、环境配置详解

1. 运行时配置文件(.env)

此文件将被挂载到容器中,包含网关运行所需的关键配置:

# 核心网关设置
AUTH_REQUIRED=true
JWT_SECRET_KEY=your-secret-key  # 使用openssl rand -hex 32生成

# 数据库配置(二选一)
# SQLite(仅测试用)
CACHE_TYPE=database
DATABASE_URL=sqlite:tmp/mcp.db

# PostgreSQL(生产推荐)
CACHE_TYPE=database
DATABASE_URL=postgresql://user:pass@host:port/dbname?sslmode=require

2. 部署配置文件(.env.ce)

此文件仅用于部署过程,包含Code Engine相关配置:

# IBM Cloud区域和资源组
IBMCLOUD_REGION=us-south
IBMCLOUD_RESOURCE_GROUP=default

# Code Engine项目和应用名称
IBMCLOUD_PROJECT=my-project
IBMCLOUD_CODE_ENGINE_APP=mcpgateway

# 容器镜像配置
IBMCLOUD_IMAGE_NAME=us.icr.io/namespace/mcpgateway:latest

# 资源配额
IBMCLOUD_CPU=1
IBMCLOUD_MEMORY=4G

三、两种部署方式

方式一:使用Makefile自动化部署(推荐)

Makefile提供了简化的部署流程,主要命令包括:

# 首次部署流程
make ibmcloud-check-env    # 检查环境变量
make ibmcloud-cli-install  # 安装必要CLI工具
make ibmcloud-login        # 登录IBM Cloud
make podman                # 构建容器镜像
make ibmcloud-tag          # 标记镜像
make ibmcloud-push         # 推送镜像到容器仓库
make ibmcloud-deploy       # 部署应用到Code Engine

# 更新部署流程
make podman ibmcloud-tag ibmcloud-push ibmcloud-deploy

方式二:手动使用IBM Cloud CLI部署

如需更精细控制,可手动执行CLI命令:

# 1. 安装CLI和插件
curl -fsSL https://clis.cloud.ibm.com/install/linux | sh
ibmcloud plugin install container-registry -f
ibmcloud plugin install code-engine -f

# 2. 登录和项目选择
ibmcloud login --apikey "$IBMCLOUD_API_KEY"
ibmcloud ce project select --name "$IBMCLOUD_PROJECT"

# 3. 构建和推送镜像
podman build -t "$IBMCLOUD_IMG_PROD" .
podman tag "$IBMCLOUD_IMG_PROD" "$IBMCLOUD_IMAGE_NAME"
podman push "$IBMCLOUD_IMAGE_NAME"

# 4. 部署应用
ibmcloud ce application create --name "$IBMCLOUD_CODE_ENGINE_APP" \
    --image "$IBMCLOUD_IMAGE_NAME" \
    --cpu "$IBMCLOUD_CPU" --memory "$IBMCLOUD_MEMORY" \
    --port 4444

四、生产环境最佳实践

1. 数据库选择

SQLite

  • 仅适用于测试环境
  • 数据不持久化,重启后丢失
  • 不支持多实例扩展

PostgreSQL(推荐生产使用):

  • 数据持久化
  • 支持高可用
  • 自动备份
  • 可扩展性强

2. 资源配额建议

| 工作负载类型 | CPU | 内存 | 适用场景 | |-------------|-----|------|---------| | 开发测试 | 1 | 2G | 功能验证 | | 小型生产 | 2 | 4G | 低流量 | | 中型生产 | 4 | 8G | 中等流量| | 大型生产 | 8 | 16G | 高并发 |

3. Redis缓存层(可选)

对于高流量场景,建议添加Redis缓存:

# 创建Redis服务实例
ibmcloud resource service-instance-create mcpgw-redis \
    databases-for-redis standard us-south

# 配置应用使用Redis
ibmcloud ce application update --name "$IBMCLOUD_CODE_ENGINE_APP" \
    --env CACHE_TYPE=redis \
    --env-from-secret mcpgw-redis-url

五、应用管理和监控

1. 查看应用状态

ibmcloud ce application get --name "$IBMCLOUD_CODE_ENGINE_APP"

2. 查看实时日志

ibmcloud ce application logs --name "$IBMCLOUD_CODE_ENGINE_APP" --follow

3. 访问网关API

生成访问令牌:

export MCPGATEWAY_BEARER_TOKEN=$(python -m mcpgateway.utils.create_jwt_token -u admin)

测试API端点:

curl -H "Authorization: Bearer ${MCPGATEWAY_BEARER_TOKEN}" \
     https://your-gateway-url/tools

六、清理资源

删除部署的应用:

ibmcloud ce application delete --name "$IBMCLOUD_CODE_ENGINE_APP" -f

结语

通过本文介绍的方法,您可以将MCP Context Forge网关高效地部署到IBM Code Engine平台。根据实际业务需求选择合适的数据库和资源配置,可以确保网关服务在生产环境中稳定运行。对于高可用场景,建议使用PostgreSQL数据库并配置适当的资源配额。

mcp-context-forge A Model Context Protocol (MCP) Gateway. Serves as a central management point for tools, resources, and prompts that can be accessed by MCP-compatible LLM applications. mcp-context-forge 项目地址: https://gitcode.com/gh_mirrors/mc/mcp-context-forge

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

乌宣广

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值