| @@ -0,0 +1,114 @@ | |||
| # Feast MCP Feature Server Example | |||
There was a problem hiding this comment.
Thank you for this!
I'd also add this to the GenAI docs and make it an extra that we enable with pip install feast[mcp]
Sorry, something went wrong.
There was a problem hiding this comment.
@franciscojavierarceo done can u check it
Sorry, something went wrong.
There was a problem hiding this comment.
Some last few bits and one question about the config
Sorry, something went wrong.
|
|
||
| FEATURE_SERVER_CONFIG_CLASS_FOR_TYPE = { | ||
| "local": "feast.infra.feature_servers.local_process.config.LocalFeatureServerConfig", | ||
| "mcp": "feast.infra.feature_servers.mcp_config.McpFeatureServerConfig", |
There was a problem hiding this comment.
Does this mean you can't run MCP locally?
Sorry, something went wrong.
There was a problem hiding this comment.
Yes, MCP can absolutely run locally.
The confusion arises from seeing "local" and "mcp" as separate configuration types in the code. However, these represent different feature server capabilities, not deployment locations:
Sorry, something went wrong.
|
@YassinNouh21 can you rebase the PR I am seeing changes/commits with operator e2e tests. |
Sorry, something went wrong.
|
@franciscojavierarceo can u take a look again |
Sorry, something went wrong.
| feature_logging: | ||
| enabled: false | ||
|
|
||
| entity_key_serialization_version: 3 No newline at end of file |
There was a problem hiding this comment.
as mcp will only implement onlinstore, instead of make new section with feature_server is that possible we can add into into onlinstore section WDYT ?
Sorry, something went wrong.
There was a problem hiding this comment.
While embedding MCP config in the online_store section might seem logical, I'd recommend using a separate feature_server section instead:
Why this approach is better:
What do u think @franciscojavierarceo @ntkathole
Sorry, something went wrong.
There was a problem hiding this comment.
I'm good with it.
Sorry, something went wrong.
There was a problem hiding this comment.
What is the purpose of these 3 fields
my suggestion was if we change the name for example mcp_server then maybe we don't required these field. you can look mcp_server section if user added that section then it will be enabled else by default it will disabled/null. Let me know if that make sense or the current approach is more better. Thanks
Sorry, something went wrong.
There was a problem hiding this comment.
+1
Sorry, something went wrong.
There was a problem hiding this comment.
What @redhatHameed suggested 👍
Sorry, something went wrong.
There was a problem hiding this comment.
In short MCP online store config looks like:
No hassle of enabling explicitely.
Sorry, something went wrong.
There was a problem hiding this comment.
even if we can make like, that will remove extra type field.
Sorry, something went wrong.
There was a problem hiding this comment.
@redhatHameed mind addressing in a follow up PR? I think this is good enough as an MVP
Sorry, something went wrong.
There was a problem hiding this comment.
@YassinNouh21 this item. Removing the type field from the mcp_server object.
Sorry, something went wrong.
There was a problem hiding this comment.
I don't see the mcp logic in the PR? Or that's up to the user to implement?
Sorry, something went wrong.
|
It comes from the MCP fast api library addition and config I believe. @YassinNouh21 can you add a unit test to test the MCP server works in the feature server? |
Sorry, something went wrong.
|
Oh yes sorry I even saw that before 🤦♂️ |
Sorry, something went wrong.
| assert result is None | ||
|
|
||
|
|
||
| class TestFeatureServerIntegration: |
There was a problem hiding this comment.
You should be able to test the MCP feature server itself
Sorry, something went wrong.
There was a problem hiding this comment.
@franciscojavierarceo
I created integration test for it. is it sufficient or not?
Sorry, something went wrong.
|
Last step @YassinNouh21 just need to run make lock-python-dependencies-all to generate the updated requirements files. |
Sorry, something went wrong.
|
FYI @franciscojavierarceo @tchughesiv I hope this will not give hard time while build from source kind of issues in downstream, thought it's optional |
Sorry, something went wrong.
| mcp = FastApiMCP( | ||
| app, | ||
| name=getattr(config, "mcp_server_name", "feast-feature-store"), | ||
| description="Feast Feature Store MCP Server - Access feature store data and operations through MCP", |
There was a problem hiding this comment.
@YassinNouh21 can we check if we can use other parameters like
Sorry, something went wrong.
|
I tried to run make lock-python-dependencies-all but it failed for some reason if can someone help # milvus-lite
Using Python 3.10.17 environment at: infra/scripts/pixi/.pixi/envs/py310
Audited 2 packages in 13ms
Aborted!
make: *** [lock-python-dependencies-all] Error 1
|
Sorry, something went wrong.
|
@franciscojavierarceo if u can assist in the make lock-python-dependencies-all |
Sorry, something went wrong.
|
I tried to run make lock-python-dependencies-all but it failed for some reason if can someone help # milvus-lite
Using Python 3.10.17 environment at: infra/scripts/pixi/.pixi/envs/py310
Audited 2 packages in 13ms
Aborted!
make: *** [lock-python-dependencies-all] Error 1
Do you see any traceback here? Initially milvus-lite does take long time to build, tried keep it running for few mins? |
Sorry, something went wrong.
|
alright i compiled the requirements and pushed the changes, also fixed a small DCO. |
Sorry, something went wrong.
|
@franciscojavierarceo thanks |
Sorry, something went wrong.
|
@YassinNouh21 can you address @redhatHameed's feedback in a follow up PR by any chance? |
Sorry, something went wrong.
|
@YassinNouh21 do you mind opening the follow up PR? |
Sorry, something went wrong.
|
@YassinNouh21 do you mind opening the follow up PR? No problem u mean that the remnaing features ? |
Sorry, something went wrong.
What this PR does / why we need it:
This PR implements Model Context Protocol (MCP) support for Feast's feature server, enabling AI agents and applications to interact with Feast feature stores through standardized MCP interfaces.
Key Features:
Implementation Details:
Which issue(s) this PR fixes:
Fixes #5404