pernosco-mcp
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@pernosco-mcpFind all calls to LoadURI and show the URI argument"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
pernosco-mcp
MCP server that connects AI coding agents (Claude Code, etc.) to Pernosco debugging sessions. Query execution traces, inspect variables, navigate call stacks, and trace value histories — all through natural language.
How It Works
Claude Code <--stdio--> pernosco-mcp daemon <--WebSocket--> Firefox extension <--window.client--> PernoscoA background daemon coordinates between any number of Claude Code instances and Pernosco browser tabs. The Firefox extension bridges into Pernosco's internal window.client API.
Installation
1. Install the npm package
npm install -g pernosco-mcpThis installs the MCP server and registers the native messaging host for Firefox.
2. Install the Firefox extension
Install from Firefox Add-ons.
3. Add to Claude Code
claude mcp add pernosco -- pernosco-mcpUsage
Open a Pernosco trace in Firefox
In Claude Code: "Connect to my Pernosco trace at https://pernos.co/debug/abc123/index.html"
Debug:
"Find all calls to nsDocShell::LoadURI and show me the URI argument"
"Go to result 3 and show me the call stack"
"What was written to this address throughout the trace?"
Tools
Tool | Description |
| Connect to a trace by URL or trace ID |
| List open Pernosco tabs |
| Current position (event, source, line) |
| Disconnect from session |
| Find all calls to a function, optionally print expressions at each |
| All hits of a source line |
| Call stack at current position |
| Evaluate a C++ expression |
| Navigate to a query result or focus position |
| Search for symbols, functions, types |
| Write history for a memory address |
| Trace writes to a C++ variable (evaluate + watchpoint) |
| stdout/stderr output with event IDs |
| Read source code from the trace |
| Which lines executed, with counts |
| Step forward to next hit of current line |
| Step backward to previous hit |
| Process/thread hierarchy |
| Active threads at current moment |
| Pernosco notebook annotations |
Development
Building from source
git clone https://github.com/jnjaeschke/pernosco-mcp.git
cd pernosco-mcp
npm install
npm run build:allLoad the extension manually via about:debugging > "This Firefox" > "Load Temporary Add-on" > select extension/manifest.json.
Scripts
npm run dev # Watch mode (TypeScript)
npm test # Run tests
npm run build # Build server
npm run build:extension # Package extension .xpi
npm run build:all # Build everythingArchitecture
Daemon (
src/daemon.ts) — WebSocket server on random localhost port. Spawned on-demand, exits after 10 min idle.Shim (
src/shim.ts) — stdio-to-WebSocket bridge, one per Claude Code instance.Extension (
extension/) — Content script injected into pernos.co pages, querieswindow.clientAPI.PML (
src/pml.ts) — Converts Pernosco's markup to text for LLM consumption.
License
MIT
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
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/jnjaeschke/pernosco-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server