mcpbr 0.4.14__tar.gz → 0.4.15__tar.gz

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 (197) hide show
  1. {mcpbr-0.4.14 → mcpbr-0.4.15}/.claude-plugin/marketplace.json +2 -2
  2. {mcpbr-0.4.14 → mcpbr-0.4.15}/.claude-plugin/package.json +1 -1
  3. {mcpbr-0.4.14 → mcpbr-0.4.15}/.claude-plugin/plugin.json +1 -1
  4. {mcpbr-0.4.14 → mcpbr-0.4.15}/PKG-INFO +1 -1
  5. {mcpbr-0.4.14 → mcpbr-0.4.15}/package.json +1 -1
  6. {mcpbr-0.4.14 → mcpbr-0.4.15}/pyproject.toml +1 -1
  7. {mcpbr-0.4.14 → mcpbr-0.4.15}/src/mcpbr/docker_env.py +6 -0
  8. {mcpbr-0.4.14 → mcpbr-0.4.15}/src/mcpbr/harness.py +8 -0
  9. {mcpbr-0.4.14 → mcpbr-0.4.15}/.claude/settings.json +0 -0
  10. {mcpbr-0.4.14 → mcpbr-0.4.15}/.claude-plugin/README.md +0 -0
  11. {mcpbr-0.4.14 → mcpbr-0.4.15}/.claude-plugin/skills/README.md +0 -0
  12. {mcpbr-0.4.14 → mcpbr-0.4.15}/.claude-plugin/skills/benchmark-swe-lite/SKILL.md +0 -0
  13. {mcpbr-0.4.14 → mcpbr-0.4.15}/.claude-plugin/skills/mcpbr-config/SKILL.md +0 -0
  14. {mcpbr-0.4.14 → mcpbr-0.4.15}/.claude-plugin/skills/mcpbr-eval/SKILL.md +0 -0
  15. {mcpbr-0.4.14 → mcpbr-0.4.15}/.github/ISSUE_TEMPLATE/bug_report.yml +0 -0
  16. {mcpbr-0.4.14 → mcpbr-0.4.15}/.github/ISSUE_TEMPLATE/config.yml +0 -0
  17. {mcpbr-0.4.14 → mcpbr-0.4.15}/.github/ISSUE_TEMPLATE/feature_request.yml +0 -0
  18. {mcpbr-0.4.14 → mcpbr-0.4.15}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
  19. {mcpbr-0.4.14 → mcpbr-0.4.15}/.github/dependabot.yml +0 -0
  20. {mcpbr-0.4.14 → mcpbr-0.4.15}/.github/release-drafter.yml +0 -0
  21. {mcpbr-0.4.14 → mcpbr-0.4.15}/.github/workflows/ci.yml +0 -0
  22. {mcpbr-0.4.14 → mcpbr-0.4.15}/.github/workflows/post-release-bump.yml +0 -0
  23. {mcpbr-0.4.14 → mcpbr-0.4.15}/.github/workflows/publish-npm.yml +0 -0
  24. {mcpbr-0.4.14 → mcpbr-0.4.15}/.github/workflows/publish.yml +0 -0
  25. {mcpbr-0.4.14 → mcpbr-0.4.15}/.github/workflows/release-drafter.yml +0 -0
  26. {mcpbr-0.4.14 → mcpbr-0.4.15}/.gitignore +0 -0
  27. {mcpbr-0.4.14 → mcpbr-0.4.15}/.pre-commit-config.yaml +0 -0
  28. {mcpbr-0.4.14 → mcpbr-0.4.15}/AGENTS.md +0 -0
  29. {mcpbr-0.4.14 → mcpbr-0.4.15}/CHANGELOG.md +0 -0
  30. {mcpbr-0.4.14 → mcpbr-0.4.15}/CLAUDE.md +0 -0
  31. {mcpbr-0.4.14 → mcpbr-0.4.15}/CODE_OF_CONDUCT.md +0 -0
  32. {mcpbr-0.4.14 → mcpbr-0.4.15}/CONTRIBUTING.md +0 -0
  33. {mcpbr-0.4.14 → mcpbr-0.4.15}/Dockerfile +0 -0
  34. {mcpbr-0.4.14 → mcpbr-0.4.15}/HUMANEVAL_FIX_SUMMARY.md +0 -0
  35. {mcpbr-0.4.14 → mcpbr-0.4.15}/LICENSE +0 -0
  36. {mcpbr-0.4.14 → mcpbr-0.4.15}/Makefile +0 -0
  37. {mcpbr-0.4.14 → mcpbr-0.4.15}/PR_SUMMARY.md +0 -0
  38. {mcpbr-0.4.14 → mcpbr-0.4.15}/README.md +0 -0
  39. {mcpbr-0.4.14 → mcpbr-0.4.15}/SECURITY.md +0 -0
  40. {mcpbr-0.4.14 → mcpbr-0.4.15}/assets/mcpbr-demo.gif +0 -0
  41. {mcpbr-0.4.14 → mcpbr-0.4.15}/assets/mcpbr-eval-results.png +0 -0
  42. {mcpbr-0.4.14 → mcpbr-0.4.15}/assets/mcpbr-logo.jpg +0 -0
  43. {mcpbr-0.4.14 → mcpbr-0.4.15}/bin/mcpbr.js +0 -0
  44. {mcpbr-0.4.14 → mcpbr-0.4.15}/config/example.yaml +0 -0
  45. {mcpbr-0.4.14 → mcpbr-0.4.15}/config/humaneval.yaml +0 -0
  46. {mcpbr-0.4.14 → mcpbr-0.4.15}/config/supermodel.yaml +0 -0
  47. {mcpbr-0.4.14 → mcpbr-0.4.15}/examples/azure-config-example.yaml +0 -0
  48. {mcpbr-0.4.14 → mcpbr-0.4.15}/examples/env-vars-example.yaml +0 -0
  49. {mcpbr-0.4.14 → mcpbr-0.4.15}/examples/inheritance/README.md +0 -0
  50. {mcpbr-0.4.14 → mcpbr-0.4.15}/examples/inheritance/base-config.yaml +0 -0
  51. {mcpbr-0.4.14 → mcpbr-0.4.15}/examples/inheritance/dev-config.yaml +0 -0
  52. {mcpbr-0.4.14 → mcpbr-0.4.15}/examples/inheritance/multi-extend-config.yaml +0 -0
  53. {mcpbr-0.4.14 → mcpbr-0.4.15}/examples/inheritance/production-config.yaml +0 -0
  54. {mcpbr-0.4.14 → mcpbr-0.4.15}/examples/inheritance/shared-mcp-settings.yaml +0 -0
  55. {mcpbr-0.4.14 → mcpbr-0.4.15}/examples/local-config-example.yaml +0 -0
  56. {mcpbr-0.4.14 → mcpbr-0.4.15}/examples/quick-start/gsm8k-math-reasoning.yaml +0 -0
  57. {mcpbr-0.4.14 → mcpbr-0.4.15}/examples/quick-start/test-your-mcp-server.yaml +0 -0
  58. {mcpbr-0.4.14 → mcpbr-0.4.15}/install.sh +0 -0
  59. {mcpbr-0.4.14 → mcpbr-0.4.15}/requirements.txt +0 -0
  60. {mcpbr-0.4.14 → mcpbr-0.4.15}/scripts/sync_version.py +0 -0
  61. {mcpbr-0.4.14 → mcpbr-0.4.15}/scripts/validate_plugin_manifests.py +0 -0
  62. {mcpbr-0.4.14 → mcpbr-0.4.15}/src/mcpbr/__init__.py +0 -0
  63. {mcpbr-0.4.14 → mcpbr-0.4.15}/src/mcpbr/__main__.py +0 -0
  64. {mcpbr-0.4.14 → mcpbr-0.4.15}/src/mcpbr/agent.py +0 -0
  65. {mcpbr-0.4.14 → mcpbr-0.4.15}/src/mcpbr/benchmarks/__init__.py +0 -0
  66. {mcpbr-0.4.14 → mcpbr-0.4.15}/src/mcpbr/benchmarks/agentbench.py +0 -0
  67. {mcpbr-0.4.14 → mcpbr-0.4.15}/src/mcpbr/benchmarks/aider_polyglot.py +0 -0
  68. {mcpbr-0.4.14 → mcpbr-0.4.15}/src/mcpbr/benchmarks/apps.py +0 -0
  69. {mcpbr-0.4.14 → mcpbr-0.4.15}/src/mcpbr/benchmarks/arc.py +0 -0
  70. {mcpbr-0.4.14 → mcpbr-0.4.15}/src/mcpbr/benchmarks/base.py +0 -0
  71. {mcpbr-0.4.14 → mcpbr-0.4.15}/src/mcpbr/benchmarks/bigbench_hard.py +0 -0
  72. {mcpbr-0.4.14 → mcpbr-0.4.15}/src/mcpbr/benchmarks/bigcodebench.py +0 -0
  73. {mcpbr-0.4.14 → mcpbr-0.4.15}/src/mcpbr/benchmarks/codecontests.py +0 -0
  74. {mcpbr-0.4.14 → mcpbr-0.4.15}/src/mcpbr/benchmarks/codereval.py +0 -0
  75. {mcpbr-0.4.14 → mcpbr-0.4.15}/src/mcpbr/benchmarks/cybergym.py +0 -0
  76. {mcpbr-0.4.14 → mcpbr-0.4.15}/src/mcpbr/benchmarks/gaia.py +0 -0
  77. {mcpbr-0.4.14 → mcpbr-0.4.15}/src/mcpbr/benchmarks/gsm8k.py +0 -0
  78. {mcpbr-0.4.14 → mcpbr-0.4.15}/src/mcpbr/benchmarks/hellaswag.py +0 -0
  79. {mcpbr-0.4.14 → mcpbr-0.4.15}/src/mcpbr/benchmarks/humaneval.py +0 -0
  80. {mcpbr-0.4.14 → mcpbr-0.4.15}/src/mcpbr/benchmarks/intercode.py +0 -0
  81. {mcpbr-0.4.14 → mcpbr-0.4.15}/src/mcpbr/benchmarks/leetcode.py +0 -0
  82. {mcpbr-0.4.14 → mcpbr-0.4.15}/src/mcpbr/benchmarks/math_benchmark.py +0 -0
  83. {mcpbr-0.4.14 → mcpbr-0.4.15}/src/mcpbr/benchmarks/mbpp.py +0 -0
  84. {mcpbr-0.4.14 → mcpbr-0.4.15}/src/mcpbr/benchmarks/mcptoolbench.py +0 -0
  85. {mcpbr-0.4.14 → mcpbr-0.4.15}/src/mcpbr/benchmarks/mlagentbench.py +0 -0
  86. {mcpbr-0.4.14 → mcpbr-0.4.15}/src/mcpbr/benchmarks/repoqa.py +0 -0
  87. {mcpbr-0.4.14 → mcpbr-0.4.15}/src/mcpbr/benchmarks/swebench.py +0 -0
  88. {mcpbr-0.4.14 → mcpbr-0.4.15}/src/mcpbr/benchmarks/terminalbench.py +0 -0
  89. {mcpbr-0.4.14 → mcpbr-0.4.15}/src/mcpbr/benchmarks/toolbench.py +0 -0
  90. {mcpbr-0.4.14 → mcpbr-0.4.15}/src/mcpbr/benchmarks/truthfulqa.py +0 -0
  91. {mcpbr-0.4.14 → mcpbr-0.4.15}/src/mcpbr/benchmarks/webarena.py +0 -0
  92. {mcpbr-0.4.14 → mcpbr-0.4.15}/src/mcpbr/cache.py +0 -0
  93. {mcpbr-0.4.14 → mcpbr-0.4.15}/src/mcpbr/cli.py +0 -0
  94. {mcpbr-0.4.14 → mcpbr-0.4.15}/src/mcpbr/config.py +0 -0
  95. {mcpbr-0.4.14 → mcpbr-0.4.15}/src/mcpbr/config_inheritance.py +0 -0
  96. {mcpbr-0.4.14 → mcpbr-0.4.15}/src/mcpbr/config_validator.py +0 -0
  97. {mcpbr-0.4.14 → mcpbr-0.4.15}/src/mcpbr/data/templates/brave-search.yaml +0 -0
  98. {mcpbr-0.4.14 → mcpbr-0.4.15}/src/mcpbr/data/templates/filesystem.yaml +0 -0
  99. {mcpbr-0.4.14 → mcpbr-0.4.15}/src/mcpbr/data/templates/github.yaml +0 -0
  100. {mcpbr-0.4.14 → mcpbr-0.4.15}/src/mcpbr/data/templates/google-maps.yaml +0 -0
  101. {mcpbr-0.4.14 → mcpbr-0.4.15}/src/mcpbr/data/templates/postgres.yaml +0 -0
  102. {mcpbr-0.4.14 → mcpbr-0.4.15}/src/mcpbr/data/templates/slack.yaml +0 -0
  103. {mcpbr-0.4.14 → mcpbr-0.4.15}/src/mcpbr/data/templates/sqlite.yaml +0 -0
  104. {mcpbr-0.4.14 → mcpbr-0.4.15}/src/mcpbr/env_expansion.py +0 -0
  105. {mcpbr-0.4.14 → mcpbr-0.4.15}/src/mcpbr/evaluation.py +0 -0
  106. {mcpbr-0.4.14 → mcpbr-0.4.15}/src/mcpbr/harnesses.py +0 -0
  107. {mcpbr-0.4.14 → mcpbr-0.4.15}/src/mcpbr/incremental_save.py +0 -0
  108. {mcpbr-0.4.14 → mcpbr-0.4.15}/src/mcpbr/infrastructure/__init__.py +0 -0
  109. {mcpbr-0.4.14 → mcpbr-0.4.15}/src/mcpbr/infrastructure/azure.py +0 -0
  110. {mcpbr-0.4.14 → mcpbr-0.4.15}/src/mcpbr/infrastructure/azure_health.py +0 -0
  111. {mcpbr-0.4.14 → mcpbr-0.4.15}/src/mcpbr/infrastructure/base.py +0 -0
  112. {mcpbr-0.4.14 → mcpbr-0.4.15}/src/mcpbr/infrastructure/local.py +0 -0
  113. {mcpbr-0.4.14 → mcpbr-0.4.15}/src/mcpbr/infrastructure/manager.py +0 -0
  114. {mcpbr-0.4.14 → mcpbr-0.4.15}/src/mcpbr/junit_reporter.py +0 -0
  115. {mcpbr-0.4.14 → mcpbr-0.4.15}/src/mcpbr/log_formatter.py +0 -0
  116. {mcpbr-0.4.14 → mcpbr-0.4.15}/src/mcpbr/models.py +0 -0
  117. {mcpbr-0.4.14 → mcpbr-0.4.15}/src/mcpbr/output_validator.py +0 -0
  118. {mcpbr-0.4.14 → mcpbr-0.4.15}/src/mcpbr/preflight.py +0 -0
  119. {mcpbr-0.4.14 → mcpbr-0.4.15}/src/mcpbr/pricing.py +0 -0
  120. {mcpbr-0.4.14 → mcpbr-0.4.15}/src/mcpbr/profiler.py +0 -0
  121. {mcpbr-0.4.14 → mcpbr-0.4.15}/src/mcpbr/providers.py +0 -0
  122. {mcpbr-0.4.14 → mcpbr-0.4.15}/src/mcpbr/regression.py +0 -0
  123. {mcpbr-0.4.14 → mcpbr-0.4.15}/src/mcpbr/reporting.py +0 -0
  124. {mcpbr-0.4.14 → mcpbr-0.4.15}/src/mcpbr/schema.py +0 -0
  125. {mcpbr-0.4.14 → mcpbr-0.4.15}/src/mcpbr/smoke_test.py +0 -0
  126. {mcpbr-0.4.14 → mcpbr-0.4.15}/src/mcpbr/state_tracker.py +0 -0
  127. {mcpbr-0.4.14 → mcpbr-0.4.15}/src/mcpbr/statistics.py +0 -0
  128. {mcpbr-0.4.14 → mcpbr-0.4.15}/src/mcpbr/streaming.py +0 -0
  129. {mcpbr-0.4.14 → mcpbr-0.4.15}/src/mcpbr/swebench_test_specs.py +0 -0
  130. {mcpbr-0.4.14 → mcpbr-0.4.15}/src/mcpbr/templates.py +0 -0
  131. {mcpbr-0.4.14 → mcpbr-0.4.15}/tests/__init__.py +0 -0
  132. {mcpbr-0.4.14 → mcpbr-0.4.15}/tests/infrastructure/__init__.py +0 -0
  133. {mcpbr-0.4.14 → mcpbr-0.4.15}/tests/infrastructure/test_azure.py +0 -0
  134. {mcpbr-0.4.14 → mcpbr-0.4.15}/tests/infrastructure/test_azure_health.py +0 -0
  135. {mcpbr-0.4.14 → mcpbr-0.4.15}/tests/infrastructure/test_base.py +0 -0
  136. {mcpbr-0.4.14 → mcpbr-0.4.15}/tests/infrastructure/test_cli_infrastructure.py +0 -0
  137. {mcpbr-0.4.14 → mcpbr-0.4.15}/tests/infrastructure/test_config.py +0 -0
  138. {mcpbr-0.4.14 → mcpbr-0.4.15}/tests/infrastructure/test_local.py +0 -0
  139. {mcpbr-0.4.14 → mcpbr-0.4.15}/tests/infrastructure/test_manager.py +0 -0
  140. {mcpbr-0.4.14 → mcpbr-0.4.15}/tests/test_agent.py +0 -0
  141. {mcpbr-0.4.14 → mcpbr-0.4.15}/tests/test_benchmark_filtering.py +0 -0
  142. {mcpbr-0.4.14 → mcpbr-0.4.15}/tests/test_benchmark_integration.py +0 -0
  143. {mcpbr-0.4.14 → mcpbr-0.4.15}/tests/test_benchmarks.py +0 -0
  144. {mcpbr-0.4.14 → mcpbr-0.4.15}/tests/test_build_test_command.py +0 -0
  145. {mcpbr-0.4.14 → mcpbr-0.4.15}/tests/test_cache.py +0 -0
  146. {mcpbr-0.4.14 → mcpbr-0.4.15}/tests/test_claude_plugin.py +0 -0
  147. {mcpbr-0.4.14 → mcpbr-0.4.15}/tests/test_cli_templates.py +0 -0
  148. {mcpbr-0.4.14 → mcpbr-0.4.15}/tests/test_comparison_aggregation.py +0 -0
  149. {mcpbr-0.4.14 → mcpbr-0.4.15}/tests/test_comparison_config.py +0 -0
  150. {mcpbr-0.4.14 → mcpbr-0.4.15}/tests/test_comparison_integration.py +0 -0
  151. {mcpbr-0.4.14 → mcpbr-0.4.15}/tests/test_comparison_reporting.py +0 -0
  152. {mcpbr-0.4.14 → mcpbr-0.4.15}/tests/test_config.py +0 -0
  153. {mcpbr-0.4.14 → mcpbr-0.4.15}/tests/test_config_env_vars.py +0 -0
  154. {mcpbr-0.4.14 → mcpbr-0.4.15}/tests/test_config_inheritance.py +0 -0
  155. {mcpbr-0.4.14 → mcpbr-0.4.15}/tests/test_config_validator.py +0 -0
  156. {mcpbr-0.4.14 → mcpbr-0.4.15}/tests/test_config_validator_inheritance.py +0 -0
  157. {mcpbr-0.4.14 → mcpbr-0.4.15}/tests/test_cost_calculation.py +0 -0
  158. {mcpbr-0.4.14 → mcpbr-0.4.15}/tests/test_default_logging.py +0 -0
  159. {mcpbr-0.4.14 → mcpbr-0.4.15}/tests/test_docker_cleanup.py +0 -0
  160. {mcpbr-0.4.14 → mcpbr-0.4.15}/tests/test_docker_label_fix.py +0 -0
  161. {mcpbr-0.4.14 → mcpbr-0.4.15}/tests/test_docker_retry.py +0 -0
  162. {mcpbr-0.4.14 → mcpbr-0.4.15}/tests/test_env_expansion.py +0 -0
  163. {mcpbr-0.4.14 → mcpbr-0.4.15}/tests/test_error_messages.py +0 -0
  164. {mcpbr-0.4.14 → mcpbr-0.4.15}/tests/test_evaluation.py +0 -0
  165. {mcpbr-0.4.14 → mcpbr-0.4.15}/tests/test_exit_codes.py +0 -0
  166. {mcpbr-0.4.14 → mcpbr-0.4.15}/tests/test_export.py +0 -0
  167. {mcpbr-0.4.14 → mcpbr-0.4.15}/tests/test_git_diff_new_files.py +0 -0
  168. {mcpbr-0.4.14 → mcpbr-0.4.15}/tests/test_incremental_save.py +0 -0
  169. {mcpbr-0.4.14 → mcpbr-0.4.15}/tests/test_integration.py +0 -0
  170. {mcpbr-0.4.14 → mcpbr-0.4.15}/tests/test_junit_reporter.py +0 -0
  171. {mcpbr-0.4.14 → mcpbr-0.4.15}/tests/test_log_formatter_read_tool.py +0 -0
  172. {mcpbr-0.4.14 → mcpbr-0.4.15}/tests/test_mcp_health_check.py +0 -0
  173. {mcpbr-0.4.14 → mcpbr-0.4.15}/tests/test_mcp_logging.py +0 -0
  174. {mcpbr-0.4.14 → mcpbr-0.4.15}/tests/test_models.py +0 -0
  175. {mcpbr-0.4.14 → mcpbr-0.4.15}/tests/test_output_validator.py +0 -0
  176. {mcpbr-0.4.14 → mcpbr-0.4.15}/tests/test_parse_errors.py +0 -0
  177. {mcpbr-0.4.14 → mcpbr-0.4.15}/tests/test_preflight.py +0 -0
  178. {mcpbr-0.4.14 → mcpbr-0.4.15}/tests/test_pricing.py +0 -0
  179. {mcpbr-0.4.14 → mcpbr-0.4.15}/tests/test_profiler.py +0 -0
  180. {mcpbr-0.4.14 → mcpbr-0.4.15}/tests/test_regression.py +0 -0
  181. {mcpbr-0.4.14 → mcpbr-0.4.15}/tests/test_reporting.py +0 -0
  182. {mcpbr-0.4.14 → mcpbr-0.4.15}/tests/test_runtime_tracking.py +0 -0
  183. {mcpbr-0.4.14 → mcpbr-0.4.15}/tests/test_schema.py +0 -0
  184. {mcpbr-0.4.14 → mcpbr-0.4.15}/tests/test_smoke_test.py +0 -0
  185. {mcpbr-0.4.14 → mcpbr-0.4.15}/tests/test_state_tracker.py +0 -0
  186. {mcpbr-0.4.14 → mcpbr-0.4.15}/tests/test_statistics.py +0 -0
  187. {mcpbr-0.4.14 → mcpbr-0.4.15}/tests/test_statistics_integration.py +0 -0
  188. {mcpbr-0.4.14 → mcpbr-0.4.15}/tests/test_streaming.py +0 -0
  189. {mcpbr-0.4.14 → mcpbr-0.4.15}/tests/test_string_concat_bug.py +0 -0
  190. {mcpbr-0.4.14 → mcpbr-0.4.15}/tests/test_templates.py +0 -0
  191. {mcpbr-0.4.14 → mcpbr-0.4.15}/tests/test_thinking_budget.py +0 -0
  192. {mcpbr-0.4.14 → mcpbr-0.4.15}/tests/test_timeout_tracking.py +0 -0
  193. {mcpbr-0.4.14 → mcpbr-0.4.15}/tests/test_tool_failure_tracking.py +0 -0
  194. {mcpbr-0.4.14 → mcpbr-0.4.15}/tests/test_trial_mode.py +0 -0
  195. {mcpbr-0.4.14 → mcpbr-0.4.15}/tests/test_type_safety.py +0 -0
  196. {mcpbr-0.4.14 → mcpbr-0.4.15}/tests/test_xml_export.py +0 -0
  197. {mcpbr-0.4.14 → mcpbr-0.4.15}/uv.lock +0 -0
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$schema": "https://anthropic.com/claude-code/marketplace.schema.json",
3
3
  "name": "mcpbr",
4
- "version": "0.4.14",
4
+ "version": "0.4.15",
5
5
  "description": "mcpbr - MCP Benchmark Runner plugin marketplace",
6
6
  "owner": {
7
7
  "name": "mcpbr Contributors",
@@ -11,7 +11,7 @@
11
11
  {
12
12
  "name": "mcpbr",
13
13
  "description": "Expert benchmark runner for MCP servers using mcpbr. Handles Docker checks, config generation, and result parsing.",
14
- "version": "0.4.14",
14
+ "version": "0.4.15",
15
15
  "author": {
16
16
  "name": "mcpbr Contributors"
17
17
  },
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@greynewell/mcpbr-claude-plugin",
3
- "version": "0.4.14",
3
+ "version": "0.4.15",
4
4
  "description": "Claude Code plugin for mcpbr - Expert benchmark runner for MCP servers with specialized skills",
5
5
  "keywords": [
6
6
  "claude-code",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mcpbr",
3
- "version": "0.4.14",
3
+ "version": "0.4.15",
4
4
  "description": "Expert benchmark runner for MCP servers using mcpbr. Handles Docker checks, config generation, and result parsing.",
5
5
  "schema_version": "1.0"
6
6
  }
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: mcpbr
3
- Version: 0.4.14
3
+ Version: 0.4.15
4
4
  Summary: Model Context Protocol Benchmark Runner - evaluate MCP servers against software engineering benchmarks
5
5
  Project-URL: Homepage, https://github.com/greynewell/mcpbr
6
6
  Project-URL: Repository, https://github.com/greynewell/mcpbr
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@greynewell/mcpbr",
3
- "version": "0.4.14",
3
+ "version": "0.4.15",
4
4
  "description": "Model Context Protocol Benchmark Runner - CLI tool for evaluating MCP servers",
5
5
  "keywords": [
6
6
  "mcpbr",
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "mcpbr"
7
- version = "0.4.14"
7
+ version = "0.4.15"
8
8
  description = "Model Context Protocol Benchmark Runner - evaluate MCP servers against software engineering benchmarks"
9
9
  readme = "README.md"
10
10
  license = "MIT"
@@ -724,6 +724,12 @@ CMD ["/bin/bash"]
724
724
  if self in _active_managers:
725
725
  _active_managers.remove(self)
726
726
 
727
+ # Close the Docker client to release background threads/connections
728
+ try:
729
+ self.client.close()
730
+ except Exception:
731
+ pass
732
+
727
733
  if report and cleanup_report.total_removed > 0:
728
734
  logger.info(str(cleanup_report))
729
735
 
@@ -1125,6 +1125,10 @@ async def run_evaluation(
1125
1125
  # Wait for cancellation to complete
1126
1126
  await asyncio.gather(*async_tasks, return_exceptions=True)
1127
1127
  break
1128
+
1129
+ # Explicitly stop before exiting context to avoid
1130
+ # deadlock between Rich's rendering thread and asyncio
1131
+ progress.stop()
1128
1132
  else:
1129
1133
  # In non-verbose mode, show overall progress bar + per-task spinners
1130
1134
  with Progress(
@@ -1172,6 +1176,10 @@ async def run_evaluation(
1172
1176
  # Wait for cancellation to complete
1173
1177
  await asyncio.gather(*async_tasks, return_exceptions=True)
1174
1178
  break
1179
+
1180
+ # Explicitly stop before exiting context to avoid
1181
+ # deadlock between Rich's rendering thread and asyncio
1182
+ progress.stop()
1175
1183
  finally:
1176
1184
  await docker_manager.cleanup_all()
1177
1185
 
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes