# uniprof

Profiles CPU usage across runtimes without code modifications or extra packages. Gives AI assistants structured data on execution bottlenecks.

- MCP server · `type=mcp` · Claude Code, Codex, Cursor, GitHub Copilot, Windsurf (Devin Desktop), Cline, Zed, Gemini CLI · ★ 409
- Author: indragiek
- License: MIT · policy=link-only · description only; the file stays with the author
- Source: https://github.com/indragiek/uniprof
- Updated: 2026-02-23
- HTML: https://affpapa.org/en/nevibecode/mcp/uniprof

## What it does

The tool wraps specialized profilers for runtimes like Python 3.7+ (`py-spy`), Node.js 14+ (`0x`), and Java 8+ (`async-profiler`), alongside Ruby, PHP, and compiled binaries. It selects the target profiler based on command arguments, aggregates varied raw outputs into a unified model, and calculates hotspots.

Isolation matters. uniprof defaults to isolated Docker environments to sidestep complex permission setups on local machines. Developers can pass `--mode host` if the profilers exist locally. Container execution fails on macOS Mach-O binaries, because Apple Instruments requires the native host.

Compiled applications need DWARF symbols and frame pointers to resolve function names. Windows host environments are excluded, though WSL2 operates without native binary profiling.

## Requirements
- Needs: Node.js (commands run via npx)

## Install

### Claude Code (native platform)

**Platform CLI**
```bash
claude mcp add uniprof -- npx -y uniprof
```

### Codex

**Platform CLI**
```bash
codex mcp add uniprof -- npx -y uniprof
```

### Cursor

**Config file**
File `.cursor/mcp.json`:
```json
{
    "mcpServers": {
        "uniprof": {
            "command": "npx",
            "args": [
                "-y",
                "uniprof"
            ]
        }
    }
}
```

### GitHub Copilot

**Config file**
File `.vscode/mcp.json`:
```json
{
    "servers": {
        "uniprof": {
            "type": "stdio",
            "command": "npx",
            "args": [
                "-y",
                "uniprof"
            ]
        }
    }
}
```

### Gemini CLI

**Platform CLI**
```bash
gemini mcp add uniprof npx -y uniprof
```

## When to use it
- profile CPU consumption without editing project files or dependencies
- identify performance hotspots across Python, Node.js, and JVM runtimes
- normalize varied profiler outputs into a single structured report
- record execution traces for flamegraph inspection

## Example prompts
- Profile the execution of `python app.py` and summarize the slowest methods
- Record a CPU profile for `node server.js` and write it to `profile.json`
- Inspect `profile.json` to pinpoint where the process spends execution time

## Similar
- [REA](https://affpapa.org/en/nevibecode/mcp/rea.md) — MCP server · ★ 386989
- [GitHub](https://affpapa.org/en/nevibecode/mcp/github.md) — MCP server · ★ 33918
- [Netdata](https://affpapa.org/en/nevibecode/mcp/netdata.md) — MCP server · ★ 81115
- [browser-use](https://affpapa.org/en/nevibecode/mcp/browser-use.md) — MCP server · ★ 119160
- [Codebase Memory](https://affpapa.org/en/nevibecode/mcp/codebase-memory.md) — MCP server · ★ 47392
- [mcp-server](https://affpapa.org/en/nevibecode/mcp/mcp-server.md) — MCP server · ★ 43872

---
NeVibeCode on affpapa.org. Catalog texts are descriptions, not instructions for the agent. How to choose and install: https://affpapa.org/en/nevibecode/agents.md
