Boomi MCP服务器
用于Boomi平台API与Claude Code集成的安全MCP服务器
一个生产就绪的模型上下文协议(MCP)服务器,使Claude Code和其他MCP客户端能够使用OAuth 2.0身份验证和安全凭据存储与Boomi平台API进行交互。
🌐 现场服务: https://boomi.renera.ai
______________________________________________________________________
特性
- 🔐 谷歌OAuth 2.0 -使用同意屏幕进行安全身份验证
- 🔒 GCP秘密经理 -加密的每个用户凭据存储
- 👤 多配置文件支持 -每位用户最多可存储10个Boomi帐户配置文件
- 🌐 Web 用户界面 -基于浏览器的凭据管理
- ✅ 凭证验证 -保存前测试凭据
- 🚀 自动部署 -GitHub推送→ 云构建(固定KB版本)→ 云运行
- 📦 MCP工具 -29种工具,涵盖贸易伙伴、流程、组件、运行时、部署、计划、账户管理等
- 📚 Boomi Docs知识库 -可选检索增强
search_boomi_docs/read_boomi_doc_page由固定知识库版本支持的工具 - ☁️ 云原生 -在Google Cloud Run上运行
______________________________________________________________________
快速开始
对于用户
- 访问Web UI: https://boomi.renera.ai
- 使用谷歌登录 -OAuth身份验证
- 添加Boomi凭据:
- 电子邮件:您的Boomi帐户电子邮件 - API代币:您的Boomi API代币 - 帐号ID:您的Boomi帐号ID - 配置文件名称:此凭据集的名称(例如,“生产”、“沙盒”)
- 连接克劳德代码:
claude mcp add --transport http boomi https://boomi.renera.ai/mcp- 授权 -打开浏览器以获取OAuth同意,单击“批准”
- 使用MCP工具:
Show me my Boomi account information from the production profile______________________________________________________________________
建筑
┌──────────────┐
│ User │
│ (Browser) │
└──────┬───────┘
│ 1. Visit https://boomi.renera.ai
│ 2. Google OAuth Login
▼
┌──────────────────────────────────────┐
│ Boomi MCP Server (Cloud Run) │
│ ┌────────────┐ ┌──────────────┐ │
│ │ Web UI │ │ MCP Server │ │
│ │ (FastAPI) │ │ (FastMCP) │ │
│ └────────────┘ └──────────────┘ │
└───────┬──────────────────┬───────────┘
│ │
│ Store │ Retrieve
│ Credentials │ Credentials
▼ ▼
┌──────────────────────────────────────┐
│ GCP Secret Manager │
│ boomi-mcp-{user-id}-{profile-name} │
└──────────────────────────────────────┘
│
│ API Calls
▼
┌──────────────┐
│ Boomi API │
└──────────────┘______________________________________________________________________
可用的MCP工具
服务器公开了29个工具。所有工具都需要经过身份验证的会话和 有效的 profile 指向存储的Boomi凭据集的参数。
账户和个人资料管理
list_boomi_profiles()--列出当前用户的已保存凭据配置文件。boomi_account_info(profile)--获取指定配置文件的帐户详细信息。set_boomi_credentials(...)/delete_boomi_profile(...)--凭证CRUD。manage_account(...),manage_account_groups(...)--Boomi帐户管理员。
构建、部署和操作集成
manage_process,manage_component,analyze_component,
query_components, build_integration, get_schema_template
manage_environments,manage_runtimes,manage_deployment,
execute_process, troubleshoot_execution, manage_schedules, manage_listeners, manage_integration_packs
manage_trading_partner,manage_connector,manage_shared_resources,
manage_folders, monitor_platform
逃生舱口
invoke_boomi_api(...)--在没有专用工具的情况下调用任何Boomi REST端点
存在。
list_capabilities()--总结所有内容的可发现性助手
注册工具。
Boomi Docs知识库(可选)
仅在服务器启动时注册 BOOMI_DOCS_ENABLED=true 以及a 已填充KB BOOMI_DOCS_DB_PATH:
search_boomi_docs(query, ...)--跨索引的语义搜索
布米文献语料库。
read_boomi_doc_page(page_key)--获取特定商品的完整降价
文档页面。
- 资源
kb://boomi-docs/corpus--语料库清单(发布标签,页面
计数,在元数据处生成)。
KB语料库由以下人员构建和发布 RenEra-ai/knowledge-base-builder 并在构建时通过以下方式嵌入到图像中 deploy/kb-release.env。参见 KB发布促销 在......下面
______________________________________________________________________
部署
当前生产部署
- 托管:谷歌云运行(以美元为中心1)
- 统一资源定位符: https://boomi.renera.ai
- CI/CD:通过GitHub自动化
- 区域:美国中央1
- 认证:谷歌OAuth 2.0
CI/CD管道
推送时自动部署 main 分支:
GitHub Push → Cloud Build (cloudbuild.yaml) → Docker Build (KB pin) → Artifact Registry → Cloud Run管道采用源头控制 cloudbuild.yaml 和 将固定的Boomi Docs知识库版本嵌入到图像中。KB标签 住在 deploy/kb-release.env 所以每个语料库 版本更改是一个可见的仓库编辑——构建过程中不得使用浮动 latest KB发布。
KB发布促销
- 在
RenEra-ai/knowledge-base-builder,剪切手册workflow_dispatch
释放(例如 kb-13).发布必须公布 boomi_knowledge_db.tar.gz 作为一种资产。
- 在这个repo中,插入单行
deploy/kb-release.env:
KB_RELEASE_TAG=kb-13- 打开带有该更改的PR并合并到
main. - Cloud Build触发器读取
cloudbuild.yaml,运行acurl -fI
对GitHub发布资产进行预检,然后使用以下命令构建映像 --build-arg KB_RELEASE_TAG=$KB_RELEASE_TAG.一个丢失或空的别针 在任何Docker工作发生之前,构建失败。
- Cloud Run已更新为
BOOMI_DOCS_ENABLED=true,
BOOMI_DOCS_DB_PATH=/app/kb/boomi_knowledge_db,以及 BOOMI_DOCS_RELEASE_TAG=,这将导致服务器注册 search_boomi_docs 和 read_boomi_doc_page 工具加上 kb://boomi-docs/corpus 启动时的资源。
云构建触发器迁移
现有触发器 8623a6fa-3295-430a-b018-7c728ba941e8 创建于 未通过的内联自动生成配置 KB_RELEASE_TAG 并且做到了 未设置KB运行时环境变量。将其指向受源代码控制的配置 一次:
gcloud builds triggers update github 8623a6fa-3295-430a-b018-7c728ba941e8 \
--project=boomimcp \
--region=global \
--build-config=cloudbuild.yaml迁移后,每一次推动 main 运行步骤 cloudbuild.yaml 以及a git log -- cloudbuild.yaml deploy/kb-release.env 确切地显示了 KB版本已上线。
手动部署
如果你需要手动部署(跳过GitHub触发器):
# Authenticate with GCP
gcloud auth login
gcloud config set project boomimcp
# Submit the same pipeline that the trigger runs.
# REPO_NAME and COMMIT_SHA are populated by Cloud Build only for
# trigger-driven runs, so pass them explicitly via --substitutions
# when submitting from the CLI.
gcloud builds submit \
--config=cloudbuild.yaml \
--substitutions="REPO_NAME=boomi-mcp-server,COMMIT_SHA=$(git rev-parse HEAD)"
# Or use the trigger by pushing
git push origin main______________________________________________________________________
配置
环境变量(云运行)
OAuth代理持久化
MCP OAuth流需要云运行实例睡眠/重启才能存活。 OAuth状态通过Fernet加密存储在MongoDB Atlas中:
OIDC_CLIENT_ID # Google OAuth client ID
OIDC_CLIENT_SECRET # Google OAuth client secret
OIDC_BASE_URL # https://boomi.renera.ai
SESSION_SECRET # Session signing key for web UI
MONGODB_URI # MongoDB Atlas connection string for OAuth state
JWT_SIGNING_KEY # Stable key for signing MCP JWT tokens
STORAGE_ENCRYPTION_KEY # Fernet key for encrypting OAuth tokens at rest用户凭据存储
用户Boomi API证书单独存储在GCP密钥管理器中:
SECRETS_BACKEND # gcp
GCP_PROJECT_ID # boomimcp- 格式:
boomi-mcp-{user-id}-{profile-name} - 例子:
boomi-mcp-glebuar-at-gmail-com-production - 加密:静止和运输中
- 访问:IAM控制,审计记录
Boomi Docs知识库
设置在云端运行 cloudbuild.yaml 在启动时注册知识库工具:
BOOMI_DOCS_ENABLED # true to register KB tools and resource
BOOMI_DOCS_DB_PATH # /app/kb/boomi_knowledge_db (in-image corpus path)
BOOMI_DOCS_RELEASE_TAG # operational marker, mirrors deploy/kb-release.env当 BOOMI_DOCS_ENABLED 如果KB模块未设置或为false, 这 requirements-kb.txt 未加载依赖项,KB工具和 kb://boomi-docs/corpus 资源未注册。
______________________________________________________________________
本地开发
先决条件
- Python 3.11+
- 谷歌云SDK
- 启用密钥管理器访问GCP项目
设置
# Clone repository
git clone https://github.com/RenEra-ai/boomi-mcp-server.git
cd boomi-mcp-server
# Create virtual environment
python3 -m venv .venv
source .venv/bin/activate
# Install dependencies
pip install -r requirements.txt -r requirements-cloud.txt
# Configure environment
cp .env.example .env
# Edit .env with your OAuth credentials在本地运行
# Set environment variables
export OIDC_CLIENT_ID="your-google-oauth-client-id"
export OIDC_CLIENT_SECRET="your-google-oauth-client-secret"
export OIDC_BASE_URL="http://localhost:8080"
export SESSION_SECRET="$(python3 -c 'import secrets; print(secrets.token_urlsafe(32))')"
export SECRETS_BACKEND=gcp
export GCP_PROJECT_ID=boomimcp
# Run server
python server_http.py访问http://localhost:8080以访问web UI。
______________________________________________________________________
项目结构
boomi-mcp-server/
├── server.py # Core MCP server (FastMCP, all tool definitions)
├── server_http.py # HTTP wrapper with OAuth middleware
├── src/boomi_mcp/
│ ├── auth.py # Auth helpers
│ ├── cloud_auth.py # OAuth provider implementations
│ ├── cloud_secrets.py # Secret Manager backends (GCP/AWS/Azure)
│ ├── local_secrets.py # Local filesystem secret backend
│ ├── credentials.py # Credential storage models / validation
│ ├── sanitize.py # Response sanitization helpers
│ ├── tools.py # Shared tool helpers
│ ├── categories/ # Tool category groupings
│ ├── models/ # Pydantic models for SDK payloads
│ ├── utils/ # Misc utilities
│ ├── xml_builders/ # Helpers that emit Boomi component XML
│ └── kb/ # Boomi Docs knowledge-base (gated by BOOMI_DOCS_ENABLED)
│ ├── service.py # Search + page retrieval over Chroma corpus
│ ├── manifest.py # kb://boomi-docs/corpus resource
│ └── errors.py # KB-specific exception types
├── templates/ # Jinja2 web UI templates (credentials, login, ...)
├── static/ # Web UI static assets
├── tests/ # Unit + integration tests (incl. tests/kb)
├── docs/ # Specs, plans, runbooks
├── agents/ # Subagent configs (boomi-qa-tester, ...)
├── examples/ # Usage examples
├── scripts/ # Operational scripts
├── k8s/ # Reference Kubernetes manifests
├── local_atom/ # Helpers for the local-atom dev profile
├── requirements.txt # Core dependencies (FastMCP, ...)
├── requirements-cloud.txt # Cloud provider SDKs
├── requirements-kb.txt # KB dependencies (chromadb, sentence-transformers)
├── Dockerfile # Multi-stage Docker build (KB pin via ARG)
├── cloudbuild.yaml # Cloud Build pipeline (pinned KB release)
├── deploy/
│ └── kb-release.env # Pinned knowledge-base release tag
└── README.md # This file______________________________________________________________________
安全功能
身份验证和授权
- ✅ 谷歌OAuth 2.0与PKCE
- ✅ OAuth同意屏幕(防止混淆的代理攻击)
- ✅ 基于会话的加密签名身份验证
- ✅ 每用户凭据隔离
数据保护
- ✅ 仅HTTPS(由Cloud Run强制执行)
- ✅ 静态加密凭据(GCP密钥管理器)
- ✅ 传输中加密的凭据(TLS)
- ✅ 环境变量中没有凭据
- ✅ 通过Cloud logging进行审核日志记录
访问控制
- ✅ 基于IAM的机密访问
- ✅ 配置文件限制(每位用户10个)
- ✅ 存储前的凭据验证
- ✅ 自动会话过期
______________________________________________________________________
监控和日志
查看日志
# Recent logs
gcloud run services logs read boomi-mcp-server \
--region us-central1 --limit 50 --project boomimcp
# Follow logs in real-time
gcloud run services logs tail boomi-mcp-server \
--region us-central1 --project boomimcp
# Check service status
gcloud run services describe boomi-mcp-server \
--region us-central1 --project boomimcp云控制台
- 服务: https://console.cloud.google.com/run/detail/us-central1/boomi-mcp-server
- 日志: https://console.cloud.google.com/run/detail/us-central1/boomi-mcp-server/logs
- 构建: https://console.cloud.google.com/cloud-build/builds?project=boomimcp
______________________________________________________________________
故障排除
无法连接到MCP服务器
- 检查服务是否正在运行:
curl https://boomi.renera.ai/- 验证OAuth同意是否已完成:
- 浏览器应在以下期间打开 claude mcp add - 在同意屏幕上单击“批准” - 检查成功消息
- 检查克劳德代码MCP配置:
claude mcp list凭据未保存
- 验证web UI中是否填写了所有字段
- 检查凭证验证通过情况
- 查看浏览器控制台是否有错误(F12)
- 检查服务器日志中的错误消息
API错误
- 验证Boomi凭据是否正确:
- 电子邮件应在Boomi中注册 - API令牌应有效 - 帐户ID应与您的帐户匹配
- 直接测试证书:
curl -u "BOOMI_TOKEN.email@example.com:your-token" \
"https://api.boomi.com/api/rest/v1/YOUR_ACCOUNT_ID/Account/YOUR_ACCOUNT_ID"______________________________________________________________________
贡献
欢迎投稿!拜托:
- 分叉存储库
- 创建要素分支(
git checkout -b feature/amazing-feature) - 提交您的更改(
git commit -m 'Add amazing feature') - 推到分支(
git push origin feature/amazing-feature) - 打开拉取请求
______________________________________________________________________
技术细节
FastMCP版本
目前固定到 FastMCP 3.1.1 在 requirements.txt。包括:
- OAuth同意屏幕
- 会话中间件支持
- 谷歌OAuth提供商
- 服务器品牌(自定义图标、网站URL)
会话管理
- 用途
SessionMiddleware来自Starlette - 会话密钥存储在GCP密钥管理器中
- 会话通过加密签名的Cookie在请求之间持续存在
- 最大年龄:1小时(可配置)
配置文件管理
- 每位用户最多10个配置文件
- 需要配置文件名称(无默认配置文件)
- 每个用户的配置文件名称必须是唯一的
- 示例:“生产”、“沙盒”、“开发”、“暂存”
______________________________________________________________________
资源
- 现场服务: https://boomi.renera.ai
- GitHub存储库: https://github.com/RenEra-ai/boomi-mcp-server
- FastMCP文档: https://gofastmcp.com
- Boomi Python SDK: https://github.com/RenEra-ai/boomi-python
- MCP规范: https://modelcontextprotocol.io
- Boomi平台API: https://help.boomi.com/docs/atomsphere/integration/platform_management/c-atm-platform_api_2cf25c18-ca93-43d2-a53e-048017d0b102/
______________________________________________________________________
许可证
MIT许可证-请参阅 许可证 文件以获取详细信息。
______________________________________________________________________
支持
对于问题、疑问或功能请求:
- 打开一个问题
- 包括相关日志(机密已编辑)
- 描述您的环境和复制步骤
______________________________________________________________________
致谢
- 建于 FastMCP 框架
- 整合 Boomi Python SDK
- 实施 模型上下文协议
- 由谷歌云平台提供技术支持
______________________________________________________________________
最后更新: 2026-05-15 状态: ✅ 生产(稳定) 版本:FastMCP 3.1.1

