
Perf
io.github.rog0xPublished by GitHub account rog0xv1.0.2Updated Oct 24, 2026
Benchmark, memory, Big O analysis for AI agents
Overview
Local MCP server that gives an assistant performance-analysis tools: JavaScript benchmarking, Node.js memory analysis, Big O estimation, bundle inspection and a
- What you can do
- Benchmark JavaScript snippets over many iterations, reporting latency percentiles and operations per second, optionally comparing two implementations side by side. Analyze Node.js memory usage with snapshots and trend detection for possible leaks. Estimate Big O complexity from timing data and visualize growth curves. Inspect a JavaScript bundle for size, module count and tree-shaking opportunities. Run simple HTTP load tests and report percentiles, error rate and throughput.
- When to use it
- Useful when you are tuning JavaScript or Node.js code and want the assistant to measure execution speed, compare implementations, check memory behavior, estimate algorithmic complexity or inspect bundle size. Also handy for quick HTTP load checks against an endpoint.
- Requirements
- Runs as a local process over stdio; install the npm package and build it, then point the desktop client at the built entry file with Node.js. No accounts, API keys or environment variables are declared. Network access is needed only for the HTTP load-test tool.
Installation
In SourceWeft
- Open Perf in the dashboard and add it to a workspace.
- Enable the server for the chats that should use its tools.
Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.
Other MCP clients
Follow the launch instructions in the repository.
README
mcp-perf-tools
Performance analysis tools for AI agents, exposed via the Model Context Protocol (MCP).
Tools
benchmark
Benchmark JavaScript code execution. Run a snippet N times and measure min/max/avg/median/p95/p99 latency and operations per second. Optionally compare two implementations side by side.
Parameters:
code(string) — JavaScript code to benchmarkiterations(number, default 1000) — Number of iterationscompareCode(string, optional) — Second implementation to comparelabelA/labelB(string) — Labels for comparison output
memory_analyze
Analyze Node.js memory usage: heap used/total, RSS, external memory, and array buffers. Takes snapshots over time and uses linear regression to detect trends and potential memory leaks.
Parameters:
action—"snapshot"|"analyze"|"clear"
big_o_estimate
Estimate Big O complexity from empirical timing data. Fits measurements against O(1), O(log n), O(n), O(n log n), O(n^2), O(n^3), and O(2^n) using R-squared scoring. Includes an ASCII growth curve visualization.
Parameters:
inputSizes(number[]) — Array of input sizesexecutionTimesMs(number[]) — Corresponding execution times in ms
bundle_analyze
Analyze a JavaScript bundle file: raw size, gzip compressed estimate, detected module count, largest modules, and tree-shaking opportunities (side effects, duplicates).
Parameters:
filePath(string) — Absolute path to the bundle file
load_test
Simple HTTP load tester. Sends N requests at a given concurrency level and reports response time percentiles, error rate, throughput (req/sec), and status code distribution.
Parameters:
url(string) — Target URLtotalRequests(number, default 100) — Total requests to sendconcurrency(number, default 10) — Concurrent request countmethod(string, default "GET") — HTTP methodheaders(object, optional) — HTTP headersbody(string, optional) — Request bodytimeoutMs(number, default 30000) — Request timeout
Setup
Usage with Claude Desktop
Add to your claude_desktop_config.json:
License
MIT
Source: README.md at commit 903655a
Tools
0Version history
1- v1.0.2LatestSep 16, 2026
Score
40% of the applicable checks met
How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.
- Reached in the last 30 days25 pts
Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.
- Auth declared10 pts
Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.
- Tools listed15 pts
Answer tools/list without a credential, or ship a package that starts in a sandbox without one.
- DescriptionRequired15 pts
- Logo10 pts
- Documentation15 pts
- License10 pts
Declare a license in the repository or the registry entry.