Skip to main content
Glama
RFingAdam

drawio-engineering-mcp

by RFingAdam

create_rf_block_diagram

Generate an RF signal chain block diagram from a JSON description with auto-layout, signal flow arrows, and color-coded shapes. Supports cumulative gain and noise figure annotations using the Friis formula.

Instructions

Generates an RF signal chain block diagram from a JSON description and opens it in draw.io. Provide an array of blocks with type, label, and optional RF parameters. The tool auto-layouts blocks left-to-right with signal flow arrows and color-coded shapes. Injection sources (e.g. LO for a mixer) are placed below their target block with dashed arrows. Supports cumulative gain and noise figure annotations using the Friis formula.

Supported block types: Amplifiers: lna, pa, amplifier, driver Filters: bpf, lpf, hpf, notch Mixer: mixer Attenuators: attenuator, dsa Converters: adc, dac Oscillators: vco, oscillator, pll Antenna: antenna Passive: coupler, splitter, combiner, circulator, isolator, balun, duplexer, diplexer Switches: switch, spdt, sp4t Other: detector, custom

Each block object in the chain array accepts: type (required): one of the types above label: display name (defaults to standard abbreviation) sublabel: smaller text below the label (e.g. frequency) gain_db: gain in dB (defaults from component database) nf_db: noise figure in dB (defaults from component database) inject_to: label of the main chain block this injects into (for LO sources, etc.)

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
chainYesArray of block objects describing the signal chain in order. Blocks without inject_to form the main chain (left to right). Blocks with inject_to are injection sources placed below their target.
titleNoDiagram title displayed at the top
show_cumulativeNoShow cumulative gain and noise figure annotations below each main chain block (Friis formula). Default: false
signal_flow_arrowsNoDraw signal flow arrows between adjacent main chain blocks. Default: true
auto_openNoAutomatically open the diagram in draw.io. Set to false to return XML only. Default: true
Behavior5/5

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

With no annotations, the description fully discloses behavioral traits: auto-layout, signal flow arrows, color-coding, injection sources with dashed arrows, and cumulative gain/NF annotations via Friis formula. It also explains block properties and default behavior, leaving no ambiguity.

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 well-structured with clear sections: main purpose, layout behavior, block types list, and per-property details. Every sentence adds value without redundancy, and the information is front-loaded.

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 no output schema, the description covers the tool's outcomes (opens in draw.io or returns XML if auto_open is false) and parameter behavior thoroughly. It lacks details on the returned XML format or error scenarios, but remains largely complete for a generation tool.

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 coverage is 100%, but the description adds significant meaning beyond schema by explaining layout logic, inject_to placement, defaults from a component database, and the Friis formula for cumulative annotations. This enriches understanding of how parameters affect the output.

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 clearly states the tool generates an RF signal chain block diagram from JSON and opens it in draw.io. It uses a specific verb 'generates' and resource 'RF signal chain block diagram', effectively distinguishing it from sibling tools like create_emc_test_setup or create_pcb_stackup.

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

Usage Guidelines4/5

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

The description explains 'Provide an array of blocks...' and details the layout and supported types, implying when to use the tool for RF block diagrams. However, it does not explicitly contrast with siblings or provide when-not-to-use guidance, though the context is clear.

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/RFingAdam/drawio-engineering-mcp'

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