Update FastMCP constructor to respect Pydantic settings configuration#1244
Open
saqadri wants to merge 2 commits intomodelcontextprotocol:mainmodelcontextprotocol/python-sdk:mainfrom
Open
Update FastMCP constructor to respect Pydantic settings configuration#1244saqadri wants to merge 2 commits intomodelcontextprotocol:mainmodelcontextprotocol/python-sdk:mainfrom
saqadri wants to merge 2 commits intomodelcontextprotocol:mainmodelcontextprotocol/python-sdk:mainfrom
Conversation
Member
|
I would prefer to revert that PR as to have this one merged. It's very annoying that this was build the way it was. We need to deprecate some of those arguments and move to |
Contributor
Author
@Kludex yeah neither approach is ideal. If you prefer I can just update this PR with the revert of that specific file. #1198 had a handful of other small changes too |
2 tasks
Contributor
Author
|
@Kludex please let me know what you'd prefer for this change |
1 task
Contributor
|
Hi @saqadri thanks for this contribution, will bring up in the maintainer meeting to figure out a path forward. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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:
.envfile 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).envfile values