Skip to content

Conversation

YassinNouh21
Copy link
Contributor

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:

  • Optional MCP Integration: MCP support is disabled by default and can be enabled via feature store YAML configuration
  • New Feature Server Type: Introduces mcp feature server type with configurable options
  • MCP Tools: Exposes Feast functionality through MCP tools:
    • get_online_features: Retrieve feature values for entities
    • list_feature_views: List all available feature views
    • list_feature_services: List all available feature services
    • get_feature_store_info: Get feature store metadata
  • MCP Resources: Provides JSON resources for feature views and services
  • Comprehensive Testing: Includes unit tests for all MCP functionality
  • Documentation & Examples: Complete example configuration and usage guide

Implementation Details:

  • Uses fastapi_mcp library for MCP protocol integration
  • Graceful fallback when MCP dependencies are not installed
  • Proper error handling and logging throughout
  • Type-safe implementation with full mypy compliance
  • Follows Feast's existing patterns for feature server extensibility

Which issue(s) this PR fixes:

Fixes #5404

@YassinNouh21 YassinNouh21 requested a review from a team as a code owner May 31, 2025 10:45
@@ -0,0 +1,114 @@
# Feast MCP Feature Server Example

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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]

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@franciscojavierarceo done can u check it

Copy link
Member

@franciscojavierarceo franciscojavierarceo left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Some last few bits and one question about the config

@@ -105,6 +105,7 @@

FEATURE_SERVER_CONFIG_CLASS_FOR_TYPE = {
"local": "feast.infra.feature_servers.local_process.config.LocalFeatureServerConfig",
"mcp": "feast.infra.feature_servers.mcp_config.McpFeatureServerConfig",

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Does this mean you can't run MCP locally?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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:

  • type: local = Basic feature server without MCP protocol support
  • type: mcp = Feature server with MCP protocol support (can still run on localhost)

franciscojavierarceo and others added 12 commits May 31, 2025 18:25
…nce" (feast-dev#5398)

Revert "fix: Update milvus connect function to work with remote instance (feast-dev#5382)"

This reverts commit 7e5e7d5.

Signed-off-by: yassinnouh21 <yassinnouh21@gmail.com>
…ality (feast-dev#5389)

Signed-off-by: Srihari <svenkata@redhat.com>
Signed-off-by: yassinnouh21 <yassinnouh21@gmail.com>
…east-dev#5401)

* Updating milvus connect function to work with remote instance

Signed-off-by: Fiona Waters <fiwaters6@gmail.com>

* Update test configuration to use path for db

Signed-off-by: Fiona Waters <fiwaters6@gmail.com>

---------

Signed-off-by: Fiona Waters <fiwaters6@gmail.com>
Signed-off-by: yassinnouh21 <yassinnouh21@gmail.com>
Signed-off-by: yassinnouh21 <yassinnouh21@gmail.com>
Signed-off-by: yassinnouh21 <yassinnouh21@gmail.com>
Signed-off-by: yassinnouh21 <yassinnouh21@gmail.com>
Signed-off-by: yassinnouh21 <yassinnouh21@gmail.com>
Signed-off-by: yassinnouh21 <yassinnouh21@gmail.com>
Signed-off-by: yassinnouh21 <yassinnouh21@gmail.com>
Signed-off-by: yassinnouh21 <yassinnouh21@gmail.com>
Signed-off-by: yassinnouh21 <yassinnouh21@gmail.com>
Signed-off-by: yassinnouh21 <yassinnouh21@gmail.com>
Signed-off-by: yassinnouh21 <yassinnouh21@gmail.com>
@redhatHameed
Copy link
Contributor

@YassinNouh21 can you rebase the PR I am seeing changes/commits with operator e2e tests.

@YassinNouh21
Copy link
Contributor Author

@franciscojavierarceo can u take a look again

feature_logging:
enabled: false

entity_key_serialization_version: 3
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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 ?

online_store:
  type: sqlite
  path: data/online_store.db

  mcp:
    enabled: true
    server_name: "feast-feature-store"
    server_version: "1.0.0"
    feature_logging:
      enabled: false```

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

While embedding MCP config in the online_store section might seem logical, I'd recommend using a separate feature_server section instead:

online_store:
  type: sqlite
  path: data/online_store.db

feature_server:
  type: mcp
  enabled: true
  mcp_enabled: true
  mcp_server_name: "feast-feature-store"
  mcp_server_version: "1.0.0"
  feature_logging:
    enabled: false

Why this approach is better:

  • MCP is a feature server protocol for API exposure, not an online store storage concern
  • Follows the same pattern as other feature server types (local, etc.)
  • The McpFeatureServerConfig class inherits from BaseFeatureServerConfig, indicating it's designed as a feature server component

What do u think @franciscojavierarceo @ntkathole

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm good with it.

Copy link
Contributor

@redhatHameed redhatHameed Jun 2, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What is the purpose of these 3 fields

type: mcp  
enabled: true  
mcp_enabled: true  

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

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

+1

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What @redhatHameed suggested 👍

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In short MCP online store config looks like:

feature_server:
  type: mcp
  mcp_server_name: "feast-feature-store"
  mcp_server_version: "1.0.0"
  feature_logging: enabled: false

No hassle of enabling explicitely.

Copy link
Contributor

@redhatHameed redhatHameed Jun 4, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

even if we can make like, that will remove extra type field.

mcp_server:
  mcp_server_name: "feast-feature-store"
  mcp_server_version: "1.0.0"
  feature_logging: enabled: false

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@redhatHameed mind addressing in a follow up PR? I think this is good enough as an MVP

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@YassinNouh21 this item. Removing the type field from the mcp_server object.

Signed-off-by: yassinnouh21 <yassinnouh21@gmail.com>
Copy link
Collaborator

@HaoXuAI HaoXuAI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't see the mcp logic in the PR? Or that's up to the user to implement?

@franciscojavierarceo
Copy link
Member

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?

Signed-off-by: yassinnouh21 <yassinnouh21@gmail.com>
@YassinNouh21
Copy link
Contributor Author

can you add a unit test to test the MCP server works in the feature server?

Actually I tested those. I don't understand what do u mean?

What the tests cover:
Already tested:

  • MCP configuration validation
  • MCP server initialization with FastAPI app
  • Error handling when MCP is not available
  • Integration with the _add_mcp_support_if_enabled function from feast.feature_server

What might be missing:
Not fully tested:

  • Full end-to-end test of the feature server with MCP enabled
  • Testing the actual MCP endpoints/functionality

@franciscojavierarceo
Copy link
Member

Oh yes sorry I even saw that before 🤦‍♂️

assert result is None


class TestFeatureServerIntegration:

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You should be able to test the MCP feature server itself

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@franciscojavierarceo
I created integration test for it. is it sufficient or not?

Signed-off-by: yassinnouh21 <yassinnouh21@gmail.com>
Signed-off-by: yassinnouh21 <yassinnouh21@gmail.com>
Signed-off-by: yassinnouh21 <yassinnouh21@gmail.com>
@franciscojavierarceo
Copy link
Member

Last step @YassinNouh21 just need to run make lock-python-dependencies-all to generate the updated requirements files.

@redhatHameed
Copy link
Contributor

FYI @franciscojavierarceo @tchughesiv I hope this will not give hard time while build from source kind of issues in downstream, thought it's optional

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",
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@YassinNouh21 can we check if we can use other parameters like

describe_full_response_schema=True, 
describe_all_responses=True,  

https://github.com/tadata-org/fastapi_mcp/blob/main/examples/02_full_schema_description_example.py#L13-L19

@YassinNouh21
Copy link
Contributor Author

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

@YassinNouh21
Copy link
Contributor Author

@franciscojavierarceo if u can assist in the make lock-python-dependencies-all

@ntkathole
Copy link
Member

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?
Command worked fine for me, I am just not able to push to YassinNouh21/feat/mcp branch.

franciscojavierarceo and others added 2 commits June 3, 2025 21:49
Signed-off-by: Francisco Javier Arceo <farceo@redhat.com>
@franciscojavierarceo
Copy link
Member

alright i compiled the requirements and pushed the changes, also fixed a small DCO.

Signed-off-by: Francisco Javier Arceo <farceo@redhat.com>
Signed-off-by: Francisco Javier Arceo <farceo@redhat.com>
Signed-off-by: Francisco Javier Arceo <farceo@redhat.com>
@YassinNouh21
Copy link
Contributor Author

@franciscojavierarceo thanks

@franciscojavierarceo franciscojavierarceo merged commit de650de into feast-dev:master Jun 4, 2025
21 checks passed
@franciscojavierarceo
Copy link
Member

@YassinNouh21 can you address @redhatHameed's feedback in a follow up PR by any chance?

j-wine pushed a commit to j-wine/feast that referenced this pull request Jun 7, 2025
…er (feast-dev#5406)

* Revert "fix: Update milvus connect function to work with remote instance" (feast-dev#5398)

Revert "fix: Update milvus connect function to work with remote instance (feast-dev#5382)"

This reverts commit 7e5e7d5.

Signed-off-by: yassinnouh21 <yassinnouh21@gmail.com>

* test: Add Operator E2E tests for Feast Apply and Materialize functionality (feast-dev#5389)

Signed-off-by: Srihari <svenkata@redhat.com>
Signed-off-by: yassinnouh21 <yassinnouh21@gmail.com>

* fix: Updating milvus connect function to work with remote instance (feast-dev#5401)

* Updating milvus connect function to work with remote instance

Signed-off-by: Fiona Waters <fiwaters6@gmail.com>

* Update test configuration to use path for db

Signed-off-by: Fiona Waters <fiwaters6@gmail.com>

---------

Signed-off-by: Fiona Waters <fiwaters6@gmail.com>
Signed-off-by: yassinnouh21 <yassinnouh21@gmail.com>

* feat: Add MCP support to feature server configuration

Signed-off-by: yassinnouh21 <yassinnouh21@gmail.com>

* fix linter

Signed-off-by: yassinnouh21 <yassinnouh21@gmail.com>

* add example

Signed-off-by: yassinnouh21 <yassinnouh21@gmail.com>

* test: add test cases for the mcp server

Signed-off-by: yassinnouh21 <yassinnouh21@gmail.com>

* fix linter

Signed-off-by: yassinnouh21 <yassinnouh21@gmail.com>

* formatting

Signed-off-by: yassinnouh21 <yassinnouh21@gmail.com>

* docs: update README for MCP setup instructions

Signed-off-by: yassinnouh21 <yassinnouh21@gmail.com>

* fix: update transformation service endpoint and refactor MCP integration

Signed-off-by: yassinnouh21 <yassinnouh21@gmail.com>

* feat: add Model Context Protocol (MCP) support and update documentation

Signed-off-by: yassinnouh21 <yassinnouh21@gmail.com>

* fix: update entity key serialization version and improve README clarity

Signed-off-by: yassinnouh21 <yassinnouh21@gmail.com>

* fix: refactor MCP imports to use the correct module path

Signed-off-by: yassinnouh21 <yassinnouh21@gmail.com>

* feat: Add MCP server implementation files

Signed-off-by: yassinnouh21 <yassinnouh21@gmail.com>

* test: MCP server unit tests and integration tests

Signed-off-by: yassinnouh21 <yassinnouh21@gmail.com>

* fix formatting

Signed-off-by: yassinnouh21 <yassinnouh21@gmail.com>

* fix formatting

Signed-off-by: yassinnouh21 <yassinnouh21@gmail.com>

* adding compiled requirements

Signed-off-by: Francisco Javier Arceo <farceo@redhat.com>

* fix linter

Signed-off-by: Francisco Javier Arceo <farceo@redhat.com>

* reverting duckdb change

Signed-off-by: Francisco Javier Arceo <farceo@redhat.com>

* needed to do file source and duckdb

Signed-off-by: Francisco Javier Arceo <farceo@redhat.com>

---------

Signed-off-by: yassinnouh21 <yassinnouh21@gmail.com>
Signed-off-by: Srihari <svenkata@redhat.com>
Signed-off-by: Fiona Waters <fiwaters6@gmail.com>
Signed-off-by: Francisco Javier Arceo <farceo@redhat.com>
Co-authored-by: Francisco Arceo <arceofrancisco@gmail.com>
Co-authored-by: Srihari Venkataramaiah <svenkata@redhat.com>
Co-authored-by: Fiona Waters <fiwaters6@gmail.com>
Co-authored-by: Francisco Javier Arceo <farceo@redhat.com>
Signed-off-by: Jacob Weinhold <29459386+j-wine@users.noreply.github.com>
devin-ai-integration bot pushed a commit to franciscojavierarceo/feast that referenced this pull request Jun 9, 2025
…er (feast-dev#5406)

* Revert "fix: Update milvus connect function to work with remote instance" (feast-dev#5398)

Revert "fix: Update milvus connect function to work with remote instance (feast-dev#5382)"

This reverts commit 7e5e7d5.

Signed-off-by: yassinnouh21 <yassinnouh21@gmail.com>

* test: Add Operator E2E tests for Feast Apply and Materialize functionality (feast-dev#5389)

Signed-off-by: Srihari <svenkata@redhat.com>
Signed-off-by: yassinnouh21 <yassinnouh21@gmail.com>

* fix: Updating milvus connect function to work with remote instance (feast-dev#5401)

* Updating milvus connect function to work with remote instance

Signed-off-by: Fiona Waters <fiwaters6@gmail.com>

* Update test configuration to use path for db

Signed-off-by: Fiona Waters <fiwaters6@gmail.com>

---------

Signed-off-by: Fiona Waters <fiwaters6@gmail.com>
Signed-off-by: yassinnouh21 <yassinnouh21@gmail.com>

* feat: Add MCP support to feature server configuration

Signed-off-by: yassinnouh21 <yassinnouh21@gmail.com>

* fix linter

Signed-off-by: yassinnouh21 <yassinnouh21@gmail.com>

* add example

Signed-off-by: yassinnouh21 <yassinnouh21@gmail.com>

* test: add test cases for the mcp server

Signed-off-by: yassinnouh21 <yassinnouh21@gmail.com>

* fix linter

Signed-off-by: yassinnouh21 <yassinnouh21@gmail.com>

* formatting

Signed-off-by: yassinnouh21 <yassinnouh21@gmail.com>

* docs: update README for MCP setup instructions

Signed-off-by: yassinnouh21 <yassinnouh21@gmail.com>

* fix: update transformation service endpoint and refactor MCP integration

Signed-off-by: yassinnouh21 <yassinnouh21@gmail.com>

* feat: add Model Context Protocol (MCP) support and update documentation

Signed-off-by: yassinnouh21 <yassinnouh21@gmail.com>

* fix: update entity key serialization version and improve README clarity

Signed-off-by: yassinnouh21 <yassinnouh21@gmail.com>

* fix: refactor MCP imports to use the correct module path

Signed-off-by: yassinnouh21 <yassinnouh21@gmail.com>

* feat: Add MCP server implementation files

Signed-off-by: yassinnouh21 <yassinnouh21@gmail.com>

* test: MCP server unit tests and integration tests

Signed-off-by: yassinnouh21 <yassinnouh21@gmail.com>

* fix formatting

Signed-off-by: yassinnouh21 <yassinnouh21@gmail.com>

* fix formatting

Signed-off-by: yassinnouh21 <yassinnouh21@gmail.com>

* adding compiled requirements

Signed-off-by: Francisco Javier Arceo <farceo@redhat.com>

* fix linter

Signed-off-by: Francisco Javier Arceo <farceo@redhat.com>

* reverting duckdb change

Signed-off-by: Francisco Javier Arceo <farceo@redhat.com>

* needed to do file source and duckdb

Signed-off-by: Francisco Javier Arceo <farceo@redhat.com>

---------

Signed-off-by: yassinnouh21 <yassinnouh21@gmail.com>
Signed-off-by: Srihari <svenkata@redhat.com>
Signed-off-by: Fiona Waters <fiwaters6@gmail.com>
Signed-off-by: Francisco Javier Arceo <farceo@redhat.com>
Co-authored-by: Francisco Arceo <arceofrancisco@gmail.com>
Co-authored-by: Srihari Venkataramaiah <svenkata@redhat.com>
Co-authored-by: Fiona Waters <fiwaters6@gmail.com>
Co-authored-by: Francisco Javier Arceo <farceo@redhat.com>
@franciscojavierarceo
Copy link
Member

@YassinNouh21 do you mind opening the follow up PR?

@YassinNouh21
Copy link
Contributor Author

@YassinNouh21 do you mind opening the follow up PR?

No problem u mean that the remnaing features ?

franciscojavierarceo pushed a commit that referenced this pull request Jun 30, 2025
# [0.50.0](v0.49.0...v0.50.0) (2025-06-30)

### Bug Fixes

* Add asyncio to integration test ([#5418](#5418)) ([6765515](6765515))
* Add clickhouse to OFFLINE_STORE_CLASS_FOR_TYPE map ([#5251](#5251)) ([9ed2ffa](9ed2ffa))
* Add missing conn.commit() in SnowflakeOnlineStore.online_write_batch ([#5432](#5432)) ([a83dd85](a83dd85))
* Add transformers in required dependencies ([8cde460](8cde460))
* Allow custom annotations on Operator installed objects ([#5339](#5339)) ([44c7a76](44c7a76))
* Dask pulling of latest data ([#5229](#5229)) ([571d81f](571d81f))
* **dask:** preserve remote URIs (e.g. s3://) in DaskOfflineStore path resolution ([2561cfc](2561cfc))
* Fix Event loop is closed error on dynamodb test ([#5480](#5480)) ([fe0f671](fe0f671))
* Fix lineage entity filtering ([#5321](#5321)) ([0d05701](0d05701))
* Fix list saved dataset api ([833696c](833696c))
* Fix NumPy - PyArrow array type mapping in Trino offline store ([#5393](#5393)) ([9ba9ded](9ba9ded))
* Fix pandas 2.x compatibility issue of Trino offline store caused by removed Series.iteritems() method ([#5345](#5345)) ([61e3e02](61e3e02))
* Fix polling mechanism for TestApplyAndMaterialize ([#5451](#5451)) ([b512a74](b512a74))
* Fix remote rbac integration tests ([#5473](#5473)) ([10879ec](10879ec))
* Fix Trino offline store SQL in Jinja template ([#5346](#5346)) ([648c53d](648c53d))
* Fixed CurlGeneratorTab github theme type ([#5425](#5425)) ([5f15329](5f15329))
* Increase the Operator Manager memory limits and requests ([#5441](#5441)) ([6c94dbf](6c94dbf))
* Method signature for push_async is out of date ([#5413](#5413)) ([28c3379](28c3379)), closes [#5410](#5410) [#006BB4](https://github.com/feast-dev/feast/issues/006BB4)
* Operator - support securityContext override at Pod level ([#5325](#5325)) ([33ea0f5](33ea0f5))
* Pybuild-deps throws errors w/ latest pip version ([#5311](#5311)) ([f2d6a67](f2d6a67))
* Reopen for integration test about add s3 storage-based registry store in Go feature server ([#5352](#5352)) ([ef75f61](ef75f61))
* resolve Python logger warnings ([#5361](#5361)) ([37d5c19](37d5c19))
* The ignore_paths not taking effect duration feast apply ([#5353](#5353)) ([e4917ca](e4917ca))
* Update generate_answer function to provide correct parameter format to retrieve function ([dc5b2af](dc5b2af))
* Update milvus connect function to work with remote instance ([#5382](#5382)) ([7e5e7d5](7e5e7d5))
* Updating milvus connect function to work with remote instance ([#5401](#5401)) ([b89fadd](b89fadd))
* Upperbound limit for protobuf generation ([#5309](#5309)) ([a114aae](a114aae))

### Features

* Add CLI, SDK, and API documentation page to Feast UI ([#5337](#5337)) ([203e888](203e888))
* Add dark mode toggle to Feast UI ([#5314](#5314)) ([ad02e46](ad02e46))
* Add data labeling tabs to UI ([#5410](#5410)) ([389ceb7](389ceb7)), closes [#006BB4](https://github.com/feast-dev/feast/issues/006BB4)
* Add Decimal to allowed python scalar types ([#5367](#5367)) ([4777c03](4777c03))
* Add feast rag retriver functionality ([#5405](#5405)) ([0173033](0173033))
* Add feature view curl generator ([#5415](#5415)) ([7a5b48f](7a5b48f))
* Add feature view lineage tab and filtering to home page lineage ([#5308](#5308)) ([308255d](308255d))
* Add feature view tags to dynamo tags ([#5291](#5291)) ([3a787ac](3a787ac))
* Add HybridOnlineStore for multi-backend online store routing ([#5423](#5423)) ([ebd67d1](ebd67d1))
* Add max_file_size to Snowflake config ([#5377](#5377)) ([e8cdf5d](e8cdf5d))
* Add MCP (Model Context Protocol) support for Feast feature server ([#5406](#5406)) ([de650de](de650de)), closes [#5398](#5398) [#5382](#5382) [#5389](#5389) [#5401](#5401)
* Add rag project to default dev UI ([#5323](#5323)) ([3b3e1c8](3b3e1c8))
* Add s3 storage-based registry store in Go feature server ([#5336](#5336)) ([abe18df](abe18df))
* Add support for data labeling in UI ([#5409](#5409)) ([d183c4b](d183c4b)), closes [#27](#27)
* Added Lineage APIs to get registry objects relationships ([#5472](#5472)) ([be004ef](be004ef))
* Added rest-apis serving option for registry server ([#5342](#5342)) ([9740fd1](9740fd1))
* Added torch.Tensor as option for online and offline retrieval ([#5381](#5381)) ([0b4ae95](0b4ae95))
* Adding feast delete to CLI ([#5344](#5344)) ([19fe3ac](19fe3ac))
* Adding permissions to UI and refactoring some things ([#5320](#5320)) ([6f1b0cc](6f1b0cc))
* Allow to set registry server rest/grpc mode in operator ([#5364](#5364)) ([99afd6d](99afd6d))
* Allow to use env variable FEAST_FS_YAML_FILE_PATH and FEATURE_REPO_DIR ([#5420](#5420)) ([6a1b33a](6a1b33a))
* Enable materialization for ODFV Transform on Write ([#5459](#5459)) ([3d17892](3d17892))
* Improve search results formatting ([#5326](#5326)) ([18cbd7f](18cbd7f))
* Improvements to Lambda materialization engine ([#5379](#5379)) ([b486f29](b486f29))
* Make batch_source optional in PushSource ([#5440](#5440)) ([#5454](#5454)) ([ae7e20e](ae7e20e))
* Refactor materialization engine ([#5354](#5354)) ([f5c5360](f5c5360))
* Remote Write to Online Store completes client / server architecture ([#5422](#5422)) ([2368f42](2368f42))
* Serialization version 2 and below removed ([#5435](#5435)) ([9e50e18](9e50e18))
* SQLite online retrieval. Add timezone info into timestamp. ([#5386](#5386)) ([6b05153](6b05153))
* Support dual-mode REST and gRPC for Feast Registry Server ([#5396](#5396)) ([fd1f448](fd1f448))
* Support DynamoDB as online store in Go feature server ([#5464](#5464)) ([40d25c6](40d25c6))
* Update Spark Compute read source node to be able to use other data sources ([#5445](#5445)) ([a93d300](a93d300))

### Reverts

* Feat: Add CLI, SDK, and API documentation page to Feast UI" ([#5341](#5341)) ([b492f14](b492f14)), closes [#5337](#5337)
* Revert "feat: Add s3 storage-based registry store in Go feature server" ([#5351](#5351)) ([d5d6766](d5d6766)), closes [#5336](#5336)
* Revert "fix: Update milvus connect function to work with remote instance" ([#5398](#5398)) ([434dd92](434dd92)), closes [#5382](#5382)
franciscojavierarceo pushed a commit that referenced this pull request Jul 1, 2025
# [0.50.0](v0.49.0...v0.50.0) (2025-07-01)

### Bug Fixes

* Add asyncio to integration test ([#5418](#5418)) ([6765515](6765515))
* Add clickhouse to OFFLINE_STORE_CLASS_FOR_TYPE map ([#5251](#5251)) ([9ed2ffa](9ed2ffa))
* Add missing conn.commit() in SnowflakeOnlineStore.online_write_batch ([#5432](#5432)) ([a83dd85](a83dd85))
* Add transformers in required dependencies ([8cde460](8cde460))
* Allow custom annotations on Operator installed objects ([#5339](#5339)) ([44c7a76](44c7a76))
* Dask pulling of latest data ([#5229](#5229)) ([571d81f](571d81f))
* **dask:** preserve remote URIs (e.g. s3://) in DaskOfflineStore path resolution ([2561cfc](2561cfc))
* Fix Event loop is closed error on dynamodb test ([#5480](#5480)) ([fe0f671](fe0f671))
* Fix lineage entity filtering ([#5321](#5321)) ([0d05701](0d05701))
* Fix list saved dataset api ([833696c](833696c))
* Fix NumPy - PyArrow array type mapping in Trino offline store ([#5393](#5393)) ([9ba9ded](9ba9ded))
* Fix pandas 2.x compatibility issue of Trino offline store caused by removed Series.iteritems() method ([#5345](#5345)) ([61e3e02](61e3e02))
* Fix polling mechanism for TestApplyAndMaterialize ([#5451](#5451)) ([b512a74](b512a74))
* Fix remote rbac integration tests ([#5473](#5473)) ([10879ec](10879ec))
* Fix Trino offline store SQL in Jinja template ([#5346](#5346)) ([648c53d](648c53d))
* Fixed CurlGeneratorTab github theme type ([#5425](#5425)) ([5f15329](5f15329))
* Increase the Operator Manager memory limits and requests ([#5441](#5441)) ([6c94dbf](6c94dbf))
* Method signature for push_async is out of date ([#5413](#5413)) ([28c3379](28c3379)), closes [#5410](#5410) [#006BB4](https://github.com/feast-dev/feast/issues/006BB4)
* Operator - support securityContext override at Pod level ([#5325](#5325)) ([33ea0f5](33ea0f5))
* Pybuild-deps throws errors w/ latest pip version ([#5311](#5311)) ([f2d6a67](f2d6a67))
* Reopen for integration test about add s3 storage-based registry store in Go feature server ([#5352](#5352)) ([ef75f61](ef75f61))
* resolve Python logger warnings ([#5361](#5361)) ([37d5c19](37d5c19))
* The ignore_paths not taking effect duration feast apply ([#5353](#5353)) ([e4917ca](e4917ca))
* Update generate_answer function to provide correct parameter format to retrieve function ([dc5b2af](dc5b2af))
* Update milvus connect function to work with remote instance ([#5382](#5382)) ([7e5e7d5](7e5e7d5))
* Updating milvus connect function to work with remote instance ([#5401](#5401)) ([b89fadd](b89fadd))
* Upperbound limit for protobuf generation ([#5309](#5309)) ([a114aae](a114aae))

### Features

* Add CLI, SDK, and API documentation page to Feast UI ([#5337](#5337)) ([203e888](203e888))
* Add dark mode toggle to Feast UI ([#5314](#5314)) ([ad02e46](ad02e46))
* Add data labeling tabs to UI ([#5410](#5410)) ([389ceb7](389ceb7)), closes [#006BB4](https://github.com/feast-dev/feast/issues/006BB4)
* Add Decimal to allowed python scalar types ([#5367](#5367)) ([4777c03](4777c03))
* Add feast rag retriver functionality ([#5405](#5405)) ([0173033](0173033))
* Add feature view curl generator ([#5415](#5415)) ([7a5b48f](7a5b48f))
* Add feature view lineage tab and filtering to home page lineage ([#5308](#5308)) ([308255d](308255d))
* Add feature view tags to dynamo tags ([#5291](#5291)) ([3a787ac](3a787ac))
* Add HybridOnlineStore for multi-backend online store routing ([#5423](#5423)) ([ebd67d1](ebd67d1))
* Add max_file_size to Snowflake config ([#5377](#5377)) ([e8cdf5d](e8cdf5d))
* Add MCP (Model Context Protocol) support for Feast feature server ([#5406](#5406)) ([de650de](de650de)), closes [#5398](#5398) [#5382](#5382) [#5389](#5389) [#5401](#5401)
* Add rag project to default dev UI ([#5323](#5323)) ([3b3e1c8](3b3e1c8))
* Add s3 storage-based registry store in Go feature server ([#5336](#5336)) ([abe18df](abe18df))
* Add support for data labeling in UI ([#5409](#5409)) ([d183c4b](d183c4b)), closes [#27](#27)
* Added Lineage APIs to get registry objects relationships ([#5472](#5472)) ([be004ef](be004ef))
* Added rest-apis serving option for registry server ([#5342](#5342)) ([9740fd1](9740fd1))
* Added torch.Tensor as option for online and offline retrieval ([#5381](#5381)) ([0b4ae95](0b4ae95))
* Adding feast delete to CLI ([#5344](#5344)) ([19fe3ac](19fe3ac))
* Adding permissions to UI and refactoring some things ([#5320](#5320)) ([6f1b0cc](6f1b0cc))
* Allow to set registry server rest/grpc mode in operator ([#5364](#5364)) ([99afd6d](99afd6d))
* Allow to use env variable FEAST_FS_YAML_FILE_PATH and FEATURE_REPO_DIR ([#5420](#5420)) ([6a1b33a](6a1b33a))
* Enable materialization for ODFV Transform on Write ([#5459](#5459)) ([3d17892](3d17892))
* Improve search results formatting ([#5326](#5326)) ([18cbd7f](18cbd7f))
* Improvements to Lambda materialization engine ([#5379](#5379)) ([b486f29](b486f29))
* Make batch_source optional in PushSource ([#5440](#5440)) ([#5454](#5454)) ([ae7e20e](ae7e20e))
* Refactor materialization engine ([#5354](#5354)) ([f5c5360](f5c5360))
* Remote Write to Online Store completes client / server architecture ([#5422](#5422)) ([2368f42](2368f42))
* Serialization version 2 and below removed ([#5435](#5435)) ([9e50e18](9e50e18))
* SQLite online retrieval. Add timezone info into timestamp. ([#5386](#5386)) ([6b05153](6b05153))
* Support dual-mode REST and gRPC for Feast Registry Server ([#5396](#5396)) ([fd1f448](fd1f448))
* Support DynamoDB as online store in Go feature server ([#5464](#5464)) ([40d25c6](40d25c6))
* Update Spark Compute read source node to be able to use other data sources ([#5445](#5445)) ([a93d300](a93d300))

### Reverts

* Chore Release "chore(release): release 0.50.0" ([#5483](#5483)) ([0eef391](0eef391))
* Feat: Add CLI, SDK, and API documentation page to Feast UI" ([#5341](#5341)) ([b492f14](b492f14)), closes [#5337](#5337)
* Revert "feat: Add s3 storage-based registry store in Go feature server" ([#5351](#5351)) ([d5d6766](d5d6766)), closes [#5336](#5336)
* Revert "fix: Update milvus connect function to work with remote instance" ([#5398](#5398)) ([434dd92](434dd92)), closes [#5382](#5382)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Enable MCP support for Feast
8 participants