@battlegrid/mcp-server 32.0.33 → 32.0.36

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,85 @@ 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 — v136 (one ranked universe: rank within a category, select coins by a ranked metric)
42
+
43
+ **Breaking at v136: `get_top_ranked_coins` is retired, and one value moves.** v136 is the contract on top of v135.2.
44
+ Reconnect the proxy, or restart it, so discovery reads the new tool list and schemas.
45
+
46
+ ### Removed tool — and its replacement
47
+
48
+ - **`get_top_ranked_coins` is gone, with no alias.** Discover leaders with `preview_strategy_report` and a ranked
49
+ `coinSelection`: `{ "mode": "ranked", "limit": 10, "category": "ALL", "rankBy": { "metric": "ROC12", "ordering": "hi" } }`.
50
+ The answer is the leaders' report rows, not a bare list.
51
+ - **The old metrics map onto ranked metrics:** `abs_change` is `CLOSE_CHANGE` with ordering `far`, `volume` is `RVOL`
52
+ with ordering `hi`. `rsi_activity` has no replacement.
53
+ - **Three of the old tool's defaults are not carried over.** A ranked selection defaults to crypto, so name
54
+ `category: "ALL"` to rank every asset class. It ranks at the preview's authorable timeframe, not at any `interval`.
55
+ It has no default `limit`.
56
+ - `toolCount` goes from 150 to 149.
57
+
58
+ ### Widened input
59
+
60
+ - **A `rank` column takes a category `scope`** (`all` by default, or one of the breadth scopes such as `crypto`,
61
+ `l1` or `defi`). The rank is filtered at read time from the same exchange-wide ranked set, so its `universe` is the
62
+ scope's coin count. A scope holding fewer than five coins ranks none. A non-default scope adds an `_<scope>` token
63
+ to the header. `scope` is refused on a report-scoped rank, which ranks the report's own coins.
64
+ - **A ranked `coinSelection` takes `rankBy: { metric, ordering }`.** It is refused outside the served
65
+ `rankScope: "exchangeWide"` / `rankOrderings` vocabulary. Without `rankBy`, ranked selection is by 24h volume, as
66
+ before.
67
+
68
+ ### Added output
69
+
70
+ - **The column contract's effective parameters carry `scope`**: the rank's scope, or `null` for a column that does
71
+ not rank exchange-wide.
72
+
73
+ ### Changed values — the same schema serves a different number
74
+
75
+ - **Category membership is the coin's main category only.** A secondary category assignment no longer places a coin
76
+ in that category, so breadth `defi` folds 12 coins where it folded 13. The Asset Browser filter and counts, the
77
+ breadth fold, a scoped rank and a ranked selection now agree on every category's coins.
78
+
79
+ ### Digest move
80
+
81
+ - **`vocabularyDigest` moves.** A client caching vocabulary against it re-reads `list_strategy_vocabulary`.
82
+
83
+ ## Contract history — v135.2 (room for 32 conditions, a column's relation to the anchor, and a condition column's family)
84
+
85
+ **Additive at v135.2: two output fields, and two served limits rise.** v135.2 is the contract on top of v135.1. Nothing
86
+ a client sends is refused that v135.1 accepted. Reconnect the proxy, or restart it, so discovery reads the new output
87
+ schemas.
88
+
89
+ ### Added output
90
+
91
+ - **`get_strategy_column_contract`'s `timeframe` carries `anchorRelation`:** where the column reads against the strategy
92
+ anchor (`rung`: `above` · `at` · `below`), whether its read is still in progress at the strategy's close
93
+ (`developingRead`), and the column editor's served Read-row line for it (`readSummary`, ending "Default here." for a
94
+ Developing default at or below the anchor) and cost line (`readCost`, "No verdict, can’t be an exit.", for a
95
+ developing read). It is `null` for a column with no bar set to read under an anchor, a call with no
96
+ `anchorTimeframe`, or a reference that resolves to no timeframe.
97
+ - **`preview_strategy_report`'s `authoring.conditionColumns[].outputs[]` carry `family`:** the catalog family of the
98
+ metric the column reads, or `null` for a report-level scalar. It is display grouping only, and a stored condition
99
+ does not carry it.
100
+
101
+ ### Changed values — the same schema serves a different number
102
+
103
+ - **A strategy may declare 32 conditions, and a condition may hold 32 leaf clauses**, up from 16 each:
104
+ `budgets.strategyConditions` and `budgets.conditionClauses` read 32, and the refusals name 32.
105
+ `budgets.conditionFrameReads` stays 256, and every clause costs at least one frame read, so a strategy cannot fill
106
+ both caps at once.
107
+
108
+ ### Skill
109
+
110
+ - **The strategy-examples skill's recipes gain a *Recency and structure* section:** bars since a clause read TRUE
111
+ (under n, at least n, between a and b), the first cross above a level in N bars, the first non-edge reading in N bars
112
+ and k lower highs in N bars, each a whole condition built from the shipped hold, groups and operators. It reaches
113
+ this package through the export lane.
114
+
115
+ ### Digest move
116
+
117
+ - **The authoring catalog digest moves with the served budgets.** A client caching vocabulary against it re-reads
118
+ `list_strategy_vocabulary`.
119
+
41
120
  ## Contract history — v135.1 (the bar clock, trading-session levels and a period level that stops at its roll)
42
121
 
43
122
  **Additive at v135.1: thirty-five metrics and five studies, and one value moves.** v135.1 is the contract on top of
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.33";
50
+ export declare const PACKAGE_VERSION = "32.0.36";
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.33';
52
+ export const PACKAGE_VERSION = '32.0.36';
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.33",
3
+ "version": "32.0.36",
4
4
  "description": "BattleGrid MCP server — play crypto prediction games from AI agents",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",