From 018ad7ef66798b79863600af28a82bc36636533c Mon Sep 17 00:00:00 2001 From: Dominik Jain Date: Fri, 20 Jun 2025 17:18:32 +0200 Subject: [PATCH] Fix .env files in user projects potentially affecting fastmcp Settings #200 --- src/serena/mcp.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/serena/mcp.py b/src/serena/mcp.py index aabdfbee..9cbdc1f3 100644 --- a/src/serena/mcp.py +++ b/src/serena/mcp.py @@ -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