Skip to content

Commit a7a7cf3

Browse files
committed
Fix place_first_triggers_second_order with nested JSON
Thanks, Claude! 👏 Fixes modelcontextprotocol#14. Signed-off-by: Major Hayden <major@mhtx.net>
1 parent 2d2c20e commit a7a7cf3

File tree

2 files changed

+24
-4
lines changed

2 files changed

+24
-4
lines changed

.gitignore

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,3 +47,23 @@ info/
4747

4848
# Environment files
4949
.env
50+
51+
# Python
52+
__pycache__/
53+
*.py[cod]
54+
*$py.class
55+
*.so
56+
.Python
57+
.venv
58+
venv/
59+
ENV/
60+
env/
61+
*.egg
62+
*.egg-info/
63+
dist/
64+
build/
65+
.pytest_cache/
66+
.coverage
67+
htmlcov/
68+
.mypy_cache/
69+
.ruff_cache/

src/schwab_mcp/tools/orders.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
from typing import Annotated, Any, cast
44

5+
import copy
56
import datetime
67
from mcp.server.fastmcp import FastMCP
78
from schwab.orders.common import first_triggers_second as trigger_builder
@@ -464,11 +465,10 @@ async def place_first_triggers_second_order(
464465
context: SchwabServerContext = ctx.request_context.lifespan_context
465466
client = context.orders
466467

467-
trigger_order_spec = (
468-
first_order_spec.copy()
469-
) # Avoid modifying the original input dict
468+
# Use deep copy to avoid any reference issues with nested structures
469+
trigger_order_spec = copy.deepcopy(first_order_spec)
470470
trigger_order_spec["orderStrategyType"] = "TRIGGER"
471-
trigger_order_spec["childOrderStrategies"] = [second_order_spec]
471+
trigger_order_spec["childOrderStrategies"] = [copy.deepcopy(second_order_spec)]
472472

473473
# Place the order
474474
return await call(

0 commit comments

Comments
 (0)