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., "@mcp-bitbakeWhat are the raw SRC_URI assignments for the busybox recipe?"
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.
mcp-bitbake
A deterministic MCP (Model Context Protocol) server for BitBake/Yocto. Inspects recipe metadata without evaluating variables — returns only raw assignments as found in files.
Design rules:
Never evaluates variables — only returns raw assignments
Only supports
.bband.bbappendfilesSupported operators:
=,:=,?=,+=,.=Returns structured JSON for all responses
Fails closed on unsupported syntax (override syntax warned, not parsed)
Install
From GitHub (no npm publish needed):
npm install github:pkt-lab/mcp-bitbakeOr clone and build manually:
git clone https://github.com/pkt-lab/mcp-bitbake
cd mcp-bitbake
npm install && npm run buildClaude Desktop configuration
If installed via npm (GitHub):
{
"mcpServers": {
"mcp-bitbake": {
"command": "node",
"args": ["./node_modules/mcp-bitbake/dist/index.js"]
}
}
}If cloned locally:
{
"mcpServers": {
"mcp-bitbake": {
"command": "node",
"args": ["/absolute/path/to/mcp-bitbake/dist/index.js"]
}
}
}Config file location:
macOS:
~/Library/Application Support/Claude/claude_desktop_config.jsonWindows:
%APPDATA%\Claude\claude_desktop_config.jsonLinux:
~/.config/Claude/claude_desktop_config.json
Restart Claude Desktop after editing.
MCP tools
find_recipe_files
Search recursively for .bb/.bbappend files matching a filename pattern:
{ "root_path": "/path/to/poky", "query": "busybox" }Returns: { ok: true, matches: [{ path, file_type, filename }] }
scan_layer_recipe_files
List all .bb/.bbappend files under a layer path:
{ "layer_path": "/path/to/meta-mylayer" }Returns: { ok: true, files: [{ path, file_type }] }
parse_recipe_file
Parse a single .bb or .bbappend file and return all raw variable assignments:
{ "file_path": "/path/to/meta-layer/recipes-core/myapp/myapp_1.0.bb" }Returns: { ok: true, variables: [{ name, operator, raw_value, line }], warnings?: [...] }
Comments and python/shell function blocks are skipped
Override syntax (
VAR:append,VAR:${PN}, etc.) is warned but not parsedMulti-line values (lines ending with
\) are concatenated intoraw_value
get_recipe_var_raw
Get all assignments for a specific variable in a file:
{ "file_path": "/path/to/recipe.bb", "variable": "SRC_URI" }Returns: { ok: true, assignments: [{ operator, raw_value, line }] }
Error format
All errors return:
{ "ok": false, "error_code": "...", "message": "..." }Error codes: FILE_NOT_FOUND, INVALID_PATH, UNSUPPORTED_SYNTAX, INVALID_ARGUMENT
License
MIT
Resources
Looking for Admin?
Admins can modify the Dockerfile, update the server description, and track usage metrics. If you are the server author, to access the admin panel.