Skip to content

Commit 242a3c3

Browse files
authored
fix: async configure_mcp_server (#206)
1 parent 400101f commit 242a3c3

3 files changed

Lines changed: 25 additions & 19 deletions

File tree

src/deepset_mcp/main.py

Lines changed: 14 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
#
33
# SPDX-License-Identifier: Apache-2.0
44

5+
import asyncio
56
import logging
67
import os
78
from enum import StrEnum
@@ -191,17 +192,19 @@ def main(
191192
raise typer.Exit(1)
192193

193194
mcp = FastMCP("deepset AI platform MCP server")
194-
configure_mcp_server(
195-
mcp_server_instance=mcp,
196-
deepset_api_key=api_key,
197-
deepset_api_url=api_url,
198-
deepset_workspace=workspace,
199-
tools_to_register=tool_names,
200-
deepset_docs_shareable_prototype_url=docs_share_url,
201-
get_api_key_from_authorization_header=api_key_from_auth_header,
202-
object_store_backend=backend,
203-
object_store_redis_url=redis_url,
204-
object_store_ttl=ttl,
195+
asyncio.run(
196+
configure_mcp_server(
197+
mcp_server_instance=mcp,
198+
deepset_api_key=api_key,
199+
deepset_api_url=api_url,
200+
deepset_workspace=workspace,
201+
tools_to_register=tool_names,
202+
deepset_docs_shareable_prototype_url=docs_share_url,
203+
get_api_key_from_authorization_header=api_key_from_auth_header,
204+
object_store_backend=backend,
205+
object_store_redis_url=redis_url,
206+
object_store_ttl=ttl,
207+
)
205208
)
206209
mcp.settings.host = host
207210
if port is not None:

src/deepset_mcp/mcp/server.py

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22
#
33
# SPDX-License-Identifier: Apache-2.0
44

5-
import asyncio
65
from urllib.parse import parse_qs, urlparse
76

87
import jwt
@@ -16,7 +15,7 @@
1615
from deepset_mcp.mcp.tool_registry import TOOL_REGISTRY
1716

1817

19-
def configure_mcp_server(
18+
async def configure_mcp_server(
2019
mcp_server_instance: FastMCP,
2120
tools_to_register: set[str] | None = None,
2221
deepset_api_key: str | None = None,
@@ -56,8 +55,8 @@ def configure_mcp_server(
5655
"Please provide 'deepset_api_key' or enable 'get_api_key_from_authorization_header'."
5756
)
5857

59-
workspace_name, pipeline_name, api_key_docs = asyncio.run(
60-
fetch_shared_prototype_details(deepset_docs_shareable_prototype_url)
58+
workspace_name, pipeline_name, api_key_docs = await fetch_shared_prototype_details(
59+
deepset_docs_shareable_prototype_url
6160
)
6261
docs_config = DeepsetDocsConfig(api_key=api_key_docs, workspace_name=workspace_name, pipeline_name=pipeline_name)
6362

test/unit/test_server_base_url.py

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,19 +6,22 @@
66

77
from unittest.mock import MagicMock, patch
88

9+
import pytest
10+
911
from deepset_mcp.mcp.server import configure_mcp_server
1012

1113

1214
class TestConfigureMcpServerBaseUrl:
1315
"""Test the configure_mcp_server function with base_url parameter."""
1416

1517
@patch("deepset_mcp.mcp.server.register_tools")
16-
def test_configure_mcp_server_passes_base_url(self, mock_register_tools: MagicMock) -> None:
18+
@pytest.mark.asyncio
19+
async def test_configure_mcp_server_passes_base_url(self, mock_register_tools: MagicMock) -> None:
1720
"""Test that configure_mcp_server passes base_url to register_tools."""
1821
mock_server = MagicMock()
1922
custom_url = "https://custom.api.example.com"
2023

21-
configure_mcp_server(
24+
await configure_mcp_server(
2225
mcp_server_instance=mock_server,
2326
tools_to_register={"list_pipelines"},
2427
deepset_api_key="test-key",
@@ -32,11 +35,12 @@ def test_configure_mcp_server_passes_base_url(self, mock_register_tools: MagicMo
3235
assert call_args[1]["base_url"] == custom_url
3336

3437
@patch("deepset_mcp.mcp.server.register_tools")
35-
def test_configure_mcp_server_without_base_url(self, mock_register_tools: MagicMock) -> None:
38+
@pytest.mark.asyncio
39+
async def test_configure_mcp_server_without_base_url(self, mock_register_tools: MagicMock) -> None:
3640
"""Test that configure_mcp_server works without base_url."""
3741
mock_server = MagicMock()
3842

39-
configure_mcp_server(
43+
await configure_mcp_server(
4044
mcp_server_instance=mock_server,
4145
tools_to_register={"list_pipelines"},
4246
deepset_api_key="test-key",

0 commit comments

Comments
 (0)