board-spec-mcp
Click on "Deploy 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., "@board-spec-mcp get spec for machine qrb5165"
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.
board-spec-mcp
MCP server that serves Qualcomm Yocto board specs (machine_creation +
partition_conf fields) from the roshs189/board-spec
git repo — one branch per machine. Built to replace reading a Confluence
"Partition Spec" page in the qcom-yocto-new-machine and
qcom-partition-conf-new-board Claude Code skills.
What it does
Clones/fetches
board-specinto a local cache (~/.cache/board-spec-mcp/repoby default).Reads a board's spec straight from its branch (
origin/<machine>:boards/<machine>/spec.yaml) without checking it out — no working-tree conflicts, always in sync with arefresh_specscall.Validates specs against
schema/board-spec.schema.json(onmain) plus the cross-checks the skills used to do by hand:delta=newpartitions need anotesjustification and must not collide with SoC-mandated names (xbl/tz/hyp/aop/...),partition_files_subdirmust equalpartitions/<machine>/<storage_type>, chip IDs shouldn't collide across boards.
Related MCP server: kube-lint-mcp
Setup (anyone, from scratch)
Requires Python 3.10+ and an SSH key with read access to
github.com/roshs189/board-spec (or set BOARD_SPEC_REPO_URL to a repo you
do have access to — see Configuration below).
git clone <this-repo-url> board-spec-mcp
cd board-spec-mcp
python3 -m venv .venv
.venv/bin/pip install -e .Verify it starts cleanly:
.venv/bin/board-spec-mcp # should hang waiting on stdin — Ctrl-C to exitRegister with Claude Code
Add a .mcp.json in the project you want this available in (or merge into
an existing one):
{
"mcpServers": {
"board-spec": {
"command": "/absolute/path/to/board-spec-mcp/.venv/bin/board-spec-mcp"
}
}
}Restart Claude Code (or run /mcp to reconnect) and the tools below become
available.
Configuration
Environment variables, all optional:
Variable | Default | Purpose |
|
| Remote to clone/fetch |
|
| Local bare-ish clone location |
Set these in the .mcp.json entry's "env" block if you need a fork or a
different cache path:
{
"mcpServers": {
"board-spec": {
"command": "/absolute/path/to/board-spec-mcp/.venv/bin/board-spec-mcp",
"env": { "BOARD_SPEC_REPO_URL": "git@github.com:<you>/board-spec.git" }
}
}
}Tools
list_boards()— every machine with a branch inboard-spec(excludesmain).get_board_spec(machine)— full spec.get_machine_creation_fields(machine)— just themachine_creationsection.get_partition_conf_fields(machine)— just thepartition_confsection.validate_board_spec(machine)—{valid, schema_errors, warnings}.refresh_specs()— fetch latest branches/commits (call after a spec is pushed).
Also exposed as a resource: board-spec://<machine>.
Adding a new board
Specs are human-authored and PR-reviewed in board-spec itself — this server
only reads, never writes. See that repo's README for the branch/PR workflow.
Available Tools
6 toolsget_board_specA
Return the full board spec (machine_creation + partition_conf sections) for a machine.
Raises if no branch named machine exists in the board-spec repo.
Inputs: machine (required).
get_machine_creation_fieldsB
Return only the machine_creation section of a board's spec.
Use this from the qcom-yocto-new-machine skill instead of parsing a Confluence page's Board Identity / Disk Configuration sections.
Inputs: machine (required).
get_partition_conf_fieldsA
Return only the partition_conf section of a board's spec.
Use this from the qcom-partition-conf-new-board skill instead of parsing a Confluence page's Partition Table / contents.xml.in Metadata sections.
Inputs: machine (required).
list_boardsA
List all board (machine) names available as branches in the board-spec repo.
Inputs: no named parameters. Returns: result
refresh_specsA
Fetch the latest branches/commits from the board-spec remote.
Call this if a spec was just pushed/updated and you need the MCP to see it without restarting the server.
Inputs: no named parameters. Returns: result
validate_board_specA
Schema-validate a board spec and run the cross-checks the skills used to do by hand against a Confluence page: delta=new partitions must have notes and must not collide with SoC-mandated names (xbl/tz/hyp/aop/...), partition_files_subdir must match partitions//<storage_type>, reference_board should exist, and chip IDs should not collide across boards.
Returns {valid, schema_errors, warnings}. schema_errors block automation; warnings should be surfaced to a human but don't block by themselves.
Inputs: machine (required).
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 6 tools
Each tool has a distinct purpose: retrieving full spec, specific sections, listing boards, refreshing, and validating. No overlap or ambiguity.
All tool names follow a consistent snake_case verb_noun pattern (e.g., get_board_spec, list_boards, validate_board_spec).
Six tools cover the core operations for board spec management without being excessive or insufficient.
The set covers reading, listing, refreshing, and validating specifications. Missing write/create operations, but these may be handled externally via git.
Maintenance
Related MCP Connectors
MCP server for Product Management
A MCP server built for developers enabling Git based project management with project and personal…
An MCP server that provides Javelin Standalone Guardrails
Related MCP Servers
- FlicenseAqualityDmaintenanceMCP server for managing Git operations on local repositories, allowing users to list repositories, get and create tags, list commits, push tags, and refresh repositories through a standardized interface.63-
- AlicenseNot gradedqualityCmaintenanceMCP server to lint and validate Kubernetes-related manifests(Helm, FluxCD, ArgoCD, Kustomize, etc.)73 PyPIMIT
- AlicenseNot gradedqualityDmaintenanceMCP server that distributes tool specifications from GitLab repositories to IDEs, dynamically generating MCP tools and serving files via aimcp:// URIs.MIT
- AlicenseCqualityBmaintenanceMCP server for interacting with GitLab API, supporting dynamic tool selection and enterprise-grade security.20810MIT