mcpbr-cli 0.4.0 → 0.4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/README.md +58 -0
  2. package/package.json +1 -1
package/README.md CHANGED
@@ -19,6 +19,7 @@ Benchmark your MCP server against real GitHub issues. One command, hard numbers.
19
19
  **Model Context Protocol Benchmark Runner**
20
20
 
21
21
  [![PyPI version](https://badge.fury.io/py/mcpbr.svg)](https://pypi.org/project/mcpbr/)
22
+ [![npm version](https://badge.fury.io/js/mcpbr-cli.svg)](https://www.npmjs.com/package/mcpbr-cli)
22
23
  [![Python 3.11+](https://img.shields.io/badge/python-3.11+-blue.svg)](https://www.python.org/downloads/)
23
24
  [![CI](https://github.com/greynewell/mcpbr/actions/workflows/ci.yml/badge.svg)](https://github.com/greynewell/mcpbr/actions/workflows/ci.yml)
24
25
  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
@@ -215,6 +216,8 @@ Run `mcpbr models` to see the full list.
215
216
 
216
217
  ### via npm
217
218
 
219
+ [![npm package](https://img.shields.io/npm/v/mcpbr-cli.svg)](https://www.npmjs.com/package/mcpbr-cli)
220
+
218
221
  ```bash
219
222
  # Run with npx (no installation)
220
223
  npx mcpbr-cli run -c config.yaml
@@ -224,6 +227,8 @@ npm install -g mcpbr-cli
224
227
  mcpbr run -c config.yaml
225
228
  ```
226
229
 
230
+ > **Package**: [`mcpbr-cli`](https://www.npmjs.com/package/mcpbr-cli) on npm
231
+ >
227
232
  > **Note**: The npm package requires Python 3.11+ and the mcpbr Python package (`pip install mcpbr`)
228
233
 
229
234
  ### via pip
@@ -624,6 +629,7 @@ Run SWE-bench evaluation with the configured MCP server.
624
629
  | `--smtp-port PORT` | | SMTP server port (default: 587) |
625
630
  | `--smtp-user USER` | | SMTP username for authentication |
626
631
  | `--smtp-password PASS` | | SMTP password for authentication |
632
+ | `--profile` | | Enable comprehensive performance profiling (tool latency, memory, overhead) |
627
633
  | `--help` | `-h` | Show help message |
628
634
 
629
635
  </details>
@@ -738,6 +744,58 @@ mcpbr cleanup -f
738
744
 
739
745
  </details>
740
746
 
747
+ ## Performance Profiling
748
+
749
+ mcpbr includes comprehensive performance profiling to understand MCP server overhead and identify optimization opportunities.
750
+
751
+ ### Enable Profiling
752
+
753
+ ```bash
754
+ # Via CLI flag
755
+ mcpbr run -c config.yaml --profile
756
+
757
+ # Or in config.yaml
758
+ enable_profiling: true
759
+ ```
760
+
761
+ ### What Gets Measured
762
+
763
+ - **Tool call latencies** with percentiles (p50, p95, p99)
764
+ - **Memory usage** (peak and average RSS/VMS)
765
+ - **Infrastructure overhead** (Docker and MCP server startup times)
766
+ - **Tool discovery speed** (time to first tool use)
767
+ - **Tool switching overhead** (time between tool calls)
768
+ - **Automated insights** from profiling data
769
+
770
+ ### Example Profiling Output
771
+
772
+ ```json
773
+ {
774
+ "profiling": {
775
+ "task_duration_seconds": 140.5,
776
+ "tool_call_latencies": {
777
+ "Read": {"count": 15, "avg_seconds": 0.8, "p95_seconds": 1.5},
778
+ "Bash": {"avg_seconds": 2.3, "p95_seconds": 5.1}
779
+ },
780
+ "memory_profile": {"peak_rss_mb": 512.3, "avg_rss_mb": 387.5},
781
+ "docker_startup_seconds": 2.1,
782
+ "mcp_server_startup_seconds": 1.8
783
+ }
784
+ }
785
+ ```
786
+
787
+ ### Automated Insights
788
+
789
+ The profiler automatically identifies performance issues:
790
+
791
+ ```text
792
+ - Bash is the slowest tool (avg: 2.3s, p95: 5.1s)
793
+ - Docker startup adds 2.1s overhead per task
794
+ - Fast tool discovery: first tool use in 8.3s
795
+ ```
796
+
797
+ See [docs/profiling.md](docs/profiling.md) for complete profiling documentation.
798
+
741
799
  ## Example Run
742
800
 
743
801
  Here's what a typical evaluation looks like:
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mcpbr-cli",
3
- "version": "0.4.0",
3
+ "version": "0.4.1",
4
4
  "description": "Model Context Protocol Benchmark Runner - CLI tool for evaluating MCP servers",
5
5
  "keywords": [
6
6
  "mcpbr",