From e381261026e4b0a8b9253a5b40b21aada7543fa3 Mon Sep 17 00:00:00 2001 From: kongqi <32472226+kongqi404@users.noreply.github.com> Date: Wed, 16 Apr 2025 13:24:30 +0000 Subject: [PATCH 1/4] Add npx validation --- src/fastmcp/client/transports.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/fastmcp/client/transports.py b/src/fastmcp/client/transports.py index 27b885688..c3c2b797b 100644 --- a/src/fastmcp/client/transports.py +++ b/src/fastmcp/client/transports.py @@ -7,7 +7,7 @@ from pathlib import Path from typing import ( TypedDict, ) - +import shutil from mcp import ClientSession, StdioServerParameters from mcp.client.session import ( ListRootsFnT, @@ -341,6 +341,10 @@ class NpxStdioTransport(StdioTransport): env_vars: Additional environment variables use_package_lock: Whether to use package-lock.json (--prefer-offline) """ + # verify npx is installed + if shutil.which("npx") is None: + raise ValueError("Command 'npx' not found") + # Basic validation if project_directory and not Path(project_directory).exists(): raise NotADirectoryError( From f2bfe53de1308d50d645442a03f95500ef8e125c Mon Sep 17 00:00:00 2001 From: Jeremiah Lowin <153965+jlowin@users.noreply.github.com> Date: Wed, 16 Apr 2025 09:33:25 -0400 Subject: [PATCH 2/4] move test servers to root tests dir --- tests/{server => }/test_servers/fastmcp_server.py | 0 tests/{server => }/test_servers/sse.py | 0 tests/{server => }/test_servers/stdio.py | 0 3 files changed, 0 insertions(+), 0 deletions(-) rename tests/{server => }/test_servers/fastmcp_server.py (100%) rename tests/{server => }/test_servers/sse.py (100%) rename tests/{server => }/test_servers/stdio.py (100%) diff --git a/tests/server/test_servers/fastmcp_server.py b/tests/test_servers/fastmcp_server.py similarity index 100% rename from tests/server/test_servers/fastmcp_server.py rename to tests/test_servers/fastmcp_server.py diff --git a/tests/server/test_servers/sse.py b/tests/test_servers/sse.py similarity index 100% rename from tests/server/test_servers/sse.py rename to tests/test_servers/sse.py diff --git a/tests/server/test_servers/stdio.py b/tests/test_servers/stdio.py similarity index 100% rename from tests/server/test_servers/stdio.py rename to tests/test_servers/stdio.py From 0fe09ad0b08edb10b27f73f19c2b82893603c327 Mon Sep 17 00:00:00 2001 From: Jeremiah Lowin <153965+jlowin@users.noreply.github.com> Date: Wed, 16 Apr 2025 09:33:34 -0400 Subject: [PATCH 3/4] default sse to 127.0.0.1 --- src/fastmcp/settings.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/fastmcp/settings.py b/src/fastmcp/settings.py index 41b3fcb89..98ae67376 100644 --- a/src/fastmcp/settings.py +++ b/src/fastmcp/settings.py @@ -42,7 +42,7 @@ class ServerSettings(BaseSettings): log_level: LOG_LEVEL = Field(default_factory=lambda: Settings().log_level) # HTTP settings - host: str = "0.0.0.0" + host: str = "127.0.0.1" port: int = 8000 sse_path: str = "/sse" message_path: str = "/messages/" From b4c53c9f883deb58d0b298b3a11c8b15d9ec5a8f Mon Sep 17 00:00:00 2001 From: Jeremiah Lowin <153965+jlowin@users.noreply.github.com> Date: Wed, 16 Apr 2025 09:34:59 -0400 Subject: [PATCH 4/4] Fix static checks --- src/fastmcp/client/transports.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/fastmcp/client/transports.py b/src/fastmcp/client/transports.py index c3c2b797b..cea14a0b9 100644 --- a/src/fastmcp/client/transports.py +++ b/src/fastmcp/client/transports.py @@ -2,12 +2,13 @@ import abc import contextlib import datetime import os +import shutil from collections.abc import AsyncIterator from pathlib import Path from typing import ( TypedDict, ) -import shutil + from mcp import ClientSession, StdioServerParameters from mcp.client.session import ( ListRootsFnT,