py-spy MCP Server
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., "@py-spy MCP ServerGenerate a flamegraph for the Python process running my Flask app"
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.
py-spy MCP Server
A Model Context Protocol (MCP) server that exposes Python performance testing tools powered by py-spy.
๐ English | ็ฎไฝไธญๆ
Profile Python in context. Sample live processes, generate flamegraphs, dump stacks, and compare runs โ all through MCP.
Features
Profile by PID or command โ sample a running Python process or launch a new one directly.
record_profileโ generate profiles in multiple formats:speedscope(interactive JSON)flamegraph(self-contained SVG)raw(stack-count text)chrometrace(Chrome DevTools timeline JSON)
dump_stacksโ capture the current Python call stacks of a process as JSON or human-readable text.list_python_processesโ list running Python processes on the machine to pick a target.analyze_profileโ parse an existing profile and return the hottest frames.compare_profilesโ compare two speedscope profiles and show percentage changes.top_profileโ run a shortpy-spy topsession and return a summary.On Windows,
py-spy topcannot be captured through a pipe, so this tool falls back to a short raw recording and returns the hottest frames.
Low-overhead sampling โ powered by py-spy; reads process memory without modifying or running inside the target process.
Cross-platform โ works on Linux, macOS, and Windows (subject to OS permissions).
Local-source friendly โ during development the server automatically prefers a
py-spybinary built from the sibling Rust source (src/pyspy/).Optional native/C extension profiling โ enable
--nativewhere the platform supports it.GIL and idle filtering โ focus on active threads or GIL-holding threads.
Related MCP server: javaperf
Installation (from PyPI)
Using pip:
pip install pyspy-mcpUsing uv:
uv pip install pyspy-mcp
# or install as a global tool
uv tool install pyspy-mcpThis will automatically install the compatible py-spy binary wheel for your platform.
Running with Claude Desktop / Claude Code
Add the server as a Local command connector:
{
"mcpServers": {
"pyspy": {
"command": "pyspy-mcp"
}
}
}Or run directly:
pyspy-mcpThe server speaks MCP over stdio.
Development (from source)
If you want to use the local py-spy Rust source instead of the PyPI package:
# Build py-spy from the local Rust source
cargo build --release
# The binary will be at:
# target/release/py-spy (Linux / macOS)
# target/release/py-spy.exe (Windows)
# Install the Python MCP package in editable mode
pip install -e ".[dev]"
# Or using uv
uv pip install -e ".[dev]"
# Run tests
python -m pytest tests/pyspy_mcp -vThe server will automatically prefer a locally built binary at target/release/py-spy[.exe] over the py-spy installed from PyPI. You can also force a specific binary by setting the environment variable:
export PYSPY_MCP_BINARY=/path/to/py-spyPublishing to PyPI
python -m build
python -m twine upload dist/*The published wheel is a pure-Python py3-none-any package and depends on the upstream py-spy PyPI package. If you modify the Rust source and want to ship those changes, you will need to build platform-specific wheels (or bundle the rebuilt py-spy binary as package data).
Permissions
On Linux, profiling an existing PID usually requires
ptracepermissions (sudoorcap_sys_ptrace).On macOS, profiling often requires root due to System Integrity Protection (SIP).
On Windows, running as Administrator may be needed for some processes.
Configuration
Set PYSPY_MCP_BINARY to override the bundled/development py-spy binary location.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- Alicense-qualityCmaintenanceThis is a Model Context Protocol (MCP) server implemented in Go, providing a tool to analyze Go pprof performance profiles.Last updated50MIT
- AlicenseAqualityCmaintenanceMCP server for profiling Java applications via JDK utilities (jcmd, jfr, jps). Enables AI assistants to diagnose performance, analyze threads, and inspect JFR recordings without manual CLI usage.Last updated26878MIT
- FlicenseBqualityCmaintenanceA read-only MCP server for Grafana Pyroscope that lets AI assistants query continuous profiling data, including flamegraphs, hotspot functions, memory allocations, and label discovery, directly from any MCP-compatible client.Last updated61
- AlicenseAqualityCmaintenanceMCP server that reads Spark profiler files to give accurate Minecraft server tuning advice, parsing binary protobuf directly and diagnosing TPS, MSPT, GC, heap, and call-tree issues.Last updated14271MIT
Related MCP Connectors
A MCP server built for developers enabling Git based project management with project and personalโฆ
MCP server for Blockscout
An MCP server for deep research or task groups
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/LBurny/pyspy-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server