Skip to main content
Glama
block.py1.62 kB
from __future__ import annotations from typing import Any, Dict from gnuradio.grc.core.blocks.block import Block from gnuradio_mcp.middlewares.base import ElementMiddleware from gnuradio_mcp.models import SINK, SOURCE, ParamModel, PortModel class BlockMiddleware(ElementMiddleware): def __init__(self, block: Block): super().__init__(block) self._block = self._element @property def name(self) -> str: return self._block.name @name.setter def name(self, name: str): self._block.params["id"].set_value(name) def set_param(self, param_name: str, param_value: Any): self._block.params[param_name].set_value(param_value) def set_params(self, params: Dict[str, Any]): for param_name, param_value in params.items(): self.set_param(param_name, param_value) # TODO: Check if rewrite is needed @property def params(self) -> list[ParamModel]: return [ParamModel.from_param(param) for param in self._block.params.values()] @property def sinks(self) -> list[PortModel]: self._rewrite() ports = [] for port in self._block.sinks: port_model = PortModel.from_port(port, SINK) if not port_model.hidden: ports.append(port_model) return ports @property def sources(self) -> list[PortModel]: self._rewrite() ports = [] for port in self._block.sources: port_model = PortModel.from_port(port, SOURCE) if not port_model.hidden: ports.append(port_model) return ports

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/yoelbassin/gnuradioMCP'

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