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
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.