@battlegrid/mcp-server 32.0.29 → 32.0.30

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/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.29";
50
+ export declare const PACKAGE_VERSION = "32.0.30";
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.29';
52
+ export const PACKAGE_VERSION = '32.0.30';
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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@battlegrid/mcp-server",
3
- "version": "32.0.29",
3
+ "version": "32.0.30",
4
4
  "description": "BattleGrid MCP server — play crypto prediction games from AI agents",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -1,13 +1,13 @@
1
1
  {
2
2
  "generator": "battlegrid-app/server/scripts/export-mcp-skills.mjs",
3
- "contractVersion": "132.0.0",
3
+ "contractVersion": "134.0.0",
4
4
  "files": {
5
5
  "battlegrid-agent-management/SKILL.md": "91d1be4de1e33d54e1852c970af66ad176068fd16c30b4326e49053b7a35eb32",
6
6
  "battlegrid-agent-management/references/agent-stage-examples.md": "dffcc353d61dfc7b5bb6a2b3077fc6bf8c760a34c287cafb3b59b99306f24195",
7
7
  "battlegrid-arena-play/SKILL.md": "fdaabcd2e5ce3946ee96e553ce2e1931a822b84f91b0c94ce86a8bde0cc1d50f",
8
8
  "battlegrid-arena-play/references/entry-stage-examples.md": "0223f3743171ff213e943789d27590b2f65648398e85e10cd24938d5eb6af665",
9
9
  "battlegrid-market-analysis/SKILL.md": "fcbe98e30e1edce39bb170c224cdf20181934f62b5f3a26b293787c70eeb6229",
10
- "battlegrid-officers/SKILL.md": "3fd59ec301d1492c956fbdb4368fef61f29abd137f02f49a6172351c7a563309",
10
+ "battlegrid-officers/SKILL.md": "0e5b4fd7a11fc1b6643eecd0008dfe1528b915ee00d0a99be9aca1e3934d57f7",
11
11
  "battlegrid-officers/references/officer-stage-examples.md": "ef46ba26f4b36c9964b5bde95fdf98e5952c3786b77be5f136056cac792f0aec",
12
12
  "battlegrid-radar-deployment/SKILL.md": "42900772033d799ce8eeeea9a433d76dd54fb5b153c83951753f73859dcfc021",
13
13
  "battlegrid-radar-deployment/references/arena-stage-examples.md": "d27cfed1f4663f267c4a7ecebe4a6e65a450fc74bd14ce8987fb61af5bbf2ca5",
@@ -15,8 +15,8 @@
15
15
  "battlegrid-strategy-authoring/SKILL.md": "39cfa46b1f640e6800edb7e85a8f2c4b6b8786cddf71bb8244d172a44fc11d75",
16
16
  "battlegrid-strategy-authoring/references/strategy-stage-examples.md": "f10ecdc91f3660a708eee7a7bacefce2acbb46c9cf7e0ac1454bd54f839f39fd",
17
17
  "battlegrid-strategy-doctor/SKILL.md": "24c2208cf6832f1fc34e1b1c52acd8dae10f56b9860aaf27b450a62a9fb74634",
18
- "battlegrid-strategy-examples/SKILL.md": "9d18bf0e4bf85a28508e2881a4cdf77b823ec831e7cec5d82f82dc251402f41c",
19
- "battlegrid-strategy-examples/references/playbooks.md": "a9464789df2e762faf9dbd7845101564bc1847cd193f709f8ac4b6bff08f09dd",
18
+ "battlegrid-strategy-examples/SKILL.md": "8b86ab1bbc4fbd743ef56c0fbcb0134d4238f9a72641e5eb66dfbf20cfc139ed",
19
+ "battlegrid-strategy-examples/references/playbooks.md": "59996c37eea08e7ce398e49304171939e55c968400a1603597d6737faf9e1771",
20
20
  "battlegrid-strategy-examples/references/recipes.md": "806aae0b4842408f6e6ed3e108293073f4f31d1c27fa419ad57df9e1134f23e7",
21
21
  "battlegrid-strategy-examples/references/tradingview-ports.md": "c62ce72b741abe5a92e1dec6615f26b19a54959aa1d29542518cd9a189390b98",
22
22
  "battlegrid-trade-analysis/SKILL.md": "140d847f24e98845736d4f0c2e72b318a4d235413f72f072d2fe6d0daa5f64db",
@@ -60,7 +60,8 @@ own model and brief, over the agents its scope covers that closed a decision or
60
60
  since its last review — and answers before any review starts:
61
61
 
62
62
  - `QUEUED` with `agentCount`: the reviews arrive in `list_officer_reviews` as each finishes;
63
- - `NOTHING_TO_REVIEW`: no agent is under review, and nothing is queued or billed;
63
+ - `NOTHING_TO_REVIEW`: no agent is under review, or the agents with something new are waiting on a proposal pushed
64
+ into the player's draft, and nothing is queued or billed;
64
65
  - `ALREADY_QUEUED`: a run of this officer is waiting or running.
65
66
 
66
67
  A run is per officer: to run two, call it for each. While one is waiting or running, `pendingRun` on `list_officers`
@@ -68,21 +69,25 @@ and `get_officer` names its state; read it again rather than calling `run_office
68
69
  `commanderAccess` from `get_account_state`, not `llmAccess`: show `deniedMessage` when it is not allowed. An
69
70
  archived officer is refused.
70
71
 
72
+ An officer waits on an agent whose review by it is pushed: the player is adopting that proposal in the draft, so the
73
+ officer reviews that agent again only once the draft is saved or discarded.
74
+
71
75
  **Never write a review.** The officer records its own; a second opinion on one of its reviews is your reading in
72
76
  the conversation, never a record.
73
77
 
74
78
  ## 3. Where each officer stands
75
79
 
76
80
  Read it, never compute it. `list_officers` serves each officer's `lastRunAt`, `nextRunAt` and `pendingRun`, and
77
- `list_officer_reviews` serves `openCountByOfficer`, each unarchived officer's open and pushed reviews. Quote them as
78
- served, through their display names.
81
+ `list_officer_reviews` serves `openCountByOfficer`, each unarchived officer's reviews awaiting the player. Quote
82
+ them as served, through their display names.
79
83
 
80
84
  ## 4. Work the inbox
81
85
 
82
86
  - **Read.** `list_officer_reviews`, by officer or by agent, newest first; `includeClosed` adds the applied,
83
87
  dismissed and superseded history. Show each review's verdict, findings, diff, impact and warnings exactly as
84
88
  served; `applyAvailable` says Apply is offered, `heldAxes` names every axis the target's draft holds and who wrote
85
- it, and `baseMoved` says the target was committed since the review.
89
+ it, and `baseMoved` says the target was committed since the review. `awaitingOwner` says the review waits on the
90
+ player; a review that proposes no change (lever `NONE`) is for their information and never waits.
86
91
  - **Apply** with `apply_officer_proposal` only after an `ask_user` confirmation naming the review, its target and
87
92
  its axis, and only on the confirming pick. A client with no `ask_user` asks in its reply and waits for the
88
93
  player's word. Apply publishes the proposal to the live target; it needs `mcp:wager`.
@@ -92,7 +97,8 @@ served, through their display names.
92
97
  - **A refusal names its recovery** through `details.nextAct`: `BASE_MOVED` — the target moved since the review,
93
98
  dismiss it for a re-review; `AXIS_HELD` and `DRAFT_NOT_EMPTY` — the target's draft already holds work, so the
94
99
  player saves or discards it, or pushes instead of applying; `TARGET_NOT_OWNED` and `PROPOSAL_INVALID` — the target
95
- no longer accepts the proposal, so dismiss it. A dismissed review is not run again until the agent closes a new
100
+ no longer accepts the proposal, so dismiss it. An action on a closed review is refused with its `reviewStatus`, and
101
+ a superseded one names its replacement as `supersededBy`: read that review instead. A dismissed review is not run again until the agent closes a new
96
102
  decision or the officer's setup changes.
97
103
 
98
104
  ## Reporting discipline
@@ -69,7 +69,7 @@ columns only for entry timing and risk — daily inputs then move once per daily
69
69
  stops and time decay keep managing intraday. **Benchmark sections** (`benchmarkTicker: "BTC"`,
70
70
  required-nullable on every custom section) read the benchmark's values on every row — the
71
71
  standard market-leader regime gate. Platform `sectionKey`s are their literal keys
72
- (`includeMtfConfluence`). Custom `sectionKey`s are the **server's** to issue, and which of the two
72
+ (`includeHigherTimeframe`). Custom `sectionKey`s are the **server's** to issue, and which of the two
73
73
  things you do depends on the operation: on a **CREATE, omit `sectionKey` entirely** — supplying one
74
74
  is refused, since a new strategy owns no custom sections yet; on an **UPDATE or RESTORE, send back
75
75
  the keys `get_strategy` returned** for the sections you are keeping, and omit it on a section you
@@ -61,13 +61,11 @@ every row reads BTC. Conditions: `BTC_RISK_ON` building block (`MAalign is "bull
61
61
  ATR floor 0.6%. PM: BE 1R; trail 1R giveback 45. Ranked cohort ≥ 40 —
62
62
  rank conditions need a cohort wider than their thresholds.
63
63
 
64
- ### 4 · HTF Trend Pullback — 1h, multi-timeframe confluence
64
+ ### 4 · HTF Trend Pullback — 1h, higher-timeframe context
65
65
 
66
- Platform `includeMtfConfluence` (`MAalign_ltf/…/_htf`, `RSI14_*_zone`, `ADX14_*_state` vocab
67
- weak/developing/trending/extreme), `includeMovingAverages` (`dist_EMA20`, …), `includeRsi`
68
- (`RSI14_now`, `RSI14_zone`). These three render `MAalign` and `RSI14_zone` twice between them, so
69
- every condition below reads a suffixed form — never bare `MAalign` or bare `RSI14_zone`, which
70
- would be ambiguous. Conditions: `HTF_UP` building block (`MAalign_htf is "bullish"` +
66
+ Platform `includeHigherTimeframe` (`MAalign_htf`, `RSI14_htf_zone`, `ADX14_htf_state` vocab
67
+ weak/developing/trending/extreme), `includeMovingAverages` (`dist_EMA20`, `MAalign`, …),
68
+ `includeRsi` (`RSI14_now`, `RSI14_zone`). Conditions: `HTF_UP` building block (`MAalign_htf is "bullish"` +
71
69
  `ADX14_htf_state in ["trending","extreme"]`); `HTF_DOWN` mirror; `TREND_PRESENT` **required**
72
70
  `ANY[ref HTF_UP, ref HTF_DOWN]` — chop blocks compose-trade entirely, before billing;
73
71
  `PULLBACK_LONG` verdict UP (ref HTF_UP + `RSI14_now between 35 55` +