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.
- {mcpbr-0.4.14 → mcpbr-0.4.15}/.claude-plugin/marketplace.json +2 -2
- {mcpbr-0.4.14 → mcpbr-0.4.15}/.claude-plugin/package.json +1 -1
- {mcpbr-0.4.14 → mcpbr-0.4.15}/.claude-plugin/plugin.json +1 -1
- {mcpbr-0.4.14 → mcpbr-0.4.15}/PKG-INFO +1 -1
- {mcpbr-0.4.14 → mcpbr-0.4.15}/package.json +1 -1
- {mcpbr-0.4.14 → mcpbr-0.4.15}/pyproject.toml +1 -1
- {mcpbr-0.4.14 → mcpbr-0.4.15}/src/mcpbr/docker_env.py +6 -0
- {mcpbr-0.4.14 → mcpbr-0.4.15}/src/mcpbr/harness.py +8 -0
- {mcpbr-0.4.14 → mcpbr-0.4.15}/.claude/settings.json +0 -0
- {mcpbr-0.4.14 → mcpbr-0.4.15}/.claude-plugin/README.md +0 -0
- {mcpbr-0.4.14 → mcpbr-0.4.15}/.claude-plugin/skills/README.md +0 -0
- {mcpbr-0.4.14 → mcpbr-0.4.15}/.claude-plugin/skills/benchmark-swe-lite/SKILL.md +0 -0
- {mcpbr-0.4.14 → mcpbr-0.4.15}/.claude-plugin/skills/mcpbr-config/SKILL.md +0 -0
- {mcpbr-0.4.14 → mcpbr-0.4.15}/.claude-plugin/skills/mcpbr-eval/SKILL.md +0 -0
- {mcpbr-0.4.14 → mcpbr-0.4.15}/.github/ISSUE_TEMPLATE/bug_report.yml +0 -0
- {mcpbr-0.4.14 → mcpbr-0.4.15}/.github/ISSUE_TEMPLATE/config.yml +0 -0
- {mcpbr-0.4.14 → mcpbr-0.4.15}/.github/ISSUE_TEMPLATE/feature_request.yml +0 -0
- {mcpbr-0.4.14 → mcpbr-0.4.15}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
- {mcpbr-0.4.14 → mcpbr-0.4.15}/.github/dependabot.yml +0 -0
- {mcpbr-0.4.14 → mcpbr-0.4.15}/.github/release-drafter.yml +0 -0
- {mcpbr-0.4.14 → mcpbr-0.4.15}/.github/workflows/ci.yml +0 -0
- {mcpbr-0.4.14 → mcpbr-0.4.15}/.github/workflows/post-release-bump.yml +0 -0
- {mcpbr-0.4.14 → mcpbr-0.4.15}/.github/workflows/publish-npm.yml +0 -0
- {mcpbr-0.4.14 → mcpbr-0.4.15}/.github/workflows/publish.yml +0 -0
- {mcpbr-0.4.14 → mcpbr-0.4.15}/.github/workflows/release-drafter.yml +0 -0
- {mcpbr-0.4.14 → mcpbr-0.4.15}/.gitignore +0 -0
- {mcpbr-0.4.14 → mcpbr-0.4.15}/.pre-commit-config.yaml +0 -0
- {mcpbr-0.4.14 → mcpbr-0.4.15}/AGENTS.md +0 -0
- {mcpbr-0.4.14 → mcpbr-0.4.15}/CHANGELOG.md +0 -0
- {mcpbr-0.4.14 → mcpbr-0.4.15}/CLAUDE.md +0 -0
- {mcpbr-0.4.14 → mcpbr-0.4.15}/CODE_OF_CONDUCT.md +0 -0
- {mcpbr-0.4.14 → mcpbr-0.4.15}/CONTRIBUTING.md +0 -0
- {mcpbr-0.4.14 → mcpbr-0.4.15}/Dockerfile +0 -0
- {mcpbr-0.4.14 → mcpbr-0.4.15}/HUMANEVAL_FIX_SUMMARY.md +0 -0
- {mcpbr-0.4.14 → mcpbr-0.4.15}/LICENSE +0 -0
- {mcpbr-0.4.14 → mcpbr-0.4.15}/Makefile +0 -0
- {mcpbr-0.4.14 → mcpbr-0.4.15}/PR_SUMMARY.md +0 -0
- {mcpbr-0.4.14 → mcpbr-0.4.15}/README.md +0 -0
- {mcpbr-0.4.14 → mcpbr-0.4.15}/SECURITY.md +0 -0
- {mcpbr-0.4.14 → mcpbr-0.4.15}/assets/mcpbr-demo.gif +0 -0
- {mcpbr-0.4.14 → mcpbr-0.4.15}/assets/mcpbr-eval-results.png +0 -0
- {mcpbr-0.4.14 → mcpbr-0.4.15}/assets/mcpbr-logo.jpg +0 -0
- {mcpbr-0.4.14 → mcpbr-0.4.15}/bin/mcpbr.js +0 -0
- {mcpbr-0.4.14 → mcpbr-0.4.15}/config/example.yaml +0 -0
- {mcpbr-0.4.14 → mcpbr-0.4.15}/config/humaneval.yaml +0 -0
- {mcpbr-0.4.14 → mcpbr-0.4.15}/config/supermodel.yaml +0 -0
- {mcpbr-0.4.14 → mcpbr-0.4.15}/examples/azure-config-example.yaml +0 -0
- {mcpbr-0.4.14 → mcpbr-0.4.15}/examples/env-vars-example.yaml +0 -0
- {mcpbr-0.4.14 → mcpbr-0.4.15}/examples/inheritance/README.md +0 -0
- {mcpbr-0.4.14 → mcpbr-0.4.15}/examples/inheritance/base-config.yaml +0 -0
- {mcpbr-0.4.14 → mcpbr-0.4.15}/examples/inheritance/dev-config.yaml +0 -0
- {mcpbr-0.4.14 → mcpbr-0.4.15}/examples/inheritance/multi-extend-config.yaml +0 -0
- {mcpbr-0.4.14 → mcpbr-0.4.15}/examples/inheritance/production-config.yaml +0 -0
- {mcpbr-0.4.14 → mcpbr-0.4.15}/examples/inheritance/shared-mcp-settings.yaml +0 -0
- {mcpbr-0.4.14 → mcpbr-0.4.15}/examples/local-config-example.yaml +0 -0
- {mcpbr-0.4.14 → mcpbr-0.4.15}/examples/quick-start/gsm8k-math-reasoning.yaml +0 -0
- {mcpbr-0.4.14 → mcpbr-0.4.15}/examples/quick-start/test-your-mcp-server.yaml +0 -0
- {mcpbr-0.4.14 → mcpbr-0.4.15}/install.sh +0 -0
- {mcpbr-0.4.14 → mcpbr-0.4.15}/requirements.txt +0 -0
- {mcpbr-0.4.14 → mcpbr-0.4.15}/scripts/sync_version.py +0 -0
- {mcpbr-0.4.14 → mcpbr-0.4.15}/scripts/validate_plugin_manifests.py +0 -0
- {mcpbr-0.4.14 → mcpbr-0.4.15}/src/mcpbr/__init__.py +0 -0
- {mcpbr-0.4.14 → mcpbr-0.4.15}/src/mcpbr/__main__.py +0 -0
- {mcpbr-0.4.14 → mcpbr-0.4.15}/src/mcpbr/agent.py +0 -0
- {mcpbr-0.4.14 → mcpbr-0.4.15}/src/mcpbr/benchmarks/__init__.py +0 -0
- {mcpbr-0.4.14 → mcpbr-0.4.15}/src/mcpbr/benchmarks/agentbench.py +0 -0
- {mcpbr-0.4.14 → mcpbr-0.4.15}/src/mcpbr/benchmarks/aider_polyglot.py +0 -0
- {mcpbr-0.4.14 → mcpbr-0.4.15}/src/mcpbr/benchmarks/apps.py +0 -0
- {mcpbr-0.4.14 → mcpbr-0.4.15}/src/mcpbr/benchmarks/arc.py +0 -0
- {mcpbr-0.4.14 → mcpbr-0.4.15}/src/mcpbr/benchmarks/base.py +0 -0
- {mcpbr-0.4.14 → mcpbr-0.4.15}/src/mcpbr/benchmarks/bigbench_hard.py +0 -0
- {mcpbr-0.4.14 → mcpbr-0.4.15}/src/mcpbr/benchmarks/bigcodebench.py +0 -0
- {mcpbr-0.4.14 → mcpbr-0.4.15}/src/mcpbr/benchmarks/codecontests.py +0 -0
- {mcpbr-0.4.14 → mcpbr-0.4.15}/src/mcpbr/benchmarks/codereval.py +0 -0
- {mcpbr-0.4.14 → mcpbr-0.4.15}/src/mcpbr/benchmarks/cybergym.py +0 -0
- {mcpbr-0.4.14 → mcpbr-0.4.15}/src/mcpbr/benchmarks/gaia.py +0 -0
- {mcpbr-0.4.14 → mcpbr-0.4.15}/src/mcpbr/benchmarks/gsm8k.py +0 -0
- {mcpbr-0.4.14 → mcpbr-0.4.15}/src/mcpbr/benchmarks/hellaswag.py +0 -0
- {mcpbr-0.4.14 → mcpbr-0.4.15}/src/mcpbr/benchmarks/humaneval.py +0 -0
- {mcpbr-0.4.14 → mcpbr-0.4.15}/src/mcpbr/benchmarks/intercode.py +0 -0
- {mcpbr-0.4.14 → mcpbr-0.4.15}/src/mcpbr/benchmarks/leetcode.py +0 -0
- {mcpbr-0.4.14 → mcpbr-0.4.15}/src/mcpbr/benchmarks/math_benchmark.py +0 -0
- {mcpbr-0.4.14 → mcpbr-0.4.15}/src/mcpbr/benchmarks/mbpp.py +0 -0
- {mcpbr-0.4.14 → mcpbr-0.4.15}/src/mcpbr/benchmarks/mcptoolbench.py +0 -0
- {mcpbr-0.4.14 → mcpbr-0.4.15}/src/mcpbr/benchmarks/mlagentbench.py +0 -0
- {mcpbr-0.4.14 → mcpbr-0.4.15}/src/mcpbr/benchmarks/repoqa.py +0 -0
- {mcpbr-0.4.14 → mcpbr-0.4.15}/src/mcpbr/benchmarks/swebench.py +0 -0
- {mcpbr-0.4.14 → mcpbr-0.4.15}/src/mcpbr/benchmarks/terminalbench.py +0 -0
- {mcpbr-0.4.14 → mcpbr-0.4.15}/src/mcpbr/benchmarks/toolbench.py +0 -0
- {mcpbr-0.4.14 → mcpbr-0.4.15}/src/mcpbr/benchmarks/truthfulqa.py +0 -0
- {mcpbr-0.4.14 → mcpbr-0.4.15}/src/mcpbr/benchmarks/webarena.py +0 -0
- {mcpbr-0.4.14 → mcpbr-0.4.15}/src/mcpbr/cache.py +0 -0
- {mcpbr-0.4.14 → mcpbr-0.4.15}/src/mcpbr/cli.py +0 -0
- {mcpbr-0.4.14 → mcpbr-0.4.15}/src/mcpbr/config.py +0 -0
- {mcpbr-0.4.14 → mcpbr-0.4.15}/src/mcpbr/config_inheritance.py +0 -0
- {mcpbr-0.4.14 → mcpbr-0.4.15}/src/mcpbr/config_validator.py +0 -0
- {mcpbr-0.4.14 → mcpbr-0.4.15}/src/mcpbr/data/templates/brave-search.yaml +0 -0
- {mcpbr-0.4.14 → mcpbr-0.4.15}/src/mcpbr/data/templates/filesystem.yaml +0 -0
- {mcpbr-0.4.14 → mcpbr-0.4.15}/src/mcpbr/data/templates/github.yaml +0 -0
- {mcpbr-0.4.14 → mcpbr-0.4.15}/src/mcpbr/data/templates/google-maps.yaml +0 -0
- {mcpbr-0.4.14 → mcpbr-0.4.15}/src/mcpbr/data/templates/postgres.yaml +0 -0
- {mcpbr-0.4.14 → mcpbr-0.4.15}/src/mcpbr/data/templates/slack.yaml +0 -0
- {mcpbr-0.4.14 → mcpbr-0.4.15}/src/mcpbr/data/templates/sqlite.yaml +0 -0
- {mcpbr-0.4.14 → mcpbr-0.4.15}/src/mcpbr/env_expansion.py +0 -0
- {mcpbr-0.4.14 → mcpbr-0.4.15}/src/mcpbr/evaluation.py +0 -0
- {mcpbr-0.4.14 → mcpbr-0.4.15}/src/mcpbr/harnesses.py +0 -0
- {mcpbr-0.4.14 → mcpbr-0.4.15}/src/mcpbr/incremental_save.py +0 -0
- {mcpbr-0.4.14 → mcpbr-0.4.15}/src/mcpbr/infrastructure/__init__.py +0 -0
- {mcpbr-0.4.14 → mcpbr-0.4.15}/src/mcpbr/infrastructure/azure.py +0 -0
- {mcpbr-0.4.14 → mcpbr-0.4.15}/src/mcpbr/infrastructure/azure_health.py +0 -0
- {mcpbr-0.4.14 → mcpbr-0.4.15}/src/mcpbr/infrastructure/base.py +0 -0
- {mcpbr-0.4.14 → mcpbr-0.4.15}/src/mcpbr/infrastructure/local.py +0 -0
- {mcpbr-0.4.14 → mcpbr-0.4.15}/src/mcpbr/infrastructure/manager.py +0 -0
- {mcpbr-0.4.14 → mcpbr-0.4.15}/src/mcpbr/junit_reporter.py +0 -0
- {mcpbr-0.4.14 → mcpbr-0.4.15}/src/mcpbr/log_formatter.py +0 -0
- {mcpbr-0.4.14 → mcpbr-0.4.15}/src/mcpbr/models.py +0 -0
- {mcpbr-0.4.14 → mcpbr-0.4.15}/src/mcpbr/output_validator.py +0 -0
- {mcpbr-0.4.14 → mcpbr-0.4.15}/src/mcpbr/preflight.py +0 -0
- {mcpbr-0.4.14 → mcpbr-0.4.15}/src/mcpbr/pricing.py +0 -0
- {mcpbr-0.4.14 → mcpbr-0.4.15}/src/mcpbr/profiler.py +0 -0
- {mcpbr-0.4.14 → mcpbr-0.4.15}/src/mcpbr/providers.py +0 -0
- {mcpbr-0.4.14 → mcpbr-0.4.15}/src/mcpbr/regression.py +0 -0
- {mcpbr-0.4.14 → mcpbr-0.4.15}/src/mcpbr/reporting.py +0 -0
- {mcpbr-0.4.14 → mcpbr-0.4.15}/src/mcpbr/schema.py +0 -0
- {mcpbr-0.4.14 → mcpbr-0.4.15}/src/mcpbr/smoke_test.py +0 -0
- {mcpbr-0.4.14 → mcpbr-0.4.15}/src/mcpbr/state_tracker.py +0 -0
- {mcpbr-0.4.14 → mcpbr-0.4.15}/src/mcpbr/statistics.py +0 -0
- {mcpbr-0.4.14 → mcpbr-0.4.15}/src/mcpbr/streaming.py +0 -0
- {mcpbr-0.4.14 → mcpbr-0.4.15}/src/mcpbr/swebench_test_specs.py +0 -0
- {mcpbr-0.4.14 → mcpbr-0.4.15}/src/mcpbr/templates.py +0 -0
- {mcpbr-0.4.14 → mcpbr-0.4.15}/tests/__init__.py +0 -0
- {mcpbr-0.4.14 → mcpbr-0.4.15}/tests/infrastructure/__init__.py +0 -0
- {mcpbr-0.4.14 → mcpbr-0.4.15}/tests/infrastructure/test_azure.py +0 -0
- {mcpbr-0.4.14 → mcpbr-0.4.15}/tests/infrastructure/test_azure_health.py +0 -0
- {mcpbr-0.4.14 → mcpbr-0.4.15}/tests/infrastructure/test_base.py +0 -0
- {mcpbr-0.4.14 → mcpbr-0.4.15}/tests/infrastructure/test_cli_infrastructure.py +0 -0
- {mcpbr-0.4.14 → mcpbr-0.4.15}/tests/infrastructure/test_config.py +0 -0
- {mcpbr-0.4.14 → mcpbr-0.4.15}/tests/infrastructure/test_local.py +0 -0
- {mcpbr-0.4.14 → mcpbr-0.4.15}/tests/infrastructure/test_manager.py +0 -0
- {mcpbr-0.4.14 → mcpbr-0.4.15}/tests/test_agent.py +0 -0
- {mcpbr-0.4.14 → mcpbr-0.4.15}/tests/test_benchmark_filtering.py +0 -0
- {mcpbr-0.4.14 → mcpbr-0.4.15}/tests/test_benchmark_integration.py +0 -0
- {mcpbr-0.4.14 → mcpbr-0.4.15}/tests/test_benchmarks.py +0 -0
- {mcpbr-0.4.14 → mcpbr-0.4.15}/tests/test_build_test_command.py +0 -0
- {mcpbr-0.4.14 → mcpbr-0.4.15}/tests/test_cache.py +0 -0
- {mcpbr-0.4.14 → mcpbr-0.4.15}/tests/test_claude_plugin.py +0 -0
- {mcpbr-0.4.14 → mcpbr-0.4.15}/tests/test_cli_templates.py +0 -0
- {mcpbr-0.4.14 → mcpbr-0.4.15}/tests/test_comparison_aggregation.py +0 -0
- {mcpbr-0.4.14 → mcpbr-0.4.15}/tests/test_comparison_config.py +0 -0
- {mcpbr-0.4.14 → mcpbr-0.4.15}/tests/test_comparison_integration.py +0 -0
- {mcpbr-0.4.14 → mcpbr-0.4.15}/tests/test_comparison_reporting.py +0 -0
- {mcpbr-0.4.14 → mcpbr-0.4.15}/tests/test_config.py +0 -0
- {mcpbr-0.4.14 → mcpbr-0.4.15}/tests/test_config_env_vars.py +0 -0
- {mcpbr-0.4.14 → mcpbr-0.4.15}/tests/test_config_inheritance.py +0 -0
- {mcpbr-0.4.14 → mcpbr-0.4.15}/tests/test_config_validator.py +0 -0
- {mcpbr-0.4.14 → mcpbr-0.4.15}/tests/test_config_validator_inheritance.py +0 -0
- {mcpbr-0.4.14 → mcpbr-0.4.15}/tests/test_cost_calculation.py +0 -0
- {mcpbr-0.4.14 → mcpbr-0.4.15}/tests/test_default_logging.py +0 -0
- {mcpbr-0.4.14 → mcpbr-0.4.15}/tests/test_docker_cleanup.py +0 -0
- {mcpbr-0.4.14 → mcpbr-0.4.15}/tests/test_docker_label_fix.py +0 -0
- {mcpbr-0.4.14 → mcpbr-0.4.15}/tests/test_docker_retry.py +0 -0
- {mcpbr-0.4.14 → mcpbr-0.4.15}/tests/test_env_expansion.py +0 -0
- {mcpbr-0.4.14 → mcpbr-0.4.15}/tests/test_error_messages.py +0 -0
- {mcpbr-0.4.14 → mcpbr-0.4.15}/tests/test_evaluation.py +0 -0
- {mcpbr-0.4.14 → mcpbr-0.4.15}/tests/test_exit_codes.py +0 -0
- {mcpbr-0.4.14 → mcpbr-0.4.15}/tests/test_export.py +0 -0
- {mcpbr-0.4.14 → mcpbr-0.4.15}/tests/test_git_diff_new_files.py +0 -0
- {mcpbr-0.4.14 → mcpbr-0.4.15}/tests/test_incremental_save.py +0 -0
- {mcpbr-0.4.14 → mcpbr-0.4.15}/tests/test_integration.py +0 -0
- {mcpbr-0.4.14 → mcpbr-0.4.15}/tests/test_junit_reporter.py +0 -0
- {mcpbr-0.4.14 → mcpbr-0.4.15}/tests/test_log_formatter_read_tool.py +0 -0
- {mcpbr-0.4.14 → mcpbr-0.4.15}/tests/test_mcp_health_check.py +0 -0
- {mcpbr-0.4.14 → mcpbr-0.4.15}/tests/test_mcp_logging.py +0 -0
- {mcpbr-0.4.14 → mcpbr-0.4.15}/tests/test_models.py +0 -0
- {mcpbr-0.4.14 → mcpbr-0.4.15}/tests/test_output_validator.py +0 -0
- {mcpbr-0.4.14 → mcpbr-0.4.15}/tests/test_parse_errors.py +0 -0
- {mcpbr-0.4.14 → mcpbr-0.4.15}/tests/test_preflight.py +0 -0
- {mcpbr-0.4.14 → mcpbr-0.4.15}/tests/test_pricing.py +0 -0
- {mcpbr-0.4.14 → mcpbr-0.4.15}/tests/test_profiler.py +0 -0
- {mcpbr-0.4.14 → mcpbr-0.4.15}/tests/test_regression.py +0 -0
- {mcpbr-0.4.14 → mcpbr-0.4.15}/tests/test_reporting.py +0 -0
- {mcpbr-0.4.14 → mcpbr-0.4.15}/tests/test_runtime_tracking.py +0 -0
- {mcpbr-0.4.14 → mcpbr-0.4.15}/tests/test_schema.py +0 -0
- {mcpbr-0.4.14 → mcpbr-0.4.15}/tests/test_smoke_test.py +0 -0
- {mcpbr-0.4.14 → mcpbr-0.4.15}/tests/test_state_tracker.py +0 -0
- {mcpbr-0.4.14 → mcpbr-0.4.15}/tests/test_statistics.py +0 -0
- {mcpbr-0.4.14 → mcpbr-0.4.15}/tests/test_statistics_integration.py +0 -0
- {mcpbr-0.4.14 → mcpbr-0.4.15}/tests/test_streaming.py +0 -0
- {mcpbr-0.4.14 → mcpbr-0.4.15}/tests/test_string_concat_bug.py +0 -0
- {mcpbr-0.4.14 → mcpbr-0.4.15}/tests/test_templates.py +0 -0
- {mcpbr-0.4.14 → mcpbr-0.4.15}/tests/test_thinking_budget.py +0 -0
- {mcpbr-0.4.14 → mcpbr-0.4.15}/tests/test_timeout_tracking.py +0 -0
- {mcpbr-0.4.14 → mcpbr-0.4.15}/tests/test_tool_failure_tracking.py +0 -0
- {mcpbr-0.4.14 → mcpbr-0.4.15}/tests/test_trial_mode.py +0 -0
- {mcpbr-0.4.14 → mcpbr-0.4.15}/tests/test_type_safety.py +0 -0
- {mcpbr-0.4.14 → mcpbr-0.4.15}/tests/test_xml_export.py +0 -0
- {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.
|
|
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
|
+
"version": "0.4.15",
|
|
15
15
|
"author": {
|
|
16
16
|
"name": "mcpbr Contributors"
|
|
17
17
|
},
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: mcpbr
|
|
3
|
-
Version: 0.4.
|
|
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
|
|
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "mcpbr"
|
|
7
|
-
version = "0.4.
|
|
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
|
|
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
|
|
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
|