Fix .env files in user projects potentially affecting fastmcp Settings #200

This commit is contained in:
Dominik Jain committed 2025-06-20 17:19:39 +02:00
1 parent 5eb5930cbc
commit 018ad7ef66
1 file changed
+6
+6
View File
@@ -21,6 +21,7 @@ import docstring_parser
from mcp.server.fastmcp import server
from mcp.server.fastmcp.server import FastMCP, Settings
from mcp.server.fastmcp.tools.base import Tool as MCPTool
from pydantic_settings import SettingsConfigDict
from sensai.util import logging
from sensai.util.helper import mark_used
@@ -271,6 +272,11 @@ def create_mcp_server_and_agent(
signal.signal(signal.SIGINT, sigint_singal)
signal.signal(signal.SIGTERM, sigterm_signal)
# Override model_config to disable the use of `.env` files for reading settings, because user projects are likely to contain
# `.env` files (e.g. containing LOG_LEVEL) that are not supposed to override the MCP settings;
# retain only FASTMCP_ prefix for already set environment variables.
Settings.model_config = SettingsConfigDict(env_prefix="FASTMCP_")
mcp_settings = Settings(lifespan=server_lifespan, host=host, port=port)
mcp = FastMCP(**mcp_settings.model_dump())
return mcp, serena_agent_process