Skip to content

Commit 98e5bca

Browse files
nithin42ntkathole
authored andcommitted
fix: downgrade mcp pin to 1.29.0 and fix CI lockfiles and unit tests
The CI requirements lock files pinned mcp==2.0.0 and mcp-types==2.0.0, which conflicts with the pyproject.toml constraint mcp>=1.0,<2 added in a recent change. This caused integration tests and the feature server to fail with: TypeError: Server.__init__() takes 2 positional arguments but 3 were given This commit: - Downgrades mcp to 1.29.0 across all nine py3.{10,11,12}-{ci,minimal,minimal-sdist}-requirements.txt lock files. - Adds httpx-sse==0.4.0 with sha256 hashes to all nine lock files (required by mcp==1.29.0). - Removes mcp-types from all lock files; mcp==1.29.0 declares no dependency on it. - Updates unit tests in sdk/python/tests/unit/infra/feature_servers/test_mcp_server.py to isolate RestRegistryServer from unmocked RegistryServer gRPC handlers. Fixes #6706 Signed-off-by: Nithin <kumbam.nithingoud@gmail.com>
1 parent b8dfcb0 commit 98e5bca

10 files changed

Lines changed: 108 additions & 75 deletions

sdk/python/requirements/py3.10-ci-requirements.txt

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2796,14 +2796,12 @@ matplotlib-inline==0.2.2 \
27962796
# via
27972797
# ipykernel
27982798
# ipython
2799-
mcp==2.0.0 \
2800-
--hash=sha256:0f440e735c13ece8bb19bc62cf0b86f4313448432fbb77d35e14034f4e050728 \
2801-
--hash=sha256:1cb4c75d2d2c7b8c1d756355e5d82a39f2822cc7f13e22a2051d7ca3592349d6
2802-
# via fastapi-mcp
2803-
mcp-types==2.0.0 \
2804-
--hash=sha256:6b2de797ca2797f568b79529e1b25948e34de511bcc0bd82fef1039a6d1b8eb0 \
2805-
--hash=sha256:d7d939b9285c9961ae8866ba75ef85da34d12bafe276efbf4eb6a131786d8379
2806-
# via mcp
2799+
mcp==1.29.0 \
2800+
--hash=sha256:52d01f334de1868cc3bb2d6604931126a67631f99a6c5d3b82ba47290315ec36 \
2801+
--hash=sha256:f5a075bb611f23d6f4d080c6a1699fa62772eebc562ba9e66b306ddde1c755f7
2802+
# via
2803+
# feast (pyproject.toml)
2804+
# fastapi-mcp
28072805
mdurl==0.1.2 \
28082806
--hash=sha256:84008a41e51615a49fc9966191ff91509e3c40b939176e643fd50a5c2196b8f8 \
28092807
--hash=sha256:bb413d29f5eea38f31dd4754dd7377d4465116fb207585f97bf925588687c1ba
@@ -7568,3 +7566,8 @@ zstandard==0.25.0 \
75687566
# via
75697567
# pyiceberg
75707568
# trino
7569+
7570+
httpx-sse==0.4.0 \
7571+
--hash=sha256:1e81a3a3070ce322add1d3529ed42eb5f70817f45ed6ec915ab753f961139721 \
7572+
--hash=sha256:f329af6eae57eaa2bdfd962b42524764af68075ea87370a2de920af5341e318f
7573+
# via mcp

sdk/python/requirements/py3.10-minimal-requirements.txt

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1367,14 +1367,12 @@ markupsafe==3.0.3 \
13671367
--hash=sha256:f9e130248f4462aaa8e2552d547f36ddadbeaa573879158d721bbd33dfe4743a \
13681368
--hash=sha256:fed51ac40f757d41b7c48425901843666a6677e3e8eb0abcff09e4ba6e664f50
13691369
# via jinja2
1370-
mcp==2.0.0 \
1371-
--hash=sha256:0f440e735c13ece8bb19bc62cf0b86f4313448432fbb77d35e14034f4e050728 \
1372-
--hash=sha256:1cb4c75d2d2c7b8c1d756355e5d82a39f2822cc7f13e22a2051d7ca3592349d6
1373-
# via fastapi-mcp
1374-
mcp-types==2.0.0 \
1375-
--hash=sha256:6b2de797ca2797f568b79529e1b25948e34de511bcc0bd82fef1039a6d1b8eb0 \
1376-
--hash=sha256:d7d939b9285c9961ae8866ba75ef85da34d12bafe276efbf4eb6a131786d8379
1377-
# via mcp
1370+
mcp==1.29.0 \
1371+
--hash=sha256:52d01f334de1868cc3bb2d6604931126a67631f99a6c5d3b82ba47290315ec36 \
1372+
--hash=sha256:f5a075bb611f23d6f4d080c6a1699fa62772eebc562ba9e66b306ddde1c755f7
1373+
# via
1374+
# feast (pyproject.toml)
1375+
# fastapi-mcp
13781376
mdurl==0.1.2 \
13791377
--hash=sha256:84008a41e51615a49fc9966191ff91509e3c40b939176e643fd50a5c2196b8f8 \
13801378
--hash=sha256:bb413d29f5eea38f31dd4754dd7377d4465116fb207585f97bf925588687c1ba
@@ -3398,3 +3396,8 @@ zipp==4.1.0 \
33983396
--hash=sha256:25ad4e16390cd314347dd8f1de67a2ac538ae658ed4ab9db16029c07c188e97f \
33993397
--hash=sha256:4cb57381f544315db7688e976e922a2b18cdb513d21cc194eb42232ba2a3e602
34003398
# via importlib-metadata
3399+
3400+
httpx-sse==0.4.0 \
3401+
--hash=sha256:1e81a3a3070ce322add1d3529ed42eb5f70817f45ed6ec915ab753f961139721 \
3402+
--hash=sha256:f329af6eae57eaa2bdfd962b42524764af68075ea87370a2de920af5341e318f
3403+
# via mcp

sdk/python/requirements/py3.10-minimal-sdist-requirements.txt

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1544,14 +1544,12 @@ markupsafe==3.0.3 \
15441544
--hash=sha256:f9e130248f4462aaa8e2552d547f36ddadbeaa573879158d721bbd33dfe4743a \
15451545
--hash=sha256:fed51ac40f757d41b7c48425901843666a6677e3e8eb0abcff09e4ba6e664f50
15461546
# via jinja2
1547-
mcp==2.0.0 \
1548-
--hash=sha256:0f440e735c13ece8bb19bc62cf0b86f4313448432fbb77d35e14034f4e050728 \
1549-
--hash=sha256:1cb4c75d2d2c7b8c1d756355e5d82a39f2822cc7f13e22a2051d7ca3592349d6
1550-
# via fastapi-mcp
1551-
mcp-types==2.0.0 \
1552-
--hash=sha256:6b2de797ca2797f568b79529e1b25948e34de511bcc0bd82fef1039a6d1b8eb0 \
1553-
--hash=sha256:d7d939b9285c9961ae8866ba75ef85da34d12bafe276efbf4eb6a131786d8379
1554-
# via mcp
1547+
mcp==1.29.0 \
1548+
--hash=sha256:52d01f334de1868cc3bb2d6604931126a67631f99a6c5d3b82ba47290315ec36 \
1549+
--hash=sha256:f5a075bb611f23d6f4d080c6a1699fa62772eebc562ba9e66b306ddde1c755f7
1550+
# via
1551+
# feast (pyproject.toml)
1552+
# fastapi-mcp
15551553
mdurl==0.1.2 \
15561554
--hash=sha256:84008a41e51615a49fc9966191ff91509e3c40b939176e643fd50a5c2196b8f8 \
15571555
--hash=sha256:bb413d29f5eea38f31dd4754dd7377d4465116fb207585f97bf925588687c1ba
@@ -3675,6 +3673,11 @@ zipp==4.1.0 \
36753673
--hash=sha256:4cb57381f544315db7688e976e922a2b18cdb513d21cc194eb42232ba2a3e602
36763674
# via importlib-metadata
36773675

3676+
httpx-sse==0.4.0 \
3677+
--hash=sha256:1e81a3a3070ce322add1d3529ed42eb5f70817f45ed6ec915ab753f961139721 \
3678+
--hash=sha256:f329af6eae57eaa2bdfd962b42524764af68075ea87370a2de920af5341e318f
3679+
# via mcp
3680+
36783681
# The following packages were excluded from the output:
36793682
# milvus-lite
36803683
# pymilvus

sdk/python/requirements/py3.11-ci-requirements.txt

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2896,14 +2896,12 @@ matplotlib-inline==0.2.2 \
28962896
# via
28972897
# ipykernel
28982898
# ipython
2899-
mcp==2.0.0 \
2900-
--hash=sha256:0f440e735c13ece8bb19bc62cf0b86f4313448432fbb77d35e14034f4e050728 \
2901-
--hash=sha256:1cb4c75d2d2c7b8c1d756355e5d82a39f2822cc7f13e22a2051d7ca3592349d6
2902-
# via fastapi-mcp
2903-
mcp-types==2.0.0 \
2904-
--hash=sha256:6b2de797ca2797f568b79529e1b25948e34de511bcc0bd82fef1039a6d1b8eb0 \
2905-
--hash=sha256:d7d939b9285c9961ae8866ba75ef85da34d12bafe276efbf4eb6a131786d8379
2906-
# via mcp
2899+
mcp==1.29.0 \
2900+
--hash=sha256:52d01f334de1868cc3bb2d6604931126a67631f99a6c5d3b82ba47290315ec36 \
2901+
--hash=sha256:f5a075bb611f23d6f4d080c6a1699fa62772eebc562ba9e66b306ddde1c755f7
2902+
# via
2903+
# feast (pyproject.toml)
2904+
# fastapi-mcp
29072905
mdurl==0.1.2 \
29082906
--hash=sha256:84008a41e51615a49fc9966191ff91509e3c40b939176e643fd50a5c2196b8f8 \
29092907
--hash=sha256:bb413d29f5eea38f31dd4754dd7377d4465116fb207585f97bf925588687c1ba
@@ -7799,3 +7797,8 @@ zstandard==0.25.0 \
77997797
# via
78007798
# pyiceberg
78017799
# trino
7800+
7801+
httpx-sse==0.4.0 \
7802+
--hash=sha256:1e81a3a3070ce322add1d3529ed42eb5f70817f45ed6ec915ab753f961139721 \
7803+
--hash=sha256:f329af6eae57eaa2bdfd962b42524764af68075ea87370a2de920af5341e318f
7804+
# via mcp

sdk/python/requirements/py3.11-minimal-requirements.txt

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1361,14 +1361,12 @@ markupsafe==3.0.3 \
13611361
--hash=sha256:f9e130248f4462aaa8e2552d547f36ddadbeaa573879158d721bbd33dfe4743a \
13621362
--hash=sha256:fed51ac40f757d41b7c48425901843666a6677e3e8eb0abcff09e4ba6e664f50
13631363
# via jinja2
1364-
mcp==2.0.0 \
1365-
--hash=sha256:0f440e735c13ece8bb19bc62cf0b86f4313448432fbb77d35e14034f4e050728 \
1366-
--hash=sha256:1cb4c75d2d2c7b8c1d756355e5d82a39f2822cc7f13e22a2051d7ca3592349d6
1367-
# via fastapi-mcp
1368-
mcp-types==2.0.0 \
1369-
--hash=sha256:6b2de797ca2797f568b79529e1b25948e34de511bcc0bd82fef1039a6d1b8eb0 \
1370-
--hash=sha256:d7d939b9285c9961ae8866ba75ef85da34d12bafe276efbf4eb6a131786d8379
1371-
# via mcp
1364+
mcp==1.29.0 \
1365+
--hash=sha256:52d01f334de1868cc3bb2d6604931126a67631f99a6c5d3b82ba47290315ec36 \
1366+
--hash=sha256:f5a075bb611f23d6f4d080c6a1699fa62772eebc562ba9e66b306ddde1c755f7
1367+
# via
1368+
# feast (pyproject.toml)
1369+
# fastapi-mcp
13721370
mdurl==0.1.2 \
13731371
--hash=sha256:84008a41e51615a49fc9966191ff91509e3c40b939176e643fd50a5c2196b8f8 \
13741372
--hash=sha256:bb413d29f5eea38f31dd4754dd7377d4465116fb207585f97bf925588687c1ba
@@ -3401,3 +3399,8 @@ zipp==4.1.0 \
34013399
--hash=sha256:25ad4e16390cd314347dd8f1de67a2ac538ae658ed4ab9db16029c07c188e97f \
34023400
--hash=sha256:4cb57381f544315db7688e976e922a2b18cdb513d21cc194eb42232ba2a3e602
34033401
# via importlib-metadata
3402+
3403+
httpx-sse==0.4.0 \
3404+
--hash=sha256:1e81a3a3070ce322add1d3529ed42eb5f70817f45ed6ec915ab753f961139721 \
3405+
--hash=sha256:f329af6eae57eaa2bdfd962b42524764af68075ea87370a2de920af5341e318f
3406+
# via mcp

sdk/python/requirements/py3.11-minimal-sdist-requirements.txt

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1536,14 +1536,12 @@ markupsafe==3.0.3 \
15361536
--hash=sha256:f9e130248f4462aaa8e2552d547f36ddadbeaa573879158d721bbd33dfe4743a \
15371537
--hash=sha256:fed51ac40f757d41b7c48425901843666a6677e3e8eb0abcff09e4ba6e664f50
15381538
# via jinja2
1539-
mcp==2.0.0 \
1540-
--hash=sha256:0f440e735c13ece8bb19bc62cf0b86f4313448432fbb77d35e14034f4e050728 \
1541-
--hash=sha256:1cb4c75d2d2c7b8c1d756355e5d82a39f2822cc7f13e22a2051d7ca3592349d6
1542-
# via fastapi-mcp
1543-
mcp-types==2.0.0 \
1544-
--hash=sha256:6b2de797ca2797f568b79529e1b25948e34de511bcc0bd82fef1039a6d1b8eb0 \
1545-
--hash=sha256:d7d939b9285c9961ae8866ba75ef85da34d12bafe276efbf4eb6a131786d8379
1546-
# via mcp
1539+
mcp==1.29.0 \
1540+
--hash=sha256:52d01f334de1868cc3bb2d6604931126a67631f99a6c5d3b82ba47290315ec36 \
1541+
--hash=sha256:f5a075bb611f23d6f4d080c6a1699fa62772eebc562ba9e66b306ddde1c755f7
1542+
# via
1543+
# feast (pyproject.toml)
1544+
# fastapi-mcp
15471545
mdurl==0.1.2 \
15481546
--hash=sha256:84008a41e51615a49fc9966191ff91509e3c40b939176e643fd50a5c2196b8f8 \
15491547
--hash=sha256:bb413d29f5eea38f31dd4754dd7377d4465116fb207585f97bf925588687c1ba
@@ -3670,6 +3668,11 @@ zipp==4.1.0 \
36703668
--hash=sha256:4cb57381f544315db7688e976e922a2b18cdb513d21cc194eb42232ba2a3e602
36713669
# via importlib-metadata
36723670

3671+
httpx-sse==0.4.0 \
3672+
--hash=sha256:1e81a3a3070ce322add1d3529ed42eb5f70817f45ed6ec915ab753f961139721 \
3673+
--hash=sha256:f329af6eae57eaa2bdfd962b42524764af68075ea87370a2de920af5341e318f
3674+
# via mcp
3675+
36733676
# The following packages were excluded from the output:
36743677
# milvus-lite
36753678
# pymilvus

sdk/python/requirements/py3.12-ci-requirements.txt

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2905,14 +2905,12 @@ matplotlib-inline==0.2.2 \
29052905
# via
29062906
# ipykernel
29072907
# ipython
2908-
mcp==2.0.0 \
2909-
--hash=sha256:0f440e735c13ece8bb19bc62cf0b86f4313448432fbb77d35e14034f4e050728 \
2910-
--hash=sha256:1cb4c75d2d2c7b8c1d756355e5d82a39f2822cc7f13e22a2051d7ca3592349d6
2911-
# via fastapi-mcp
2912-
mcp-types==2.0.0 \
2913-
--hash=sha256:6b2de797ca2797f568b79529e1b25948e34de511bcc0bd82fef1039a6d1b8eb0 \
2914-
--hash=sha256:d7d939b9285c9961ae8866ba75ef85da34d12bafe276efbf4eb6a131786d8379
2915-
# via mcp
2908+
mcp==1.29.0 \
2909+
--hash=sha256:52d01f334de1868cc3bb2d6604931126a67631f99a6c5d3b82ba47290315ec36 \
2910+
--hash=sha256:f5a075bb611f23d6f4d080c6a1699fa62772eebc562ba9e66b306ddde1c755f7
2911+
# via
2912+
# feast (pyproject.toml)
2913+
# fastapi-mcp
29162914
mdurl==0.1.2 \
29172915
--hash=sha256:84008a41e51615a49fc9966191ff91509e3c40b939176e643fd50a5c2196b8f8 \
29182916
--hash=sha256:bb413d29f5eea38f31dd4754dd7377d4465116fb207585f97bf925588687c1ba
@@ -7779,3 +7777,8 @@ zstandard==0.25.0 \
77797777
# via
77807778
# pyiceberg
77817779
# trino
7780+
7781+
httpx-sse==0.4.0 \
7782+
--hash=sha256:1e81a3a3070ce322add1d3529ed42eb5f70817f45ed6ec915ab753f961139721 \
7783+
--hash=sha256:f329af6eae57eaa2bdfd962b42524764af68075ea87370a2de920af5341e318f
7784+
# via mcp

sdk/python/requirements/py3.12-minimal-requirements.txt

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1353,14 +1353,12 @@ markupsafe==3.0.3 \
13531353
--hash=sha256:f9e130248f4462aaa8e2552d547f36ddadbeaa573879158d721bbd33dfe4743a \
13541354
--hash=sha256:fed51ac40f757d41b7c48425901843666a6677e3e8eb0abcff09e4ba6e664f50
13551355
# via jinja2
1356-
mcp==2.0.0 \
1357-
--hash=sha256:0f440e735c13ece8bb19bc62cf0b86f4313448432fbb77d35e14034f4e050728 \
1358-
--hash=sha256:1cb4c75d2d2c7b8c1d756355e5d82a39f2822cc7f13e22a2051d7ca3592349d6
1359-
# via fastapi-mcp
1360-
mcp-types==2.0.0 \
1361-
--hash=sha256:6b2de797ca2797f568b79529e1b25948e34de511bcc0bd82fef1039a6d1b8eb0 \
1362-
--hash=sha256:d7d939b9285c9961ae8866ba75ef85da34d12bafe276efbf4eb6a131786d8379
1363-
# via mcp
1356+
mcp==1.29.0 \
1357+
--hash=sha256:52d01f334de1868cc3bb2d6604931126a67631f99a6c5d3b82ba47290315ec36 \
1358+
--hash=sha256:f5a075bb611f23d6f4d080c6a1699fa62772eebc562ba9e66b306ddde1c755f7
1359+
# via
1360+
# feast (pyproject.toml)
1361+
# fastapi-mcp
13641362
mdurl==0.1.2 \
13651363
--hash=sha256:84008a41e51615a49fc9966191ff91509e3c40b939176e643fd50a5c2196b8f8 \
13661364
--hash=sha256:bb413d29f5eea38f31dd4754dd7377d4465116fb207585f97bf925588687c1ba
@@ -3361,3 +3359,8 @@ yarl==1.24.5 \
33613359
--hash=sha256:ff405d91509d88e8d44129cd87b18d70acd1f0c1aeabd7bc3c46792b1fe2acba \
33623360
--hash=sha256:ffcd54362564dc1a30fb74d8b8a6e5a6b11ebd5e27266adc3b7427a21a6c9104
33633361
# via aiohttp
3362+
3363+
httpx-sse==0.4.0 \
3364+
--hash=sha256:1e81a3a3070ce322add1d3529ed42eb5f70817f45ed6ec915ab753f961139721 \
3365+
--hash=sha256:f329af6eae57eaa2bdfd962b42524764af68075ea87370a2de920af5341e318f
3366+
# via mcp

sdk/python/requirements/py3.12-minimal-sdist-requirements.txt

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1528,14 +1528,12 @@ markupsafe==3.0.3 \
15281528
--hash=sha256:f9e130248f4462aaa8e2552d547f36ddadbeaa573879158d721bbd33dfe4743a \
15291529
--hash=sha256:fed51ac40f757d41b7c48425901843666a6677e3e8eb0abcff09e4ba6e664f50
15301530
# via jinja2
1531-
mcp==2.0.0 \
1532-
--hash=sha256:0f440e735c13ece8bb19bc62cf0b86f4313448432fbb77d35e14034f4e050728 \
1533-
--hash=sha256:1cb4c75d2d2c7b8c1d756355e5d82a39f2822cc7f13e22a2051d7ca3592349d6
1534-
# via fastapi-mcp
1535-
mcp-types==2.0.0 \
1536-
--hash=sha256:6b2de797ca2797f568b79529e1b25948e34de511bcc0bd82fef1039a6d1b8eb0 \
1537-
--hash=sha256:d7d939b9285c9961ae8866ba75ef85da34d12bafe276efbf4eb6a131786d8379
1538-
# via mcp
1531+
mcp==1.29.0 \
1532+
--hash=sha256:52d01f334de1868cc3bb2d6604931126a67631f99a6c5d3b82ba47290315ec36 \
1533+
--hash=sha256:f5a075bb611f23d6f4d080c6a1699fa62772eebc562ba9e66b306ddde1c755f7
1534+
# via
1535+
# feast (pyproject.toml)
1536+
# fastapi-mcp
15391537
mdurl==0.1.2 \
15401538
--hash=sha256:84008a41e51615a49fc9966191ff91509e3c40b939176e643fd50a5c2196b8f8 \
15411539
--hash=sha256:bb413d29f5eea38f31dd4754dd7377d4465116fb207585f97bf925588687c1ba
@@ -3630,6 +3628,11 @@ yarl==1.24.5 \
36303628
--hash=sha256:ffcd54362564dc1a30fb74d8b8a6e5a6b11ebd5e27266adc3b7427a21a6c9104
36313629
# via aiohttp
36323630

3631+
httpx-sse==0.4.0 \
3632+
--hash=sha256:1e81a3a3070ce322add1d3529ed42eb5f70817f45ed6ec915ab753f961139721 \
3633+
--hash=sha256:f329af6eae57eaa2bdfd962b42524764af68075ea87370a2de920af5341e318f
3634+
# via mcp
3635+
36333636
# The following packages were excluded from the output:
36343637
# milvus-lite
36353638
# pymilvus

sdk/python/tests/unit/infra/feature_servers/test_mcp_server.py

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44

55
from pydantic import ValidationError
66

7+
import feast.api.registry.rest.rest_registry_server # noqa: F401
78
from feast.feature_store import FeatureStore
89
from feast.infra.mcp_servers.mcp_config import McpFeatureServerConfig
910
from feast.infra.mcp_servers.mcp_server import _resolve_schema_references_safe
@@ -394,12 +395,13 @@ class TestRestRegistryServerMCP(unittest.TestCase):
394395
"""Test MCP integration in RestRegistryServer."""
395396

396397
@patch("fastapi_mcp.FastApiMCP")
398+
@patch("feast.api.registry.rest.rest_registry_server.RegistryServer")
397399
@patch("feast.api.registry.rest.rest_registry_server.RestRegistryServer._init_auth")
398400
@patch(
399401
"feast.api.registry.rest.rest_registry_server.RestRegistryServer._register_routes"
400402
)
401403
def test_mcp_mounted_when_enabled(
402-
self, mock_register, mock_auth, mock_fast_api_mcp
404+
self, mock_register, mock_auth, mock_grpc, mock_fast_api_mcp
403405
):
404406
"""Test that MCP is mounted on RestRegistryServer when registry.mcp.enabled is True."""
405407
from feast.api.registry.rest.rest_registry_server import RestRegistryServer
@@ -418,11 +420,12 @@ def test_mcp_mounted_when_enabled(
418420
mock_fast_api_mcp.assert_called_once_with(server.app, name="feast-registry-mcp")
419421
mock_mcp_instance.mount_sse.assert_called_once()
420422

423+
@patch("feast.api.registry.rest.rest_registry_server.RegistryServer")
421424
@patch("feast.api.registry.rest.rest_registry_server.RestRegistryServer._init_auth")
422425
@patch(
423426
"feast.api.registry.rest.rest_registry_server.RestRegistryServer._register_routes"
424427
)
425-
def test_mcp_not_mounted_when_disabled(self, mock_register, mock_auth):
428+
def test_mcp_not_mounted_when_disabled(self, mock_register, mock_auth, mock_grpc):
426429
"""Test that MCP is not mounted when registry.mcp.enabled is False."""
427430
from feast.api.registry.rest.rest_registry_server import RestRegistryServer
428431

@@ -436,11 +439,14 @@ def test_mcp_not_mounted_when_disabled(self, mock_register, mock_auth):
436439
RestRegistryServer(mock_store)
437440
mock_fast_api_mcp.assert_not_called()
438441

442+
@patch("feast.api.registry.rest.rest_registry_server.RegistryServer")
439443
@patch("feast.api.registry.rest.rest_registry_server.RestRegistryServer._init_auth")
440444
@patch(
441445
"feast.api.registry.rest.rest_registry_server.RestRegistryServer._register_routes"
442446
)
443-
def test_mcp_not_mounted_when_mcp_config_absent(self, mock_register, mock_auth):
447+
def test_mcp_not_mounted_when_mcp_config_absent(
448+
self, mock_register, mock_auth, mock_grpc
449+
):
444450
"""Test that MCP is not mounted when registry.mcp is None."""
445451
from feast.api.registry.rest.rest_registry_server import RestRegistryServer
446452

0 commit comments

Comments
 (0)