spring-runtime-mcp 0.2.0__tar.gz → 0.2.1__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.
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/CHANGELOG.md +13 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/PKG-INFO +27 -13
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/README.md +22 -8
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/README.zh-CN.md +13 -4
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/docs/audits/release-readiness-2026-10-31.md +9 -0
- spring_runtime_mcp-0.2.1/docs/launch/announcement.md +90 -0
- spring_runtime_mcp-0.2.1/docs/launch/registry-0.2.1.patch +35 -0
- spring_runtime_mcp-0.2.1/docs/launch/registry-plan.md +46 -0
- spring_runtime_mcp-0.2.1/docs/launch/release-0.2.0.md +56 -0
- spring_runtime_mcp-0.2.1/docs/launch/server-0.2.1.json +21 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/pyproject.toml +4 -4
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/src/spring_runtime_mcp/__init__.py +1 -1
- spring_runtime_mcp-0.2.0/docs/launch/announcement.md +0 -97
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/.agent/PLANS.md +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/.agent/execplans/bean-graph-and-drift.md +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/.gitignore +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/AGENTS.md +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/HANDOVER.md +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/LEGACY_CONVENTIONS.md +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/LICENSE +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/SECURITY.md +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/SPEC.md +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/Spring-Boot-Safe-Runtime-MCP-Project-Plan.md +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/docs/RISK_ITEMS_HANDOFF.md +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/docs/adr/0001-positioning-and-non-goals.md +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/docs/ai-collaboration-workflow.md +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/docs/architecture/cross-version-normalization.md +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/docs/architecture/security-and-sanitization.md +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/docs/audits/capability-validation-2026-10-31.md +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/docs/audits/comprehensive-remediation-2026-10-22.md +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/docs/audits/comprehensive-review-2026-10-22.md +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/docs/audits/coverage-risk-zoning-2026-10-23.md +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/docs/audits/delivery-audit-remediation-2026-10-22.md +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/docs/audits/final-delivery-audit-2026-10-23.md +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/docs/audits/large-project-cursor-probe-2026-10-22.json +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/docs/audits/large-project-cursor-remediation-2026-10-23.json +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/docs/audits/large-project-stability-2026-10-22.json +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/docs/audits/large-project-stability-2026-10-22.md +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/docs/audits/logic-and-boundary-audit-2026-10-18.md +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/docs/audits/logic-and-boundary-fix-verification-2026-10-18.md +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/docs/audits/logic-and-boundary-remediation-plan-2026-10-18.md +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/docs/audits/mcp-release-gate-2026-10-23.md +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/docs/audits/nacos-four-hour-2026-10-23.md +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/docs/audits/niche-project-hertzbeat-2026-10-23.md +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/docs/audits/openapi-project-matrix-remediation-2026-10-22.md +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/docs/audits/openapi-projection-remediation-2026-10-22.json +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/docs/audits/production-chaos-2026-10-23.json +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/docs/audits/production-chaos-2026-10-23.md +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/docs/audits/production-chaos-findings-2026-10-23.json +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/docs/audits/production-chaos-remediation-2026-10-23.json +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/docs/audits/production-chaos-remediation-2026-10-23.md +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/docs/audits/production-chaos-remediation-probe-2026-10-23.json +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/docs/audits/project-state-and-architecture-audit-2026-10-18.md +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/docs/audits/remaining-findings-remediation-2026-10-22.md +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/docs/audits/remaining-work-handoff-2026-10-20.md +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/docs/audits/rw-review-and-plans-2026-10-20.md +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/docs/audits/security-callpoints.json +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/docs/audits/security-redteam-2026-10-17.md +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/docs/audits/security-verification.json +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/docs/audits/system-map-2026-10-23.md +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/docs/audits/ultra-project-fineract-2026-10-23.md +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/docs/audits/unresolved-findings-investigation-2026-10-22.md +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/docs/audits/unresolved-review-probe-2026-10-22.json +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/docs/audits/unresolved-review-remediation-2026-10-22.json +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/docs/audits/webflux-predicate-investigation-2026-10-22.md +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/docs/audits/webflux-predicate-remediation-2026-10-22.md +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/docs/audits/worktree-inventory-2026-10-30.md +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/docs/audits/xxl-job-2026-10-23.md +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/docs/contracts/tool-calling-policy.md +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/docs/target-app-setup.md +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/examples/large-project-matrix/LargeProjectLauncher.java +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/examples/large-project-matrix/LegacyServletSecurity.java.template +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/examples/large-project-matrix/README.md +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/examples/large-project-matrix/ReactiveSecurity.java.template +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/examples/large-project-matrix/ServletSecurity.java.template +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/examples/large-project-matrix/common.properties +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/examples/large-project-matrix/dataflow.properties +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/examples/large-project-matrix/flowable.properties +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/examples/large-project-matrix/projects.json +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/examples/large-project-matrix/spring-boot-admin.properties +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/examples/nacos-soak-matrix/DiagnosticManagementSecurity.java +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/examples/nacos-soak-matrix/META-INF/spring/org.springframework.boot.actuate.autoconfigure.web.ManagementContextConfiguration.imports +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/examples/nacos-soak-matrix/NacosDiagnosticsLauncher.java +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/examples/nacos-soak-matrix/README.md +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/examples/nacos-soak-matrix/common.properties +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/examples/nacos-soak-matrix/nacos.properties +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/examples/nacos-soak-matrix/projects.json +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/examples/nacos-soak-matrix/results/nacos-four-hour-2026-10-23-build.json +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/examples/nacos-soak-matrix/results/nacos-four-hour-2026-10-23.json +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/examples/niche-project-matrix/DiagnosticSecurity.java +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/examples/niche-project-matrix/README.md +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/examples/niche-project-matrix/common.properties +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/examples/niche-project-matrix/hertzbeat.properties +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/examples/niche-project-matrix/projects.json +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/examples/niche-project-matrix/results/hertzbeat-final-300s.json +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/examples/production-chaos/ChaosConfiguration.java +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/examples/production-chaos/DiagnosticSecurity.java +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/examples/production-chaos/ProductionLauncher.java +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/examples/production-chaos/README.md +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/examples/production-chaos/ShenyuManagement.java +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/examples/production-chaos/common.properties +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/examples/production-chaos/dolphinscheduler.properties +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/examples/production-chaos/projects.json +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/examples/production-chaos/results/dolphinscheduler-remediation.json +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/examples/production-chaos/results/dolphinscheduler.json +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/examples/production-chaos/results/shenyu-remediation.json +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/examples/production-chaos/results/shenyu.json +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/examples/production-chaos/results/thingsboard-remediation.json +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/examples/production-chaos/results/thingsboard.json +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/examples/production-chaos/shenyu.properties +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/examples/production-chaos/thingsboard-actuator.patch +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/examples/production-chaos/thingsboard.properties +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/examples/project-matrix/EarlyGroupedBeanProbe.java +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/examples/project-matrix/ProjectDiagnosticsLauncher.java +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/examples/project-matrix/README.md +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/examples/project-matrix/SpringdocPatchedProbe.java +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/examples/project-matrix/early-grouped-bean-verification.json +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/examples/project-matrix/jhipster-actuator-namespace.patch +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/examples/project-matrix/jhipster-core.properties +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/examples/project-matrix/jhipster-fixed.properties +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/examples/project-matrix/jhipster-same-port-verification.json +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/examples/project-matrix/jhipster-same-port.properties +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/examples/project-matrix/jhipster-separate-port-investigation.json +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/examples/project-matrix/jhipster-separate-port-remediation-verification.json +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/examples/project-matrix/jhipster.properties +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/examples/project-matrix/logback-diagnostics.xml +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/examples/project-matrix/petclinic-rest-final-remediation-verification.json +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/examples/project-matrix/petclinic-rest-initial-verification.json +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/examples/project-matrix/petclinic-rest-remediation-verification.json +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/examples/project-matrix/petclinic-rest.properties +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/examples/project-matrix/petclinic.properties +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/examples/project-matrix/projects.json +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/examples/project-matrix/springdoc-3.1.1-diagnostics.patch +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/examples/project-matrix/springdoc-compile-pom.xml +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/examples/project-matrix/springdoc-patched-probe-verification.json +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/examples/project-matrix/verification.json +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/examples/spring-boot-demo/README.md +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/examples/spring-boot-demo/pom.xml +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/examples/spring-boot-demo/source-catalog.json +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/examples/spring-boot-demo/src/main/java/example/DemoApplication.java +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/examples/spring-boot-demo/src/main/java/example/OrderController.java +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/examples/spring-boot-demo/src/main/java/example/PaymentGateway.java +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/examples/spring-boot-demo/src/main/java/example/StripeClient.java +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/examples/spring-boot-demo/src/main/java/example/StripeConfiguration.java +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/examples/spring-boot-demo/src/main/java/example/StripePaymentGateway.java +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/examples/spring-boot-demo/src/main/resources/application-local-mcp.yml +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/examples/spring-boot-demo/src/main/resources/application.yml +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/examples/spring-boot-demo/src/main/resources/db/migration/V1__create_orders.sql +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/examples/tdd-runtime/DiagnosticsLauncher.java +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/examples/tdd-runtime/README.md +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/examples/tdd-runtime/actuator-profile.patch +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/examples/tdd-runtime/application-runtime-diagnostics.properties +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/examples/tdd-runtime/verification.json +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/examples/ultra-project-matrix/FineractDiagnosticsLauncher.java +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/examples/ultra-project-matrix/README.md +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/examples/ultra-project-matrix/common.properties +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/examples/ultra-project-matrix/fineract-build-workaround.patch +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/examples/ultra-project-matrix/fineract.properties +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/examples/ultra-project-matrix/projects.json +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/examples/ultra-project-matrix/results/fineract-final-300s.json +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/examples/upstream-guides/GuideDiagnosticsLauncher.java +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/examples/upstream-guides/README.md +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/examples/upstream-guides/diagnostics-pom.template.xml +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/examples/upstream-guides/verification.json +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/examples/upstream-guides/webflux-remediation-verification.json +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/examples/xxl-job-matrix/DiagnosticSecurity.java +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/examples/xxl-job-matrix/README.md +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/examples/xxl-job-matrix/common.properties +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/examples/xxl-job-matrix/projects.json +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/examples/xxl-job-matrix/results/xxl-job-final-300s.json +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/examples/xxl-job-matrix/xxl-job.properties +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/scripts/ai_audit.py +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/scripts/check_demo_app.py +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/scripts/check_guide_runtime.py +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/scripts/check_large_project_runtime.py +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/scripts/check_nacos_soak.py +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/scripts/check_niche_project_runtime.py +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/scripts/check_production_chaos.py +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/scripts/check_project_runtime.py +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/scripts/check_stdio_install.py +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/scripts/check_tdd_runtime.py +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/scripts/check_ultra_project_runtime.py +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/scripts/check_xxl_job_runtime.py +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/scripts/pre_release_check.py +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/scripts/prepare_springdoc_patch.py +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/scripts/probe_jhipster_separate_port.py +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/scripts/probe_large_project_stability.py +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/scripts/probe_openapi_matrix_findings.py +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/scripts/probe_production_chaos_findings.py +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/scripts/probe_unresolved_review_findings.py +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/scripts/production_fault_proxy.py +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/scripts/validate_tool_contract.py +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/src/spring_runtime_mcp/adapters/__init__.py +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/src/spring_runtime_mcp/adapters/beans.py +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/src/spring_runtime_mcp/adapters/conditions.py +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/src/spring_runtime_mcp/adapters/config.py +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/src/spring_runtime_mcp/adapters/drift.py +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/src/spring_runtime_mcp/adapters/health.py +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/src/spring_runtime_mcp/adapters/mapping_predicates.py +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/src/spring_runtime_mcp/adapters/mappings.py +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/src/spring_runtime_mcp/adapters/migrations.py +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/src/spring_runtime_mcp/adapters/openapi.py +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/src/spring_runtime_mcp/adapters/source_catalog.py +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/src/spring_runtime_mcp/adapters/startup.py +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/src/spring_runtime_mcp/analyzers/__init__.py +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/src/spring_runtime_mcp/analyzers/bean_graph.py +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/src/spring_runtime_mcp/analyzers/condition_failures.py +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/src/spring_runtime_mcp/cli.py +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/src/spring_runtime_mcp/contracts/__init__.py +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/src/spring_runtime_mcp/contracts/definitions.py +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/src/spring_runtime_mcp/diagnostics.py +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/src/spring_runtime_mcp/models/__init__.py +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/src/spring_runtime_mcp/models/bean_graph.py +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/src/spring_runtime_mcp/models/common.py +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/src/spring_runtime_mcp/models/conditions.py +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/src/spring_runtime_mcp/models/queries.py +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/src/spring_runtime_mcp/models/source_catalog.py +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/src/spring_runtime_mcp/models/timestamps.py +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/src/spring_runtime_mcp/policy/__init__.py +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/src/spring_runtime_mcp/policy/configuration.py +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/src/spring_runtime_mcp/policy/output_guard.py +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/src/spring_runtime_mcp/policy/sanitization.py +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/src/spring_runtime_mcp/py.typed +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/src/spring_runtime_mcp/replay.py +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/src/spring_runtime_mcp/replay_data/bean_graph/README.md +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/src/spring_runtime_mcp/replay_data/bean_graph/factory-method/conditions.json +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/src/spring_runtime_mcp/replay_data/bean_graph/factory-method/source-catalog.json +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/src/spring_runtime_mcp/replay_data/bean_graph/nested-conditions/beans.json +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/src/spring_runtime_mcp/replay_data/bean_graph/nested-conditions/conditions.json +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/src/spring_runtime_mcp/replay_data/bean_graph/parent-child/beans.json +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/src/spring_runtime_mcp/replay_data/bean_graph/shape-metadata.json +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/src/spring_runtime_mcp/replay_data/bean_graph/stripe-missing/conditions.json +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/src/spring_runtime_mcp/replay_data/bean_graph/stripe-missing/source-catalog.json +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/src/spring_runtime_mcp/replay_data/conformance/README.md +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/src/spring_runtime_mcp/replay_data/conformance/boot-2.7-servlet/beans.json +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/src/spring_runtime_mcp/replay_data/conformance/boot-2.7-servlet/conditions.json +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/src/spring_runtime_mcp/replay_data/conformance/boot-2.7-servlet/configprops.json +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/src/spring_runtime_mcp/replay_data/conformance/boot-2.7-servlet/env.json +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/src/spring_runtime_mcp/replay_data/conformance/boot-2.7-servlet/flyway.json +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/src/spring_runtime_mcp/replay_data/conformance/boot-2.7-servlet/health-v2.json +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/src/spring_runtime_mcp/replay_data/conformance/boot-2.7-servlet/health-v3.json +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/src/spring_runtime_mcp/replay_data/conformance/boot-2.7-servlet/liquibase.json +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/src/spring_runtime_mcp/replay_data/conformance/boot-2.7-servlet/mappings.json +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/src/spring_runtime_mcp/replay_data/conformance/boot-2.7-servlet/openapi.json +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/src/spring_runtime_mcp/replay_data/conformance/boot-2.7-servlet/source-catalog.json +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/src/spring_runtime_mcp/replay_data/conformance/boot-2.7-servlet/startup.json +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/src/spring_runtime_mcp/replay_data/conformance/boot-3.4-servlet/beans.json +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/src/spring_runtime_mcp/replay_data/conformance/boot-3.4-servlet/conditions.json +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/src/spring_runtime_mcp/replay_data/conformance/boot-3.4-servlet/configprops.json +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/src/spring_runtime_mcp/replay_data/conformance/boot-3.4-servlet/env.json +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/src/spring_runtime_mcp/replay_data/conformance/boot-3.4-servlet/flyway.json +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/src/spring_runtime_mcp/replay_data/conformance/boot-3.4-servlet/health-v3.json +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/src/spring_runtime_mcp/replay_data/conformance/boot-3.4-servlet/liquibase.json +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/src/spring_runtime_mcp/replay_data/conformance/boot-3.4-servlet/mappings.json +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/src/spring_runtime_mcp/replay_data/conformance/boot-3.4-servlet/openapi.json +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/src/spring_runtime_mcp/replay_data/conformance/boot-3.4-servlet/source-catalog.json +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/src/spring_runtime_mcp/replay_data/conformance/boot-3.4-servlet/startup.json +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/src/spring_runtime_mcp/replay_data/conformance/boot-4.1-webflux/beans.json +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/src/spring_runtime_mcp/replay_data/conformance/boot-4.1-webflux/conditions.json +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/src/spring_runtime_mcp/replay_data/conformance/boot-4.1-webflux/configprops.json +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/src/spring_runtime_mcp/replay_data/conformance/boot-4.1-webflux/env.json +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/src/spring_runtime_mcp/replay_data/conformance/boot-4.1-webflux/flyway.json +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/src/spring_runtime_mcp/replay_data/conformance/boot-4.1-webflux/health-v3.json +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/src/spring_runtime_mcp/replay_data/conformance/boot-4.1-webflux/liquibase.json +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/src/spring_runtime_mcp/replay_data/conformance/boot-4.1-webflux/mappings.json +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/src/spring_runtime_mcp/replay_data/conformance/boot-4.1-webflux/openapi.json +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/src/spring_runtime_mcp/replay_data/conformance/boot-4.1-webflux/servlet-namespace-comparison.json +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/src/spring_runtime_mcp/replay_data/conformance/boot-4.1-webflux/source-catalog.json +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/src/spring_runtime_mcp/replay_data/conformance/boot-4.1-webflux/startup.json +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/src/spring_runtime_mcp/replay_data/conformance/contracts/springboot_analyze_startup.json +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/src/spring_runtime_mcp/replay_data/conformance/contracts/springboot_check_migrations.json +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/src/spring_runtime_mcp/replay_data/conformance/contracts/springboot_detect_drift.json +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/src/spring_runtime_mcp/replay_data/conformance/contracts/springboot_diagnose_health.json +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/src/spring_runtime_mcp/replay_data/conformance/contracts/springboot_inspect_beans.json +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/src/spring_runtime_mcp/replay_data/conformance/contracts/springboot_inspect_config.json +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/src/spring_runtime_mcp/replay_data/conformance/contracts/springboot_search_openapi.json +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/src/spring_runtime_mcp/replay_data/conformance/contracts/springboot_verify_mappings.json +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/src/spring_runtime_mcp/replay_data/conformance/faults/cases.json +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/src/spring_runtime_mcp/replay_data/conformance/faults/health-hidden.expected.json +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/src/spring_runtime_mcp/replay_data/conformance/faults/health-hidden.json +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/src/spring_runtime_mcp/replay_data/conformance/large/beans-2500.json +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/src/spring_runtime_mcp/replay_data/conformance/manifest.json +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/src/spring_runtime_mcp/schemas/tools-contract.json +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/src/spring_runtime_mcp/server.py +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/src/spring_runtime_mcp/services.py +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/src/spring_runtime_mcp/snapshots.py +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/src/spring_runtime_mcp/tools/__init__.py +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/src/spring_runtime_mcp/tools/analyze_startup.py +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/src/spring_runtime_mcp/tools/check_migrations.py +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/src/spring_runtime_mcp/tools/detect_drift.py +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/src/spring_runtime_mcp/tools/diagnose_health.py +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/src/spring_runtime_mcp/tools/inspect_beans.py +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/src/spring_runtime_mcp/tools/inspect_config.py +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/src/spring_runtime_mcp/tools/registry.py +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/src/spring_runtime_mcp/tools/search_openapi.py +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/src/spring_runtime_mcp/tools/support.py +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/src/spring_runtime_mcp/tools/verify_mappings.py +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/src/spring_runtime_mcp/transport/__init__.py +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/src/spring_runtime_mcp/transport/actuator_http.py +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/src/spring_runtime_mcp/transport/bounded_json.py +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/src/spring_runtime_mcp/transport/replay_files.py +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/src/spring_runtime_mcp/transport/response_gate.py +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/src/spring_runtime_mcp/transport/responses.py +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/src/spring_runtime_mcp/transport/stdio.py +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/tests/conformance/README.md +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/tests/conformance/__init__.py +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/tests/conformance/assertions.py +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/tests/conformance/conftest.py +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/tests/conformance/test_faults.py +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/tests/conformance/test_large_response.py +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/tests/conformance/test_multiversion_fixtures.py +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/tests/conformance/test_server_contract.py +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/tests/conformance/test_tools_contract.py +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/tests/conftest.py +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/tests/fixtures/bean_graph/README.md +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/tests/fixtures/bean_graph/factory-method/conditions.json +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/tests/fixtures/bean_graph/factory-method/source-catalog.json +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/tests/fixtures/bean_graph/nested-conditions/beans.json +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/tests/fixtures/bean_graph/nested-conditions/conditions.json +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/tests/fixtures/bean_graph/parent-child/beans.json +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/tests/fixtures/bean_graph/shape-metadata.json +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/tests/fixtures/bean_graph/stripe-missing/conditions.json +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/tests/fixtures/bean_graph/stripe-missing/source-catalog.json +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/tests/fixtures/conformance/README.md +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/tests/fixtures/conformance/boot-2.7-servlet/beans.json +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/tests/fixtures/conformance/boot-2.7-servlet/conditions.json +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/tests/fixtures/conformance/boot-2.7-servlet/configprops.json +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/tests/fixtures/conformance/boot-2.7-servlet/env.json +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/tests/fixtures/conformance/boot-2.7-servlet/flyway.json +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/tests/fixtures/conformance/boot-2.7-servlet/health-v2.json +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/tests/fixtures/conformance/boot-2.7-servlet/health-v3.json +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/tests/fixtures/conformance/boot-2.7-servlet/liquibase.json +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/tests/fixtures/conformance/boot-2.7-servlet/mappings.json +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/tests/fixtures/conformance/boot-2.7-servlet/openapi.json +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/tests/fixtures/conformance/boot-2.7-servlet/source-catalog.json +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/tests/fixtures/conformance/boot-2.7-servlet/startup.json +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/tests/fixtures/conformance/boot-3.4-servlet/beans.json +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/tests/fixtures/conformance/boot-3.4-servlet/conditions.json +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/tests/fixtures/conformance/boot-3.4-servlet/configprops.json +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/tests/fixtures/conformance/boot-3.4-servlet/env.json +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/tests/fixtures/conformance/boot-3.4-servlet/flyway.json +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/tests/fixtures/conformance/boot-3.4-servlet/health-v3.json +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/tests/fixtures/conformance/boot-3.4-servlet/liquibase.json +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/tests/fixtures/conformance/boot-3.4-servlet/mappings.json +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/tests/fixtures/conformance/boot-3.4-servlet/openapi.json +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/tests/fixtures/conformance/boot-3.4-servlet/source-catalog.json +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/tests/fixtures/conformance/boot-3.4-servlet/startup.json +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/tests/fixtures/conformance/boot-4.1-webflux/beans.json +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/tests/fixtures/conformance/boot-4.1-webflux/conditions.json +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/tests/fixtures/conformance/boot-4.1-webflux/configprops.json +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/tests/fixtures/conformance/boot-4.1-webflux/env.json +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/tests/fixtures/conformance/boot-4.1-webflux/flyway.json +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/tests/fixtures/conformance/boot-4.1-webflux/health-v3.json +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/tests/fixtures/conformance/boot-4.1-webflux/liquibase.json +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/tests/fixtures/conformance/boot-4.1-webflux/mappings.json +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/tests/fixtures/conformance/boot-4.1-webflux/openapi.json +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/tests/fixtures/conformance/boot-4.1-webflux/servlet-namespace-comparison.json +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/tests/fixtures/conformance/boot-4.1-webflux/source-catalog.json +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/tests/fixtures/conformance/boot-4.1-webflux/startup.json +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/tests/fixtures/conformance/contracts/springboot_analyze_startup.json +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/tests/fixtures/conformance/contracts/springboot_check_migrations.json +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/tests/fixtures/conformance/contracts/springboot_detect_drift.json +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/tests/fixtures/conformance/contracts/springboot_diagnose_health.json +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/tests/fixtures/conformance/contracts/springboot_inspect_beans.json +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/tests/fixtures/conformance/contracts/springboot_inspect_config.json +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/tests/fixtures/conformance/contracts/springboot_search_openapi.json +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/tests/fixtures/conformance/contracts/springboot_verify_mappings.json +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/tests/fixtures/conformance/faults/cases.json +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/tests/fixtures/conformance/faults/health-hidden.expected.json +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/tests/fixtures/conformance/faults/health-hidden.json +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/tests/fixtures/conformance/large/beans-2500.json +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/tests/fixtures/conformance/manifest.json +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/tests/harness/__init__.py +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/tests/harness/host.py +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/tests/integration/test_cli_config_wiring.py +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/tests/integration/test_diagnostic_pairs.py +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/tests/integration/test_handler_boundaries.py +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/tests/integration/test_inspect_beans.py +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/tests/integration/test_mcp_host_and_http.py +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/tests/integration/test_stdio_host_process.py +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/tests/security/README.md +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/tests/security/__init__.py +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/tests/security/helpers.py +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/tests/security/redteam-audit.test.ts +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/tests/security/test_redteam_boundaries.py +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/tests/security/test_redteam_injection.py +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/tests/security/test_redteam_leakage.py +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/tests/security/test_redteam_network.py +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/tests/security/test_redteam_readonly.py +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/tests/security/test_redteam_stdio.py +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/tests/test_e2e_diagnostic_scenarios.py +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/tests/unit/test_audit_regressions.py +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/tests/unit/test_bean_graph.py +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/tests/unit/test_bounded_json_and_inputs.py +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/tests/unit/test_cli_startup_contract.py +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/tests/unit/test_comprehensive_review_regressions.py +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/tests/unit/test_condition_failures.py +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/tests/unit/test_delivery_audit_regressions.py +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/tests/unit/test_diagnose_health_characterization.py +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/tests/unit/test_handler_registration.py +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/tests/unit/test_health_characterization.py +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/tests/unit/test_health_incomplete_counts.py +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/tests/unit/test_http_connect_deadline.py +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/tests/unit/test_http_rejection_read_budget.py +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/tests/unit/test_logic_boundary_audit_regressions.py +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/tests/unit/test_mappings_servlet_coverage.py +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/tests/unit/test_openapi_projection_safety.py +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/tests/unit/test_pre_release_check.py +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/tests/unit/test_production_chaos_repairs.py +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/tests/unit/test_remaining_findings.py +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/tests/unit/test_responses_snapshots.py +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/tests/unit/test_rw02_protocol_regressions.py +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/tests/unit/test_rw06_architecture_regressions.py +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/tests/unit/test_sanitization.py +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/tests/unit/test_webflux_predicates.py +0 -0
- {spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/uv.lock +0 -0
|
@@ -1,5 +1,18 @@
|
|
|
1
1
|
# 版本记录
|
|
2
2
|
|
|
3
|
+
## 未发布 — v0.2.1 Alpha 元数据修正候选
|
|
4
|
+
|
|
5
|
+
- Registry 名称与 README 所有权标记统一为 `io.github.neilmorse/spring-runtime-mcp`;项目 URL 指向当前仓库所有者。版本源、锁文件项目版本和 Registry 包版本同步为 0.2.1。
|
|
6
|
+
- 仅准备候选,不表示已上传 PyPI 或 Registry。已发布的 0.2.0 标签和产物保留;生产诊断实现、公开工具 Schema、运行依赖、只读/脱敏/目标/预算边界不变。
|
|
7
|
+
- 新标签、PyPI 环境标签授权、新版本上传及 Registry 登录/提交仍需操作者批准。安装说明继续固定已公开验收的 0.2.0,待新版本公开安装通过后再切换推荐版本。
|
|
8
|
+
|
|
9
|
+
## v0.2.0 Alpha — 2026-10-31(正式发布)
|
|
10
|
+
|
|
11
|
+
- 已发布到 [PyPI](https://pypi.org/project/spring-runtime-mcp/0.2.0/),标签 `v0.2.0` 对应 `2394b29a84a5fcd8210d3934eee1a94e1d3fc0ac`。
|
|
12
|
+
- 干净提交本地完整门禁退出 0;正式 Release 的 Python 3.11–3.14、静态检查、契约、漏洞审计、构建/两产物隔离安装与发布全部通过。
|
|
13
|
+
- 公开 PyPI 仓库外全新环境安装通过两种 SDK 模式、八工具回环调用和七 replay;公开产物摘要与验收批次一致。首发保持 Alpha、本地回环与有限兼容范围,详见[发布记录](docs/launch/release-0.2.0.md)。
|
|
14
|
+
- 下列“未发布”记录保留各轮实施时状态;其中交付内容已随本版纳入,不应据历史措辞判断当前未发布。2026-10-22 的 v0.2.0 条目记录开发里程碑,不是 PyPI 首次发布日期。
|
|
15
|
+
|
|
3
16
|
## 未发布 — 2026-10-31 发布流程收口
|
|
4
17
|
|
|
5
18
|
- 将已审阅的生产修复、测试、资源、脚本和历史证据准备为同一发布提交;Nacos 原运行日志/逐分钟 JSONL 本地留存并精确忽略,聚合证据保留。
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: spring-runtime-mcp
|
|
3
|
-
Version: 0.2.
|
|
3
|
+
Version: 0.2.1
|
|
4
4
|
Summary: Read-only, sanitized Spring Boot runtime diagnostics for coding agents over MCP.
|
|
5
|
-
Project-URL: Homepage, https://github.com/
|
|
6
|
-
Project-URL: Repository, https://github.com/
|
|
7
|
-
Project-URL: Issues, https://github.com/
|
|
8
|
-
Project-URL: Changelog, https://github.com/
|
|
5
|
+
Project-URL: Homepage, https://github.com/neilmorse/spring-runtime-mcp
|
|
6
|
+
Project-URL: Repository, https://github.com/neilmorse/spring-runtime-mcp
|
|
7
|
+
Project-URL: Issues, https://github.com/neilmorse/spring-runtime-mcp/issues
|
|
8
|
+
Project-URL: Changelog, https://github.com/neilmorse/spring-runtime-mcp/blob/master/CHANGELOG.md
|
|
9
9
|
Author: Kaelenx
|
|
10
10
|
License-Expression: Apache-2.0
|
|
11
11
|
License-File: LICENSE
|
|
@@ -29,7 +29,7 @@ Description-Content-Type: text/markdown
|
|
|
29
29
|
|
|
30
30
|
# Spring Boot Runtime Diagnostics MCP
|
|
31
31
|
|
|
32
|
-
[](https://github.com/neilmorse/spring-runtime-mcp/actions/workflows/ci.yml)
|
|
33
33
|
[](LICENSE)
|
|
34
34
|
[](pyproject.toml)
|
|
35
35
|
[](https://modelcontextprotocol.io)
|
|
@@ -42,6 +42,19 @@ It is local-first and safe by default: fixed `GET` endpoints only, no redirects,
|
|
|
42
42
|
|
|
43
43
|
[中文说明](README.zh-CN.md)
|
|
44
44
|
|
|
45
|
+
**0.2.0 Alpha is available on [PyPI](https://pypi.org/project/spring-runtime-mcp/0.2.0/).**
|
|
46
|
+
It supports registered loopback targets over STDIO, with fixed endpoints and optional
|
|
47
|
+
Bearer environment binding. Commands below explicitly use public PyPI to avoid mirror lag. Windows/macOS and the full Boot/client matrix remain
|
|
48
|
+
unverified. See the [release record](docs/launch/release-0.2.0.md).
|
|
49
|
+
|
|
50
|
+
```bash
|
|
51
|
+
uvx --default-index https://pypi.org/simple spring-runtime-mcp==0.2.0 --version
|
|
52
|
+
uvx --default-index https://pypi.org/simple spring-runtime-mcp==0.2.0 --base-url http://127.0.0.1:18081
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
Configure your local target first using the [target setup guide](docs/target-app-setup.md).
|
|
56
|
+
The second command is the persistent MCP host; it waits for a client on STDIO.
|
|
57
|
+
|
|
45
58
|
## Why not just curl `/actuator`?
|
|
46
59
|
|
|
47
60
|
Because an agent that can `curl` an Actuator can also `POST /actuator/shutdown`, read `/actuator/heapdump`, leak `spring.datasource.password` into a transcript, or paste 2 MB of `beans` JSON into its context window. This project replaces that with a narrow, auditable surface:
|
|
@@ -77,7 +90,7 @@ Tools are registered in alphabetical order, each carries `readOnlyHint`, `destru
|
|
|
77
90
|
Requires Python 3.11+ and [uv](https://docs.astral.sh/uv/). No JDK, Docker, model API key or network target is needed; the replay command runs a tool against a committed synthetic Actuator fixture.
|
|
78
91
|
|
|
79
92
|
```bash
|
|
80
|
-
git clone https://github.com/
|
|
93
|
+
git clone --branch v0.2.0 --depth 1 https://github.com/neilmorse/spring-runtime-mcp.git && cd spring-runtime-mcp
|
|
81
94
|
uv run --locked python -m pytest -q
|
|
82
95
|
uv run --locked python -m spring_runtime_mcp.replay \
|
|
83
96
|
--scenario stripe-missing --tool springboot_inspect_beans \
|
|
@@ -275,7 +288,7 @@ uv run --no-sync ruff format --check src tests scripts
|
|
|
275
288
|
uv build
|
|
276
289
|
```
|
|
277
290
|
|
|
278
|
-
Add `--offline` to the initial sync once dependencies are cached. `uv.lock` fixes the tested runtime and development dependency versions; the wheel includes its tool Schema and `py.typed`. Tests block outbound network by default; real Shop acceptance is a separate operator-invoked script. PR CI runs the Python test matrix and static checks; release additionally runs the full audited pre-release script and requires a matching version tag. The
|
|
291
|
+
Add `--offline` to the initial sync once dependencies are cached. `uv.lock` fixes the tested runtime and development dependency versions; the wheel includes its tool Schema and `py.typed`. Tests block outbound network by default; real Shop acceptance is a separate operator-invoked script. PR CI runs the Python test matrix and static checks; release additionally runs the full audited pre-release script and requires a matching version tag. The release workflow passed on the published commit; see the release record.
|
|
279
292
|
|
|
280
293
|
For a working-tree review, run `uv run --no-sync python scripts/pre_release_check.py --allow-dirty`. Add `--audit` to run the separate online `uv audit --locked` dependency check. Skipping the audit or build, allowing a dirty tree, or accepting skipped tests makes the result incomplete (exit 2); a failure exits 1. The clean-room stage compares wheel and sdist resources and versions with the source, installs each into a separate environment using lockfile constraints for runtime dependencies, checks the CLI version, and runs `scripts/check_stdio_install.py` outside the repository with isolated Python. Both installations cover both SDK modes, eight handlers against a disposable loopback fixture and seven packaged replay scenarios. Build dependencies are pinned in the build system and included in the development lock and audit. The earlier verification is recorded in the [MCP delivery audit](docs/audits/mcp-release-gate-2026-10-23.md).
|
|
281
294
|
|
|
@@ -297,10 +310,10 @@ Security findings should go to the repository's private vulnerability reporting
|
|
|
297
310
|
|
|
298
311
|
[Apache-2.0](LICENSE)
|
|
299
312
|
|
|
300
|
-
<!-- mcp-name: io.github.
|
|
313
|
+
<!-- mcp-name: io.github.neilmorse/spring-runtime-mcp -->
|
|
301
314
|
|
|
302
315
|
|
|
303
|
-
The
|
|
316
|
+
The published release is **0.2.0 Alpha**: loopback targets, STDIO,
|
|
304
317
|
eight existing tools and Bearer environment binding. See the
|
|
305
318
|
[release readiness report](docs/audits/release-readiness-2026-10-31.md) for separate
|
|
306
319
|
platform, historical sample, SDK and actual client evidence.
|
|
@@ -315,6 +328,7 @@ uv pip install --python /tmp/spring-runtime-user/bin/python /absolute/path/sprin
|
|
|
315
328
|
/tmp/spring-runtime-user/bin/spring-runtime-mcp --base-url http://127.0.0.1:18081
|
|
316
329
|
```
|
|
317
330
|
|
|
318
|
-
Public PyPI
|
|
319
|
-
|
|
320
|
-
not the MCP host.
|
|
331
|
+
Public PyPI installation has passed an independent clean-environment check on
|
|
332
|
+
Linux/Python 3.12, including both SDK modes, eight fixture routes and seven replay
|
|
333
|
+
scenarios. Replay is a one-shot offline command, not the MCP host. See the
|
|
334
|
+
[release record](docs/launch/release-0.2.0.md) for evidence and remaining limits.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Spring Boot Runtime Diagnostics MCP
|
|
2
2
|
|
|
3
|
-
[](https://github.com/neilmorse/spring-runtime-mcp/actions/workflows/ci.yml)
|
|
4
4
|
[](LICENSE)
|
|
5
5
|
[](pyproject.toml)
|
|
6
6
|
[](https://modelcontextprotocol.io)
|
|
@@ -13,6 +13,19 @@ It is local-first and safe by default: fixed `GET` endpoints only, no redirects,
|
|
|
13
13
|
|
|
14
14
|
[中文说明](README.zh-CN.md)
|
|
15
15
|
|
|
16
|
+
**0.2.0 Alpha is available on [PyPI](https://pypi.org/project/spring-runtime-mcp/0.2.0/).**
|
|
17
|
+
It supports registered loopback targets over STDIO, with fixed endpoints and optional
|
|
18
|
+
Bearer environment binding. Commands below explicitly use public PyPI to avoid mirror lag. Windows/macOS and the full Boot/client matrix remain
|
|
19
|
+
unverified. See the [release record](docs/launch/release-0.2.0.md).
|
|
20
|
+
|
|
21
|
+
```bash
|
|
22
|
+
uvx --default-index https://pypi.org/simple spring-runtime-mcp==0.2.0 --version
|
|
23
|
+
uvx --default-index https://pypi.org/simple spring-runtime-mcp==0.2.0 --base-url http://127.0.0.1:18081
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
Configure your local target first using the [target setup guide](docs/target-app-setup.md).
|
|
27
|
+
The second command is the persistent MCP host; it waits for a client on STDIO.
|
|
28
|
+
|
|
16
29
|
## Why not just curl `/actuator`?
|
|
17
30
|
|
|
18
31
|
Because an agent that can `curl` an Actuator can also `POST /actuator/shutdown`, read `/actuator/heapdump`, leak `spring.datasource.password` into a transcript, or paste 2 MB of `beans` JSON into its context window. This project replaces that with a narrow, auditable surface:
|
|
@@ -48,7 +61,7 @@ Tools are registered in alphabetical order, each carries `readOnlyHint`, `destru
|
|
|
48
61
|
Requires Python 3.11+ and [uv](https://docs.astral.sh/uv/). No JDK, Docker, model API key or network target is needed; the replay command runs a tool against a committed synthetic Actuator fixture.
|
|
49
62
|
|
|
50
63
|
```bash
|
|
51
|
-
git clone https://github.com/
|
|
64
|
+
git clone --branch v0.2.0 --depth 1 https://github.com/neilmorse/spring-runtime-mcp.git && cd spring-runtime-mcp
|
|
52
65
|
uv run --locked python -m pytest -q
|
|
53
66
|
uv run --locked python -m spring_runtime_mcp.replay \
|
|
54
67
|
--scenario stripe-missing --tool springboot_inspect_beans \
|
|
@@ -246,7 +259,7 @@ uv run --no-sync ruff format --check src tests scripts
|
|
|
246
259
|
uv build
|
|
247
260
|
```
|
|
248
261
|
|
|
249
|
-
Add `--offline` to the initial sync once dependencies are cached. `uv.lock` fixes the tested runtime and development dependency versions; the wheel includes its tool Schema and `py.typed`. Tests block outbound network by default; real Shop acceptance is a separate operator-invoked script. PR CI runs the Python test matrix and static checks; release additionally runs the full audited pre-release script and requires a matching version tag. The
|
|
262
|
+
Add `--offline` to the initial sync once dependencies are cached. `uv.lock` fixes the tested runtime and development dependency versions; the wheel includes its tool Schema and `py.typed`. Tests block outbound network by default; real Shop acceptance is a separate operator-invoked script. PR CI runs the Python test matrix and static checks; release additionally runs the full audited pre-release script and requires a matching version tag. The release workflow passed on the published commit; see the release record.
|
|
250
263
|
|
|
251
264
|
For a working-tree review, run `uv run --no-sync python scripts/pre_release_check.py --allow-dirty`. Add `--audit` to run the separate online `uv audit --locked` dependency check. Skipping the audit or build, allowing a dirty tree, or accepting skipped tests makes the result incomplete (exit 2); a failure exits 1. The clean-room stage compares wheel and sdist resources and versions with the source, installs each into a separate environment using lockfile constraints for runtime dependencies, checks the CLI version, and runs `scripts/check_stdio_install.py` outside the repository with isolated Python. Both installations cover both SDK modes, eight handlers against a disposable loopback fixture and seven packaged replay scenarios. Build dependencies are pinned in the build system and included in the development lock and audit. The earlier verification is recorded in the [MCP delivery audit](docs/audits/mcp-release-gate-2026-10-23.md).
|
|
252
265
|
|
|
@@ -268,10 +281,10 @@ Security findings should go to the repository's private vulnerability reporting
|
|
|
268
281
|
|
|
269
282
|
[Apache-2.0](LICENSE)
|
|
270
283
|
|
|
271
|
-
<!-- mcp-name: io.github.
|
|
284
|
+
<!-- mcp-name: io.github.neilmorse/spring-runtime-mcp -->
|
|
272
285
|
|
|
273
286
|
|
|
274
|
-
The
|
|
287
|
+
The published release is **0.2.0 Alpha**: loopback targets, STDIO,
|
|
275
288
|
eight existing tools and Bearer environment binding. See the
|
|
276
289
|
[release readiness report](docs/audits/release-readiness-2026-10-31.md) for separate
|
|
277
290
|
platform, historical sample, SDK and actual client evidence.
|
|
@@ -286,6 +299,7 @@ uv pip install --python /tmp/spring-runtime-user/bin/python /absolute/path/sprin
|
|
|
286
299
|
/tmp/spring-runtime-user/bin/spring-runtime-mcp --base-url http://127.0.0.1:18081
|
|
287
300
|
```
|
|
288
301
|
|
|
289
|
-
Public PyPI
|
|
290
|
-
|
|
291
|
-
not the MCP host.
|
|
302
|
+
Public PyPI installation has passed an independent clean-environment check on
|
|
303
|
+
Linux/Python 3.12, including both SDK modes, eight fixture routes and seven replay
|
|
304
|
+
scenarios. Replay is a one-shot offline command, not the MCP host. See the
|
|
305
|
+
[release record](docs/launch/release-0.2.0.md) for evidence and remaining limits.
|
|
@@ -2,7 +2,16 @@
|
|
|
2
2
|
|
|
3
3
|
[English README](README.md)
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
**v0.2.0 Alpha 已发布到 [PyPI](https://pypi.org/project/spring-runtime-mcp/0.2.0/)**。限定支持登记的回环目标、STDIO、固定端点及可选 Bearer 环境变量绑定;Windows/macOS 与完整 Boot/客户端矩阵仍未验证。发布提交、产物摘要与实际验收见[发布记录](docs/launch/release-0.2.0.md)。
|
|
6
|
+
|
|
7
|
+
安装并检查版本(显式使用官方 PyPI,避免镜像尚未同步新包):
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
uvx --default-index https://pypi.org/simple spring-runtime-mcp==0.2.0 --version
|
|
11
|
+
uvx --default-index https://pypi.org/simple spring-runtime-mcp==0.2.0 --base-url http://127.0.0.1:18081
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
先按[目标配置指南](docs/target-app-setup.md)配置本地应用。第二条命令为常驻 MCP 宿主,等待客户端通过 STDIO 发出请求;replay 仍是一次性离线命令。
|
|
6
15
|
|
|
7
16
|
面向编码 Agent 的本地优先、只读、安全默认运行时诊断工具。项目目标是把获权 Spring Boot 实例的 Actuator 与 OpenAPI 响应转换为脱敏、可追溯、有界的运行证据。
|
|
8
17
|
|
|
@@ -249,14 +258,14 @@ uv run --no-sync ruff format --check src tests scripts
|
|
|
249
258
|
uv build
|
|
250
259
|
```
|
|
251
260
|
|
|
252
|
-
`uv.lock` 锁定运行及开发依赖;已缓存时首条同步可加 `--offline`。当前离线结果见[版本记录](CHANGELOG.md),历史交付核验见[报告](docs/audits/final-delivery-audit-2026-10-23.md);超大型 Fineract 验收见[审计报告](docs/audits/ultra-project-fineract-2026-10-23.md)。官方 SDK 的 legacy 和 2026-07-28 模式也完成隔离 wheel 安装验收。PR CI 运行 Python
|
|
261
|
+
`uv.lock` 锁定运行及开发依赖;已缓存时首条同步可加 `--offline`。当前离线结果见[版本记录](CHANGELOG.md),历史交付核验见[报告](docs/audits/final-delivery-audit-2026-10-23.md);超大型 Fineract 验收见[审计报告](docs/audits/ultra-project-fineract-2026-10-23.md)。官方 SDK 的 legacy 和 2026-07-28 模式也完成隔离 wheel 安装验收。PR CI 运行 Python 测试矩阵与静态检查;正式发布另运行完整联网审计门禁并检查标签与包版本一致,发布提交的远端工作流已通过,见发布记录。TypeScript 红队入口是 `tests/security/redteam-audit.test.ts`,需要本机 Node,不属于默认 Python 门禁。
|
|
253
262
|
|
|
254
263
|
工作树自检运行 `uv run --no-sync python scripts/pre_release_check.py --allow-dirty`;加 `--audit` 才执行独立的联网 `uv audit --locked` 漏洞审计。未执行审计、跳过构建、允许脏工作树或接受跳过的测试时,检查不完整并返回 2;失败返回 1。净室阶段比对 wheel 与 sdist 的资源和版本,分别在独立环境按锁文件约束安装运行依赖、检查 CLI 版本,再从仓库外用隔离 Python 执行 SDK 两模式、八个自建回环 HTTP 处理器调用和七个内置 replay 场景。构建后端及其构建依赖固定版本,并纳入开发锁文件与漏洞审计。历史证据见 [MCP 交付专项核验](docs/audits/mcp-release-gate-2026-10-23.md)。
|
|
255
264
|
|
|
256
265
|
Python 实现位于 `src/spring_runtime_mcp/`;公开契约位于 `src/spring_runtime_mcp/schemas/tools-contract.json`,随 wheel 一起分发;`tests/` 默认阻断外部网络。架构速查见 [HANDOVER.md](HANDOVER.md)。[SPEC](SPEC.md)定义产品目标,[目标配置指南](docs/target-app-setup.md)解释版本及授权,[归一化设计](docs/architecture/cross-version-normalization.md)说明响应差异,[红队报告](docs/audits/security-redteam-2026-10-17.md)列出已修复问题与仍未覆盖的真实实例边界。
|
|
257
266
|
|
|
258
267
|
|
|
259
|
-
|
|
268
|
+
已发布版本为 **0.2.0 Alpha**,仅支持本地回环、STDIO、现有八工具和 Bearer 环境变量绑定。平台、历史样本、SDK 与实际客户端证据分列于[发布准备报告](docs/audits/release-readiness-2026-10-31.md),不代表完整兼容矩阵。
|
|
260
269
|
|
|
261
270
|
源码检出使用上方锁定项目命令。wheel 安装后直接运行入口:
|
|
262
271
|
|
|
@@ -267,4 +276,4 @@ uv pip install --python /tmp/spring-runtime-user/bin/python /absolute/path/sprin
|
|
|
267
276
|
/tmp/spring-runtime-user/bin/spring-runtime-mcp --base-url http://127.0.0.1:18081
|
|
268
277
|
```
|
|
269
278
|
|
|
270
|
-
以上是 Linux/macOS 路径示例,Windows 尚未验收。公开 PyPI
|
|
279
|
+
以上是 Linux/macOS 路径示例,Windows 尚未验收。公开 PyPI 的仓库外全新环境安装已在 Linux/Python 3.12 验收,通过 SDK 两模式、八工具回环调用与七个 replay;详见[发布记录](docs/launch/release-0.2.0.md)。replay 是一次性离线命令,不是 MCP 宿主。
|
{spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/docs/audits/release-readiness-2026-10-31.md
RENAMED
|
@@ -1,5 +1,14 @@
|
|
|
1
1
|
# 正式发布准备收口 — 2026-10-31
|
|
2
2
|
|
|
3
|
+
**当前状态:0.2.0 Alpha 已发布并通过公开安装验收。** 标签 `v0.2.0` 指向
|
|
4
|
+
`2394b29a84a5fcd8210d3934eee1a94e1d3fc0ac`;本地干净提交完整门禁退出 0,
|
|
5
|
+
[正式 Release](https://github.com/neilmorse/spring-runtime-mcp/actions/runs/41176181251) 全部通过。
|
|
6
|
+
公开文件摘要、支持范围与验证见[发布记录](../launch/release-0.2.0.md)。
|
|
7
|
+
以下内容是发布前各阶段的历史快照;“尚未发布”“账户待核实”“工作树未提交”等不代表当前状态。
|
|
8
|
+
本次文档同步不修改发布标签、生产源码或已上传的 PyPI 产物。
|
|
9
|
+
|
|
10
|
+
## 发布前历史记录
|
|
11
|
+
|
|
3
12
|
当前仍为 **0.2.0 Alpha、限定范围发布候选**。本报告保存前两轮本地验证与缺陷修复历史;本轮已获授权形成发布提交,并在该提交上运行不带旁路标志的完整门禁。最终提交 SHA、门禁退出码和同批产物 SHA256 写入仓库外的 `/tmp/spring-runtime-release-evidence/final-gate.json`,避免为补录结果改变被验证提交。只有该记录退出码为 0 才表示最终本地门禁通过。历史批次不作为最终发布产物。
|
|
4
13
|
|
|
5
14
|
## 本轮发布提交范围与流程
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
# 0.2.0 Alpha:发布与投稿材料
|
|
2
|
+
|
|
3
|
+
更新于 2026-10-31。PyPI 0.2.0 已发布,发布与公开安装验证见
|
|
4
|
+
[发布记录](release-0.2.0.md)。Registry 尚未提交;命名空间迁移见[方案](registry-plan.md)。
|
|
5
|
+
|
|
6
|
+
## GitHub Release 文案
|
|
7
|
+
|
|
8
|
+
Title: **Spring Runtime MCP 0.2.0 Alpha**
|
|
9
|
+
|
|
10
|
+
Spring Runtime MCP gives coding agents bounded, sanitized evidence from a registered
|
|
11
|
+
local Spring Boot instance: beans and conditions, routes, health, migrations,
|
|
12
|
+
startup, configuration origin, OpenAPI and drift.
|
|
13
|
+
|
|
14
|
+
Install with Python 3.11+ and uv:
|
|
15
|
+
|
|
16
|
+
```bash
|
|
17
|
+
uvx --default-index https://pypi.org/simple spring-runtime-mcp==0.2.0 --version
|
|
18
|
+
uvx --default-index https://pypi.org/simple spring-runtime-mcp==0.2.0 --base-url http://127.0.0.1:18081
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
Prepare a local, read-only Actuator endpoint using the
|
|
22
|
+
[target setup guide](https://github.com/neilmorse/spring-runtime-mcp/blob/v0.2.0/docs/target-app-setup.md).
|
|
23
|
+
The second command is the persistent STDIO host for your MCP client.
|
|
24
|
+
|
|
25
|
+
This Alpha supports loopback targets, fixed endpoints and optional Bearer environment
|
|
26
|
+
binding. It permits read-only GET requests, rejects redirects and environment proxies,
|
|
27
|
+
validates TLS, sanitizes results through two layers and limits complete tool responses
|
|
28
|
+
to 16 KiB. Missing evidence remains partial/unknown.
|
|
29
|
+
|
|
30
|
+
The release passed Python 3.11–3.14 offline tests, the complete audited gate,
|
|
31
|
+
independent wheel/sdist installations and a public PyPI clean-environment check.
|
|
32
|
+
Windows/macOS, the complete Boot/Java/client matrix and production clusters remain
|
|
33
|
+
unverified. Remote targets, Basic/custom headers, custom management paths and OpenAPI
|
|
34
|
+
path fallback are outside this release. Configuration diagnostics stay disabled by default.
|
|
35
|
+
|
|
36
|
+
- [PyPI 0.2.0](https://pypi.org/project/spring-runtime-mcp/0.2.0/)
|
|
37
|
+
- [Verified release workflow](https://github.com/neilmorse/spring-runtime-mcp/actions/runs/41176181251)
|
|
38
|
+
- [Release source](https://github.com/neilmorse/spring-runtime-mcp/tree/v0.2.0)
|
|
39
|
+
|
|
40
|
+
## awesome-mcp-servers 投稿
|
|
41
|
+
|
|
42
|
+
目标:[punkpeye/awesome-mcp-servers](https://github.com/punkpeye/awesome-mcp-servers)。
|
|
43
|
+
遵循其[贡献指南](https://github.com/punkpeye/awesome-mcp-servers/blob/main/CONTRIBUTING.md),
|
|
44
|
+
添加到 Developer Tools 类别并按仓库所有者排序,不声明 Registry 收录或完整兼容。
|
|
45
|
+
|
|
46
|
+
```markdown
|
|
47
|
+
- [neilmorse/spring-runtime-mcp](https://github.com/neilmorse/spring-runtime-mcp) 🐍 🏠 - Read-only Spring Boot runtime diagnostics: beans and conditions, routes, health, migrations, startup, config origin, OpenAPI and drift. Loopback-only, sanitized, bounded responses.
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
PR title: **Add Spring Runtime MCP**
|
|
51
|
+
|
|
52
|
+
PR body:
|
|
53
|
+
|
|
54
|
+
```text
|
|
55
|
+
Add spring-runtime-mcp under Developer Tools. It is an Apache-2.0 Python STDIO server
|
|
56
|
+
with a public PyPI 0.2.0 Alpha package. Eight read-only tools inspect a registered
|
|
57
|
+
loopback Spring Boot instance; results are sanitized and bounded to 16 KiB.
|
|
58
|
+
|
|
59
|
+
Repository: https://github.com/neilmorse/spring-runtime-mcp
|
|
60
|
+
Package: https://pypi.org/project/spring-runtime-mcp/0.2.0/
|
|
61
|
+
|
|
62
|
+
The entry describes implemented scope only. It does not claim full Boot/client
|
|
63
|
+
compatibility or MCP Registry publication. Documentation and submission preparation
|
|
64
|
+
were assisted by a coding agent.
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
## 其他目录与社区公告
|
|
68
|
+
|
|
69
|
+
- [Smithery](https://smithery.ai/new) 当前跳转账户登录;需可用账户,且应先确认其安装模型适用于本地 STDIO。
|
|
70
|
+
- [Glama](https://glama.ai/mcp/servers) 的 Add Server 入口需实际页面核查;不使用旧的 `/submit` 搜索路由冒充提交端点。
|
|
71
|
+
- PulseMCP、mcp.so 未核实可用的直接提交路径,不能声称已提交或会自动同步。
|
|
72
|
+
- Reddit/dev.to 等帖子需选择平台并使用操作者已授权账户;本轮先准备下列短文,不跨平台自动群发。
|
|
73
|
+
|
|
74
|
+
Title: **Spring Runtime MCP 0.2.0 Alpha: read-only runtime evidence for Spring Boot agents**
|
|
75
|
+
|
|
76
|
+
```text
|
|
77
|
+
Spring Runtime MCP 0.2.0 Alpha is available on PyPI. It gives coding agents eight
|
|
78
|
+
read-only tools for Spring Boot beans/conditions, routes, health, migrations,
|
|
79
|
+
startup, configuration origin, OpenAPI and drift.
|
|
80
|
+
|
|
81
|
+
It reads a registered local loopback instance over fixed Actuator endpoints.
|
|
82
|
+
Responses are sanitized and bounded to 16 KiB; missing evidence stays partial/unknown.
|
|
83
|
+
Configuration diagnostics are off by default. It never invokes business operations.
|
|
84
|
+
|
|
85
|
+
This is a limited Alpha, with fixture, isolated-install and fixed-project evidence.
|
|
86
|
+
It does not claim every Boot/Java/client combination or production-cluster readiness.
|
|
87
|
+
|
|
88
|
+
Package: https://pypi.org/project/spring-runtime-mcp/0.2.0/
|
|
89
|
+
Source: https://github.com/neilmorse/spring-runtime-mcp
|
|
90
|
+
```
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
--- a/src/spring_runtime_mcp/__init__.py
|
|
2
|
+
+++ b/src/spring_runtime_mcp/__init__.py
|
|
3
|
+
@@ -3 +3 @@
|
|
4
|
+
-__version__ = "0.2.0"
|
|
5
|
+
+__version__ = "0.2.1"
|
|
6
|
+
--- a/README.md
|
|
7
|
+
+++ b/README.md
|
|
8
|
+
@@ -284 +284 @@
|
|
9
|
+
-<!-- mcp-name: io.github.Kaelenx/spring-runtime-mcp -->
|
|
10
|
+
+<!-- mcp-name: io.github.neilmorse/spring-runtime-mcp -->
|
|
11
|
+
--- a/pyproject.toml
|
|
12
|
+
+++ b/pyproject.toml
|
|
13
|
+
@@ -46,4 +46,4 @@
|
|
14
|
+
-Homepage = "https://github.com/Kaelenx/spring-runtime-mcp"
|
|
15
|
+
-Repository = "https://github.com/Kaelenx/spring-runtime-mcp"
|
|
16
|
+
-Issues = "https://github.com/Kaelenx/spring-runtime-mcp/issues"
|
|
17
|
+
-Changelog = "https://github.com/Kaelenx/spring-runtime-mcp/blob/master/CHANGELOG.md"
|
|
18
|
+
+Homepage = "https://github.com/neilmorse/spring-runtime-mcp"
|
|
19
|
+
+Repository = "https://github.com/neilmorse/spring-runtime-mcp"
|
|
20
|
+
+Issues = "https://github.com/neilmorse/spring-runtime-mcp/issues"
|
|
21
|
+
+Changelog = "https://github.com/neilmorse/spring-runtime-mcp/blob/master/CHANGELOG.md"
|
|
22
|
+
--- a/server.json
|
|
23
|
+
+++ b/server.json
|
|
24
|
+
@@ -3 +3 @@
|
|
25
|
+
- "name": "io.github.Kaelenx/spring-runtime-mcp",
|
|
26
|
+
+ "name": "io.github.neilmorse/spring-runtime-mcp",
|
|
27
|
+
@@ -6 +6 @@
|
|
28
|
+
- "version": "0.2.0",
|
|
29
|
+
+ "version": "0.2.1",
|
|
30
|
+
@@ -8 +8 @@
|
|
31
|
+
- "url": "https://github.com/Kaelenx/spring-runtime-mcp",
|
|
32
|
+
+ "url": "https://github.com/neilmorse/spring-runtime-mcp",
|
|
33
|
+
@@ -15 +15 @@
|
|
34
|
+
- "version": "0.2.0",
|
|
35
|
+
+ "version": "0.2.1",
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
# MCP Registry:命名空间与后续补丁方案
|
|
2
|
+
|
|
3
|
+
核对日期:2026-10-31。当前尚未提交 Registry,0.2.0 的 PyPI 发布不依赖 Registry。
|
|
4
|
+
|
|
5
|
+
## 已确认事实
|
|
6
|
+
|
|
7
|
+
- 本机 gh 的 GitHub 身份和仓库所有者均为 `neilmorse`;该身份的组织列表为空。
|
|
8
|
+
- 公开 PyPI 0.2.0 的包描述包含 `mcp-name: io.github.Kaelenx/spring-runtime-mcp`。
|
|
9
|
+
- 根 `server.json` 的 name 与该已发布标记一致,保留为 0.2.0 的历史发布元数据。
|
|
10
|
+
- GitHub `/users/Kaelenx` 查询返回 404;没有当前账号拥有旧命名空间的证据。
|
|
11
|
+
- GitHub 插件身份与本机 gh 不同,且对本仓库只有读取权限,不用于发布。
|
|
12
|
+
|
|
13
|
+
官方规则要求 GitHub 登录授权其本人/组织的命名空间,并要求 PyPI 包 README 中的
|
|
14
|
+
`mcp-name` 与 server.json 的 name 完全一致。参见
|
|
15
|
+
[CLI 认证说明](https://github.com/modelcontextprotocol/registry/blob/main/docs/reference/cli/commands.md#github-interactive)和
|
|
16
|
+
[PyPI 所有权验证](https://github.com/modelcontextprotocol/registry/blob/main/docs/modelcontextprotocol-io/package-types.mdx#pypi-packages)。
|
|
17
|
+
因此,仅将根 server.json 改为 `io.github.neilmorse/...` 会与公开 0.2.0 包描述冲突;
|
|
18
|
+
GitHub 仓库 URL 跳转也不构成旧 Registry 命名空间授权。
|
|
19
|
+
|
|
20
|
+
## 建议方案:0.2.1 元数据补丁
|
|
21
|
+
|
|
22
|
+
候选 JSON 为 [server-0.2.1.json](server-0.2.1.json),仅供下次发布审阅,不表示该版本已存在。
|
|
23
|
+
可审阅改动如下;本轮不执行新版本发布或更改既有标签:
|
|
24
|
+
|
|
25
|
+
1. 源码版本与锁文件项目版本从 0.2.0 升为 0.2.1,成熟度继续 Alpha。
|
|
26
|
+
2. README 的所有权标记改为 `io.github.neilmorse/spring-runtime-mcp`。
|
|
27
|
+
3. 根 server.json 使用候选名称、仓库 URL、包版本和服务版本;pyproject 的项目 URL 同步为当前所有者。
|
|
28
|
+
4. 工具 Schema、生产诊断算法、认证、目标边界与预算保持现状;安装示例固定到新版本。
|
|
29
|
+
5. 更新 CHANGELOG,干净提交上执行完整发布门禁及无发布 CI,记录新 SHA 和产物摘要。
|
|
30
|
+
6. 发布前检查 GitHub pypi 环境规则。当前规则仅允许 `v0.2.0`,新增版本标签授权需单独批准;不能关闭保护或管理员绕过。
|
|
31
|
+
7. 新版本 PyPI 发布和公开安装验收完成后,核对公开包标记,再以正确 GitHub 身份登录 Registry 并提交候选元数据。
|
|
32
|
+
|
|
33
|
+
准备好的[补丁](registry-0.2.1.patch)覆盖版本源、README 标记、项目 URL 和 server.json。
|
|
34
|
+
经批准后用 `git apply --unidiff-zero docs/launch/registry-0.2.1.patch` 应用,
|
|
35
|
+
再运行 `uv lock --offline` 更新项目版本,复核文档示例并补充 CHANGELOG,再运行全部检查。
|
|
36
|
+
补丁不包含账户权限修改、凭据、发布命令执行或网络守卫变更。
|
|
37
|
+
|
|
38
|
+
不得覆盖 0.2.0 的标签或重新上传同版本包。若操作者能提供旧命名空间的独立授权证据,
|
|
39
|
+
可另行核查保留旧名称的方案;当前不假定该授权存在。
|
|
40
|
+
|
|
41
|
+
## 校验与投稿状态
|
|
42
|
+
|
|
43
|
+
本轮会校验现有与候选 server.json 的官方 Schema/CLI 规则;本地校验不验证登录权限或 PyPI 包所有权。
|
|
44
|
+
候选版本在 PyPI 不存在时不可执行 publish。CLI 身份认证可能需要操作者完成 GitHub 登录。
|
|
45
|
+
|
|
46
|
+
目录和公告可以引用已发布的 PyPI 包及 GitHub 仓库,无需声称 Registry 已收录。
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
# 0.2.0 Alpha — 2026-10-31
|
|
2
|
+
|
|
3
|
+
Spring Runtime MCP 0.2.0 Alpha 已发布到 [PyPI](https://pypi.org/project/spring-runtime-mcp/0.2.0/)。
|
|
4
|
+
发布标签为 [`v0.2.0`](https://github.com/neilmorse/spring-runtime-mcp/tree/v0.2.0),对应提交
|
|
5
|
+
`2394b29a84a5fcd8210d3934eee1a94e1d3fc0ac`。发布后的文档同步不改变该标签或已上传的产物。
|
|
6
|
+
|
|
7
|
+
## 安装
|
|
8
|
+
|
|
9
|
+
需要 Python 3.11+ 与 uv。首次运行从公开包索引安装依赖:
|
|
10
|
+
|
|
11
|
+
```bash
|
|
12
|
+
uvx --default-index https://pypi.org/simple spring-runtime-mcp==0.2.0 --version
|
|
13
|
+
uvx --default-index https://pypi.org/simple spring-runtime-mcp==0.2.0 --base-url http://127.0.0.1:18081
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
第二条命令为 STDIO MCP 宿主;先按[目标配置指南](../target-app-setup.md)准备本地回环实例,
|
|
17
|
+
再由客户端启动并完成 initialize、tools/list 和一次只读调用。工具发现不证明目标已经授权。
|
|
18
|
+
|
|
19
|
+
## 范围
|
|
20
|
+
|
|
21
|
+
八个工具覆盖 Bean/条件、路由、健康、迁移、启动、配置来源、OpenAPI 和运行态漂移。
|
|
22
|
+
限定登记回环目标、固定逻辑端点、STDIO、可选 Bearer 环境绑定;配置诊断默认关闭。
|
|
23
|
+
只读 GET、禁止重定向/环境代理、验证 TLS、双层脱敏和 16 KiB 完整工具回包预算保持。
|
|
24
|
+
证据缺失返回 partial/unknown。
|
|
25
|
+
|
|
26
|
+
非回环目标、Basic/自定义头、自定义管理基路径、OpenAPI 路径回退尚未实现。
|
|
27
|
+
Windows/macOS、完整 Boot/Java/Web 栈矩阵及其他实际客户端交互仍未验收。
|
|
28
|
+
Codex CLI 只有一次自建 fixture 健康调用的实际客户端冒烟证据,不能外推全部客户端场景。
|
|
29
|
+
|
|
30
|
+
## 验证与产物
|
|
31
|
+
|
|
32
|
+
[正式发布流水线](https://github.com/neilmorse/spring-runtime-mcp/actions/runs/41176181251)
|
|
33
|
+
通过 Python 3.11–3.14 的各 1100 项离线测试、类型/格式/契约检查和完整发布门禁。
|
|
34
|
+
本地干净提交完整门禁退出 0;wheel/sdist 分别在隔离环境完成两种 SDK 模式、八工具
|
|
35
|
+
自建回环 HTTP 调用及七个 replay 场景。
|
|
36
|
+
|
|
37
|
+
公开 PyPI 文件摘要与本地、验证型 CI 及正式 Release 同批产物一致:
|
|
38
|
+
|
|
39
|
+
| 文件 | SHA256 |
|
|
40
|
+
| --- | --- |
|
|
41
|
+
| `spring_runtime_mcp-0.2.0-py3-none-any.whl` | `5c1cada7be8c233cae7a8956fa2bc1e2f7bb3554bc0f6ead1fda9bdbef8380e0` |
|
|
42
|
+
| `spring_runtime_mcp-0.2.0.tar.gz` | `19e78b902790c8a8a83846cacb8e353585e705f7e16abcbf53abc75f3d4505cd` |
|
|
43
|
+
|
|
44
|
+
公开 PyPI 安装在仓库外新建 Python 3.12.15 环境完成,不使用 uv 缓存、本地 wheel 或锁文件约束;
|
|
45
|
+
版本、SDK 两模式、八工具回环调用、协议与脱敏、16 KiB 和七 replay 均通过。
|
|
46
|
+
后续独立验收再次通过相同公开安装链路,111 个生产代码/资源文件与发布提交一致。
|
|
47
|
+
这不代表未来所有传递依赖组合均已验证。
|
|
48
|
+
|
|
49
|
+
## 发布后的事项
|
|
50
|
+
|
|
51
|
+
默认分支文档、目录投稿和公告与 PyPI 产物分别维护。
|
|
52
|
+
MCP Registry 的命名空间迁移尚未完成:0.2.0 包描述仍为 `io.github.Kaelenx/...`,
|
|
53
|
+
当前仓库所有者为 `neilmorse`,详见[Registry 方案](registry-plan.md)。不得声称已进入 Registry。
|
|
54
|
+
|
|
55
|
+
历史修复、样本与失败记录保留在[发布准备报告](../audits/release-readiness-2026-10-31.md)
|
|
56
|
+
和 [CHANGELOG](../../CHANGELOG.md),其中“未发布”是对应历史阶段的状态。
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
|
|
3
|
+
"name": "io.github.neilmorse/spring-runtime-mcp",
|
|
4
|
+
"title": "Spring Boot Runtime Diagnostics",
|
|
5
|
+
"description": "Read-only Spring Boot runtime evidence for agents: beans, routes, health, startup.",
|
|
6
|
+
"version": "0.2.1",
|
|
7
|
+
"repository": {
|
|
8
|
+
"url": "https://github.com/neilmorse/spring-runtime-mcp",
|
|
9
|
+
"source": "github"
|
|
10
|
+
},
|
|
11
|
+
"packages": [
|
|
12
|
+
{
|
|
13
|
+
"registryType": "pypi",
|
|
14
|
+
"identifier": "spring-runtime-mcp",
|
|
15
|
+
"version": "0.2.1",
|
|
16
|
+
"transport": {
|
|
17
|
+
"type": "stdio"
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
]
|
|
21
|
+
}
|
|
@@ -43,10 +43,10 @@ dev = [
|
|
|
43
43
|
]
|
|
44
44
|
|
|
45
45
|
[project.urls]
|
|
46
|
-
Homepage = "https://github.com/
|
|
47
|
-
Repository = "https://github.com/
|
|
48
|
-
Issues = "https://github.com/
|
|
49
|
-
Changelog = "https://github.com/
|
|
46
|
+
Homepage = "https://github.com/neilmorse/spring-runtime-mcp"
|
|
47
|
+
Repository = "https://github.com/neilmorse/spring-runtime-mcp"
|
|
48
|
+
Issues = "https://github.com/neilmorse/spring-runtime-mcp/issues"
|
|
49
|
+
Changelog = "https://github.com/neilmorse/spring-runtime-mcp/blob/master/CHANGELOG.md"
|
|
50
50
|
|
|
51
51
|
[tool.hatch.version]
|
|
52
52
|
path = "src/spring_runtime_mcp/__init__.py"
|
|
@@ -1,97 +0,0 @@
|
|
|
1
|
-
# Launch checklist and drafts
|
|
2
|
-
|
|
3
|
-
Status on 2026-10-31: v0.2.0 Alpha release preparation based on `49ffdb9`.
|
|
4
|
-
The release commit and final audited batch are recorded outside the repository
|
|
5
|
-
to keep the verified commit clean; see the readiness report. No release tag is
|
|
6
|
-
authorized yet. Public PyPI project/version endpoints returned 404, account
|
|
7
|
-
access is blocked, and GitHub currently has no `pypi` environment. Codex CLI has a single-call
|
|
8
|
-
fixture smoke check; other clients and complete client coverage remain unverified.
|
|
9
|
-
The authoritative scope and current evidence are in
|
|
10
|
-
[the release readiness report](../audits/release-readiness-2026-10-31.md).
|
|
11
|
-
|
|
12
|
-
## 1. PyPI (blocking for everything else)
|
|
13
|
-
|
|
14
|
-
1. Create the project `spring-runtime-mcp` on PyPI (or let the first trusted
|
|
15
|
-
publish create it).
|
|
16
|
-
2. On PyPI → project → Publishing, add a trusted publisher:
|
|
17
|
-
- owner: `neilmorse` (current repository owner; the old Kaelenx URL redirects)
|
|
18
|
-
- repository: `spring-runtime-mcp`
|
|
19
|
-
- workflow: `release.yml`
|
|
20
|
-
- environment: `pypi`
|
|
21
|
-
3. After a clean-commit gate exits 0, validation-only CI succeeds, account checks
|
|
22
|
-
are complete, and the operator approves publication, tag and push:
|
|
23
|
-
|
|
24
|
-
```bash
|
|
25
|
-
git tag -a v0.2.0 -m "v0.2.0"
|
|
26
|
-
git push origin v0.2.0
|
|
27
|
-
```
|
|
28
|
-
|
|
29
|
-
4. The `Release` workflow runs the strict audited gate, validates wheel and sdist
|
|
30
|
-
independently, and publishes those same verified artifacts via OIDC. The updated
|
|
31
|
-
workflow needs a successful remote run. Use `Release validation only` on a
|
|
32
|
-
`codex/release-*` branch first; it has no publish job or OIDC permission.
|
|
33
|
-
5. After the package is live, update the README quick start to
|
|
34
|
-
`uvx spring-runtime-mcp --base-url ...` and add the PyPI badge.
|
|
35
|
-
|
|
36
|
-
## 2. Official MCP Registry
|
|
37
|
-
|
|
38
|
-
`server.json` declares the 2025-12-11 schema; online Registry validation and account
|
|
39
|
-
authorization remain to be checked before submission. The
|
|
40
|
-
README contains the ownership token `mcp-name: io.github.Kaelenx/spring-runtime-mcp`,
|
|
41
|
-
which the registry checks against the PyPI project description.
|
|
42
|
-
|
|
43
|
-
After PyPI shows version 0.2.0:
|
|
44
|
-
|
|
45
|
-
```bash
|
|
46
|
-
# install the publisher CLI from the modelcontextprotocol/registry releases
|
|
47
|
-
mcp-publisher login github
|
|
48
|
-
mcp-publisher publish
|
|
49
|
-
```
|
|
50
|
-
|
|
51
|
-
Verify that the GitHub login authorizes namespace `io.github.Kaelenx`; the
|
|
52
|
-
PyPI package must already contain the `mcp-name` token in its README.
|
|
53
|
-
|
|
54
|
-
## 3. Directory submissions
|
|
55
|
-
|
|
56
|
-
- **Smithery** — submit the repository at https://smithery.ai/new (or via the
|
|
57
|
-
Smithery CLI once the PyPI package exists). Use the same description as
|
|
58
|
-
`server.json`.
|
|
59
|
-
- **awesome-mcp-servers** — open a PR to `punkpeye/awesome-mcp-servers` adding
|
|
60
|
-
under Developer Tools:
|
|
61
|
-
|
|
62
|
-
```markdown
|
|
63
|
-
- [Kaelenx/spring-runtime-mcp](https://github.com/Kaelenx/spring-runtime-mcp) - Read-only, sanitized Spring Boot runtime diagnostics for coding agents: beans and conditions, routes, health, migrations, startup, config origin, OpenAPI and drift.
|
|
64
|
-
```
|
|
65
|
-
|
|
66
|
-
- **mcp.so / Glama / PulseMCP** — most index from the official registry, so
|
|
67
|
-
publish there first and only submit manually where a form requires it.
|
|
68
|
-
|
|
69
|
-
External submissions are visible actions; review the listing text before
|
|
70
|
-
sending.
|
|
71
|
-
|
|
72
|
-
## 4. Launch post draft (r/java, r/springboot, dev.to)
|
|
73
|
-
|
|
74
|
-
Title: **I built a read-only MCP server that tells your agent why a Spring bean
|
|
75
|
-
is missing**
|
|
76
|
-
|
|
77
|
-
> Coding agents can read a Spring codebase but not what happened at runtime.
|
|
78
|
-
> I built `spring-runtime-mcp`, a local stdio MCP server that reads Actuator
|
|
79
|
-
> and OpenAPI from an explicitly registered instance and turns it into eight
|
|
80
|
-
> bounded, sanitized tools: beans and condition chains, routes, health,
|
|
81
|
-
> migrations, startup, config origin, OpenAPI and drift.
|
|
82
|
-
>
|
|
83
|
-
> It is deliberately narrow: GET only, fixed endpoints, no redirects, no
|
|
84
|
-
> heapdump/logfile, no raw env dumps, 16 KiB per response, and missing evidence
|
|
85
|
-
> is reported as `partial`/`unknown` instead of a confident guess.
|
|
86
|
-
>
|
|
87
|
-
> Example from the included Boot 3.4 demo: `springboot_inspect_beans` returns
|
|
88
|
-
>
|
|
89
|
-
> ```text
|
|
90
|
-
> REQUIRED_BEAN_MISSING (StripeConfiguration#paymentGateway)
|
|
91
|
-
> → SOURCE_FACTORY_NOT_CREATED
|
|
92
|
-
> → PROPERTY_NOT_FOUND (StripeConfiguration#stripeClient, stripe.enabled)
|
|
93
|
-
> ```
|
|
94
|
-
>
|
|
95
|
-
> Repo: https://github.com/Kaelenx/spring-runtime-mcp (Apache-2.0). Feedback from
|
|
96
|
-
> people running Spring Boot 2.7/3.x/4.x in unusual setups is especially
|
|
97
|
-
> welcome — synthetic fixtures only go so far.
|
|
File without changes
|
{spring_runtime_mcp-0.2.0 → spring_runtime_mcp-0.2.1}/.agent/execplans/bean-graph-and-drift.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|