ubeats-bo-mcp
ubeats-bo-mcp
面向 UBEats Backoffice(office.ubeats.mn,API 主机
https://ubeats-bo-api.ubcabtech.com)的 MCP 服务器。它遵循与
ubcab-bo-mcp 相同的模式:一个自包含的 api/index.ts,可在 stdio
(本地 / Claude Desktop)上运行,也可作为 Vercel 上受 bearer 保护的 Streamable HTTP 端点运行。
认证
Keycloak SSO —— 已于 2026-08-18 针对一个实时 BO 会话验证:
颁发者 |
|
OIDC 客户端( |
|
令牌端点 |
|
发送的 Origin/Referer |
|
访问令牌有效期约 5 分钟;服务器会将其缓存到到期前约 30 秒,并静默重新认证(先使用 refresh_token,然后使用密码授权)。
工具(21)
报表(8)
所有七个报表端点共享同一个请求体结构:
POST /v1/api/reports/{report}/list
{ "filter": { "beginDate": "2026-08-17", "endDate": "2026-08-18", "city": "11" },
"page": 1, "limit": 20 }三件容易出错的事项(均经过实时测试确认):
page/limit是顶层字段,而不是放在pagination内部。 发送pagination: {page, limit}会被静默忽略,你只会得到默认的 20 行。endDate是排他的。 要查询单一天,请传入 下一天。beginDate === endDate会返回996 "Begin date or end date is wrong!"。日期必须是
YYYY-MM-DD。 ISO 日期时间或"YYYY-MM-DD HH:mm:ss"会返回 996。
未知的 filter 键会被静默忽略——不会报错,也不会过滤。始终要
检查总数是否合理。
filter.city 枚举(蒙古 aimag/城市代码,11 = Улаанбаатар):
11 21 22 23 41 42 43 44 45 46 48 61 62 63 64 65 67 81 82 83 84 85
工具 | 报表 |
| 司机工资计算(+ |
| 配送报告(返回 |
| 财务报告(29 列,+ |
| 财务报告(汇总,14 列) |
| 菜品报告(条目级) |
| 商户订单时长 |
| 订单详细报告 |
|
|
订单(6)
云厨房和商户订单位于独立的集合中——一个电话号码 可能在两者中都有订单,因此请同时搜索两者。
ubeats_order_search / _get / _state_histories、
ubeats_merchant_order_search / _get / _state_histories
目录(6)
ubeats_provider_search、ubeats_branch_search(过滤器:name、status)、
ubeats_merchant_search、ubeats_kitchen_search、ubeats_menu_search、
ubeats_notification_search(过滤器:beginDate、endDate、sender、
senderRole、receiverPhoneNumber)
逃生出口(1)
ubeats_bo_request — 对 BO API 的任意方法/路径,已处理认证和
请求头。在添加真正的工具之前,可用它来探测未记录的端点。
本地运行
npm install
npm run typecheck
cp .env.example .env # fill in creds
npm run test:login # live smoke test: auth + one driver-revenue page
npm run compile && npm start # stdio MCP serverVercel 部署
零配置:api/index.ts 是函数,vercel.json 将所有请求重写到
它。从 ubcab-bo-mcp 延续了三条规则(来之不易的经验):
在通过 git 导入的项目中,
vercel.json里不要用旧的builds+routes—— 否则每个路径都会 404。只能使用rewrites。package.json 中不要有
build脚本 —— 否则 Vercel 会查找public/, 部署会失败。本地编译使用npm run compile。不要从
src/导入 —— esbuild 的 Node16 解析器不会将.js映射为.ts, 你会得到 500。所有内容都存在于这一个文件中。
通过推送到 main 来部署(git 集成),而不是从 CLI 部署。
在 Vercel 中需要设置的环境变量:UBEATS_BO_USERNAME、UBEATS_BO_PASSWORD、
UBEATS_BO_MCP_AUTH_TOKEN(openssl rand -hex 32)。
健康检查:GET /health → {"status":"ok","server":"ubeats-bo-mcp"}
已知不足
order-duration的meta?action=list对某些角色返回998 permission_denied, 即使/list可以正常工作。请改为从响应中读取列信息。financial-report的includeCancelled映射到filter.state;BO 将其 渲染为复选框,但后端效果未经过实时确认。/v1/api/categories/list对测试的账户返回998。在
/v1/api/下没有products、delivery-tariffs、delivery-zones、feedbacks或lots列表路由——那些 BO 界面使用不同的路径。
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
MCP server exposing the Backtest360 engine API as tools for AI agents.
Official Microsoft MCP Server to query Microsoft Entra data using natural language
GibsonAI MCP server: manage your databases with natural language
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/naranmunkh/ubeats-bo-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server