fix(mcp): bump fastmcp and transitives to clear osv-scanner findings (#11284)

This commit is contained in:
Rubén De la Torre Vico
2026-05-21 13:30:56 +02:00
committed by GitHub
parent 349611d52d
commit a28f4994a8
4 changed files with 601 additions and 614 deletions
+8
View File
@@ -2,6 +2,14 @@
All notable changes to the **Prowler MCP Server** are documented in this file.
## [0.7.1] (Prowler UNRELEASED)
### 🔐 Security
- `fastmcp` from 2.14.0 to 3.2.4 for GHSA-5h2m-4q8j-pqpj, GHSA-rww4-4w9c-7733, and GHSA-vv7q-7jx5-f767, which also pulls fixed `jaraco.context`, `python-multipart`, `starlette`, and drops the vulnerable `lupa`/`urllib3` transitive deps [(#11284)](https://github.com/prowler-cloud/prowler/pull/11284)
---
## [0.7.0] (Prowler v5.27.0)
### 🚀 Added
+17 -26
View File
@@ -1,5 +1,3 @@
import asyncio
from fastmcp import FastMCP
from prowler_mcp_server import __version__
from prowler_mcp_server.lib.logger import logger
@@ -8,37 +6,37 @@ from starlette.responses import JSONResponse
prowler_mcp_server = FastMCP("prowler-mcp-server")
async def setup_main_server():
def setup_main_server():
"""Set up the main Prowler MCP server with all available integrations."""
# Import Prowler Hub tools with prowler_hub_ prefix
# Mount Prowler Hub tools with prowler_hub_ namespace
try:
logger.info("Importing Prowler Hub server...")
logger.info("Mounting Prowler Hub server...")
from prowler_mcp_server.prowler_hub.server import hub_mcp_server
await prowler_mcp_server.import_server(hub_mcp_server, prefix="prowler_hub")
logger.info("Successfully imported Prowler Hub server")
prowler_mcp_server.mount(hub_mcp_server, namespace="prowler_hub")
logger.info("Successfully mounted Prowler Hub server")
except Exception as e:
logger.error(f"Failed to import Prowler Hub server: {e}")
logger.error(f"Failed to mount Prowler Hub server: {e}")
# Import Prowler App tools with prowler_app_ prefix
# Mount Prowler App tools with prowler_app_ namespace
try:
logger.info("Importing Prowler App server...")
logger.info("Mounting Prowler App server...")
from prowler_mcp_server.prowler_app.server import app_mcp_server
await prowler_mcp_server.import_server(app_mcp_server, prefix="prowler_app")
logger.info("Successfully imported Prowler App server")
prowler_mcp_server.mount(app_mcp_server, namespace="prowler_app")
logger.info("Successfully mounted Prowler App server")
except Exception as e:
logger.error(f"Failed to import Prowler App server: {e}")
logger.error(f"Failed to mount Prowler App server: {e}")
# Import Prowler Documentation tools with prowler_docs_ prefix
# Mount Prowler Documentation tools with prowler_docs_ namespace
try:
logger.info("Importing Prowler Documentation server...")
logger.info("Mounting Prowler Documentation server...")
from prowler_mcp_server.prowler_documentation.server import docs_mcp_server
await prowler_mcp_server.import_server(docs_mcp_server, prefix="prowler_docs")
logger.info("Successfully imported Prowler Documentation server")
prowler_mcp_server.mount(docs_mcp_server, namespace="prowler_docs")
logger.info("Successfully mounted Prowler Documentation server")
except Exception as e:
logger.error(f"Failed to import Prowler Documentation server: {e}")
logger.error(f"Failed to mount Prowler Documentation server: {e}")
# Response follows the IETF Health Check Response Format
@@ -60,13 +58,6 @@ async def health_check(_request) -> JSONResponse:
)
# Get or create the event loop
try:
loop = asyncio.get_running_loop()
# If we have a running loop, schedule the setup as a task
loop.create_task(setup_main_server())
except RuntimeError:
# No running loop, use asyncio.run (for standalone execution)
asyncio.run(setup_main_server())
setup_main_server()
app = prowler_mcp_server.http_app()
+4 -2
View File
@@ -4,12 +4,14 @@ requires = ["setuptools>=61.0", "wheel"]
[dependency-groups]
dev = [
"pytest==8.3.5"
"bandit==1.8.3",
"pytest==9.0.3",
"vulture==2.14"
]
[project]
dependencies = [
"fastmcp==2.14.0",
"fastmcp==3.2.4",
"httpx==0.28.1"
]
description = "MCP server for Prowler ecosystem"
+572 -586
View File
File diff suppressed because it is too large Load Diff