@dwlf/mcp-server 0.21.0 → 0.23.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,19 @@
1
+ export type NodeParam = {
2
+ name: string;
3
+ type: 'number' | 'string' | 'boolean' | 'enum';
4
+ default: unknown;
5
+ description: string;
6
+ enumValues?: string[];
7
+ honoredByExecutor: boolean;
8
+ };
9
+ export type StrategyNode = {
10
+ nodeType: string;
11
+ category: 'signal' | 'stopLoss' | 'takeProfit' | 'logic' | 'cancellation' | 'exit';
12
+ description: string;
13
+ params: NodeParam[];
14
+ notes?: string;
15
+ };
16
+ export declare const STRATEGY_NODES: StrategyNode[];
17
+ export declare function getStrategyNodeByType(nodeType: string): StrategyNode | undefined;
18
+ export declare function getStrategyNodesByCategory(category: StrategyNode['category']): StrategyNode[];
19
+ //# sourceMappingURL=strategyNodeMetadata.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"strategyNodeMetadata.d.ts","sourceRoot":"","sources":["../../src/data/strategyNodeMetadata.ts"],"names":[],"mappings":"AAgBA,MAAM,MAAM,SAAS,GAAG;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,GAAG,MAAM,CAAC;IAC/C,OAAO,EAAE,OAAO,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IAItB,iBAAiB,EAAE,OAAO,CAAC;CAC5B,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,QAAQ,GAAG,UAAU,GAAG,YAAY,GAAG,OAAO,GAAG,cAAc,GAAG,MAAM,CAAC;IACnF,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,SAAS,EAAE,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,YAAY,EAsQxC,CAAC;AAEF,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS,CAEhF;AAED,wBAAgB,0BAA0B,CAAC,QAAQ,EAAE,YAAY,CAAC,UAAU,CAAC,GAAG,YAAY,EAAE,CAE7F"}
@@ -0,0 +1,275 @@
1
+ // Static catalog of visual-strategy output node types — what each one does,
2
+ // what (currently-implicit) parameters drive its behaviour, and what the
3
+ // engine defaults to when those parameters aren't set.
4
+ //
5
+ // Source of truth for the runtime behaviour: dwlf-scheduled-jobs
6
+ // src/services/visualStrategyExecutor.js (calculateStopLoss /
7
+ // calculateTakeProfit / calculateRecentLowStopLoss). Today the executor
8
+ // reads most of its parameters from a static `supportedNodes` map that
9
+ // doesn't carry per-instance overrides, which is why the defaults
10
+ // listed here are effectively hard-coded for every strategy.
11
+ //
12
+ // This catalog exists so an agent (or a user) can ask "what does this
13
+ // SL node actually do at runtime?" without having to read engine code.
14
+ // It is INTENTIONALLY informational — when the executor learns to honour
15
+ // per-node overrides, update this file to match.
16
+ export const STRATEGY_NODES = [
17
+ // ── Entry signals ──────────────────────────────────────────────────
18
+ {
19
+ nodeType: 'long_signal',
20
+ category: 'signal',
21
+ description: 'Marks the entry pipeline as a long-side trade. Direction-only — no parameters.',
22
+ params: [],
23
+ },
24
+ {
25
+ nodeType: 'short_signal',
26
+ category: 'signal',
27
+ description: 'Marks the entry pipeline as a short-side trade. Direction-only — no parameters.',
28
+ params: [],
29
+ },
30
+ // ── Stop loss ──────────────────────────────────────────────────────
31
+ {
32
+ nodeType: 'sl_below_recent_low',
33
+ category: 'stopLoss',
34
+ description: 'Place SL below the most-recent confirmed swing low (long) or above the most-recent swing high (short). Reads the indicator pipeline\'s swingPoints (cycle.low.confirmed / cycle.high.confirmed) first; falls back to a 10-bar historical low if no swing data is available.',
35
+ params: [
36
+ {
37
+ name: 'bufferPct',
38
+ type: 'number',
39
+ default: 1.0,
40
+ description: 'Distance below the swing low (above the swing high for short) as a percent. Engine currently hard-codes this as ×0.99 / ×1.01.',
41
+ honoredByExecutor: false,
42
+ },
43
+ {
44
+ name: 'swingSource',
45
+ type: 'enum',
46
+ enumValues: ['cycle_pivots', 'historical_low'],
47
+ default: 'cycle_pivots',
48
+ description: 'Where the recent low/high comes from. Engine prefers cycle pivots when contextData.swingPoints is populated; falls back to a 10-bar historical low otherwise.',
49
+ honoredByExecutor: false,
50
+ },
51
+ {
52
+ name: 'lookbackBars',
53
+ type: 'number',
54
+ default: 10,
55
+ description: 'Bars to scan for the historical fallback. Only relevant when swingSource = historical_low.',
56
+ honoredByExecutor: false,
57
+ },
58
+ ],
59
+ notes: 'Post-PR#220 (2026-05-19), the swing-date filter uses `>` not `>=` so same-bar confirmations are no longer silently discarded — old SLs that resolved to deep historical lows are now correctly anchored to the most recent confirmed pivot.',
60
+ },
61
+ {
62
+ nodeType: 'sl_percentage',
63
+ category: 'stopLoss',
64
+ description: 'Place SL at a fixed percent below entry (long) / above entry (short).',
65
+ params: [
66
+ {
67
+ name: 'percentage',
68
+ type: 'number',
69
+ default: 2,
70
+ description: 'Distance from entry as a percent.',
71
+ honoredByExecutor: false,
72
+ },
73
+ ],
74
+ },
75
+ {
76
+ nodeType: 'sl_atr',
77
+ category: 'stopLoss',
78
+ description: 'Place SL at N × ATR below entry (long) / above (short). Uses ATR-14 daily.',
79
+ params: [
80
+ {
81
+ name: 'multiplier',
82
+ type: 'number',
83
+ default: 2,
84
+ description: 'ATR multiplier.',
85
+ honoredByExecutor: false,
86
+ },
87
+ {
88
+ name: 'atrPeriod',
89
+ type: 'number',
90
+ default: 14,
91
+ description: 'ATR lookback period. Engine reads from contextData.indicators.atr_14 — period is fixed.',
92
+ honoredByExecutor: false,
93
+ },
94
+ ],
95
+ },
96
+ {
97
+ nodeType: 'sl_fixed_amount',
98
+ category: 'stopLoss',
99
+ description: 'Place SL at a fixed dollar amount below entry (long) / above (short).',
100
+ params: [
101
+ {
102
+ name: 'amount',
103
+ type: 'number',
104
+ default: 10,
105
+ description: 'Dollar distance from entry.',
106
+ honoredByExecutor: false,
107
+ },
108
+ ],
109
+ },
110
+ {
111
+ nodeType: 'sl_support_level',
112
+ category: 'stopLoss',
113
+ description: 'Place SL at the most-recent support level (long) / resistance (short).',
114
+ params: [
115
+ {
116
+ name: 'lookbackBars',
117
+ type: 'number',
118
+ default: 10,
119
+ description: 'Bars to scan for the support/resistance level.',
120
+ honoredByExecutor: false,
121
+ },
122
+ ],
123
+ },
124
+ // ── Take profit ────────────────────────────────────────────────────
125
+ {
126
+ nodeType: 'tp_1r',
127
+ category: 'takeProfit',
128
+ description: 'TP at 1× the risk distance (close + 1R for long). The R-multiple is the only param and IS read from the node name.',
129
+ params: [{ name: 'ratio', type: 'number', default: 1, description: 'R-multiple.', honoredByExecutor: true }],
130
+ },
131
+ {
132
+ nodeType: 'tp_2r',
133
+ category: 'takeProfit',
134
+ description: 'TP at 2× risk.',
135
+ params: [{ name: 'ratio', type: 'number', default: 2, description: 'R-multiple.', honoredByExecutor: true }],
136
+ },
137
+ {
138
+ nodeType: 'tp_3r',
139
+ category: 'takeProfit',
140
+ description: 'TP at 3× risk.',
141
+ params: [{ name: 'ratio', type: 'number', default: 3, description: 'R-multiple.', honoredByExecutor: true }],
142
+ },
143
+ {
144
+ nodeType: 'tp_5r',
145
+ category: 'takeProfit',
146
+ description: 'TP at 5× risk.',
147
+ params: [{ name: 'ratio', type: 'number', default: 5, description: 'R-multiple.', honoredByExecutor: true }],
148
+ },
149
+ {
150
+ nodeType: 'tp_10r',
151
+ category: 'takeProfit',
152
+ description: 'TP at 10× risk. Common for trend-following / DCL strategies aiming to ride breakouts.',
153
+ params: [{ name: 'ratio', type: 'number', default: 10, description: 'R-multiple.', honoredByExecutor: true }],
154
+ },
155
+ {
156
+ nodeType: 'tp_percentage',
157
+ category: 'takeProfit',
158
+ description: 'TP at a fixed percent above entry (long) / below (short).',
159
+ params: [
160
+ {
161
+ name: 'percentage',
162
+ type: 'number',
163
+ default: 6,
164
+ description: 'Distance from entry as a percent.',
165
+ honoredByExecutor: false,
166
+ },
167
+ ],
168
+ },
169
+ {
170
+ nodeType: 'tp_atr',
171
+ category: 'takeProfit',
172
+ description: 'TP at N × ATR above entry (long) / below (short). Uses ATR-14 daily.',
173
+ params: [
174
+ {
175
+ name: 'multiplier',
176
+ type: 'number',
177
+ default: 3,
178
+ description: 'ATR multiplier.',
179
+ honoredByExecutor: false,
180
+ },
181
+ {
182
+ name: 'atrPeriod',
183
+ type: 'number',
184
+ default: 14,
185
+ description: 'ATR lookback period (fixed at 14 in current engine).',
186
+ honoredByExecutor: false,
187
+ },
188
+ ],
189
+ },
190
+ {
191
+ nodeType: 'tp_resistance_level',
192
+ category: 'takeProfit',
193
+ description: 'TP at the next resistance level above entry (long) / support below (short).',
194
+ params: [],
195
+ },
196
+ {
197
+ nodeType: 'tp_trailing_stop',
198
+ category: 'takeProfit',
199
+ description: '⚠️ Currently a placeholder (5% above entry for long, -5% for short). Full trailing-stop logic isn\'t wired — treat as not yet implemented.',
200
+ params: [],
201
+ notes: 'Engine returns a static 5% target instead of trailing the live high. Don\'t use this for real trades until the trailing logic is wired.',
202
+ },
203
+ // ── Logic gates ────────────────────────────────────────────────────
204
+ {
205
+ nodeType: 'and_gate',
206
+ category: 'logic',
207
+ description: 'Conditions joined with AND — all inputs must be true.',
208
+ params: [],
209
+ },
210
+ {
211
+ nodeType: 'or_gate',
212
+ category: 'logic',
213
+ description: 'Conditions joined with OR — any input true triggers.',
214
+ params: [],
215
+ },
216
+ {
217
+ nodeType: 'not_gate',
218
+ category: 'logic',
219
+ description: 'Inverts its single input.',
220
+ params: [],
221
+ },
222
+ {
223
+ nodeType: 'then_gate',
224
+ category: 'logic',
225
+ description: 'Sequential gate — input B must fire AFTER input A. Alias: sequence_gate.',
226
+ params: [],
227
+ },
228
+ // ── Cancellation ───────────────────────────────────────────────────
229
+ {
230
+ nodeType: 'cancel_break_prev_low',
231
+ category: 'cancellation',
232
+ description: 'Cancel a pending entry if price breaks the previous bar\'s low before entry triggers.',
233
+ params: [],
234
+ },
235
+ {
236
+ nodeType: 'cancel_break_prev_high',
237
+ category: 'cancellation',
238
+ description: 'Cancel a pending entry if price breaks the previous bar\'s high before entry triggers.',
239
+ params: [],
240
+ },
241
+ {
242
+ nodeType: 'cancel_time_limit',
243
+ category: 'cancellation',
244
+ description: 'Cancel a pending entry if it hasn\'t triggered within N bars.',
245
+ params: [
246
+ {
247
+ name: 'bars',
248
+ type: 'number',
249
+ default: 5,
250
+ description: 'Bars to wait before cancellation.',
251
+ honoredByExecutor: false,
252
+ },
253
+ ],
254
+ },
255
+ // ── Exit graph ─────────────────────────────────────────────────────
256
+ {
257
+ nodeType: 'exit_start',
258
+ category: 'exit',
259
+ description: 'Root of the exit pipeline. No parameters.',
260
+ params: [],
261
+ },
262
+ {
263
+ nodeType: 'close_position',
264
+ category: 'exit',
265
+ description: 'Close the open position when the gated exit conditions evaluate true.',
266
+ params: [],
267
+ },
268
+ ];
269
+ export function getStrategyNodeByType(nodeType) {
270
+ return STRATEGY_NODES.find((n) => n.nodeType === nodeType);
271
+ }
272
+ export function getStrategyNodesByCategory(category) {
273
+ return STRATEGY_NODES.filter((n) => n.category === category);
274
+ }
275
+ //# sourceMappingURL=strategyNodeMetadata.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"strategyNodeMetadata.js","sourceRoot":"","sources":["../../src/data/strategyNodeMetadata.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"strategies.d.ts","sourceRoot":"","sources":["../../src/tools/strategies.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEpE,OAAO,EAAE,UAAU,EAAmB,MAAM,cAAc,CAAC;AAE3D,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,SAAS,EACjB,MAAM,EAAE,UAAU,QA2KnB"}
1
+ {"version":3,"file":"strategies.d.ts","sourceRoot":"","sources":["../../src/tools/strategies.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEpE,OAAO,EAAE,UAAU,EAAmB,MAAM,cAAc,CAAC;AAQ3D,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,SAAS,EACjB,MAAM,EAAE,UAAU,QAuOnB"}
@@ -1,5 +1,63 @@
1
1
  import { z } from 'zod';
2
+ import { STRATEGY_NODES, getStrategyNodeByType, getStrategyNodesByCategory, } from '../data/strategyNodeMetadata.js';
2
3
  export function registerStrategyTools(server, client) {
4
+ // 0. Describe visual-strategy node types — local static catalog, no API call.
5
+ //
6
+ // Exists so an agent (or a user) can answer "what does this SL/TP/logic
7
+ // node actually do at runtime?" without reading engine code. Each entry
8
+ // documents the node's params + defaults + whether the executor honours
9
+ // per-instance overrides (most don't yet — flagged via honoredByExecutor).
10
+ server.tool('dwlf_describe_strategy_nodes', 'Describe the visual-strategy node types and their (currently-implicit) runtime parameters. ' +
11
+ 'Use this to understand what an SL/TP/logic node will actually do at backtest/live time, ' +
12
+ 'including the engine defaults that are NOT visible in the visual graph today. ' +
13
+ 'Optional `nodeType` filters to a single node (e.g. `sl_below_recent_low`); optional `category` ' +
14
+ 'filters to a class (`stopLoss` / `takeProfit` / `signal` / `logic` / `cancellation` / `exit`). ' +
15
+ 'When `honoredByExecutor: false` on a param, the listed `default` is the only value the engine uses today ' +
16
+ 'regardless of what the visual node\'s data field says — this is what the SL-resolver bug in PR#220 exposed.', {
17
+ nodeType: z
18
+ .string()
19
+ .optional()
20
+ .describe('Return only this one node (e.g. `sl_below_recent_low`).'),
21
+ category: z
22
+ .enum(['signal', 'stopLoss', 'takeProfit', 'logic', 'cancellation', 'exit'])
23
+ .optional()
24
+ .describe('Return only nodes in this category.'),
25
+ }, async ({ nodeType, category }) => {
26
+ try {
27
+ let nodes;
28
+ if (nodeType) {
29
+ const single = getStrategyNodeByType(nodeType);
30
+ if (!single) {
31
+ return {
32
+ content: [{ type: 'text', text: JSON.stringify({
33
+ error: `Unknown nodeType: ${nodeType}`,
34
+ hint: 'Call without args to see the full catalog of supported node types.',
35
+ }, null, 2) }],
36
+ isError: true,
37
+ };
38
+ }
39
+ nodes = [single];
40
+ }
41
+ else if (category) {
42
+ nodes = getStrategyNodesByCategory(category);
43
+ }
44
+ else {
45
+ nodes = STRATEGY_NODES;
46
+ }
47
+ return {
48
+ content: [{ type: 'text', text: JSON.stringify({
49
+ count: nodes.length,
50
+ nodes,
51
+ }, null, 2) }],
52
+ };
53
+ }
54
+ catch (error) {
55
+ return {
56
+ content: [{ type: 'text', text: `Error: ${error instanceof Error ? error.message : String(error)}` }],
57
+ isError: true,
58
+ };
59
+ }
60
+ });
3
61
  // 1. List strategies
4
62
  server.tool('dwlf_list_strategies', "List the user's visual trading strategies with names, descriptions, and associated symbols.", {}, async () => {
5
63
  try {
@@ -1 +1 @@
1
- {"version":3,"file":"strategies.js","sourceRoot":"","sources":["../../src/tools/strategies.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"strategies.js","sourceRoot":"","sources":["../../src/tools/strategies.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dwlf/mcp-server",
3
- "version": "0.21.0",
3
+ "version": "0.23.0",
4
4
  "description": "MCP server for DWLF market analysis platform — exposes market data, indicators, signals, strategies, backtests, portfolio, trade journal, and more as AI-accessible tools",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",