Skip to main content
Glama
ZMC1011

Keil5 MCP Server

by ZMC1011

build_project

Build, rebuild, or clean a Keil MDK project, stream live build progress, and return logs and errors for automated STM32 code fixes.

Instructions

Build a Keil project with UV4 -b (or -r rebuild / -c clean).

Args: project: path to .uvprojx (absolute or relative to default_project_dir) target: target name (default: first target in project) timeout_seconds: build timeout (default 120) stream_progress: tail the log for realtime progress (percent/phase) clean: run UV4 -c instead of -b rebuild: run UV4 -r (full rebuild) instead of -b Returns: {status: ok|error|canceled|not_found, returncode, build_log, errors[], summary, progress?}

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
cleanNo
targetNo
projectYes
rebuildNo
stream_progressNo
timeout_secondsNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the transparency burden. It discloses the exact command and flags, the timeout behavior, the progress streaming behavior, and the full return status vocabulary including ok, error, canceled, and not_found. It does not spell out side effects like artifact deletion on clean, but the core execution behavior is well covered.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loaded with the core command, followed by a well-organized Args section and a Returns section. Every sentence adds value, and there is no redundant restatement of the tool name.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has six parameters and no annotations or output schema, the description is notably complete: it documents all parameters, return values, and key behaviors. It still leaves some context implicit, such as when to use sibling status/cancel/error-parsing tools and detailed error array semantics, but it covers the essential invocation surface.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate, and it does thoroughly. Every parameter is explained: project path resolution, target default, timeout default, stream_progress behavior, and the UV4 flag mappings for clean and rebuild.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb and resource: 'Build a Keil project with UV4 -b', making the core action unmistakable. It also distinguishes itself from sibling tools like build_progress_status, build_cancel, and parse_build_errors by focusing on the build action itself.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The usage context is implied: use this when you want to build, rebuild, or clean a Keil project. However, it does not explicitly state when to prefer build_project over related siblings such as configure_keil_project or discover_keil_projects, nor does it provide any 'when not to use' guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.