Skip to main content
Glama
qifeng-peak

XR875 Build MCP

by qifeng-peak

XR875 构建 MCP 服务器

这是一个提供 XR875 项目构建工具的 MCP (Model Context Protocol) 服务器。

功能特性

  • build_m33: 编译 M33 核。

  • build_ota: 编译 M33 OTA。

  • build_c906: 编译 C906 核。

  • build_all: 按顺序编译所有内容 (M33 -> OTA -> C906 -> Pack)。

  • pack_firmware: 打包固件。

Related MCP server: EmbedForge

前置条件

  • Python 3.10+

  • 拥有 XR875 SDK 仓库的访问权限。

  • 推荐使用 uv 进行环境管理。

安装 uv

如果您尚未安装 uv,可以使用以下命令进行安装:

Linux / macOS

curl -LsSf https://astral.sh/uv/install.sh | sh

安装完成后,请确保将其添加到您的 PATH 中(通常脚本会自动处理,或者您需要重启终端)。

NOTE

在本系统中,uv 的绝对路径为 /home/one/.local/bin/uv。如果您在配置中遇到 "command not found",请优先使用此绝对路径。

安装步骤

使用 uv (推荐)

# 进入服务器目录
cd .agents/mcp_servers/xr875-build-mcp

# 安装依赖并创建虚拟环境
# 如果尚未创建虚拟环境,请先创建
/home/one/.local/bin/uv venv
# 同步安装依赖
/home/one/.local/bin/uv sync

使用 pip

cd .agents/mcp_servers/xr875-build-mcp
pip install .

配置说明

要将此服务器用于 MCP 宿主(如 Cline 或 Claude Desktop),您需要将其添加到配置中。

对于 Cline

在您的 cline_mcp_settings.json 中添加以下内容:

{
  "mcpServers": {
    "xr875-build": {
      "command": "/home/one/.local/bin/uv",
      "args": [
        "--directory",
        "/home/one/workspace/xr875_single_repository/.agents/mcp_servers/xr875-build-mcp",
        "run",
        "xr875-build"
      ]
    }
  }
}

或者使用 Python 绝对路径:

{
  "mcpServers": {
    "xr875-build": {
      "command": "/usr/bin/python3",
      "args": [
        "/home/one/workspace/xr875_single_repository/.agents/mcp_servers/xr875-build-mcp/src/xr875_build/server.py"
      ],
      "env": {
        "PYTHONPATH": "/home/one/workspace/xr875_single_repository/.agents/mcp_servers/xr875-build-mcp/src"
      }
    }
  }
}

使用方法

配置完成后,支持 MCP 的 AI 助手即可调用此服务器中定义的构建工具。

Available Tools

5 tools
build_allB

Build everything in sequence (M33 -> OTA -> C906 -> Pack).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.4/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions the sequence of operations but lacks details on what 'Build' entails (e.g., compilation, linking, error handling), whether it's destructive, requires specific permissions, or has rate limits. This leaves significant gaps in understanding the tool's behavior beyond the basic action.

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 a single, efficient sentence that front-loads the core action ('Build everything') and follows with the sequence details. There is no wasted text, making it highly concise and well-structured for quick comprehension.

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

Completeness3/5

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

Given the tool has no parameters, no annotations, and no output schema, the description is minimally adequate by stating the action and sequence. However, for a build tool that likely involves complex operations, it lacks details on outcomes, error handling, or dependencies, leaving room for improvement in completeness despite the simple context.

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

Parameters4/5

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

The input schema has 0 parameters with 100% coverage, so no parameter documentation is needed. The description adds value by specifying the build sequence (M33 → OTA → C906 → Pack), which provides context beyond the empty schema, though it doesn't detail parameters since none exist.

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

Purpose4/5

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

The description clearly states the action ('Build everything') and specifies the sequence of operations (M33 → OTA → C906 → Pack), which indicates a multi-step build process. It doesn't explicitly distinguish from sibling tools like build_c906 or build_m33, but the 'everything' scope implies it's comprehensive rather than targeting individual components.

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 description implies usage when a full sequential build is needed, as opposed to using individual sibling tools for specific components. However, it doesn't provide explicit guidance on when to choose this tool over alternatives or any prerequisites/exclusions, leaving the context somewhat inferred rather than clearly stated.

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

build_c906C

Build the C906 core (lunch_rtos 34 && m clean && m).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

C2.8/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden for behavioral disclosure. While it reveals the tool executes a specific build sequence ('lunch_rtos 34 && m clean && m'), it doesn't mention whether this is destructive, requires specific permissions, has side effects, or what happens on success/failure. Important behavioral traits are missing.

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

Conciseness4/5

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

The description is a single, efficient sentence that gets straight to the point. Every part of the sentence serves a purpose - stating what's being built and providing the exact build sequence. No wasted words.

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

Completeness2/5

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

For a build tool with no annotations and no output schema, the description is incomplete. It doesn't explain what 'C906 core' is, what the build sequence does, what the expected outcome is, or how this differs from sibling build tools. The context is insufficient for proper tool selection and usage.

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

Parameters4/5

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

The tool has 0 parameters with 100% schema description coverage, so the baseline is 4. The description appropriately doesn't waste space discussing parameters that don't exist, which is efficient.

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

Purpose3/5

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

The description states the specific action ('Build the C906 core') and includes implementation details, but it doesn't clearly distinguish this tool from its siblings (build_all, build_m33, build_ota). The purpose is clear but lacks sibling differentiation.

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

Usage Guidelines2/5

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

No guidance is provided about when to use this tool versus alternatives like build_all or build_m33. The description includes implementation commands but doesn't explain the context or prerequisites for using this specific build tool.

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

build_m33B

Build the M33 core (lunch_rtos 35 && m clean && m).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.4/5.0
Behavior3/5

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

With no annotations provided, the description carries full burden. It reveals this is a build operation (implying mutation/creation), includes specific shell commands showing it performs clean build steps, but doesn't disclose permissions needed, side effects, error behavior, or output format.

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?

Extremely concise single sentence with zero wasted words. Every element ('Build the M33 core' plus the specific command sequence) serves a clear purpose in describing the tool's functionality.

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

Completeness3/5

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

For a zero-parameter build tool with no annotations and no output schema, the description provides the core action and implementation details. However, it lacks information about what the build produces, error handling, or dependencies that would be helpful for an agent to use it effectively.

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

Parameters4/5

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

The tool has zero parameters (schema coverage 100%), so no parameter documentation is needed. The description appropriately focuses on the tool's behavior rather than parameters, meeting the baseline for zero-parameter tools.

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

Purpose4/5

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

The description clearly states the action ('Build') and the target resource ('the M33 core'), with specific implementation details provided. It distinguishes from siblings by specifying the M33 target, though it doesn't explicitly contrast with other build tools like build_all or build_c906.

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

Usage Guidelines2/5

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

No guidance is provided about when to use this tool versus alternatives like build_all or build_c906. The description only states what the tool does, not when it's appropriate or what prerequisites might exist.

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

build_otaC

Build the M33 OTA (lunch_rtos 35 && ota_mrtos clean && ota_mrtos).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations, the description carries the full burden. It implies a build operation with specific shell commands, suggesting it's likely a mutation tool that executes processes, but doesn't disclose behavioral traits such as execution time, side effects, error handling, or output format. This is inadequate for a tool with potential system impacts.

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

Conciseness3/5

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

The description is a single sentence that lists commands, which is concise but not optimally structured. It front-loads the purpose but includes technical details (commands) without explanation, which may confuse non-expert agents. It could be more polished for clarity.

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

Completeness2/5

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

Given no annotations, no output schema, and a tool that likely performs system builds, the description is incomplete. It lacks information on what the tool returns, error conditions, or dependencies, making it insufficient for safe and effective use by an AI agent in a complex environment.

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

Parameters4/5

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

The input schema has 0 parameters with 100% coverage, so no parameter documentation is needed. The description doesn't add param info, which is appropriate, but it does include command details that could be seen as implicit parameters. Baseline is 4 for zero params, as the schema fully covers the lack of inputs.

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

Purpose4/5

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

The description clearly states the tool's purpose: 'Build the M33 OTA' with specific commands. It distinguishes from siblings like 'build_all' or 'build_c906' by specifying the M33 target. However, it doesn't explicitly contrast with 'build_m33' (which might be similar) or explain what 'OTA' means, keeping it from a perfect score.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives like 'build_m33' or 'pack_firmware'. The description lists commands but doesn't specify context, prerequisites, or exclusions, leaving the agent to infer usage from the name and command sequence alone.

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

pack_firmwareB

Pack the firmware (lunch_rtos 34 && pack).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.2/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions the specific shell commands executed, which gives some insight into the tool's behavior, but doesn't address critical aspects like whether this is a read-only or destructive operation, what permissions are required, what side effects occur, or what happens on success/failure. The technical command details add value but leave significant behavioral gaps.

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 extremely concise—a single sentence that directly states the tool's action and the exact commands executed. There is zero wasted verbiage, and the information is front-loaded with no unnecessary elaboration. Every word earns its place.

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

Completeness3/5

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

Given the tool has zero parameters, no annotations, and no output schema, the description provides the essential action and technical implementation details. However, for a tool that likely performs a significant build/packaging operation (implied by sibling tools), it lacks information about output behavior, success indicators, or error handling. The description is minimally complete but leaves important contextual gaps unaddressed.

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

Parameters4/5

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

The tool has zero parameters with 100% schema description coverage, so the schema already fully documents the absence of inputs. The description doesn't need to compensate for any parameter gaps, and it appropriately doesn't mention parameters. A baseline of 4 is appropriate for a zero-parameter tool where the schema handles all documentation needs.

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

Purpose4/5

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

The description clearly states the action ('Pack the firmware') and provides specific technical commands ('lunch_rtos 34 && pack'), which gives a concrete understanding of what the tool does. However, it doesn't explicitly differentiate this firmware packing operation from the sibling build tools (build_all, build_c906, etc.), which appear to be related compilation/assembly operations.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus the sibling build tools, nor does it mention any prerequisites, dependencies, or contextual triggers. It simply states the command sequence without indicating the appropriate scenario for its invocation.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 5 tool updatesv0.1.0
    • First observedbuild_all
    • First observedbuild_c906
    • First observedbuild_m33
    • First observedbuild_ota
    • First observedpack_firmware

TDQS

A3.6/5.0

Scored across 5 tools

Disambiguation5/5

Each tool has a clearly distinct purpose targeting specific build components or stages: build_all for sequential builds, build_c906 for C906 core, build_m33 for M33 core, build_ota for M33 OTA, and pack_firmware for packing. No ambiguity exists as each tool name directly corresponds to a unique build operation.

Naming Consistency5/5

All tools follow a consistent verb_noun pattern with 'build_' or 'pack_' prefixes and specific suffixes (e.g., build_all, build_c906, pack_firmware). This predictable naming scheme makes it easy to understand each tool's function at a glance.

Tool Count5/5

With 5 tools, this server is well-scoped for its build automation purpose. Each tool serves a distinct and necessary function in the build process, from individual component builds to sequential builds and packing, with no redundant or missing operations.

Completeness5/5

The tool set provides complete coverage for the build domain: it includes individual builds for all core components (M33, C906, OTA), a sequential build tool (build_all), and a packing tool (pack_firmware). This covers the entire build lifecycle from compilation to packaging with no obvious gaps.

Maintenance

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers