pernosco-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {} |
| resources | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| session_connectA | Connect to a Pernosco trace by URL or trace ID. Opens the tab in Firefox if not already open. |
| session_listA | List available Pernosco traces (open Firefox tabs with pernos.co loaded) |
| session_statusA | Get current focus position (event number, source file, line) for the connected session |
| session_disconnectB | Disconnect from the current Pernosco session |
| find_executionsA | Find all calls to a function across the trace. Optionally evaluate C++ expressions at each call site using print_exprs (semicolon-delimited). |
| stackA | Get the call stack at the current focus position |
| evaluateB | Evaluate a C++ expression at the current focus position |
| gotoA | Navigate to a specific execution point by result index (from a previous query) or raw focus object |
| task_treeA | Get the complete process/thread hierarchy for the trace |
| searchB | Search for symbols, functions, or types by name |
| watchpoint_historyA | Get complete write history for a memory address across the trace (reads all writes before and after current focus) |
| stdout_stderrA | Get stdout/stderr output around the current focus position. Output is scoped to the current process — use goto to navigate to a content process first if needed. Results include event IDs for navigation. |
| current_tasksB | Get active processes and threads at the current focus moment |
| notebook_readA | Read Pernosco notebook annotations saved in this session |
| find_breakpoint_hitsB | Find all hits of a specific source line. Use when you have a file:line from a stack trace or crash report. |
| dynamic_annotationsA | Show which lines of the current source file executed at the current focus, with execution counts for loops. Essential for understanding which code paths and branches ran. |
| source_readA | Read source code lines from the current trace. Use after stack or session_status to see code around the current position. |
| step_to_next_hitA | Navigate forward to the next execution of the current source line (or a specified line). Useful for stepping through loop iterations or repeated calls. |
| watch_variableA | Get the complete write history of a C++ variable. Evaluates the expression to find its memory address, then traces all writes. Simpler than manually using evaluate + watchpoint_history. |
| step_to_prev_hitB | Navigate backward to the previous execution of the current source line (or a specified line). Useful for reverse debugging. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| Pernosco debugging guide | How to use Pernosco MCP tools effectively |
| Open sessions | List of open Pernosco traces |
TDQS
Scored across 20 tools
Each tool has a clearly distinct purpose, covering navigation, state querying, session management, and annotations. Overlaps are minimal (e.g., watchpoint_history vs. watch_variable are differentiated by input type), and descriptions clearly delineate boundaries.
All tool names use snake_case and follow a consistent verb_noun or noun pattern (e.g., find_breakpoint_hits, session_status, source_read). There is no mixing of conventions, making the naming predictable and easy to reason about.
With 20 tools, the count is slightly above the typical well-scoped range (3-15), but each tool addresses a specific debugging need in a complex domain. The surface is neither bloated nor insufficient, earning a 4.
The tool set covers the core reverse debugging workflow: session management, navigation, source inspection, stack traces, variable/watchpoint history, expression evaluation, and process/thread hierarchy. Minor gaps (e.g., no explicit register inspection) exist, but the overall coverage is strong.