mirror of
https://github.com/prowler-cloud/prowler.git
synced 2026-10-04 02:04:06 +00:00
fix(mcp): bump fastmcp and transitives to clear osv-scanner findings (#11284)
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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,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"
|
||||
|
||||
Generated
+572
-586
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user