get_selection
Retrieve currently selected topics in MindManager with customizable detail levels. Supports full, content, or text-only modes to streamline data extraction for mind map analysis.
Instructions
Retrieves the currently selected topics in MindManager.
Args:
mode (str): Detail level ('full', 'content', 'text'). Defaults to 'full'.
turbo_mode (bool): Enable turbo mode (text only). Defaults to False.
Returns:
Union[List[Dict[str, Any]], Dict[str, str]]: List of serialized selected topics or error dictionary.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | full | |
| turbo_mode | No |
Implementation Reference
- mindm_mcp/server.py:196-216 (handler)The main asynchronous handler function for the 'get_selection' MCP tool. It invokes the internal _get_selection helper, serializes the result, logs activity, and handles exceptions by returning an error dictionary.async def get_selection( mode: str = 'full', turbo_mode: bool = False ) -> Union[List[Dict[str, Any]], Dict[str, str]]: """ Retrieves the currently selected topics in MindManager. Args: mode (str): Detail level ('full', 'content', 'text'). Defaults to 'full'. turbo_mode (bool): Enable turbo mode (text only). Defaults to False. Returns: Union[List[Dict[str, Any]], Dict[str, str]]: List of serialized selected topics or error dictionary. """ try: print(f"Calling get_selection(mode={mode}, turbo_mode={turbo_mode})", file=sys.stderr) selection = _get_selection(mode=mode, turbo_mode=turbo_mode) print("get_selection successful, returning serialized selection.", file=sys.stderr) return _serialize_result(selection) except Exception as e: return _handle_mindmanager_error("get_selection", e)
- mindm_mcp/server.py:195-195 (registration)The @mcp.tool() decorator registers the get_selection function as an MCP tool in the FastMCP server.@mcp.tool()
- mindm_mcp/server.py:103-108 (helper)Internal helper function that instantiates a MindmapDocument and retrieves the current selection from the MindManager document if a mindmap is available.def _get_selection(mode='content', turbo_mode=False): document = _get_document_instance(turbo_mode=turbo_mode) if document.get_mindmap(mode=mode): selection = document.get_selection() return selection return None
- mindm_mcp/server.py:87-101 (helper)Helper function to create and configure a MindmapDocument instance used by get_selection.def _get_document_instance( charttype: str = 'auto', turbo_mode: bool = False, inline_editing_mode: bool = False, mermaid_mode: bool = True, macos_access: str = MACOS_ACCESS_METHOD ) -> MindmapDocument: document = MindmapDocument( charttype=charttype, turbo_mode=turbo_mode, inline_editing_mode=inline_editing_mode, mermaid_mode=mermaid_mode, macos_access=macos_access ) return document
- mindm_mcp/server.py:57-70 (helper)Serialization helper used to convert the selection result into a JSON-serializable format for the MCP response.def _serialize_result(data: Any) -> Union[Dict, List, str, int, float, bool, None]: """Helper to serialize results, especially MindmapTopic structures.""" if isinstance(data, (MindmapTopic, list)): # Use simple serialization for MCP results unless full detail is needed return serialization.serialize_object_simple(data) elif isinstance(data, tuple): # Tuples are often JSON serializable directly if elements are return list(data) # Convert to list for guaranteed JSON compatibility elif isinstance(data, (dict, str, int, float, bool, type(None))): return data else: # Attempt string conversion for unknown types print(f"Warning: Serializing unknown type {type(data)} as string.", file=sys.stderr) return str(data)