diff --git a/mcp_server/src/config/schema.py b/mcp_server/src/config/schema.py index ff7609bd1..ce57ba9a6 100644 --- a/mcp_server/src/config/schema.py +++ b/mcp_server/src/config/schema.py @@ -265,6 +265,10 @@ def apply_cli_overrides(self, args) -> None: # Override server settings if hasattr(args, 'transport') and args.transport: self.server.transport = args.transport + if hasattr(args, 'host') and args.host: + self.server.host = args.host + if hasattr(args, 'port') and args.port is not None: + self.server.port = args.port # Override LLM settings if hasattr(args, 'llm_provider') and args.llm_provider: diff --git a/mcp_server/tests/test_configuration.py b/mcp_server/tests/test_configuration.py index 5876c1ed4..e424bce47 100644 --- a/mcp_server/tests/test_configuration.py +++ b/mcp_server/tests/test_configuration.py @@ -153,6 +153,8 @@ def test_cli_override(): class Args: config = Path('config.yaml') transport = 'stdio' + host = '127.0.0.1' + port = 9999 llm_provider = 'anthropic' model = 'claude-3-sonnet' temperature = 0.5 @@ -165,8 +167,13 @@ class Args: config = GraphitiConfig() config.apply_cli_overrides(Args()) + assert config.server.host == '127.0.0.1', f'Expected host 127.0.0.1, got {config.server.host}' + assert config.server.port == 9999, f'Expected port 9999, got {config.server.port}' + print('✓ CLI overrides applied successfully') print(f' - Transport: {config.server.transport}') + print(f' - Host: {config.server.host}') + print(f' - Port: {config.server.port}') print(f' - LLM provider: {config.llm.provider}') print(f' - LLM model: {config.llm.model}') print(f' - Temperature: {config.llm.temperature}') @@ -175,6 +182,28 @@ class Args: print(f' - Group ID: {config.graphiti.group_id}') print(f' - User ID: {config.graphiti.user_id}') + # Test that defaults are preserved when CLI flags are omitted + class MinimalArgs: + config = Path('config.yaml') + transport = None + host = None + port = None + llm_provider = None + model = None + temperature = None + embedder_provider = None + embedder_model = None + database_provider = None + group_id = None + user_id = None + + default_config = GraphitiConfig() + default_config.apply_cli_overrides(MinimalArgs()) + + assert default_config.server.host == '0.0.0.0', 'Default host should be preserved' + assert default_config.server.port == 8000, 'Default port should be preserved' + print('✓ Defaults preserved when CLI flags are omitted') + async def main(): """Run all tests."""