Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions mcp_server/src/config/schema.py
Original file line number Diff line number Diff line change
Expand Up @@ -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:
Expand Down
29 changes: 29 additions & 0 deletions mcp_server/tests/test_configuration.py
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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}')
Expand All @@ -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."""
Expand Down
Loading