Update FastMCP constructor to respect Pydantic settings configuration #1244
+79
−51
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.
Fix environment variable loading in FastMCP by preserving Pydantic Settings behavior
Motivation and Context
PR #1198 introduced a regression where environment variables (e.g.,
FASTMCP_HOST=0.0.0.0
) were no longer being loaded by FastMCP. The issue occurred because the refactored code explicitly passed all settings parameters to the Pydantic Settings constructor, which overrides environment variable values.This fix ensures that only explicitly provided parameters are passed to the Settings constructor, allowing Pydantic's intended priority order to work correctly.
How Has This Been Tested?
Tested the following scenarios:
.env
file values are loaded with correct priorityExample test cases:
Breaking Changes
No breaking changes. This restores the original behavior where environment variables are properly loaded.
Types of changes
Checklist
Additional context
Settings Priority Order
This fix preserves Pydantic Settings' intended priority order (highest to lowest):
FastMCP()
constructorFASTMCP_HOST
).env
file values