@battlegrid/mcp-server 31.2.80 → 31.2.82
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 +97 -0
- package/dist/index.d.ts +1 -1
- package/dist/index.js +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -24,6 +24,103 @@ Seeing package `31.x` alongside handshake `battlegrid@33.x` — the package **be
|
|
|
24
24
|
|
|
25
25
|
**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.
|
|
26
26
|
|
|
27
|
+
## Contract history — v100 (what one bar did: level interaction, candle patterns, gaps, runs)
|
|
28
|
+
|
|
29
|
+
**Breaking at v100: the `bandTouch` transform is retired and `levelInteraction` takes its place; a column
|
|
30
|
+
gains a `buffer` knob; the catalog gains twelve bar-geometry metrics.** v100 is the contract on top of
|
|
31
|
+
v99.
|
|
32
|
+
|
|
33
|
+
### Rejected input — something you send is no longer accepted
|
|
34
|
+
|
|
35
|
+
- **A column naming `bandTouch` is refused** by every tool that takes a column — `stage_strategy_draft`,
|
|
36
|
+
`preview_strategy_report`, `derive_strategy_rule_view`, `get_strategy_column_contract` and
|
|
37
|
+
`get_metric_construction_hints` — as any unknown transform id is. Where you want "where the close sits
|
|
38
|
+
in the bands", read `BB_TOUCH × value`; where you want "what the bar's range did at a band", use
|
|
39
|
+
`levelInteraction` below.
|
|
40
|
+
|
|
41
|
+
### Widened input — something new you can send
|
|
42
|
+
|
|
43
|
+
- **`levelInteraction`** classifies the newest bar of a column against a price level as
|
|
44
|
+
`touch_from_below`, `touch_from_above`, `reject_from_below`, `reject_from_above` or `none`. The side is
|
|
45
|
+
where the prior close stood against the prior bar's level. A reject — the range pierced the level and
|
|
46
|
+
the close came back — reports reject, never touch, so "touched or rejected" is an `in` clause over both
|
|
47
|
+
labels of a side. A close through the level reads `none`: the break is `distance crossesAbove 0` (or
|
|
48
|
+
`crossesBelow 0`) over the same level.
|
|
49
|
+
- It is offered on a level with a value at both bars it reads: a candle-homed level (a band, `VWAP`, a
|
|
50
|
+
moving average, `ST_LINE`, `PSAR`, the Ichimoku lines) or a prior-session level or pivot (`PDH`,
|
|
51
|
+
`PDL`, `PDO`, the floor pivots, `PRIOR_TPO_*`). A prior-session level is a single read and takes no
|
|
52
|
+
hold. It is not offered on a price fact (`CLOSE`, `MARK`, `HLC3`), a developing-session level
|
|
53
|
+
(`TPO_*`), the naked points of control, or the Donchian rails.
|
|
54
|
+
- The header is `{code}_lvl` — `bbUpper_lvl`.
|
|
55
|
+
- **`buffer`**, a column knob declared by `levelInteraction` only: whole basis points of the level,
|
|
56
|
+
`0`–`500`, default `0`. Only a touch reads it. A non-zero buffer names the header (`bbUpper_lvl_b25`),
|
|
57
|
+
so two buffers are two columns. `buffer` on any other transform is refused as an undeclared parameter.
|
|
58
|
+
- **Twelve metrics**, all in the `price` family:
|
|
59
|
+
- candle patterns — `CANDLE_DOJI` (boolean), `CANDLE_PIN` (`lower_wick` / `upper_wick` / `none`),
|
|
60
|
+
`CANDLE_ENGULFING` (`bullish` / `bearish` / `none`), `BAR_CONTAINMENT` (`inside` / `outside` /
|
|
61
|
+
`none`), each judged against the ten bars before it at TA-Lib's default settings;
|
|
62
|
+
- gaps — `GAP` and `GAP_RANGE_CLEAR` (`up` / `down` / `none`) and `GAP_PCT`, the signed % from the
|
|
63
|
+
prior close to the open;
|
|
64
|
+
- run lengths — `CLOSE_RUN` and `CANDLE_RUN`, consecutive bars one way, capped at ±20;
|
|
65
|
+
- price sources — `HL2`, `HLC3`, `OHLC4`, price facts that take every transform a close takes
|
|
66
|
+
(`HLC3 × aggregate(20)` is the 20-bar SMA of typical price).
|
|
67
|
+
|
|
68
|
+
The patterns, gaps and runs compose `value` only, and none of the twelve is ranked.
|
|
69
|
+
|
|
70
|
+
### Reshaped output
|
|
71
|
+
|
|
72
|
+
- **`effectiveParameters` gains `buffer`** — the declared default `0` or your value on a
|
|
73
|
+
`levelInteraction` column, `null` where no transform in the chain declares it.
|
|
74
|
+
- A transform's authoring parameters may declare `buffer`, and the transform and section column-role
|
|
75
|
+
vocabularies read `levelInteraction` where they read `bandTouch`.
|
|
76
|
+
- The authoring contract digest's `metricKeys` gains the twelve keys.
|
|
77
|
+
|
|
78
|
+
A client that sends `bandTouch`, or reads `effectiveParameters` with a closed key set, breaks at v100 —
|
|
79
|
+
hence the MAJOR.
|
|
80
|
+
|
|
81
|
+
## Contract history — v99 (your arena entries are one owner-only history)
|
|
82
|
+
|
|
83
|
+
**Breaking at v99: four tools are retired, two are added, and `get_agent_journal` loses a field.** v99 is
|
|
84
|
+
the contract on top of v98.
|
|
85
|
+
|
|
86
|
+
Every Market Grid entry you made — by your deployed agent, an agent you asked for, an MCP client,
|
|
87
|
+
Commander, a grid you built or dice you rolled — is now read from one history, and only by you.
|
|
88
|
+
|
|
89
|
+
### Removed tools
|
|
90
|
+
|
|
91
|
+
- **`get_agent_game_history`, `get_user_agent_game_history`, `get_public_agent_game_history` and
|
|
92
|
+
`get_mcp_reasoning_journal`** are gone, with no alias; a call gets an unknown-tool error. The
|
|
93
|
+
replacements:
|
|
94
|
+
- `get_agent_game_history { agentId }` → `list_my_market_grid_entries { agentId }`;
|
|
95
|
+
- `get_user_agent_game_history` → `list_my_market_grid_entries` with no `agentId`;
|
|
96
|
+
- `get_public_agent_game_history` → none: arena entry history is owner-only, so no public read
|
|
97
|
+
replaces it;
|
|
98
|
+
- `get_mcp_reasoning_journal { sessionId }` → `get_my_market_grid_entry { sessionId }`, whose
|
|
99
|
+
`reasoning` is the reasoning recorded with the entry's picks.
|
|
100
|
+
|
|
101
|
+
### Added tools
|
|
102
|
+
|
|
103
|
+
- **`list_my_market_grid_entries { window?, outcome?, source?, agentId?, cursor?, limit? }`** (`mcp:read`)
|
|
104
|
+
pages every entry you made, newest first by its first submission. `outcome` is `PLAYED` (the default:
|
|
105
|
+
every entry except a cancelled one), `IN_PLAY`, `PAID` (a payout above zero), `NOT_PAID` or
|
|
106
|
+
`CANCELLED`; `source` and `agentId` filter by the entry's original author. The same read returns one
|
|
107
|
+
count per outcome, a summary (paid rate, totals, net, averages) and the agents you can filter by. Page
|
|
108
|
+
with `nextCursor`.
|
|
109
|
+
- **`get_my_market_grid_entry { sessionId }`** (`mcp:read`) returns your entry in one session — the same
|
|
110
|
+
record a list row carries. A session you never entered is `NOT_FOUND`.
|
|
111
|
+
- Each entry carries its `entryState` (`WON`, `PLACED`, `NO_WIN`, `VOID_NO_SUBMISSION`, `IN_PLAY` or
|
|
112
|
+
`CANCELLED`), its `entryFee` and signed `netPnl` (null while in play or cancelled), a cancelled entry's
|
|
113
|
+
`refundState`, its `originalSource` and original `agent`, and `edited` — true once another author has
|
|
114
|
+
rewritten the picks. `reasoning` is null on an edited entry, because the record no longer describes the
|
|
115
|
+
picks. Neither tool accepts a user identity: both read the authenticated account's own entries.
|
|
116
|
+
|
|
117
|
+
### Narrowed output
|
|
118
|
+
|
|
119
|
+
- **`get_agent_journal` no longer returns `recentGames`.** An agent's arena entries are read with
|
|
120
|
+
`list_my_market_grid_entries { agentId }`.
|
|
121
|
+
|
|
122
|
+
A client that calls a retired tool, or reads `recentGames`, breaks at v99 — hence the MAJOR.
|
|
123
|
+
|
|
27
124
|
## Contract history — v98 (a clause can read the bar before)
|
|
28
125
|
|
|
29
126
|
**Breaking at v98: a condition clause accepts six operators that compare a column with its own previous
|
package/dist/index.d.ts
CHANGED
|
@@ -49,7 +49,7 @@ import { type Implementation, type Prompt, type Resource } from '@modelcontextpr
|
|
|
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 declare const PACKAGE_VERSION = "31.2.
|
|
52
|
+
export declare const PACKAGE_VERSION = "31.2.82";
|
|
53
53
|
export declare const DEFAULT_URL = "https://mcp.battlegrid.trade/mcp";
|
|
54
54
|
export interface EnvConfig {
|
|
55
55
|
apiKeys: string[];
|
package/dist/index.js
CHANGED
|
@@ -52,7 +52,7 @@ import { ListToolsRequestSchema, CallToolRequestSchema, ListPromptsRequestSchema
|
|
|
52
52
|
* being asked. Move it for a change to THIS package — a proxy fix, a dependency bump, a docs
|
|
53
53
|
* correction. Never move it to track the server.
|
|
54
54
|
*/
|
|
55
|
-
export const PACKAGE_VERSION = '31.2.
|
|
55
|
+
export const PACKAGE_VERSION = '31.2.82';
|
|
56
56
|
export const DEFAULT_URL = 'https://mcp.battlegrid.trade/mcp';
|
|
57
57
|
const MAX_RETRIES = 3;
|
|
58
58
|
const RETRY_DELAYS_MS = [2000, 4000, 8000];
|