Skip to main content
Glama

get_critical_warnings

Extracts and categorizes CRITICAL WARNING and ERROR entries from Vivado run logs, providing diagnostic reports with fix suggestions and snapshot comparisons.

Instructions

提取并分类 CRITICAL WARNING / ERROR / 非标错误,统一失败诊断入口。

解析指定 run 的 runme.log,按 warning ID 聚合分类,返回中文诊断报告。 包含已知 warning 的分类标签和修复建议。

三种诊断模式根据 run_name 自动选择:

  1. synth_* / impl_* 等综合实现 run:走原流程(runme.log 解析 ERROR/CRITICAL WARNING)。额外:errors=0 且 cw=0 但 STATUS 含 ERROR 时, 自动 tail runme.log 最后 N 行扫非标错误关键词(TclStackFree / segfault / FATAL 等不带 ERROR: 前缀的内部异常),解决"messageDb 显示干净但 run 实际 崩了"的盲区。

  2. sim_* simulation fileset:改去 tail <proj>.sim/<sim_fs>/*/xsim/*.log (Vivado launch_simulation 的真错误位置,不在 runme.log),扫非标 关键词,自动暴露 xvlog 未找到等子进程错误。

  3. 任何 run:无论结果如何,都会静默把本次 CW 列表写快照(存到项目目录 .vmcp/ 下, 或 fallback 到 ~/.claude/vivado-mcp/)。启用 compare_with_last=True 时, 读上次快照与本次对比,报告消除/新增/仍存在的条目。(sim 模式不写快照)

Args: run_name: run / fileset 名称(如 synth_1 / impl_1 / sim_1), 默认 impl_1sim_* 走 simulation 日志诊断路径。 compare_with_last: True 时追加一段与上次快照的差分报告(仅对综合/实现有效)。 tail_n: 非标错误扫描时每个日志 tail 的末尾行数,默认 50,范围 1~500。 仿真模式适用于每个 xsim 子日志。 session_id: 目标会话 ID。

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
tail_nNo
run_nameNoimpl_1
session_idNodefault
compare_with_lastNo

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
resultYes
Behavior5/5

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

With no annotations, the description carries the full burden of behavioral disclosure. It is exceptionally transparent: it reveals silent snapshot writes ('.vmcp/' or fallback), the exclusion of sim mode from snapshotting, log tailing behavior (tail_n), and the fallback scan for non-standard error keywords like TclStackFree/segfault/FATAL. It even discloses the limitation of runme.log for simulation runs and points to the actual xsim log location.

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?

Although lengthy, the description is densely structured with numbered modes and bolded key terms, front-loading the core purpose and then systematically detailing each mode and parameter. Every sentence adds operational value—no filler. The format uses Markdown headers and lists to improve scannability for an AI agent.

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

Completeness5/5

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

The description is comprehensive for a complex diagnostic tool: it covers the main flow, edge cases (errors=0 but STATUS contains ERROR), mode-specific behavior (sim vs impl), snapshotting and comparison, and parameter details. An output schema exists, and the description also clarifies return content (Chinese diagnostic report with labels and repair suggestions). Even without review of the output schema, the description provides sufficient context to select and invoke the tool correctly.

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?

Schema description coverage is 0%, so the description must compensate. It richly explains run_name (including mode routing), compare_with_last (diff report), and tail_n (range and per-sub-log behavior). However, session_id is only described as '目标会话 ID' (target session ID), which adds little beyond the parameter name itself, leaving a minor gap.

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+resource+scope: '提取并分类 CRITICAL WARNING / ERROR / 非标错误' (extract and classify critical warnings/errors/non-standard errors) and positions itself as a '统一失败诊断入口' (unified failure diagnosis entry). It clearly distinguishes itself from sibling monitoring/diagnostic tools like get_run_progress and get_timing_report by focusing on warning/error classification with actionable repair advice.

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

Usage Guidelines5/5

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

Provides explicit usage guidance by describing three automatic diagnostic modes based on run_name (synth_*/impl_* vs sim_*). It explains when the tool is needed, e.g., '解决 messageDb 显示干净但 run 实际崩了' (solves the blind spot where messageDb looks clean but the run actually crashed), and clarifies that sim_* goes to a different log location. It also mentions compare_with_last behavior, giving clear context on when to use the diff functionality.

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

Install Server

Other Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/mapleleavessssssss-wq/vivado-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server