Skip to main content

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

ToolDescription
list_productsList all Yalla products with their platforms
get_productGet product details including services, platforms, and access roles
get_serviceGet details of a specific service
list_releasesList releases for a product, optionally filtered by service
list_docsList available Crossplane composition docs
get_docGet a Crossplane doc by group, version, and kind
list_technologiesList TRM technologies, optionally filtered by quadrant
get_technologyGet details of a specific technology from the TRM

Prerequisites

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):

  1. Your browser opens to the Azure AD login page
  2. Sign in with your bp credentials
  3. Tokens are cached at ~/.yalla/mcp-token-cache.json and refresh automatically for ~90 days
tip

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:

VariableDefaultDescription
YALLA_ASSETS_URLhttps://assets.accelerate.bpglobal.comAssets / Products API
YALLA_DEPLOYMENTS_URLhttps://deployments.accelerate.bpglobal.comDeployments / Releases API
YALLA_DOCS_URLhttps://docs.accelerate.bpglobal.comCrossplane Docs API
YALLA_TRM_URLhttps://technology-radar.accelerate.bpglobal.comTechnology Reference Model API

Troubleshooting

  1. MCP server not showing up

    Ensure you've built the server: cd packages/yalla-mcp && pnpm build. Check that packages/yalla-mcp/dist/index.js exists.

  2. 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.

  3. Token expired / authentication error

    Delete the cache and retry:

    rm ~/.yalla/mcp-token-cache.json
  4. Network error

    Ensure you are connected to the bp VPN.