ubeats-bo-mcp
ubeats-bo-mcp
MCPサーバー for the UBEats Backoffice (office.ubeats.mn, API host https://ubeats-bo-api.ubcabtech.com)。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、次にpassword grant)。
ツール (21)
レポート (8)
All seven report endpoints share one body shape:
POST /v1/api/reports/{report}/list
{ "filter": { "beginDate": "2026-08-17", "endDate": "2026-08-18", "city": "11" },
"page": 1, "limit": 20 }間違いやすい3つのポイント(すべて実際のテストで確認済み):
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 の列挙値(モンゴルのアイマグ/都市コード、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)
Cloud Kitchen と Merchant の注文は 別々の コレクションに存在します — 電話番号が両方に注文を持つ可能性があるため、両方を検索します。
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 から引き継いだ3つのルール(苦労して学びました):
gitインポートしたプロジェクトの
vercel.jsonにレガシーなbuilds+routesを入れない — すべてのパスが404になります。rewritesのみを使用してください。package.json に
buildスクリプトを入れない — Vercelがpublic/を探してデプロイに失敗します。ローカルコンパイルはnpm run compileです。src/からのインポートをしない — esbuildのNode16リゾルバーが.js→.tsをマッピングできず、500エラーになります。すべては1つのファイルにあります。
CLIからではなく、main ブランチへのプッシュ(git連携)でデプロイします。
Vercelで設定する環境変数: UBEATS_BO_USERNAME、UBEATS_BO_PASSWORD、UBEATS_BO_MCP_AUTH_TOKEN(openssl rand -hex 32)。
Health check: GET /health → {"status":"ok","server":"ubeats-bo-mcp"}
既知のギャップ
order-durationのmeta?action=listは、一部のロールで/listが動作するにもかかわらず998 permission_deniedを返します。代わりにレスポンスから列を読み取ってください。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