@gblin-protocol/mcp-server 0.1.0 β†’ 0.1.1

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
@@ -6,11 +6,32 @@
6
6
  [![CI](https://github.com/gblinproject/GBLIN-MCP/actions/workflows/ci.yml/badge.svg)](https://github.com/gblinproject/GBLIN-MCP/actions/workflows/ci.yml)
7
7
  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE)
8
8
  [![Base Mainnet](https://img.shields.io/badge/network-Base%20mainnet-0052FF)](https://basescan.org/address/0x38DcDB3A381677239BBc652aed9811F2f8496345)
9
+ [![Governance: 48h Timelock](https://img.shields.io/badge/governance-48h%20Timelock-1f6feb)](https://basescan.org/address/0x6aBeC8716fFeEcf7C3D6e68255b4797113E8e5Dd)
9
10
 
10
11
  πŸ“– **Full documentation and Quick Start:** [gblin.digital/agents](https://gblin.digital/agents)
11
12
 
12
13
  ---
13
14
 
15
+ ## Trust & Governance
16
+
17
+ **GBLIN_V5 is owned by a 48h Timelock Controller** β€” every admin operation (parameter change, oracle update, ownership transfer) is enforced on-chain to wait **172,800 seconds** before execution. Agents and integrators can verify this directly on BaseScan.
18
+
19
+ | Component | Address | Role |
20
+ |---|---|---|
21
+ | **GBLIN_V5 token** | [`0x38DcDB3A...6345`](https://basescan.org/address/0x38DcDB3A381677239BBc652aed9811F2f8496345) | Index contract β€” owned by timelock |
22
+ | **Timelock Controller** | [`0x6aBeC8716...8e5Dd`](https://basescan.org/address/0x6aBeC8716fFeEcf7C3D6e68255b4797113E8e5Dd) | 48h immutable delay, 14d grace period |
23
+ | **Ownership transfer tx** | [`0xb653f54f...edaaf`](https://basescan.org/tx/0xb653f54ffa9b1764b41932e6a411077e7e34550605303f15d90900de682edaaf) | Transferred at block 46160610 |
24
+
25
+ Properties enforced at the contract level:
26
+ - `MIN_DELAY` is **immutable** (override of `updateDelay` reverts permanently)
27
+ - `PROPOSER_ROLE` and `CANCELLER_ROLE` are **strictly separated** (constructor reverts on overlap)
28
+ - `EXECUTOR_ROLE` is open (`address(0)`) β€” anyone can execute a matured operation, anti-censorship
29
+ - The timelock is **self-administered**: every role/config change must itself go through the 48h delay
30
+
31
+ This is why the `get_governance_state` tool returns `owner_is_timelock: true` and a verifiable `min_delay_seconds: 172800`. AI agents can use these flags to gate trust-sensitive actions.
32
+
33
+ ---
34
+
14
35
  ## Why this exists
15
36
 
16
37
  AI agents today hold their working capital in **USDC**. USDC sits flat: zero yield, full inflation exposure.
@@ -38,7 +59,7 @@ Add to `claude_desktop_config.json` (on Windows: `%APPDATA%\Claude\claude_deskto
38
59
  }
39
60
  ```
40
61
 
41
- Restart Claude Desktop. The 5 GBLIN tools appear in the tool picker.
62
+ Restart Claude Desktop. The 6 GBLIN tools appear in the tool picker.
42
63
 
43
64
  ### Windsurf / Cursor
44
65
 
@@ -95,7 +116,7 @@ Also supports Cline, Continue.dev, and any agent that implements the MCP client
95
116
 
96
117
  ---
97
118
 
98
- ## The 5 tools
119
+ ## The 6 tools
99
120
 
100
121
  | Tool | Purpose |
101
122
  |---|---|
@@ -104,10 +125,11 @@ Also supports Cline, Continue.dev, and any agent that implements the MCP client
104
125
  | `swap_gblin_to_usdc_jit` | **The x402 magic**: generate atomic GBLINβ†’USDC calldata |
105
126
  | `invest_usdc_to_gblin` | Convert USDC earnings into GBLIN treasury (MEV-safe) |
106
127
  | `analyze_treasury_health` | Balances + gas + runway + rebalance advice |
128
+ | `get_governance_state` | Verify owner == 48h Timelock + pending asset proposals + min delay |
107
129
 
108
130
  All tools return structured JSON. All values are quoted on-chain (NAV via `quoteSellGBLIN` Γ— Chainlink ETH/USD, with 24h staleness guard). No mock data.
109
131
 
110
- **Live verification:** the test suite (`npm test`) runs all five tools against Base mainnet and confirms calldata generation, oracle freshness, and slippage math. See the [latest CI run](https://github.com/gblinproject/GBLIN-MCP/actions).
132
+ **Live verification:** the test suite (`npm test`) runs all six tools against Base mainnet and confirms calldata generation, oracle freshness, slippage math, and governance state. See the [latest CI run](https://github.com/gblinproject/GBLIN-MCP/actions).
111
133
 
112
134
  ---
113
135
 
package/dist/abi.d.ts CHANGED
@@ -114,6 +114,46 @@ export declare const GBLIN_ABI: readonly [{
114
114
  readonly outputs: readonly [{
115
115
  readonly type: "uint256";
116
116
  }];
117
+ }, {
118
+ readonly name: "owner";
119
+ readonly type: "function";
120
+ readonly stateMutability: "view";
121
+ readonly inputs: readonly [];
122
+ readonly outputs: readonly [{
123
+ readonly type: "address";
124
+ }];
125
+ }, {
126
+ readonly name: "founderWallet";
127
+ readonly type: "function";
128
+ readonly stateMutability: "view";
129
+ readonly inputs: readonly [];
130
+ readonly outputs: readonly [{
131
+ readonly type: "address";
132
+ }];
133
+ }, {
134
+ readonly name: "proposedAsset";
135
+ readonly type: "function";
136
+ readonly stateMutability: "view";
137
+ readonly inputs: readonly [];
138
+ readonly outputs: readonly [{
139
+ readonly type: "address";
140
+ readonly name: "token";
141
+ }, {
142
+ readonly type: "address";
143
+ readonly name: "oracle";
144
+ }, {
145
+ readonly type: "uint24";
146
+ readonly name: "poolFee";
147
+ }, {
148
+ readonly type: "bool";
149
+ readonly name: "isStable";
150
+ }, {
151
+ readonly type: "uint256";
152
+ readonly name: "baseWeight";
153
+ }, {
154
+ readonly type: "uint256";
155
+ readonly name: "executeAfter";
156
+ }];
117
157
  }, {
118
158
  readonly name: "buyGBLIN";
119
159
  readonly type: "function";
@@ -172,6 +212,195 @@ export declare const GBLIN_ABI: readonly [{
172
212
  }];
173
213
  readonly outputs: readonly [];
174
214
  }];
215
+ /**
216
+ * GblinTimelockController β€” OpenZeppelin TimelockController v5 surface.
217
+ * Only the views we need to read governance state.
218
+ */
219
+ export declare const TIMELOCK_ABI: readonly [{
220
+ readonly name: "getMinDelay";
221
+ readonly type: "function";
222
+ readonly stateMutability: "view";
223
+ readonly inputs: readonly [];
224
+ readonly outputs: readonly [{
225
+ readonly type: "uint256";
226
+ }];
227
+ }, {
228
+ readonly name: "GRACE_PERIOD";
229
+ readonly type: "function";
230
+ readonly stateMutability: "view";
231
+ readonly inputs: readonly [];
232
+ readonly outputs: readonly [{
233
+ readonly type: "uint256";
234
+ }];
235
+ }, {
236
+ readonly name: "PROPOSER_ROLE";
237
+ readonly type: "function";
238
+ readonly stateMutability: "view";
239
+ readonly inputs: readonly [];
240
+ readonly outputs: readonly [{
241
+ readonly type: "bytes32";
242
+ }];
243
+ }, {
244
+ readonly name: "CANCELLER_ROLE";
245
+ readonly type: "function";
246
+ readonly stateMutability: "view";
247
+ readonly inputs: readonly [];
248
+ readonly outputs: readonly [{
249
+ readonly type: "bytes32";
250
+ }];
251
+ }, {
252
+ readonly name: "EXECUTOR_ROLE";
253
+ readonly type: "function";
254
+ readonly stateMutability: "view";
255
+ readonly inputs: readonly [];
256
+ readonly outputs: readonly [{
257
+ readonly type: "bytes32";
258
+ }];
259
+ }, {
260
+ readonly name: "DEFAULT_ADMIN_ROLE";
261
+ readonly type: "function";
262
+ readonly stateMutability: "view";
263
+ readonly inputs: readonly [];
264
+ readonly outputs: readonly [{
265
+ readonly type: "bytes32";
266
+ }];
267
+ }, {
268
+ readonly name: "hasRole";
269
+ readonly type: "function";
270
+ readonly stateMutability: "view";
271
+ readonly inputs: readonly [{
272
+ readonly type: "bytes32";
273
+ readonly name: "role";
274
+ }, {
275
+ readonly type: "address";
276
+ readonly name: "account";
277
+ }];
278
+ readonly outputs: readonly [{
279
+ readonly type: "bool";
280
+ }];
281
+ }, {
282
+ readonly name: "getRoleMemberCount";
283
+ readonly type: "function";
284
+ readonly stateMutability: "view";
285
+ readonly inputs: readonly [{
286
+ readonly type: "bytes32";
287
+ readonly name: "role";
288
+ }];
289
+ readonly outputs: readonly [{
290
+ readonly type: "uint256";
291
+ }];
292
+ }, {
293
+ readonly name: "isOperation";
294
+ readonly type: "function";
295
+ readonly stateMutability: "view";
296
+ readonly inputs: readonly [{
297
+ readonly type: "bytes32";
298
+ readonly name: "id";
299
+ }];
300
+ readonly outputs: readonly [{
301
+ readonly type: "bool";
302
+ }];
303
+ }, {
304
+ readonly name: "isOperationPending";
305
+ readonly type: "function";
306
+ readonly stateMutability: "view";
307
+ readonly inputs: readonly [{
308
+ readonly type: "bytes32";
309
+ readonly name: "id";
310
+ }];
311
+ readonly outputs: readonly [{
312
+ readonly type: "bool";
313
+ }];
314
+ }, {
315
+ readonly name: "isOperationReady";
316
+ readonly type: "function";
317
+ readonly stateMutability: "view";
318
+ readonly inputs: readonly [{
319
+ readonly type: "bytes32";
320
+ readonly name: "id";
321
+ }];
322
+ readonly outputs: readonly [{
323
+ readonly type: "bool";
324
+ }];
325
+ }, {
326
+ readonly name: "isOperationDone";
327
+ readonly type: "function";
328
+ readonly stateMutability: "view";
329
+ readonly inputs: readonly [{
330
+ readonly type: "bytes32";
331
+ readonly name: "id";
332
+ }];
333
+ readonly outputs: readonly [{
334
+ readonly type: "bool";
335
+ }];
336
+ }, {
337
+ readonly name: "getTimestamp";
338
+ readonly type: "function";
339
+ readonly stateMutability: "view";
340
+ readonly inputs: readonly [{
341
+ readonly type: "bytes32";
342
+ readonly name: "id";
343
+ }];
344
+ readonly outputs: readonly [{
345
+ readonly type: "uint256";
346
+ }];
347
+ }, {
348
+ readonly name: "CallScheduled";
349
+ readonly type: "event";
350
+ readonly inputs: readonly [{
351
+ readonly type: "bytes32";
352
+ readonly name: "id";
353
+ readonly indexed: true;
354
+ }, {
355
+ readonly type: "uint256";
356
+ readonly name: "index";
357
+ readonly indexed: true;
358
+ }, {
359
+ readonly type: "address";
360
+ readonly name: "target";
361
+ }, {
362
+ readonly type: "uint256";
363
+ readonly name: "value";
364
+ }, {
365
+ readonly type: "bytes";
366
+ readonly name: "data";
367
+ }, {
368
+ readonly type: "bytes32";
369
+ readonly name: "predecessor";
370
+ }, {
371
+ readonly type: "uint256";
372
+ readonly name: "delay";
373
+ }];
374
+ }, {
375
+ readonly name: "Cancelled";
376
+ readonly type: "event";
377
+ readonly inputs: readonly [{
378
+ readonly type: "bytes32";
379
+ readonly name: "id";
380
+ readonly indexed: true;
381
+ }];
382
+ }, {
383
+ readonly name: "CallExecuted";
384
+ readonly type: "event";
385
+ readonly inputs: readonly [{
386
+ readonly type: "bytes32";
387
+ readonly name: "id";
388
+ readonly indexed: true;
389
+ }, {
390
+ readonly type: "uint256";
391
+ readonly name: "index";
392
+ readonly indexed: true;
393
+ }, {
394
+ readonly type: "address";
395
+ readonly name: "target";
396
+ }, {
397
+ readonly type: "uint256";
398
+ readonly name: "value";
399
+ }, {
400
+ readonly type: "bytes";
401
+ readonly name: "data";
402
+ }];
403
+ }];
175
404
  /**
176
405
  * Chainlink AggregatorV3Interface β€” only the read we need.
177
406
  * Note: `answer` is int256 (can be negative β€” we guard against that).
package/dist/abi.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"abi.d.ts","sourceRoot":"","sources":["../src/abi.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH;;;;;;;;GAQG;AACH,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAqBpB,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAGnC,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAKpB,CAAC"}
1
+ {"version":3,"file":"abi.d.ts","sourceRoot":"","sources":["../src/abi.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH;;;;;;;;GAQG;AACH,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA0BpB,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAiBvB,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAGnC,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAKpB,CAAC"}
package/dist/abi.js CHANGED
@@ -26,12 +26,38 @@ export const GBLIN_ABI = parseAbi([
26
26
  "function decimals() view returns (uint8)",
27
27
  // State helpers
28
28
  "function lastDepositTime(address user) view returns (uint256)",
29
+ // Governance / ownership (public state vars)
30
+ "function owner() view returns (address)",
31
+ "function founderWallet() view returns (address)",
32
+ "function proposedAsset() view returns (address token, address oracle, uint24 poolFee, bool isStable, uint256 baseWeight, uint256 executeAfter)",
29
33
  // Mutating β€” only used to build calldata (never executed by the MCP server)
30
34
  "function buyGBLIN(uint256 minGblinOut) payable",
31
35
  "function sellGBLINForEth(uint256 gblinAmount, uint256 minEthOut)",
32
36
  "function sellGBLINForToken(uint256 gblinAmount, address targetToken, uint24 wethToTargetFee, uint256 minTokenOut)",
33
37
  "function buyGBLINWithToken(bytes path, uint256 amountIn, uint256 minWethOut, uint256 minGblinOut)",
34
38
  ]);
39
+ /**
40
+ * GblinTimelockController β€” OpenZeppelin TimelockController v5 surface.
41
+ * Only the views we need to read governance state.
42
+ */
43
+ export const TIMELOCK_ABI = parseAbi([
44
+ "function getMinDelay() view returns (uint256)",
45
+ "function GRACE_PERIOD() view returns (uint256)",
46
+ "function PROPOSER_ROLE() view returns (bytes32)",
47
+ "function CANCELLER_ROLE() view returns (bytes32)",
48
+ "function EXECUTOR_ROLE() view returns (bytes32)",
49
+ "function DEFAULT_ADMIN_ROLE() view returns (bytes32)",
50
+ "function hasRole(bytes32 role, address account) view returns (bool)",
51
+ "function getRoleMemberCount(bytes32 role) view returns (uint256)",
52
+ "function isOperation(bytes32 id) view returns (bool)",
53
+ "function isOperationPending(bytes32 id) view returns (bool)",
54
+ "function isOperationReady(bytes32 id) view returns (bool)",
55
+ "function isOperationDone(bytes32 id) view returns (bool)",
56
+ "function getTimestamp(bytes32 id) view returns (uint256)",
57
+ "event CallScheduled(bytes32 indexed id, uint256 indexed index, address target, uint256 value, bytes data, bytes32 predecessor, uint256 delay)",
58
+ "event Cancelled(bytes32 indexed id)",
59
+ "event CallExecuted(bytes32 indexed id, uint256 indexed index, address target, uint256 value, bytes data)",
60
+ ]);
35
61
  /**
36
62
  * Chainlink AggregatorV3Interface β€” only the read we need.
37
63
  * Note: `answer` is int256 (can be negative β€” we guard against that).
package/dist/abi.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"abi.js","sourceRoot":"","sources":["../src/abi.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC;AAEhC;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,QAAQ,CAAC;IAChC,0BAA0B;IAC1B,gHAAgH;IAChH,4EAA4E;IAE5E,kDAAkD;IAClD,kMAAkM;IAElM,iBAAiB;IACjB,4DAA4D;IAC5D,+CAA+C;IAC/C,0CAA0C;IAE1C,gBAAgB;IAChB,+DAA+D;IAE/D,4EAA4E;IAC5E,gDAAgD;IAChD,kEAAkE;IAClE,mHAAmH;IACnH,mGAAmG;CACpG,CAAC,CAAC;AAEH;;;GAGG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,QAAQ,CAAC;IAC/C,uIAAuI;IACvI,0CAA0C;CAC3C,CAAC,CAAC;AAEH;;GAEG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,QAAQ,CAAC;IAChC,4DAA4D;IAC5D,0CAA0C;IAC1C,kEAAkE;IAClE,2EAA2E;CAC5E,CAAC,CAAC"}
1
+ {"version":3,"file":"abi.js","sourceRoot":"","sources":["../src/abi.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC;AAEhC;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,QAAQ,CAAC;IAChC,0BAA0B;IAC1B,gHAAgH;IAChH,4EAA4E;IAE5E,kDAAkD;IAClD,kMAAkM;IAElM,iBAAiB;IACjB,4DAA4D;IAC5D,+CAA+C;IAC/C,0CAA0C;IAE1C,gBAAgB;IAChB,+DAA+D;IAE/D,6CAA6C;IAC7C,yCAAyC;IACzC,iDAAiD;IACjD,gJAAgJ;IAEhJ,4EAA4E;IAC5E,gDAAgD;IAChD,kEAAkE;IAClE,mHAAmH;IACnH,mGAAmG;CACpG,CAAC,CAAC;AAEH;;;GAGG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,QAAQ,CAAC;IACnC,+CAA+C;IAC/C,gDAAgD;IAChD,iDAAiD;IACjD,kDAAkD;IAClD,iDAAiD;IACjD,sDAAsD;IACtD,qEAAqE;IACrE,kEAAkE;IAClE,sDAAsD;IACtD,6DAA6D;IAC7D,2DAA2D;IAC3D,0DAA0D;IAC1D,0DAA0D;IAC1D,+IAA+I;IAC/I,qCAAqC;IACrC,0GAA0G;CAC3G,CAAC,CAAC;AAEH;;;GAGG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,QAAQ,CAAC;IAC/C,uIAAuI;IACvI,0CAA0C;CAC3C,CAAC,CAAC;AAEH;;GAEG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,QAAQ,CAAC;IAChC,4DAA4D;IAC5D,0CAA0C;IAC1C,kEAAkE;IAClE,2EAA2E;CAC5E,CAAC,CAAC"}
package/dist/config.d.ts CHANGED
@@ -11,6 +11,8 @@ export declare const RPC_URL: string;
11
11
  export declare const GBLIN_V5: Address;
12
12
  export declare const USDC: Address;
13
13
  export declare const WETH: Address;
14
+ export declare const GBLIN_TIMELOCK: Address;
15
+ export declare const EXPECTED_MIN_DELAY_SECONDS = 172800n;
14
16
  export declare const ETH_USD_FEED: Address;
15
17
  export declare const WETH_USDC_POOL_FEE = 500;
16
18
  export declare const MIN_DEPOSIT_WEI = 500000000000000n;
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAGpC,eAAO,MAAM,aAAa,OAAO,CAAC;AAGlC,eAAO,MAAM,eAAe,oCAAoC,CAAC;AACjE,eAAO,MAAM,OAAO,QAA+C,CAAC;AAGpE,eAAO,MAAM,QAAQ,EAAE,OAAsD,CAAC;AAC9E,eAAO,MAAM,IAAI,EAAE,OAAsD,CAAC;AAC1E,eAAO,MAAM,IAAI,EAAE,OAAsD,CAAC;AAG1E,eAAO,MAAM,YAAY,EAAE,OAAsD,CAAC;AAGlF,eAAO,MAAM,kBAAkB,MAAM,CAAC;AAGtC,eAAO,MAAM,eAAe,mBAAuB,CAAC;AACpD,eAAO,MAAM,gBAAgB,MAAM,CAAC;AACpC,eAAO,MAAM,wBAAwB,QAAS,CAAC;AAI/C,eAAO,MAAM,mBAAmB,OAAO,CAAC;AACxC,eAAO,MAAM,yBAAyB,OAAO,CAAC;AAC9C,eAAO,MAAM,eAAe,SAAU,CAAC;AAGvC,eAAO,MAAM,gBAAgB,QAAS,CAAC;AACvC,eAAO,MAAM,mBAAmB,QAAS,CAAC;AAG1C,eAAO,MAAM,WAAW,uBAAuB,CAAC;AAChD,eAAO,MAAM,cAAc,UAAU,CAAC"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAGpC,eAAO,MAAM,aAAa,OAAO,CAAC;AAGlC,eAAO,MAAM,eAAe,oCAAoC,CAAC;AACjE,eAAO,MAAM,OAAO,QAA+C,CAAC;AAGpE,eAAO,MAAM,QAAQ,EAAE,OAAsD,CAAC;AAC9E,eAAO,MAAM,IAAI,EAAE,OAAsD,CAAC;AAC1E,eAAO,MAAM,IAAI,EAAE,OAAsD,CAAC;AAI1E,eAAO,MAAM,cAAc,EAAE,OAAsD,CAAC;AACpF,eAAO,MAAM,0BAA0B,UAAW,CAAC;AAGnD,eAAO,MAAM,YAAY,EAAE,OAAsD,CAAC;AAGlF,eAAO,MAAM,kBAAkB,MAAM,CAAC;AAGtC,eAAO,MAAM,eAAe,mBAAuB,CAAC;AACpD,eAAO,MAAM,gBAAgB,MAAM,CAAC;AACpC,eAAO,MAAM,wBAAwB,QAAS,CAAC;AAI/C,eAAO,MAAM,mBAAmB,OAAO,CAAC;AACxC,eAAO,MAAM,yBAAyB,OAAO,CAAC;AAC9C,eAAO,MAAM,eAAe,SAAU,CAAC;AAGvC,eAAO,MAAM,gBAAgB,QAAS,CAAC;AACvC,eAAO,MAAM,mBAAmB,QAAS,CAAC;AAG1C,eAAO,MAAM,WAAW,uBAAuB,CAAC;AAChD,eAAO,MAAM,cAAc,UAAU,CAAC"}
package/dist/config.js CHANGED
@@ -14,6 +14,10 @@ export const RPC_URL = process.env.GBLIN_RPC_URL ?? DEFAULT_RPC_URL;
14
14
  export const GBLIN_V5 = "0x38DcDB3A381677239BBc652aed9811F2f8496345";
15
15
  export const USDC = "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913";
16
16
  export const WETH = "0x4200000000000000000000000000000000000006";
17
+ // GblinTimelockController β€” owns GBLIN_V5 since block 46160610 (May 2026).
18
+ // 48h immutable delay, 14d grace period, open executor.
19
+ export const GBLIN_TIMELOCK = "0x6aBeC8716fFeEcf7C3D6e68255b4797113E8e5Dd";
20
+ export const EXPECTED_MIN_DELAY_SECONDS = 172800n; // 48 hours
17
21
  // Chainlink ETH/USD price feed on Base
18
22
  export const ETH_USD_FEED = "0x71041dddad3595F9CEd3DcCFBe3D1F4b0a16Bb70";
19
23
  // Uniswap V3 pool fee tier used by `sellGBLINForToken` for WETHβ†’USDC leg
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,+EAA+E;AAC/E,MAAM,CAAC,MAAM,aAAa,GAAG,IAAI,CAAC;AAClC,sEAAsE;AACtE,mFAAmF;AACnF,MAAM,CAAC,MAAM,eAAe,GAAG,iCAAiC,CAAC;AACjE,MAAM,CAAC,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,eAAe,CAAC;AAEpE,+EAA+E;AAC/E,MAAM,CAAC,MAAM,QAAQ,GAAY,4CAA4C,CAAC;AAC9E,MAAM,CAAC,MAAM,IAAI,GAAY,4CAA4C,CAAC;AAC1E,MAAM,CAAC,MAAM,IAAI,GAAY,4CAA4C,CAAC;AAE1E,uCAAuC;AACvC,MAAM,CAAC,MAAM,YAAY,GAAY,4CAA4C,CAAC;AAElF,yEAAyE;AACzE,MAAM,CAAC,MAAM,kBAAkB,GAAG,GAAG,CAAC,CAAC,QAAQ;AAE/C,+EAA+E;AAC/E,MAAM,CAAC,MAAM,eAAe,GAAG,gBAAoB,CAAC,CAAC,aAAa;AAClE,MAAM,CAAC,MAAM,gBAAgB,GAAG,GAAG,CAAC,CAAC,kCAAkC;AACvE,MAAM,CAAC,MAAM,wBAAwB,GAAG,MAAM,CAAC,CAAC,0BAA0B;AAE1E,+EAA+E;AAC/E,+EAA+E;AAC/E,MAAM,CAAC,MAAM,mBAAmB,GAAG,IAAI,CAAC,CAAC,qBAAqB;AAC9D,MAAM,CAAC,MAAM,yBAAyB,GAAG,IAAI,CAAC,CAAC,6BAA6B;AAC5E,MAAM,CAAC,MAAM,eAAe,GAAG,MAAO,CAAC;AAEvC,+EAA+E;AAC/E,MAAM,CAAC,MAAM,gBAAgB,GAAG,MAAM,CAAC,CAAC,aAAa;AACrD,MAAM,CAAC,MAAM,mBAAmB,GAAG,MAAM,CAAC,CAAC,aAAa;AAExD,+EAA+E;AAC/E,MAAM,CAAC,MAAM,WAAW,GAAG,oBAAoB,CAAC;AAChD,MAAM,CAAC,MAAM,cAAc,GAAG,OAAO,CAAC"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,+EAA+E;AAC/E,MAAM,CAAC,MAAM,aAAa,GAAG,IAAI,CAAC;AAClC,sEAAsE;AACtE,mFAAmF;AACnF,MAAM,CAAC,MAAM,eAAe,GAAG,iCAAiC,CAAC;AACjE,MAAM,CAAC,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,eAAe,CAAC;AAEpE,+EAA+E;AAC/E,MAAM,CAAC,MAAM,QAAQ,GAAY,4CAA4C,CAAC;AAC9E,MAAM,CAAC,MAAM,IAAI,GAAY,4CAA4C,CAAC;AAC1E,MAAM,CAAC,MAAM,IAAI,GAAY,4CAA4C,CAAC;AAE1E,2EAA2E;AAC3E,wDAAwD;AACxD,MAAM,CAAC,MAAM,cAAc,GAAY,4CAA4C,CAAC;AACpF,MAAM,CAAC,MAAM,0BAA0B,GAAG,OAAQ,CAAC,CAAC,WAAW;AAE/D,uCAAuC;AACvC,MAAM,CAAC,MAAM,YAAY,GAAY,4CAA4C,CAAC;AAElF,yEAAyE;AACzE,MAAM,CAAC,MAAM,kBAAkB,GAAG,GAAG,CAAC,CAAC,QAAQ;AAE/C,+EAA+E;AAC/E,MAAM,CAAC,MAAM,eAAe,GAAG,gBAAoB,CAAC,CAAC,aAAa;AAClE,MAAM,CAAC,MAAM,gBAAgB,GAAG,GAAG,CAAC,CAAC,kCAAkC;AACvE,MAAM,CAAC,MAAM,wBAAwB,GAAG,MAAM,CAAC,CAAC,0BAA0B;AAE1E,+EAA+E;AAC/E,+EAA+E;AAC/E,MAAM,CAAC,MAAM,mBAAmB,GAAG,IAAI,CAAC,CAAC,qBAAqB;AAC9D,MAAM,CAAC,MAAM,yBAAyB,GAAG,IAAI,CAAC,CAAC,6BAA6B;AAC5E,MAAM,CAAC,MAAM,eAAe,GAAG,MAAO,CAAC;AAEvC,+EAA+E;AAC/E,MAAM,CAAC,MAAM,gBAAgB,GAAG,MAAM,CAAC,CAAC,aAAa;AACrD,MAAM,CAAC,MAAM,mBAAmB,GAAG,MAAM,CAAC,CAAC,aAAa;AAExD,+EAA+E;AAC/E,MAAM,CAAC,MAAM,WAAW,GAAG,oBAAoB,CAAC;AAChD,MAAM,CAAC,MAAM,cAAc,GAAG,OAAO,CAAC"}
package/dist/index.js CHANGED
@@ -36,7 +36,7 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
36
36
  async function main() {
37
37
  const transport = new StdioServerTransport();
38
38
  await server.connect(transport);
39
- console.error(`[${SERVER_NAME}] v${SERVER_VERSION} online β€” listening on stdio (5 tools registered).`);
39
+ console.error(`[${SERVER_NAME}] v${SERVER_VERSION} online β€” listening on stdio (${TOOL_DEFINITIONS.length} tools registered).`);
40
40
  }
41
41
  main().catch((err) => {
42
42
  console.error("[gblin-mcp] fatal:", err);
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA;;;;;;;;GAQG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AACnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EACL,qBAAqB,EACrB,sBAAsB,GACvB,MAAM,oCAAoC,CAAC;AAE5C,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAE7D,MAAM,MAAM,GAAG,IAAI,MAAM,CACvB,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,cAAc,EAAE,EAC9C,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,CAChC,CAAC;AAEF,MAAM,CAAC,iBAAiB,CAAC,sBAAsB,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC;IAC5D,KAAK,EAAE,gBAAgB;CACxB,CAAC,CAAC,CAAC;AAEJ,MAAM,CAAC,iBAAiB,CAAC,qBAAqB,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;IAChE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;IACjD,MAAM,OAAO,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;IACpC,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO;YACL,OAAO,EAAE,IAAI;YACb,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAe;oBACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,iBAAiB,IAAI,EAAE,EAAE,CAAC;iBACzD;aACF;SACF,CAAC;IACJ,CAAC;IACD,OAAO,OAAO,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;AAC7B,CAAC,CAAC,CAAC;AAEH,KAAK,UAAU,IAAI;IACjB,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;IAC7C,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAChC,OAAO,CAAC,KAAK,CACX,IAAI,WAAW,MAAM,cAAc,oDAAoD,CACxF,CAAC;AACJ,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;IACnB,OAAO,CAAC,KAAK,CAAC,oBAAoB,EAAE,GAAG,CAAC,CAAC;IACzC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA;;;;;;;;GAQG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AACnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EACL,qBAAqB,EACrB,sBAAsB,GACvB,MAAM,oCAAoC,CAAC;AAE5C,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAE7D,MAAM,MAAM,GAAG,IAAI,MAAM,CACvB,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,cAAc,EAAE,EAC9C,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,CAChC,CAAC;AAEF,MAAM,CAAC,iBAAiB,CAAC,sBAAsB,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC;IAC5D,KAAK,EAAE,gBAAgB;CACxB,CAAC,CAAC,CAAC;AAEJ,MAAM,CAAC,iBAAiB,CAAC,qBAAqB,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;IAChE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;IACjD,MAAM,OAAO,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;IACpC,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO;YACL,OAAO,EAAE,IAAI;YACb,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAe;oBACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,iBAAiB,IAAI,EAAE,EAAE,CAAC;iBACzD;aACF;SACF,CAAC;IACJ,CAAC;IACD,OAAO,OAAO,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;AAC7B,CAAC,CAAC,CAAC;AAEH,KAAK,UAAU,IAAI;IACjB,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;IAC7C,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAChC,OAAO,CAAC,KAAK,CACX,IAAI,WAAW,MAAM,cAAc,iCAAiC,gBAAgB,CAAC,MAAM,qBAAqB,CACjH,CAAC;AACJ,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;IACnB,OAAO,CAAC,KAAK,CAAC,oBAAoB,EAAE,GAAG,CAAC,CAAC;IACzC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
package/dist/tools.d.ts CHANGED
@@ -1,13 +1,14 @@
1
1
  /**
2
2
  * GBLIN MCP β€” Tool Implementations
3
3
  *
4
- * Five focused tools. Each returns structured JSON the LLM can parse:
4
+ * Six focused tools. Each returns structured JSON the LLM can parse:
5
5
  *
6
6
  * 1. get_treasury_state β†’ NAV, basket, Crash Shield (snapshot)
7
7
  * 2. quote_safe_swap β†’ preview a buy/sell with safe minOut
8
8
  * 3. swap_gblin_to_usdc_jit β†’ calldata for Just-In-Time x402 payment
9
9
  * 4. invest_usdc_to_gblin β†’ calldata to convert USDC earnings β†’ GBLIN
10
10
  * 5. analyze_treasury_health β†’ balances + gas check + runway estimate
11
+ * 6. get_governance_state β†’ verify 48h timelock ownership + pending ops
11
12
  */
12
13
  declare function toolResult(payload: unknown): {
13
14
  content: {
@@ -133,6 +134,26 @@ export declare function handleAnalyzeTreasury(args: unknown): Promise<{
133
134
  text: string;
134
135
  }[];
135
136
  }>;
137
+ export declare const GET_GOVERNANCE_STATE_DEFINITION: {
138
+ name: string;
139
+ description: string;
140
+ inputSchema: {
141
+ type: "object";
142
+ properties: {
143
+ operation_id: {
144
+ type: string;
145
+ description: string;
146
+ };
147
+ };
148
+ additionalProperties: boolean;
149
+ };
150
+ };
151
+ export declare function handleGetGovernanceState(args: unknown): Promise<{
152
+ content: {
153
+ type: "text";
154
+ text: string;
155
+ }[];
156
+ }>;
136
157
  export declare const TOOL_DEFINITIONS: {
137
158
  name: string;
138
159
  description: string;
@@ -1 +1 @@
1
- {"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AA6CH,iBAAS,UAAU,CAAC,OAAO,EAAE,OAAO;;;;;EASnC;AAED,iBAAS,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM;;;;;;EAUhD;AAWD,eAAO,MAAM,6BAA6B;;;;;;;;CASzC,CAAC;AAEF,wBAAsB,sBAAsB;;;;;GAgC3C;AAaD,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;CAgBtC,CAAC;AAEF,wBAAsB,mBAAmB,CAAC,IAAI,EAAE,OAAO;;;;;GAoEtD;AAeD,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;CAgB/B,CAAC;AAEF,wBAAsB,aAAa,CAAC,IAAI,EAAE,OAAO;;;;;GA6DhD;AAUD,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;CAe7B,CAAC;AAEF,wBAAsB,YAAY,CAAC,IAAI,EAAE,OAAO;;;;;GA6F/C;AAeD,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;CAgBvC,CAAC;AAEF,wBAAsB,qBAAqB,CAAC,IAAI,EAAE,OAAO;;;;;GAsGxD;AAMD,eAAO,MAAM,gBAAgB;;;;;;;;GAM5B,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,MAAM,CAChC,MAAM,EACN,CAAC,IAAI,EAAE,OAAO,KAAK,OAAO,CAAC,UAAU,CAAC,OAAO,UAAU,CAAC,GAAG,UAAU,CAAC,OAAO,SAAS,CAAC,CAAC,CAOzF,CAAC"}
1
+ {"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AA+CH,iBAAS,UAAU,CAAC,OAAO,EAAE,OAAO;;;;;EASnC;AAED,iBAAS,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM;;;;;;EAUhD;AAWD,eAAO,MAAM,6BAA6B;;;;;;;;CASzC,CAAC;AAEF,wBAAsB,sBAAsB;;;;;GAgC3C;AAaD,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;CAgBtC,CAAC;AAEF,wBAAsB,mBAAmB,CAAC,IAAI,EAAE,OAAO;;;;;GAoEtD;AAeD,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;CAgB/B,CAAC;AAEF,wBAAsB,aAAa,CAAC,IAAI,EAAE,OAAO;;;;;GA6DhD;AAUD,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;CAe7B,CAAC;AAEF,wBAAsB,YAAY,CAAC,IAAI,EAAE,OAAO;;;;;GA6F/C;AAeD,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;CAgBvC,CAAC;AAEF,wBAAsB,qBAAqB,CAAC,IAAI,EAAE,OAAO;;;;;GAsGxD;AAgBD,eAAO,MAAM,+BAA+B;;;;;;;;;;;;;CAe3C,CAAC;AAEF,wBAAsB,wBAAwB,CAAC,IAAI,EAAE,OAAO;;;;;GAkO3D;AAMD,eAAO,MAAM,gBAAgB;;;;;;;;GAO5B,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,MAAM,CAChC,MAAM,EACN,CAAC,IAAI,EAAE,OAAO,KAAK,OAAO,CAAC,UAAU,CAAC,OAAO,UAAU,CAAC,GAAG,UAAU,CAAC,OAAO,SAAS,CAAC,CAAC,CAQzF,CAAC"}
package/dist/tools.js CHANGED
@@ -1,19 +1,20 @@
1
1
  /**
2
2
  * GBLIN MCP β€” Tool Implementations
3
3
  *
4
- * Five focused tools. Each returns structured JSON the LLM can parse:
4
+ * Six focused tools. Each returns structured JSON the LLM can parse:
5
5
  *
6
6
  * 1. get_treasury_state β†’ NAV, basket, Crash Shield (snapshot)
7
7
  * 2. quote_safe_swap β†’ preview a buy/sell with safe minOut
8
8
  * 3. swap_gblin_to_usdc_jit β†’ calldata for Just-In-Time x402 payment
9
9
  * 4. invest_usdc_to_gblin β†’ calldata to convert USDC earnings β†’ GBLIN
10
10
  * 5. analyze_treasury_health β†’ balances + gas check + runway estimate
11
+ * 6. get_governance_state β†’ verify 48h timelock ownership + pending ops
11
12
  */
12
13
  import { encodeFunctionData, encodePacked, formatUnits, getAddress, isAddress, parseUnits, } from "viem";
13
14
  import { z } from "zod";
14
- import { ERC20_ABI, GBLIN_ABI } from "./abi.js";
15
+ import { ERC20_ABI, GBLIN_ABI, TIMELOCK_ABI } from "./abi.js";
15
16
  import { client } from "./client.js";
16
- import { GBLIN_V5, MIN_DEPOSIT_WEI, USDC, WETH, WETH_USDC_POOL_FEE, } from "./config.js";
17
+ import { EXPECTED_MIN_DELAY_SECONDS, GBLIN_TIMELOCK, GBLIN_V5, MIN_DEPOSIT_WEI, USDC, WETH, WETH_USDC_POOL_FEE, } from "./config.js";
17
18
  import { applySlippageBuffer, checkCooldown, getBasketState, getDynamicSlippage, getEthPriceUsd, getNavUsd, getWalletBalances, quoteGblinForUsdc, } from "./helpers.js";
18
19
  // ───────────────────────────────────────────────────────────────────────────
19
20
  // SHARED HELPERS
@@ -478,6 +479,236 @@ export async function handleAnalyzeTreasury(args) {
478
479
  }
479
480
  }
480
481
  // ───────────────────────────────────────────────────────────────────────────
482
+ // TOOL 6 β€” get_governance_state
483
+ // ───────────────────────────────────────────────────────────────────────────
484
+ const GovernanceStateSchema = z.object({
485
+ operation_id: z
486
+ .string()
487
+ .regex(/^0x[0-9a-fA-F]{64}$/, "operation_id must be a 32-byte hex string")
488
+ .optional()
489
+ .describe("Optional. A specific TimelockController operation id (bytes32) to inspect β€” returns pending/ready/done/timestamp."),
490
+ });
491
+ export const GET_GOVERNANCE_STATE_DEFINITION = {
492
+ name: "get_governance_state",
493
+ description: "Verify GBLIN protocol governance state: confirms whether GBLIN_V5 is owned by the 48h Timelock, reads the timelock's min delay and grace period, reports role member counts, and surfaces any pending asset-addition proposal on the index contract. If an operation_id is provided, also reports the status of that specific timelock operation. Read-only β€” use this to gate trust-sensitive agent actions.",
494
+ inputSchema: {
495
+ type: "object",
496
+ properties: {
497
+ operation_id: {
498
+ type: "string",
499
+ description: "Optional 0x-prefixed 32-byte hex id of a specific timelock operation to inspect.",
500
+ },
501
+ },
502
+ additionalProperties: false,
503
+ },
504
+ };
505
+ export async function handleGetGovernanceState(args) {
506
+ let parsed;
507
+ try {
508
+ parsed = GovernanceStateSchema.parse(args ?? {});
509
+ }
510
+ catch (e) {
511
+ return toolError(`Invalid arguments: ${e.message}`);
512
+ }
513
+ try {
514
+ // 1. Read owner + pending asset from GBLIN_V5
515
+ const [owner, founder, proposedAsset] = await Promise.all([
516
+ client.readContract({
517
+ address: GBLIN_V5,
518
+ abi: GBLIN_ABI,
519
+ functionName: "owner",
520
+ }),
521
+ client.readContract({
522
+ address: GBLIN_V5,
523
+ abi: GBLIN_ABI,
524
+ functionName: "founderWallet",
525
+ }),
526
+ client.readContract({
527
+ address: GBLIN_V5,
528
+ abi: GBLIN_ABI,
529
+ functionName: "proposedAsset",
530
+ }),
531
+ ]);
532
+ const ownerNorm = getAddress(owner);
533
+ const timelockNorm = getAddress(GBLIN_TIMELOCK);
534
+ const ownerIsTimelock = ownerNorm === timelockNorm;
535
+ const ownerIsRenounced = ownerNorm === "0x0000000000000000000000000000000000000000";
536
+ // 2. Read timelock state β€” only if owner actually is the timelock,
537
+ // otherwise still report expected vs actual for transparency.
538
+ let timelockState;
539
+ try {
540
+ const [minDelay, proposerRole, cancellerRole, executorRole, adminRole,] = await Promise.all([
541
+ client.readContract({
542
+ address: GBLIN_TIMELOCK,
543
+ abi: TIMELOCK_ABI,
544
+ functionName: "getMinDelay",
545
+ }),
546
+ client.readContract({
547
+ address: GBLIN_TIMELOCK,
548
+ abi: TIMELOCK_ABI,
549
+ functionName: "PROPOSER_ROLE",
550
+ }),
551
+ client.readContract({
552
+ address: GBLIN_TIMELOCK,
553
+ abi: TIMELOCK_ABI,
554
+ functionName: "CANCELLER_ROLE",
555
+ }),
556
+ client.readContract({
557
+ address: GBLIN_TIMELOCK,
558
+ abi: TIMELOCK_ABI,
559
+ functionName: "EXECUTOR_ROLE",
560
+ }),
561
+ client.readContract({
562
+ address: GBLIN_TIMELOCK,
563
+ abi: TIMELOCK_ABI,
564
+ functionName: "DEFAULT_ADMIN_ROLE",
565
+ }),
566
+ ]);
567
+ const [proposerCount, cancellerCount, executorOpen,] = await Promise.all([
568
+ client.readContract({
569
+ address: GBLIN_TIMELOCK,
570
+ abi: TIMELOCK_ABI,
571
+ functionName: "getRoleMemberCount",
572
+ args: [proposerRole],
573
+ }),
574
+ client.readContract({
575
+ address: GBLIN_TIMELOCK,
576
+ abi: TIMELOCK_ABI,
577
+ functionName: "getRoleMemberCount",
578
+ args: [cancellerRole],
579
+ }),
580
+ // executor open to anyone if address(0) holds the role
581
+ client.readContract({
582
+ address: GBLIN_TIMELOCK,
583
+ abi: TIMELOCK_ABI,
584
+ functionName: "hasRole",
585
+ args: [executorRole, "0x0000000000000000000000000000000000000000"],
586
+ }),
587
+ ]);
588
+ timelockState = {
589
+ address: timelockNorm,
590
+ min_delay_seconds: Number(minDelay),
591
+ min_delay_hours: Number(minDelay) / 3600,
592
+ min_delay_matches_expected: minDelay === EXPECTED_MIN_DELAY_SECONDS,
593
+ expected_min_delay_seconds: Number(EXPECTED_MIN_DELAY_SECONDS),
594
+ roles: {
595
+ proposer_count: Number(proposerCount),
596
+ canceller_count: Number(cancellerCount),
597
+ executor_open_to_anyone: executorOpen,
598
+ self_administered_note: "DEFAULT_ADMIN_ROLE is held by the timelock itself; role changes also take 48h.",
599
+ },
600
+ role_ids: {
601
+ PROPOSER_ROLE: proposerRole,
602
+ CANCELLER_ROLE: cancellerRole,
603
+ EXECUTOR_ROLE: executorRole,
604
+ DEFAULT_ADMIN_ROLE: adminRole,
605
+ },
606
+ };
607
+ }
608
+ catch (err) {
609
+ timelockState = {
610
+ address: timelockNorm,
611
+ error: `Could not read timelock state: ${err.message}`,
612
+ };
613
+ }
614
+ // 3. Optional: inspect a specific pending timelock operation
615
+ let operationStatus = null;
616
+ if (parsed.operation_id) {
617
+ try {
618
+ const [isOp, isPending, isReady, isDone, ts] = await Promise.all([
619
+ client.readContract({
620
+ address: GBLIN_TIMELOCK,
621
+ abi: TIMELOCK_ABI,
622
+ functionName: "isOperation",
623
+ args: [parsed.operation_id],
624
+ }),
625
+ client.readContract({
626
+ address: GBLIN_TIMELOCK,
627
+ abi: TIMELOCK_ABI,
628
+ functionName: "isOperationPending",
629
+ args: [parsed.operation_id],
630
+ }),
631
+ client.readContract({
632
+ address: GBLIN_TIMELOCK,
633
+ abi: TIMELOCK_ABI,
634
+ functionName: "isOperationReady",
635
+ args: [parsed.operation_id],
636
+ }),
637
+ client.readContract({
638
+ address: GBLIN_TIMELOCK,
639
+ abi: TIMELOCK_ABI,
640
+ functionName: "isOperationDone",
641
+ args: [parsed.operation_id],
642
+ }),
643
+ client.readContract({
644
+ address: GBLIN_TIMELOCK,
645
+ abi: TIMELOCK_ABI,
646
+ functionName: "getTimestamp",
647
+ args: [parsed.operation_id],
648
+ }),
649
+ ]);
650
+ const tsNum = Number(ts);
651
+ const nowSec = Math.floor(Date.now() / 1000);
652
+ operationStatus = {
653
+ id: parsed.operation_id,
654
+ exists: isOp,
655
+ pending: isPending,
656
+ ready: isReady,
657
+ done: isDone,
658
+ execute_after_unix: tsNum,
659
+ execute_after_iso: tsNum > 1 ? new Date(tsNum * 1000).toISOString() : null,
660
+ seconds_until_ready: tsNum > nowSec ? tsNum - nowSec : 0,
661
+ };
662
+ }
663
+ catch (err) {
664
+ operationStatus = {
665
+ id: parsed.operation_id,
666
+ error: err.message,
667
+ };
668
+ }
669
+ }
670
+ // 4. Pending asset proposal inside GBLIN_V5 itself (separate 48h mini-timelock)
671
+ const [pToken, pOracle, pPoolFee, pIsStable, pBaseWeight, pExecuteAfter] = proposedAsset;
672
+ const hasPendingAsset = pExecuteAfter > 0n;
673
+ const nowSec = Math.floor(Date.now() / 1000);
674
+ const pendingAssetProposal = hasPendingAsset
675
+ ? {
676
+ token: getAddress(pToken),
677
+ oracle: getAddress(pOracle),
678
+ pool_fee_bps: pPoolFee,
679
+ is_stable: pIsStable,
680
+ base_weight_bps: Number(pBaseWeight),
681
+ execute_after_unix: Number(pExecuteAfter),
682
+ execute_after_iso: new Date(Number(pExecuteAfter) * 1000).toISOString(),
683
+ seconds_until_executable: Number(pExecuteAfter) > nowSec ? Number(pExecuteAfter) - nowSec : 0,
684
+ }
685
+ : null;
686
+ return toolResult({
687
+ gblin_v5: GBLIN_V5,
688
+ owner: ownerNorm,
689
+ owner_is_timelock: ownerIsTimelock,
690
+ owner_is_renounced: ownerIsRenounced,
691
+ founder_wallet: getAddress(founder),
692
+ trust_summary: ownerIsRenounced
693
+ ? "Ownership fully renounced β€” no admin can touch the contract."
694
+ : ownerIsTimelock
695
+ ? "Ownership held by the 48h Timelock. All admin actions are delay-enforced on-chain."
696
+ : "WARNING: owner is an EOA / unknown contract β€” admin actions are NOT timelocked.",
697
+ timelock: timelockState,
698
+ pending_asset_proposal: pendingAssetProposal,
699
+ pending_timelock_operation: operationStatus,
700
+ verification: {
701
+ gblin_v5_basescan: `https://basescan.org/address/${GBLIN_V5}#readContract`,
702
+ timelock_basescan: `https://basescan.org/address/${GBLIN_TIMELOCK}#readContract`,
703
+ ownership_transfer_tx: "https://basescan.org/tx/0xb653f54ffa9b1764b41932e6a411077e7e34550605303f15d90900de682edaaf",
704
+ },
705
+ });
706
+ }
707
+ catch (err) {
708
+ return toolError(err.message, "Check RPC connectivity and that the contract addresses match Base mainnet.");
709
+ }
710
+ }
711
+ // ───────────────────────────────────────────────────────────────────────────
481
712
  // REGISTRY
482
713
  // ───────────────────────────────────────────────────────────────────────────
483
714
  export const TOOL_DEFINITIONS = [
@@ -486,6 +717,7 @@ export const TOOL_DEFINITIONS = [
486
717
  JIT_SWAP_DEFINITION,
487
718
  INVEST_DEFINITION,
488
719
  ANALYZE_TREASURY_DEFINITION,
720
+ GET_GOVERNANCE_STATE_DEFINITION,
489
721
  ];
490
722
  export const TOOL_HANDLERS = {
491
723
  get_treasury_state: handleGetTreasuryState,
@@ -493,5 +725,6 @@ export const TOOL_HANDLERS = {
493
725
  swap_gblin_to_usdc_jit: handleJitSwap,
494
726
  invest_usdc_to_gblin: handleInvest,
495
727
  analyze_treasury_health: handleAnalyzeTreasury,
728
+ get_governance_state: handleGetGovernanceState,
496
729
  };
497
730
  //# sourceMappingURL=tools.js.map
package/dist/tools.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"tools.js","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tools.js","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,7 @@
1
1
  {
2
2
  "name": "@gblin-protocol/mcp-server",
3
- "version": "0.1.0",
3
+ "version": "0.1.1",
4
+ "mcpName": "io.github.gblinproject/gblin-mcp-server",
4
5
  "description": "Model Context Protocol server for GBLIN \u2014 Treasury Standard for AI Agents on Base mainnet. Provides on-chain quotes, JIT swaps, and treasury analytics for x402-paying agents.",
5
6
  "type": "module",
6
7
  "main": "dist/index.js",