ubcab-bo-mcp
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@ubcab-bo-mcpfind driver by phone 99054120"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
ubcab-bo-mcp
MCP server for the UBCab Backoffice (registration-bo) API — the same backend
that powers operator.ubcab.mn. Lets Claude search drivers, read driver detail
and rating, change driver state, and list service options.
Built on the same pattern as timely-mcp: a single self-contained
api/index.ts (the Vercel serverless function) that runs over Streamable HTTP
on Vercel (bearer + OAuth 2.1 PKCE) or over stdio locally.
Live endpoint: https://bo-mcp.vercel.app/mcp (POST, Bearer auth). Verified: GET /health → {"status":"ok"}.
Auth
The BO uses Keycloak SSO (realm ubcab-bo, client ubcab-registration-bo).
The server gets an access token from
https://sso.ubcabtech.com/realms/ubcab-bo/protocol/openid-connect/token:
password grant — set
UBCAB_BO_USERNAME+UBCAB_BO_PASSWORD(recommended; durable).refresh_token grant — set
UBCAB_BO_REFRESH_TOKEN(use if password grant is disabled; expires).
Access tokens are short-lived (~5 min); the server caches and silently re-auths.
Every API call also sends Origin/Referer = operator.ubcab.mn.
Related MCP server: OpenAPI MCP Server
Tools
Tool | Method / Endpoint | Purpose |
|
| Жолоочийг утас/регистр/нэр/shortId-аар хайх → |
|
| Жолоочийн дэлгэрэнгүй (profile, vehicle, kyc…) |
|
| Жолоочийн үнэлгээ |
|
| Төлөв солих: |
|
| Үйлчилгээний сонголтын жагсаалт |
⚠
driver_getreturns PII (name, phone, register no, civil ID).driver_set_stateis a write action.
Local run (stdio)
npm install
npm run compile
cp .env.example .env # fill UBCAB_BO_USERNAME + UBCAB_BO_PASSWORD
node --env-file=.env scripts/test-login.mjs 99054120 # live smoke testClaude Desktop config:
{
"mcpServers": {
"ubcab-bo": {
"command": "node",
"args": ["/abs/path/to/ubcab-bo-mcp/dist/api/index.js"],
"env": {
"UBCAB_BO_USERNAME": "...",
"UBCAB_BO_PASSWORD": "..."
}
}
}
}Deploy (Vercel)
Connected to GitHub (naranmunkh/bo-mcp) — every push to main auto-deploys.
Zero-config: api/index.ts is auto-built as a serverless function, and
vercel.json rewrites send every path (/mcp, /health, /.well-known/*) to
it. There is intentionally no build script — a build script makes Vercel
expect a static public/ output and the deploy fails. Local TypeScript build is
npm run compile.
Required env vars on the Vercel project: UBCAB_BO_USERNAME, UBCAB_BO_PASSWORD,
and UBCAB_BO_MCP_AUTH_TOKEN (openssl rand -hex 32).
Connect from Claude with Authorization: Bearer <UBCAB_BO_MCP_AUTH_TOKEN> at
https://bo-mcp.vercel.app/mcp. The endpoint fails closed if
UBCAB_BO_MCP_AUTH_TOKEN is unset.
Extending
Add a new endpoint by registering another tool inside createMcpServer() in
api/index.ts — copy one of the existing reg(...) blocks.
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.
Latest Blog Posts
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/bo-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server