diff --git a/src/fastmcp/client/transports.py b/src/fastmcp/client/transports.py index 8817b134a..68544512a 100644 --- a/src/fastmcp/client/transports.py +++ b/src/fastmcp/client/transports.py @@ -2,6 +2,7 @@ import abc import contextlib import datetime import os +import shutil from collections.abc import AsyncIterator from pathlib import Path from typing import ( @@ -343,6 +344,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( diff --git a/src/fastmcp/settings.py b/src/fastmcp/settings.py index e82b75cc9..9d02b5d5a 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/" 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