@battlegrid/mcp-server 32.0.2 → 32.0.5
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.
package/README.md
CHANGED
|
@@ -38,6 +38,43 @@ Seeing package `31.x` alongside handshake `battlegrid@33.x` — the package **be
|
|
|
38
38
|
|
|
39
39
|
**What this changes for you:** nothing about how you call anything. Upgrading the package no longer waits on a server deploy, and a server deploy no longer strands you on a package that names the wrong contract — reconnect and the announcement follows. **Contract breaking-change notes are no longer keyed to package versions**, since a contract move is no longer a release here; the v11-and-earlier notes below are kept as history, and the live vocabulary is always discovery.
|
|
40
40
|
|
|
41
|
+
## Contract history — v119 (an array names its scope once)
|
|
42
|
+
|
|
43
|
+
**Breaking at v119: a field every row repeated moves to the response, and three repeated fields are gone.** v119 is
|
|
44
|
+
the contract on top of v118.1. No input schema moves, so nothing you send is refused that v118.1 accepted. Reconnect
|
|
45
|
+
the proxy, or restart it, so discovery reads the new schemas.
|
|
46
|
+
|
|
47
|
+
### Reshaped output — something you read moved
|
|
48
|
+
|
|
49
|
+
- **The agent and its owner** move from each row to the response as `agentId` and `userId`, on `list_gate_blocks`,
|
|
50
|
+
`get_agent_thought_log` and `list_entry_decisions` (`entries[]`), `get_agent_activity_feed` (`events[]`),
|
|
51
|
+
`get_agent_journal` (`recentThoughts[]`, `recentActivity[]`) and `list_trade_outcomes` (`outcomes[]`).
|
|
52
|
+
- **The agent** moves to the response as `agentId` on `list_signal_logs` and `get_public_agent_signal_logs`
|
|
53
|
+
(`entries[]`) and on `get_agent_automation_status` (`assignments[]`).
|
|
54
|
+
- **The owner** moves to the response as `userId` on `get_user_thought_log` (`entries[]`), `get_user_activity_feed`
|
|
55
|
+
(`events[]`), `list_pending_approvals` (`approvals[]`) and `list_intelligence_agents` (`agents[]`). Each row keeps
|
|
56
|
+
the agent it belongs to, and each agent keeps its own capabilities.
|
|
57
|
+
- **The screened agent** moves to the response as `agentId`, `agentName` and `strategyTimeframe` on
|
|
58
|
+
`get_agent_coin_qualification`; each of its `verdicts[]` drops them.
|
|
59
|
+
- **The session** moves off each row: `list_session_agent_positions` drops `marketGridSessionId` from every position,
|
|
60
|
+
flat and grouped, and carries it once on the response. `get_market_grid_results` drops `sessionId` from each of
|
|
61
|
+
`resolutions[]` and `players[]`; read `session.id`.
|
|
62
|
+
- An empty page still names its scope.
|
|
63
|
+
|
|
64
|
+
### Removed fields — something you read is gone
|
|
65
|
+
|
|
66
|
+
- **A trade outcome's `createdAt`** on `list_trade_outcomes` and `get_trade_outcome_by_decision`. Read `closedAt`,
|
|
67
|
+
which carried the same instant.
|
|
68
|
+
- **A public realized trade's `outcomeId`** on `get_public_agent_realized_trades`. Read `positionId`, which is now
|
|
69
|
+
never null.
|
|
70
|
+
- **A score breakdown captain's `symbol`** on `get_market_grid_results` (under `players[]` and `playerGrids`). Read
|
|
71
|
+
`coinId`, which named the same coin.
|
|
72
|
+
|
|
73
|
+
### Behaviour behind unchanged schemas
|
|
74
|
+
|
|
75
|
+
- **A UUID you send is read in its lower-case spelling,** so the id a response names is the id each of its rows
|
|
76
|
+
answers to, whatever case you sent it in.
|
|
77
|
+
|
|
41
78
|
## Contract history — v118.1 (a server fault says whether repeating is safe)
|
|
42
79
|
|
|
43
80
|
**Nothing you send is refused that v118 accepted.** v118.1 is the contract on top of v118. No input schema moves.
|
package/dist/index.d.ts
CHANGED
|
@@ -47,7 +47,7 @@ import { Client, StreamableHTTPClientTransport } from '@modelcontextprotocol/cli
|
|
|
47
47
|
* being asked. Move it for a change to THIS package — a proxy fix, a dependency bump, a docs
|
|
48
48
|
* correction. Never move it to track the server.
|
|
49
49
|
*/
|
|
50
|
-
export declare const PACKAGE_VERSION = "32.0.
|
|
50
|
+
export declare const PACKAGE_VERSION = "32.0.5";
|
|
51
51
|
export declare const DEFAULT_URL = "https://mcp.battlegrid.trade/mcp";
|
|
52
52
|
export interface EnvConfig {
|
|
53
53
|
apiKeys: string[];
|
package/dist/index.js
CHANGED
|
@@ -49,7 +49,7 @@ import { Client, SdkHttpError, StreamableHTTPClientTransport } from '@modelconte
|
|
|
49
49
|
* being asked. Move it for a change to THIS package — a proxy fix, a dependency bump, a docs
|
|
50
50
|
* correction. Never move it to track the server.
|
|
51
51
|
*/
|
|
52
|
-
export const PACKAGE_VERSION = '32.0.
|
|
52
|
+
export const PACKAGE_VERSION = '32.0.5';
|
|
53
53
|
export const DEFAULT_URL = 'https://mcp.battlegrid.trade/mcp';
|
|
54
54
|
const MAX_RETRIES = 3;
|
|
55
55
|
const RETRY_DELAYS_MS = [2000, 4000, 8000];
|
package/package.json
CHANGED
package/skills/EXPORT.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"generator": "battlegrid-app/server/scripts/export-mcp-skills.mjs",
|
|
3
|
-
"contractVersion": "116.
|
|
3
|
+
"contractVersion": "116.1.0",
|
|
4
4
|
"files": {
|
|
5
5
|
"battlegrid-agent-management/SKILL.md": "9dc151c32c3578d06e8895c6752d7a64959bff6a6681a01d62ab65e1ea1590d1",
|
|
6
6
|
"battlegrid-agent-management/references/agent-stage-examples.md": "dffcc353d61dfc7b5bb6a2b3077fc6bf8c760a34c287cafb3b59b99306f24195",
|
|
@@ -13,8 +13,8 @@
|
|
|
13
13
|
"battlegrid-strategy-authoring/SKILL.md": "39cfa46b1f640e6800edb7e85a8f2c4b6b8786cddf71bb8244d172a44fc11d75",
|
|
14
14
|
"battlegrid-strategy-authoring/references/strategy-stage-examples.md": "f10ecdc91f3660a708eee7a7bacefce2acbb46c9cf7e0ac1454bd54f839f39fd",
|
|
15
15
|
"battlegrid-strategy-doctor/SKILL.md": "e34e055b0cc9b355bc1adeb5d49d464eaa0756ca3f48dc89ca2ccdda94e1311f",
|
|
16
|
-
"battlegrid-strategy-examples/SKILL.md": "
|
|
17
|
-
"battlegrid-strategy-examples/references/playbooks.md": "
|
|
16
|
+
"battlegrid-strategy-examples/SKILL.md": "82df6781b8dbb222407cc58f622f5fadb6f933aeb7efb855c26a9ae13620cca3",
|
|
17
|
+
"battlegrid-strategy-examples/references/playbooks.md": "275352be43652ca0fd36a35981ea7ffcfabdc4f9b33293826656ee500d3795e9",
|
|
18
18
|
"battlegrid-strategy-examples/references/recipes.md": "635e03d163100f6de37cda1f6cc12928d5d36aa0ea883bf44fc72f17cbf3e98e",
|
|
19
19
|
"battlegrid-strategy-examples/references/tradingview-ports.md": "9eaa926cbe8606c6a09f91007a0606042afbfdc50173a5b13ae9336d2e9e9b08",
|
|
20
20
|
"battlegrid-trade-analysis/SKILL.md": "3f927b4f9796178526fa1673a2043c5f14358c39aa955de33192ea58641f18fb",
|
|
@@ -228,9 +228,12 @@ column selecting Developing above the strategy timeframe (`CONDITION_VERDICT_REA
|
|
|
228
228
|
closure is what the condition reads directly plus everything reached through `conditionRef`,
|
|
229
229
|
transitively: a referenced condition contributes what IT reads, so moving the clause into a building
|
|
230
230
|
block does not launder it. A closure whose candle columns all read Confirmed — or whose operands no
|
|
231
|
-
bar moves at all, such as a published regime label
|
|
232
|
-
|
|
233
|
-
a
|
|
231
|
+
bar moves at all, such as a published regime label or a funding rate — admits a verdict at every
|
|
232
|
+
decision, because a decision reads the completed strategy bar and a level is compared against that
|
|
233
|
+
bar's close. A change over a horizon above the strategy timeframe — `chg4h` or `chg24h` on a `1h`
|
|
234
|
+
strategy, and `oiRegime`, which reads the `1h` change, below `1h` — is a developing read whatever its
|
|
235
|
+
selector: its bar is still in progress at the close, so it carries no verdict. Read a horizon at or
|
|
236
|
+
below the strategy timeframe instead, or a Confirmed `CLOSE_CHANGE` on the higher timeframe.
|
|
234
237
|
|
|
235
238
|
Evaluation is three-valued: UNRESOLVED never collapses to FALSE; a developing read is provisional,
|
|
236
239
|
and so is any reading taken on the display lane's forming bar.
|
|
@@ -266,10 +269,11 @@ the served domain is refused (`CONDITION_HOLD_ILLEGAL`, the domain in `allowedDo
|
|
|
266
269
|
a header admits only Once:
|
|
267
270
|
|
|
268
271
|
- `NOT_REWINDABLE` — the value is stored for the current bar only (session and universe scalars,
|
|
269
|
-
ranks, zone entities, enrichment metrics,
|
|
272
|
+
ranks, zone entities, enrichment metrics, a change at or below the strategy timeframe). **Worked liquidity floor:**
|
|
270
273
|
`LIQUID_FLOOR` holds Once because `vol24hUsd` is a bundle scalar.
|
|
271
|
-
- `DEVELOPING` — the column reads
|
|
272
|
-
|
|
274
|
+
- `DEVELOPING` — the column reads a bar still forming: a Developing candle column above the strategy
|
|
275
|
+
timeframe, or a change over a horizon above it. **Developing columns cannot be held**; set a candle
|
|
276
|
+
column Confirmed to count closes, or read a change at or below the strategy timeframe.
|
|
273
277
|
- `OFFSET` — the column already reads an earlier bar; remove the offset to count closes.
|
|
274
278
|
- `BAR_STATE` — the header describes only the bar being decided.
|
|
275
279
|
- `HISTORY` — not enough history is stored on that timeframe to count more than one close.
|
|
@@ -300,8 +304,10 @@ anchor's own close — so Developing there is legal and changes no decision. A c
|
|
|
300
304
|
developing bar is single-frame: its clause holds Once (a Developing column cannot be held), it
|
|
301
305
|
carries no verdict and it cannot be an exit rule. One exception overrides both the stored value and the default: a column reading a metric with
|
|
302
306
|
no live value (itself, or a `spread` operand) reads completed bars at every rung, because the forming
|
|
303
|
-
bar publishes nothing for it.
|
|
304
|
-
|
|
307
|
+
bar publishes nothing for it. A change (`chg5m` … `chg24h`, and `oiRegime`'s `1h` change) carries its
|
|
308
|
+
horizon in the metric, so above the strategy timeframe it is Developing at every rung and under every
|
|
309
|
+
selector. The resolved answer for a column is served on `effectiveParameters.bars`, and it states both
|
|
310
|
+
exceptions.
|
|
305
311
|
|
|
306
312
|
**A higher-timeframe level is measured from the current strategy-bar price.** The distance to a `4h`
|
|
307
313
|
Donchian band, and every candle label classifier (`MA_ALIGN`, `PRICE_ZONE`, `BB_TOUCH`), compares
|
|
@@ -36,11 +36,14 @@ anything failing {LIQUID_FLOOR}."
|
|
|
36
36
|
Custom `Positioning`: `FUNDING_RATE value`→`rate`, `aggregate w24`→`rate_mean24`,
|
|
37
37
|
`FUNDING_ANN value`→`ann`, `OI_CHG value`→`oiChg`, `OI_PX_REGIME value`→`oiRegime` (vocab:
|
|
38
38
|
new longs / new shorts / short covering / long liquidation), `MARK spread ORACLE`→
|
|
39
|
-
`mark_oracle_spread`, `RSI14 value`, `
|
|
39
|
+
`mark_oracle_spread`, `RSI14 value`, `CLOSE_CHANGE value @ {abs: 1d}`→`closeChg_1d` (Confirmed, the
|
|
40
|
+
default above the strategy timeframe); plus `includeCvd`. Conditions:
|
|
40
41
|
`NO_LIQUIDATION_TAPE` required NOT-veto (`NOT [oiRegime is "long liquidation"]`);
|
|
41
42
|
`CROWDED_LONGS` building block (`ann gte 25` + `oiChg gte 3` + `oiRegime is "new longs"`);
|
|
42
|
-
`FADE_SHORT` verdict DOWN (ref + `RSI14 gte 65` + `
|
|
43
|
-
/ `SQUEEZE_LONG` verdict UP
|
|
43
|
+
`FADE_SHORT` verdict DOWN (ref + `RSI14 gte 65` + `closeChg_1d gte 5`); mirrored `SQUEEZED_SHORTS`
|
|
44
|
+
/ `SQUEEZE_LONG` verdict UP (`closeChg_1d lte -5`). The confirmation is the prior completed UTC day's
|
|
45
|
+
move, not today's: today's (`chg24h`) is a 1d bar still in progress at every 1h close, a developing
|
|
46
|
+
read no verdict may carry. Levels 1.0–2.5 ATR, RR 1.5, ATR floor 0.5%. PM: BE 0.8R, no trail, timeDecay ON (120/60, 10→40, stale 25).
|
|
44
47
|
|
|
45
48
|
### 3 · Relative-Strength Rotation with a Benchmark Gate — 4h cross-sectional
|
|
46
49
|
|