pernosco-mcp
MCP server that connects AI coding agents to Pernosco debugging sessions for querying execution traces, inspecting variables, navigating call stacks, and tracing value histories through natural language.
README
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--> Pernosco
A 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-mcp
This 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-mcp
Usage
- 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 |
|---|---|
session_connect |
Connect to a trace by URL or trace ID |
session_list |
List open Pernosco tabs |
session_status |
Current position (event, source, line) |
session_disconnect |
Disconnect from session |
find_executions |
Find all calls to a function, optionally print expressions at each |
find_breakpoint_hits |
All hits of a source line |
stack |
Call stack at current position |
evaluate |
Evaluate a C++ expression |
goto |
Navigate to a query result or focus position |
search |
Search for symbols, functions, types |
watchpoint_history |
Write history for a memory address |
watch_variable |
Trace writes to a C++ variable (evaluate + watchpoint) |
stdout_stderr |
stdout/stderr output with event IDs |
source_read |
Read source code from the trace |
dynamic_annotations |
Which lines executed, with counts |
step_to_next_hit |
Step forward to next hit of current line |
step_to_prev_hit |
Step backward to previous hit |
task_tree |
Process/thread hierarchy |
current_tasks |
Active threads at current moment |
notebook_read |
Pernosco notebook annotations |
Development
Building from source
git clone https://github.com/jnjaeschke/pernosco-mcp.git
cd pernosco-mcp
npm install
npm run build:all
Load 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 everything
Architecture
- 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
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.