MCP Server
The Yalla MCP (Model Context Protocol) server lets AI coding assistants like Claude Code and Cursor query live Yalla platform data — products, services, releases, infrastructure docs, and technologies — directly from your editor.
What is MCP?
The Model Context Protocol is an open standard that lets AI assistants call external tools. The Yalla MCP server exposes 8 read-only tools that fetch real-time data from Yalla's ConnectRPC APIs, authenticated via your bp Azure AD credentials.
Available Tools
| Tool | Description |
|---|---|
list_products | List all Yalla products with their platforms |
get_product | Get product details including services, platforms, and access roles |
get_service | Get details of a specific service |
list_releases | List releases for a product, optionally filtered by service |
list_docs | List available Crossplane composition docs |
get_doc | Get a Crossplane doc by group, version, and kind |
list_technologies | List TRM technologies, optionally filtered by quadrant |
get_technology | Get details of a specific technology from the TRM |
Prerequisites
- Node.js 18+ installed
- pnpm installed (
npm i -g pnpm) - The yalla-infra-catalogue repo cloned locally
- Claude Code or Cursor installed
Build the MCP Server
From the repo root, install dependencies and build:
cd yalla-infra-catalogue
pnpm install
cd packages/yalla-mcp
pnpm build
This compiles the TypeScript source to packages/yalla-mcp/dist/. You only need to rebuild
after pulling changes to the MCP server code.
Setup — Claude Code
The repo already includes .mcp.json configs at the repo root and in fe/. When you open
Claude Code from either location, the Yalla MCP server is automatically registered.
No manual config needed. Just run Claude Code from the repo:
cd yalla-infra-catalogue
claude
Or from the frontend directory:
cd yalla-infra-catalogue/fe
claude
Setup — Cursor
Cursor also reads .mcp.json files. Open the repo root or fe/ folder in Cursor and the
MCP server will be available automatically.
Alternatively, add to your Cursor settings (.cursor/mcp.json):
{
"mcpServers": {
"yalla": {
"command": "node",
"args": ["/absolute/path/to/yalla-infra-catalogue/packages/yalla-mcp/dist/index.js"]
}
}
}
Authentication
The first time a tool is invoked, the MCP server opens your default browser for Azure AD
sign-in (the same flow as yalla login):
- Your browser opens to the Azure AD login page
- Sign in with your bp credentials
- Tokens are cached at
~/.yalla/mcp-token-cache.jsonand refresh automatically for ~90 days
The first authentication must happen from a terminal that can open a browser.
If auth fails inside Claude Code, run pnpm start once from a separate terminal
in packages/yalla-mcp/ to complete the browser flow.
To re-authenticate (e.g. after token expiry), delete the cache file and invoke any tool again:
rm ~/.yalla/mcp-token-cache.json
Usage Examples
Once configured, ask your AI assistant natural questions:
- "List my Yalla products" — calls
list_products - "Show me the services in product X" — calls
get_product - "What are the recent releases for service Y?" — calls
list_releases - "Show the Crossplane doc for BPS3Bucket" — calls
get_doc - "What technologies are in the Platforms quadrant?" — calls
list_technologies
Environment Variables
The default config points to the prod environment. Override via environment variables to target a different environment:
| Variable | Default | Description |
|---|---|---|
YALLA_ASSETS_URL | https://assets.accelerate.bpglobal.com | Assets / Products API |
YALLA_DEPLOYMENTS_URL | https://deployments.accelerate.bpglobal.com | Deployments / Releases API |
YALLA_DOCS_URL | https://docs.accelerate.bpglobal.com | Crossplane Docs API |
YALLA_TRM_URL | https://technology-radar.accelerate.bpglobal.com | Technology Reference Model API |
Troubleshooting
-
MCP server not showing up
Ensure you've built the server:
cd packages/yalla-mcp && pnpm build. Check thatpackages/yalla-mcp/dist/index.jsexists. -
Authentication prompt not appearing
The browser should open automatically. If it doesn't, check your default browser settings. In Cursor, check the MCP server logs panel.
-
Token expired / authentication error
Delete the cache and retry:
rm ~/.yalla/mcp-token-cache.json -
Network error
Ensure you are connected to the bp VPN.