使用说明
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客户端调用之间 query_components 和布米
回答——本演练遵循四个请求中的一个
边界,解释跟踪到达Python的位置。
14分钟。涵盖了门控工具注册的条件导入,
@mcp.tool 在导入时运行,AnyIO的worker上的同步包装器
线, json.loads 在信任边界,通过
get_secret,以及 **params 进入动作路由器。
视频中显示的行号是指
main在录制时。
可用的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_templatemanage_environments,manage_runtimes,manage_deployment,execute_process,troubleshoot_execution,manage_schedules,manage_listeners,manage_integration_packsmanage_trading_partner,manage_connector,manage_shared_resources,manage_folders,monitor_platform
逃生舱口
invoke_boomi_api(...)--在没有专用工具的情况下调用任何Boomi REST端点 存在。list_capabilities()--总结所有内容的可发现性助手 注册工具。
Boomi Docs知识库(可选)
仅在服务器启动时注册 BOOMI_DOCS_ENABLED=true 和一个
已填充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发布促销 在......下面
冷启动行为(操作员)。 繁重的KB构建(Chroma+嵌入 模型加载)被推迟到导入路径之外,因此服务器绑定了其HTTP端口 立即注册文档工具 之前 KB已准备就绪。每 docs调用以原子方式解析就绪状态,并进入以下三种状态之一:
- 正常块然后发球 --在冷启动期间
BOOMI_DOCS_WARMUP_MAX_WAITERS医生的电话可以作为长期服务员接听 块(以BOOMI_DOCS_WARMUP_WAIT_SECONDS)直到构建 完成后,返回真实结果。生产建设测度均值~49s, p95~58s,最大~63s,因此被接纳的呼叫者通常只会看到缓慢的第一个呼叫。 - 溢出或真正缓慢的构建 --进一步并发呼叫(或
服务员进来了,他等得很慢)回来了
error: warming_up立即与aretry_after_seconds提示派生 从剩余的份额BOOMI_DOCS_WARMUP_EXPECTED_SECONDS(夹紧5-60;一旦超过估计值,则为下限)。 - 构建失败 --所有入场的服务员都会立即用消毒过的饮料醒来
error: kb_unavailable;该构建在稍后的调用中自我修复BOOMI_DOCS_WARMUP_RETRY_COOLDOWN(默认30秒)。
调整环境变量(代码默认值匹配 cloudbuild.yaml;无效值下降
返回并显示操作员警告): BOOMI_DOCS_WARMUP_EAGER (默认为true--kick
在第一个经过身份验证的基础上构建 /mcp 请求),
BOOMI_DOCS_WARMUP_WAIT_SECONDS (默认值65——限制已入场的服务员
块的大小刚好高于测量的构建p95/max),
BOOMI_DOCS_WARMUP_EXPECTED_SECONDS (默认值60--驱动 warming_up
提示后重试), BOOMI_DOCS_WARMUP_MAX_WAITERS (默认4--长服务员
准入上限;溢出返回 warming_up 立即)。这个
boomi.kb.warmup 记录仪发出 KB_WARMUP_STARTED/RETRY,
KB_RESOLVE_ADMITTED/OVERFLOW, KB_WARMUP_ELAPSED,以及每个阶段的构建
可观察性的时序。
Boomi Operational Gotchas知识库(可选)
仅在服务器启动时注册 BOOMI_GOTCHAS_ENABLED=true这是
一 分离表面 来自文档知识库(作战现场知识vs官方知识
文档),并由其自己的独立标志进行门控:
search_boomi_gotchas(query, top_k=5, issue_ids=None)--搜索策划 已知Boomi无声故障模式和场陷阱目录。通过issue_ids对于通过gotcha id进行的确定性精确查找(它优先于query).空/不匹配行为是明确的,从不捏造条目。- 资源
kb://boomi-operational-gotchas/catalog--每个产品的完整目录 条目的症状、检测/频率分类、来源和verification_status.
与文档知识库不同,此目录 仅限stdlib:仓库内策划的数据集
使用确定性词汇排名,否 requirements-kb.txt /chromadb/
嵌入依赖性。参赛作品为精选摘要(官方博米BSD-2-Clause
材料+当地问题/建筑师课程分类),而不是逐字复制,并携带
verification_status (live_verified / docs_corroborated /
companion_unverified / course_unverified / disputed)因此,代理人可以权衡如何
每个说法都得到了很好的证实。
部署
当前生产部署
- 托管:谷歌云运行(以美元为中心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=<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
和一个 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(s) for encrypting OAuth tokens at rest.
# Single value or comma-separated list (newest first)
# to enable zero-downtime key rotation via MultiFernet.
身份验证强化(可选)
所有四艘船都有安全默认值;仅在调试或
执行按键旋转。看 docs/oauth-migration-runbook.md 为了
完整的回滚过程。
BOOMI_RT_GRACE_SECONDS # default 60. Window during which a just-
# rotated refresh token still returns the
# same new tokens (defeats one-time-use
# replay race). Set 0 to disable.
BOOMI_RT_GRACE_MAX_SIZE # default 512. LRU capacity for the grace cache.
BOOMI_OAUTH_DIAGNOSTICS_DISABLE # default off (diagnostics ON). Set true to
# silence the three OAuth diagnostic log
# patches. BOOMI_OAUTH_DIAGNOSTICS=false
# also works as a back-compat opt-out.
BOOMI_AUTH_HEAL_CORRUPT_CLIENTS # default true. When get_client raises
# InvalidToken/ValidationError, delete the
# corrupted MongoDB doc so the client can
# re-register cleanly.
OAuth缓存强化(可选)
填补了剩余的谷歌调用和跨实例差距。全船
安全违约;看见 docs/oauth-migration-runbook.md 为了
展开和回滚过程。
BOOMI_TOKEN_CACHE_DISABLE # default off (cache ON). Set true to
# restore the per-tool-call Google
# tokeninfo/userinfo round trip.
BOOMI_TOKEN_CACHE_TTL_SECONDS # default 300. Upper bound on per-entry
# TTL; caps Google-revocation latency.
BOOMI_TOKEN_CACHE_MAX_SIZE # default 256. LRU capacity.
BOOMI_TOKEN_CACHE_SWR # default false. Opt-in stale-while-
# revalidate against short Google outages.
BOOMI_TOKEN_CACHE_SWR_WINDOW # default 30. Seconds before expiry at
# which SWR serves stale + refreshes.
BOOMI_TOKEN_CACHE_STALE_IF_ERROR_SECONDS # default 0 (off); Cloud Run pins =0
# (off). Opt in by raising it. When the
# Google verifier returns None after a cache
# entry expired, serve the last positive
# token for this many seconds past expiry --
# only while the token's own expiry is still
# future. Note: the verifier returns None for
# BOTH transient failures and explicit Google
# rejections, so enabling this extends the
# cache's revocation-latency window (see
# BOOMI_TOKEN_CACHE_TTL_SECONDS) by up to this
# many seconds. Negatives are never cached.
BOOMI_RT_GRACE_SHARED # default true. Backs the refresh-token
# grace cache with a MongoDB collection
# (mcp-rt-grace, Fernet-encrypted) so
# multi-replica deployments coalesce
# rotations across instances.
BOOMI_RT_GRACE_SHARED_COLLECTION # default mcp-rt-grace.
BOOMI_RT_GRACE_DISTRIBUTED_LOCK # default false. Opt-in cross-instance
# singleflight via mcp-rt-inflight-locks.
# Enable only if logs show duplicate
# orig_exchange calls within ms.
BOOMI_RT_GRACE_LOCK_TTL_SECONDS # default 30. Auto-release safety bound.
BOOMI_RT_GRACE_LOCK_POLL_MS # default 100. Follower poll interval.
BOOMI_RT_RECOVERY_ENABLED # default true. Durable recovery of stale
# refresh JWTs that still verify but whose
# storage rows were deleted (hours/days
# later). Uses an encrypted alias ledger
# (mcp-rt-recovery) to mint fresh tokens.
BOOMI_RT_RECOVERY_MAX_AGE_SECONDS # default 2592000 (30d, matches the sliding
# refresh lifetime). Max durable alias
# lifetime; older stale tokens must re-auth.
BOOMI_RT_RECOVERY_COLLECTION # default mcp-rt-recovery.
BOOMI_RT_RECOVERY_MAX_HOPS # default 64 (scaled with the 30d window).
# Max alias-chain depth walked when resolving
# a stale token to its latest live successor.
BOOMI_RT_REFRESH_JWT_LEEWAY_SECONDS # default 60. Clock-skew tolerance on the
# refresh JWT exp, durable-recovery path only.
BOOMI_RT_SLIDING_REFRESH_EXPIRY # default true. When upstream omits
# refresh_expires_in, stamp the new FastMCP
# refresh token with a fresh sliding window
# (fixes the frozen 30-day expiry).
BOOMI_RT_SLIDING_REFRESH_TTL_SECONDS # default 2592000 (30d). Sliding lifetime.
BOOMI_AUTH_PROTECTION_STRICT # default true in production / false in
# local. Fail startup if an ENABLED shared-
# grace or durable-recovery backend cannot
# initialize, instead of silently degrading.
BOOMI_RT_PATCH_STRICT # default true in production / false in
# local. A FastMCP-contract incompatibility
# raises instead of silently leaving
# recovery/sliding unpatched.
耐用的恢复层(refresh_token_recovery_patch)已应用
里面 60秒的grace缓存:grace缓存仍然提供即时服务
重放,恢复在数小时/数天后处理过时的令牌,只有这样
真正的FastMCP旋转运行。恢复从不重放旧的缓存访问令牌--
它总是生成一个新的访问/刷新对。诊断事件(记录器
boomi.refresh_token_recovery): RT_DIAG event=rt_recovery_hit (过时的客户
已恢复)以及 event=rt_recovery_miss (别名已解决,但其继任者
令牌不再有效)。要回滚,请设置 BOOMI_RT_RECOVERY_ENABLED=false
(禁用恢复)或 BOOMI_RT_SLIDING_REFRESH_EXPIRY=false (恢复
FastMCP的固定窗口行为); mcp-rt-recovery 条目通过TTL过期,因此
不需要数据迁移。
用户凭据存储
用户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 资源未注册。
MCP无状态传输(工作流B--已在生产中启用)
BOOMI_MCP_STATELESS_HTTP=true 是 固定在 cloudbuild.yaml (因为
2026-06-01).生产运行FastMCP流式HTTP 无状态,其中
消除了每个实例的MCP会话及其导致的故障:在冷
启动有状态的工具调用POST可能会丢失其服务器→客户端响应通道
(当重新连接404连接到第二个实例时,被捕获或搁浅)并挂起
直到Cloud Run的300秒请求超时终止它。无状态地,每个POST都是一个
自足请求→回应→终止,以便挂起并重新部署岗位
404 Session not found 不可能发生。
BOOMI_MCP_STATELESS_HTTP # PINNED true in cloudbuild.yaml. Builds the MCP app
# with stateless_http=true and skips the stream guard,
# session-manager binding, JWT-issuer binding, and
# session reaper (none apply without per-instance
# sessions). Set false to revert to stateful.
BOOMI_MCP_JSON_RESPONSE # PINNED true in cloudbuild.yaml (since 2026-06-07).
# Honored ONLY in stateless mode; passes
# json_response=true so each POST tool result is a
# single buffered JSON response instead of SSE-on-POST.
# Required: SSE-on-POST large results stalled in the
# Cloud Run managed-domain-mapping proxy and hung the
# client indefinitely. Set false only to debug.
✅ 被选中的:
stateless=true / json_response=true(2026-06-07)。这个 早期违约json_response=false(SSE在POST上)被发现失速严重 工具结果(例如query_componentsaction=返回约30KB的进程 XML)在Cloud Run托管的域映射代理中——响应从未 交付后,客户挂断,没有出现任何错误。缓冲JSON响应是 可靠交付。作为后盾,组件XML读取受 挂钟截止日期(BOOMI_COMPONENT_GET_DEADLINE_SECONDS,默认90秒, 箝位1–240),返回结构化COMPONENT_GET_DEADLINE_EXCEEDED如果后端获取本身停滞,则会出现错误而不是挂起。修复可以保存 缩放到零(没有最小实例)。启动日志说明POST帧是什么 活动状态以及流保护环境变量在无状态模式下是否处于惰性状态。 回滚是BOOMI_MCP_JSON_RESPONSE=false+重新部署。真值惯例:true,1,yes,on不区分大小写
本地开发
先决条件
- 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/
│ ├── cloud_secrets.py # Secret Manager backends (GCP/AWS/Azure)
│ ├── local_secrets.py # Local filesystem secret backend
│ ├── sanitize.py # Response sanitization helpers
│ ├── categories/ # Tool category groupings
│ ├── models/ # Pydantic models for SDK payloads
│ ├── utils/ # Misc utilities
│ └── 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
├── 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许可证-请参阅 许可证 文件以获取详细信息。
支持
对于问题、疑问或功能请求:
- 打开一个问题 GitHub
- 包括相关日志(机密已编辑)
- 描述您的环境和复制步骤
致谢
- 内置功能 FastMCP 框架
- 合并 Boomi Python SDK
- 实施 模型上下文协议
- 由谷歌云平台提供技术支持
最后更新: 2026-05-18 状态: ✅ 生产(稳定) 版本:FastMCP 3.1.1