Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
Refactors the EUVD MCP server codebase for improved reliability, observability, and security. Introduces structured error handling, input validation, structured logging, in-process metrics, and adds a root path redirect to
/mcp. Also hardens all GitHub Actions workflows to follow least-privilege permissions.Type of Change
Related Issues
Changes Made
_handle_tool_errors) inmain.pycoveringValidationError,HTTPStatusError,TransportError, and unexpected exceptions — returns consistent error dicts to the LLM/) redirect to/mcpvia aRedirectResponseeuvd_mcp/utils/logging_config.pyfor centralised, structured logging (stderr only, to avoid polluting MCP stdio transport)euvd_mcp/utils/metrics.pywith in-process per-tool request counts, latency tracking, error rates, and cache hit/miss ratios exposed via a/metricsendpointeuvd_mcp/utils/validation.pywith reusable validators for CVSS scores, EPSS scores, date strings, and ENISA IDseuvd_mcp/models/input_models.pywith Pydantic input models for tool parameterseuvd_mcp/controllers/euvd_api.pyfor cleaner separation of concernspermissionsblocks to all GitHub Actions workflows (ci.yml,code-quality.yml) to comply with the principle of least privilege (CodeQLactions/missing-workflow-permissions)test_error_handling.py,test_validation.py, andtest_logging_config.pyTesting
Checklist
Screenshots (if applicable)
Additional Notes
/metricsendpoint is in-memory only and resets on restart — suitable for health checks and dashboards but not persistent monitoring.stderrto keepstdoutclean for the MCP stdio transport.actions/missing-workflow-permissions.