Skip to main content
Glama
keil-mdk-mcp

keil-mdk-mcp

by lideshengstu

keil_get_call_stack

Inspect the current call stack in a Keil MDK-ARM STM32 debug session; no guessed frames are returned when validated stack unwinding is unavailable.

Instructions

Validated stack unwinding is not implemented; no guessed frames are returned.

Tool call template

This tool declares no required parameters. Add optional parameters from the input schema as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {},
    "name": "keil_get_call_stack"
  }
}

Input Schema

NameRequiredDescriptionDefault

No arguments

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.3.0

TDQS

C2.6/5.0
Behavior3/5

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

With no annotations, the description carries the full disclosure burden, and the one claim it makes is genuinely useful: no guessed or synthesized frames are returned, so an agent should not treat an empty/partial stack as corruption. That said, it does not say what IS returned when unwinding fails, whether a debug session must be active, or whether behavior varies by target architecture.

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?

It is a single short sentence with no padding, but the sentence is front-loaded with a negation rather than with what the tool returns. Brevity here reflects under-specification rather than disciplined editing.

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?

An output schema exists, so the return shape need not be explained, but the definition still leaves critical gaps for a debugger tool: session prerequisites, whether frames are partial versus empty on failure, and any relationship to keil_get_pc/keil_get_registers. For a tool with no annotations and no parameters, that silence is a real deficiency.

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 takes zero parameters, so the baseline is 4; the description adds no parameter meaning, but none is needed. Schema coverage is 100% and the argument object is empty.

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

Purpose2/5

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

The description never states what the tool does; it only negates a capability ('Validated stack unwinding is not implemented'). An agent must infer the actual behavior (retrieve the call stack) entirely from the tool name, and the sentence reads as a caveat rather than a purpose statement.

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?

There is no guidance on when to call this versus siblings such as keil_get_pc or keil_get_registers, nor any prerequisite (e.g., halted debug session) mentioned. The only implicit guidance is the warning that frames may be missing, which at least sets expectations for the result.

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