get_hook_messages
Retrieve messages from persistent hooks installed with install_hook. Optionally clear messages after retrieval to manage hook output effectively.
Instructions
Get collected messages from persistent hooks installed via install_hook
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| clear | No | Clear messages after retrieving (default: false) |
Implementation Reference
- src/frida_mcp/hooks.py:114-122 (handler)Main handler for get_hook_messages tool. Gets collected messages from persistent hooks via FridaSession.get_messages(), optionally clearing the buffer.
def get_hook_messages(clear: bool = False) -> dict: """Get collected messages from persistent hooks.""" fs = get_session() messages = fs.get_messages(clear=clear) return { "count": len(messages), "session_id": fs.id, "messages": messages } - src/frida_mcp/session.py:58-64 (helper)Helper method on FridaSession that returns the last 50 hook messages, optionally clearing them, with thread-safe locking.
def get_messages(self, clear: bool = False) -> list: """Thread-safe message retrieval.""" with self._lock: messages = list(self.hook_messages[-50:]) if clear: self.hook_messages = [] return messages - src/frida_mcp/tools.py:279-289 (registration)Tool registration schema defining the get_hook_messages tool with an optional 'clear' boolean parameter.
Tool( name="get_hook_messages", description="Get collected messages from persistent hooks installed via install_hook", inputSchema={ "type": "object", "properties": { "clear": {"type": "boolean", "description": "Clear messages after retrieving (default: false)"}, }, "required": [], }, ), - src/frida_mcp/session.py:38-56 (helper)Helper method on FridaSession that adds messages to the buffer with size/limit constraints, called by persistent hook scripts.
def add_message(self, hook_name: str, payload: Any, is_error: bool = False): """Thread-safe message addition with size limits.""" with self._lock: if is_error: self.hook_messages.append({ "hook": hook_name, "error": payload, "ts": time_module.time() }) else: if isinstance(payload, str) and len(payload) > 10000: payload = payload[:10000] + "...[truncated]" self.hook_messages.append({ "hook": hook_name, "payload": payload, "ts": time_module.time() }) if len(self.hook_messages) > 100: self.hook_messages = self.hook_messages[-100:] - src/frida_mcp/server.py:114-115 (handler)Dispatcher in call_tool that routes 'get_hook_messages' requests to hooks.get_hook_messages().
elif name == "get_hook_messages": return hooks.get_hook_messages(arguments.get("clear", False))