@battlegrid/mcp-server 31.2.90 → 31.2.94
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 +72 -0
- package/SKILL.md +3 -4
- 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,78 @@ 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 — v108 (conditions are the only entry gate; signal rules are removed)
|
|
28
|
+
|
|
29
|
+
**Breaking at v108: signal rules, the aggregate-score gate and the required-count gate are removed.**
|
|
30
|
+
v108 is the contract on top of v107. A strategy's deterministic entry gate is its conditions: a
|
|
31
|
+
required condition, or a condition that carries a verdict. A strategy that declares neither never
|
|
32
|
+
trades, and its draft says so with the warning `NO_ENTRY_CONDITION`.
|
|
33
|
+
|
|
34
|
+
### Removed tools
|
|
35
|
+
|
|
36
|
+
- **`simulate_aggregate_score`, `list_strategy_signals`, `get_strategy_signal_definition`,
|
|
37
|
+
`derive_strategy_rule_view` and `get_coin_signal_preview`** leave discovery with no alias. A call
|
|
38
|
+
gets the standard unknown-tool refusal.
|
|
39
|
+
|
|
40
|
+
### Rejected input — something you send is no longer accepted
|
|
41
|
+
|
|
42
|
+
- **`stage_strategy_draft` refuses the `SIGNAL_RULES` and `SETUP_GATES` axes** as unrecognized keys.
|
|
43
|
+
The ATR floor `minAtrPct` is staged in the `TRADE_LEVEL_POLICY` axis, beside the stop-loss multiples
|
|
44
|
+
and the risk-reward minimum; a `TRADE_LEVEL_POLICY` stage without it is refused.
|
|
45
|
+
- **`decide_trade` cites `entry.conditionChecklist`**: 1–8 items `{ conditionKey, verdict,
|
|
46
|
+
interpretation }` over the decision's evaluated entry conditions, each key at most once, `CONFIRM`
|
|
47
|
+
only on a condition that read TRUE. `signalChecklist` and `signalModulesUsed` are refused.
|
|
48
|
+
- **The signal-log and agent-profile filters refuse `dominantBias`.**
|
|
49
|
+
|
|
50
|
+
### Reshaped output — something you read has moved or been removed
|
|
51
|
+
|
|
52
|
+
- **Strategies, agents and drafts** lose `signalRules`, `signalRuleTally`, `minAggregateScore` and
|
|
53
|
+
`minRequiredCount`; the trading-config catalog loses the gate dial steps.
|
|
54
|
+
- **Qualification and scans** (`get_agent_coin_qualification`, `scan_agent_coins`, `scan_coin_agents`)
|
|
55
|
+
lose the score and required-count gates, the score shortfall and the signal readings. Scan rows rank
|
|
56
|
+
qualifying first, then by ticker or agent name.
|
|
57
|
+
- **Radar reads** lose every score field: the activity events, the close decision, the curve samples
|
|
58
|
+
(`{ at, atrPct, qualified }`) and the curve digest.
|
|
59
|
+
- **Entry decisions** carry `conditionChecklist` in place of `signalChecklist` and `signalModulesUsed`.
|
|
60
|
+
The public signal-log detail serves it as `{ name, outcome }` only.
|
|
61
|
+
- **Signal logs and signal performance** lose the aggregate score, bias, conflict and count fields; a
|
|
62
|
+
signal-log detail loses its scorecard and serves `candidateLevels`. The agent explorer loses its
|
|
63
|
+
average score.
|
|
64
|
+
|
|
65
|
+
### Narrowed enums
|
|
66
|
+
|
|
67
|
+
- **The qualification and screen reasons lose `AGGREGATE_BELOW_MIN` and `REQUIRED_COUNT_BELOW_MIN`
|
|
68
|
+
and gain `NO_ENTRY_CONDITION`**, which is the first reason a strategy fails. The attempt reasons lose
|
|
69
|
+
`NO_ALLOCATED_SIGNALS`, and the error codes lose `REPAIR_REQUIRED`.
|
|
70
|
+
|
|
71
|
+
A client that stages a signal rule or a gate, cites a signal in `decide_trade`, or reads a score field
|
|
72
|
+
breaks at v108, which is why this is a MAJOR.
|
|
73
|
+
|
|
74
|
+
## Contract history — v107.1 (an arena entry is recorded before its fee moves)
|
|
75
|
+
|
|
76
|
+
**Additive at v107.1: a paid entry can be recorded while its fee confirms.** v107.1 is the contract on top
|
|
77
|
+
of v107. The server now records your entry first, then sends the fee, then settles the entry on the
|
|
78
|
+
venue's answer, so a fee can never move for an entry that was not recorded. No input changes.
|
|
79
|
+
|
|
80
|
+
### Widened output
|
|
81
|
+
|
|
82
|
+
- **`submit_market_grid`, `random_submit_market_grid` and `submit_agent_grid` results gain
|
|
83
|
+
`entryStatus`**: `ENTERED`, or `PAYMENT_PENDING` when the entry is recorded and its fee is still
|
|
84
|
+
confirming at the venue. A payment-pending entry plays once its fee lands before lock; otherwise it is
|
|
85
|
+
released, and a fee that lands after that is refunded.
|
|
86
|
+
- **`entryState` gains `PAYMENT_PENDING`** on `get_my_market_grid_entry`. `list_my_market_grid_entries`
|
|
87
|
+
shares the element schema but never returns one.
|
|
88
|
+
|
|
89
|
+
### Refusal vocabulary
|
|
90
|
+
|
|
91
|
+
- **`details.wagerErrorCode` gains `ACCOUNT_NOT_UNIFIED`** on the three submit tools: an entry fee is
|
|
92
|
+
paid only from a unified-collateral account (`unifiedAccount` or `portfolioMargin`).
|
|
93
|
+
|
|
94
|
+
### Behaviour behind unchanged schemas
|
|
95
|
+
|
|
96
|
+
- **`check_market_grid_submission` answers `hasSubmitted: true`** for a payment-pending entry.
|
|
97
|
+
- **`update_market_grid` refuses a payment-pending entry** with `CONFLICT` until it is in play.
|
|
98
|
+
|
|
27
99
|
## Contract history — v106 (the Opening Bell: a session starts at its scored candle's open)
|
|
28
100
|
|
|
29
101
|
**Breaking at v106: Two-Look entry is retired. A deployment slot drops `entryStrategy`, and a
|
package/SKILL.md
CHANGED
|
@@ -17,7 +17,7 @@ from BattleGrid's own server so they name exactly the tools you reach here:
|
|
|
17
17
|
|---|---|
|
|
18
18
|
| Playing Market Grid sessions | `battlegrid-arena-play` |
|
|
19
19
|
| Building or changing a strategy | `battlegrid-strategy-authoring` |
|
|
20
|
-
| Composing beyond a bare template —
|
|
20
|
+
| Composing beyond a bare template — report sections, conditions, trade levels, playbooks | `battlegrid-strategy-examples` |
|
|
21
21
|
| Creating and governing intelligence agents | `battlegrid-agent-management` |
|
|
22
22
|
| Putting an agent on standing duty (Radar, Arena presets) | `battlegrid-radar-deployment` |
|
|
23
23
|
| Reading the market — regime, funding, leaders, a coin deep-dive | `battlegrid-market-analysis` |
|
|
@@ -43,7 +43,7 @@ Never put `account` inside `request`, and never flatten request fields beside it
|
|
|
43
43
|
|
|
44
44
|
## Scopes
|
|
45
45
|
|
|
46
|
-
- `mcp:read` — strategy discovery **and** non-financial configuration writes (stage and commit strategy and agent drafts
|
|
46
|
+
- `mcp:read` — strategy discovery **and** non-financial configuration writes (stage and commit strategy and agent drafts). Treat it as configuration authority, not view-only.
|
|
47
47
|
- `mcp:wager` — financial actions (submit paid entries, accept/cancel entry decisions, deployment policies). Enable **Server-Signed Wagers** in Profile → MCP to grant it. Pending entry decisions come from the conversational surface, which waits for approval; an agent deployed to a radar coin or a trading-enabled arena slot executes without one.
|
|
48
48
|
|
|
49
49
|
## Author a strategy or an agent, and bind them
|
|
@@ -93,7 +93,7 @@ The `play-market-grid` prompt (discover via `prompts/list`) provides a guided en
|
|
|
93
93
|
|
|
94
94
|
## Retired operations
|
|
95
95
|
|
|
96
|
-
`create_strategy`, the plan tools (`compile_strategy_plan`, `stage_strategy_plan`, `apply_strategy_plan`), `update_strategy_signal_rule`, and the direct agent writers (`create_intelligence_agent`, `update_intelligence_agent`, `rebind_intelligence_agent`) are **retired** — they are absent from discovery and cannot be invoked. Stage into the entity's draft, read it back, and commit the version you read; a
|
|
96
|
+
`create_strategy`, the plan tools (`compile_strategy_plan`, `stage_strategy_plan`, `apply_strategy_plan`), `update_strategy_signal_rule`, the signal-rule tools (`simulate_aggregate_score`, `list_strategy_signals`, `get_strategy_signal_definition`, `derive_strategy_rule_view`, `get_coin_signal_preview`), and the direct agent writers (`create_intelligence_agent`, `update_intelligence_agent`, `rebind_intelligence_agent`) are **retired** — they are absent from discovery and cannot be invoked. Stage into the entity's draft, read it back, and commit the version you read; a strategy's entry gate is its conditions (a required or verdict-carrying condition — a strategy with none never trades, and its draft warns `NO_ENTRY_CONDITION`), its ATR floor `minAtrPct` is part of the `TRADE_LEVEL_POLICY` axis, and a strategy binding is the agent draft's `STRATEGY_BINDING` axis. A deployment preview's `previewToken`, and the `confirm` on a deployment commit, resume, delete or draft discard, are retired the same way: a strict input refuses either key. Do not attempt flat legacy payloads; the server enforces a closed-world request root and the proxy never reconstructs them.
|
|
97
97
|
|
|
98
98
|
## Common errors
|
|
99
99
|
|
|
@@ -106,6 +106,5 @@ The `play-market-grid` prompt (discover via `prompts/list`) provides a guided en
|
|
|
106
106
|
| `DRAFT_VERSION_MOVED` | The draft changed after you read it, or no draft is held (`details.draftVersion` null) | Call `get_<kind>_draft` again, show the player what it now holds, and commit only on their word |
|
|
107
107
|
| `DRAFT_AXIS_CONTESTED` | The player changed `details.contestedAxes` in their open form after the version you staged against | Read the draft again and propose against what they now have |
|
|
108
108
|
| `CONFLICT` on a commit | The live revision moved after the draft read | Read the draft again, show the player the new diff and impact, and commit at the new `committedRevision` only on their word |
|
|
109
|
-
| Required at allocation Off | A rule flags `required` on a signal weighted `0` (contract 34) | Read `details.inertRequiredSignalIds`; per signal either raise `allocation` or set `required: false` |
|
|
110
109
|
| Method not found | Calling a retired/unknown tool | Re-run `tools/list`; stage, read and commit through the entity's draft |
|
|
111
110
|
| `Wager scope required` | `mcp:wager` not enabled | Enable Server-Signed Wagers in Profile → MCP |
|
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.94";
|
|
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.94';
|
|
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];
|