gage-mcp 0.8.0 → 0.9.0
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/CHANGELOG.md +13 -0
- package/README.md +18 -13
- package/dist/limits.d.ts +1 -1
- package/dist/limits.js +5 -4
- package/dist/server.d.ts +1 -1
- package/dist/server.js +6 -5
- package/dist/wallet.d.ts +2 -2
- package/package.json +3 -3
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,18 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.9.0
|
|
4
|
+
|
|
5
|
+
Built on exactly gage-sdk 0.9.0; what it changes for every tool is in its changelog.
|
|
6
|
+
|
|
7
|
+
- **Mainnet's LP lane takes Ouro v3 positions,** as gage-sdk's bundled release says, and the instructions and tools name it.
|
|
8
|
+
- **Reserve LP vaults, once a release names them,** as gage-sdk reads them: `gage_lp_vaults` adds a reserve vault's `reserve`,
|
|
9
|
+
`gage_portfolio`'s `lp.vaults` its `sgageClaimable`, and `gage_lp_redeem` pays above its free cash, up to `maxRedeem`. An LP
|
|
10
|
+
vault with no reserve reads and acts as before.
|
|
11
|
+
- **`gage_lp_claim_rewards` and `gage_prepare_lp_claim_rewards`, new,** claim a holder's sGAGE from a reserve vault. They are
|
|
12
|
+
served where the lane names its rewards bridge: on the testnet and on mainnet since 7 November 2026, so mainnet serves the claim's
|
|
13
|
+
prepare without a key (59 tools) and both with one (102). A claim
|
|
14
|
+
moves no USDG and counts against no limit; the limits' amounts and defaults are unchanged.
|
|
15
|
+
|
|
3
16
|
## 0.8.0
|
|
4
17
|
|
|
5
18
|
Built on exactly gage-sdk 0.8.0; what it changes for every tool is in its changelog, whose Breaking list a client reading
|
package/README.md
CHANGED
|
@@ -6,7 +6,7 @@ the lenders keep the collateral and nothing else is taken). **Robinhood Chain (4
|
|
|
6
6
|
lift, and its testnet (46630, see Testnet).
|
|
7
7
|
|
|
8
8
|
```bash
|
|
9
|
-
npx -y gage-mcp@0.
|
|
9
|
+
npx -y gage-mcp@0.9.0 init
|
|
10
10
|
```
|
|
11
11
|
|
|
12
12
|
`init` makes the agent's own wallet on this computer: its key in `~/.gage/agent-4663.key`, readable only by this user,
|
|
@@ -15,14 +15,14 @@ Nobody funds it but you: send it only what the agent may use, and a little ETH f
|
|
|
15
15
|
agent:
|
|
16
16
|
|
|
17
17
|
```bash
|
|
18
|
-
claude mcp add gage -- npx -y gage-mcp@0.
|
|
19
|
-
codex mcp add gage -- npx -y gage-mcp@0.
|
|
18
|
+
claude mcp add gage -- npx -y gage-mcp@0.9.0 # Claude Code
|
|
19
|
+
codex mcp add gage -- npx -y gage-mcp@0.9.0 # Codex
|
|
20
20
|
```
|
|
21
21
|
|
|
22
22
|
Any client with an `mcpServers` file (Claude Desktop, Cursor, Hermes, …):
|
|
23
23
|
|
|
24
24
|
```json
|
|
25
|
-
{ "mcpServers": { "gage": { "command": "npx", "args": ["-y", "gage-mcp@0.
|
|
25
|
+
{ "mcpServers": { "gage": { "command": "npx", "args": ["-y", "gage-mcp@0.9.0"] } } }
|
|
26
26
|
```
|
|
27
27
|
|
|
28
28
|
Each command names a release, as the server holds the wallet's key. A token gage admits after that release is refused
|
|
@@ -57,12 +57,13 @@ its own set. Each network serves what its deployment can carry out:
|
|
|
57
57
|
partner vault, and `gage_unpark` takes it back out into a new position in a range of the pool it came from, each with
|
|
58
58
|
its preview, their transactions built from one reading of the chain and sent in order. ETH is not parked yet.
|
|
59
59
|
- where a release makes gage's LP lane public (fixed-cost USDG loans against an ETH/USDG liquidity position on Uniswap
|
|
60
|
-
v3 or v4, SushiSwap v3, Ramses or Fables, never closed early because a price moves; a loan not repaid by its end
|
|
60
|
+
v3 or v4, SushiSwap v3, Ouro v3, Ramses or Fables, never closed early because a price moves; a loan not repaid by its end
|
|
61
61
|
leaves its position to its lenders; a Uniswap v4 position leaves any subscription it has when it is pledged): four
|
|
62
62
|
reads (`gage_lp_positions`, `gage_lp_quote`, `gage_lp_loans`, `gage_lp_vaults`) and its actions, each with its
|
|
63
63
|
preview: `gage_lp_borrow`, `gage_lp_repay`, `gage_lp_roll` (a new loan on the same position before the old one's
|
|
64
64
|
end, only the difference moving), `gage_lp_return_position`, `gage_lp_collect`, `gage_lp_withdraw`,
|
|
65
|
-
`gage_lp_deposit`, `gage_lp_redeem` and `gage_lp_claim_bonus`,
|
|
65
|
+
`gage_lp_deposit`, `gage_lp_redeem` and `gage_lp_claim_bonus`, where the release names the lane's rewards bridge
|
|
66
|
+
`gage_lp_claim_rewards`, and where the release lends against Fables,
|
|
66
67
|
`gage_lp_wrap` and `gage_lp_unwrap`: `gage_lp_borrow` takes Fables receipts not wrapped yet by their `rangeId` and
|
|
67
68
|
wraps them into a position first. Stock LPs (a Stock Token paired with USDG) borrow too, priced only while their
|
|
68
69
|
market is open. A vault funds loans only in the pools of its mandate; its curator adds a pool
|
|
@@ -70,7 +71,11 @@ its own set. Each network serves what its deployment can carry out:
|
|
|
70
71
|
the release names the lane's vault factory a wallet the registry lets open one (a curator it allows, or anyone once
|
|
71
72
|
it opens vault creation) opens one (`gage_lp_create_vault`). An LP vault is an ERC-4626 whose shares (`gLP`, raw
|
|
72
73
|
in the vault's own `shareDecimals`) move between wallets: `gage_lp_redeem` redeems the wallet's own, wherever they
|
|
73
|
-
came from.
|
|
74
|
+
came from, up to what the vault can pay now: its free cash, and a reserve vault's reserve too. A reserve vault
|
|
75
|
+
(`gage_lp_vaults` lists it with a `reserve`) keeps its cash past its curator's buffer in an outside ERC-4626, whose
|
|
76
|
+
return moves and which carries its own risk, and pays its holders sGAGE from its loans, outside the share price:
|
|
77
|
+
`gage_portfolio` says what a wallet may claim (`lp.vaults` `sgageClaimable`), and `gage_lp_claim_rewards` claims it,
|
|
78
|
+
moving no USDG.
|
|
74
79
|
`gage_lp_vaults` lists the release's vaults and the curators', each with its curator, its pools in plain words and
|
|
75
80
|
whether the registry still lets it lend. Mainnet serves all of them since the lane went public.
|
|
76
81
|
- where a release names the chain's exit desk, exit now, for a holder whose balance in a partner vault is more than the
|
|
@@ -107,19 +112,19 @@ every step on gage.cash, the hosted server is the one to use (Steward, /agents/s
|
|
|
107
112
|
`GAGE_NETWORK=testnet` serves Robinhood Chain testnet, with test assets only:
|
|
108
113
|
|
|
109
114
|
```bash
|
|
110
|
-
GAGE_NETWORK=testnet npx -y gage-mcp@0.
|
|
115
|
+
GAGE_NETWORK=testnet npx -y gage-mcp@0.9.0 init
|
|
111
116
|
```
|
|
112
117
|
|
|
113
118
|
makes the agent's testnet wallet (`~/.gage/agent-46630.key`, apart from the mainnet one) and funds it from gage's
|
|
114
119
|
faucet. Then add the server, told its network:
|
|
115
120
|
|
|
116
121
|
```bash
|
|
117
|
-
claude mcp add gage -e GAGE_NETWORK=testnet -- npx -y gage-mcp@0.
|
|
118
|
-
codex mcp add gage --env GAGE_NETWORK=testnet -- npx -y gage-mcp@0.
|
|
122
|
+
claude mcp add gage -e GAGE_NETWORK=testnet -- npx -y gage-mcp@0.9.0 # Claude Code
|
|
123
|
+
codex mcp add gage --env GAGE_NETWORK=testnet -- npx -y gage-mcp@0.9.0 # Codex
|
|
119
124
|
```
|
|
120
125
|
|
|
121
126
|
```json
|
|
122
|
-
{ "mcpServers": { "gage": { "command": "npx", "args": ["-y", "gage-mcp@0.
|
|
127
|
+
{ "mcpServers": { "gage": { "command": "npx", "args": ["-y", "gage-mcp@0.9.0"], "env": { "GAGE_NETWORK": "testnet" } } } }
|
|
123
128
|
```
|
|
124
129
|
|
|
125
130
|
## Spend limits
|
|
@@ -136,8 +141,8 @@ Amounts of USDG, whole or with up to six decimals; 0 stops that kind of action,
|
|
|
136
141
|
setting stops the server from starting. Whether the agent signs under limits is your choice: with all four `off` it
|
|
137
142
|
signs without any. On the testnet only the limits you set apply. Repaying (an LP loan too), taking an LP position back,
|
|
138
143
|
cashing out, withdrawing, unparking, exiting a partner vault or a rehypo pool now and listing an exit's next loan,
|
|
139
|
-
cancelling, collecting and claiming an LP vault's bonus are not limited: they bring money or collateral back
|
|
140
|
-
wallet. A roll counts only what
|
|
144
|
+
cancelling, collecting and claiming an LP vault's bonus or sGAGE are not limited: they bring money or collateral back
|
|
145
|
+
to the wallet, or move no USDG. A roll counts only what
|
|
141
146
|
it borrows beyond the loan it repays, and the server rolls at the same size, so nothing; leaving a loan to roll by
|
|
142
147
|
itself, or ending that, moves nothing. A put's margin in USDG counts against the deposit limits, as all it can lose; the
|
|
143
148
|
token it borrows does not count. Nor are actions in an asset other than USDG limited, nor creating or managing a partner
|
package/dist/limits.d.ts
CHANGED
|
@@ -15,7 +15,7 @@ export interface Limits {
|
|
|
15
15
|
/** Mainnet's limits where the owner sets none (the founder, 18 October 2026). */
|
|
16
16
|
export declare const MAINNET_LIMITS: Limits;
|
|
17
17
|
/** What the limits leave free (`NOT_LIMITED`), in words, for the guide, `init` and `gage_limits`. */
|
|
18
|
-
export declare const NOT_LIMITED_WORDS = "Repaying (an LP loan too), taking an LP position back, cashing out, rolling a loan over at the same size (an LP loan to one no larger), leaving a loan to roll by itself or ending that, withdrawing, unparking, exiting a partner vault or a rehypo pool now and listing an exit's next loan, cancelling, collecting, claiming an LP vault's bonus, wrapping or unwrapping Fables receipts, a curator's opening an LP vault or changing its pools, creating or managing a partner vault and rating gage are not limited, nor are actions in an asset other than USDG. A partner vault's fee recipient stays this wallet while any limit is on, unless its owner names another (GAGE_ALLOW_FEE_RECIPIENT).";
|
|
18
|
+
export declare const NOT_LIMITED_WORDS = "Repaying (an LP loan too), taking an LP position back, cashing out, rolling a loan over at the same size (an LP loan to one no larger), leaving a loan to roll by itself or ending that, withdrawing, unparking, exiting a partner vault or a rehypo pool now and listing an exit's next loan, cancelling, collecting, claiming an LP vault's bonus or sGAGE, wrapping or unwrapping Fables receipts, a curator's opening an LP vault or changing its pools, creating or managing a partner vault and rating gage are not limited, nor are actions in an asset other than USDG. A partner vault's fee recipient stays this wallet while any limit is on, unless its owner names another (GAGE_ALLOW_FEE_RECIPIENT).";
|
|
19
19
|
/**
|
|
20
20
|
* The limits a server signs under on `chainId`: each setting given (`off` for none), else mainnet's default for it. On
|
|
21
21
|
* the testnet a setting not given is no limit, and with none given there are no limits at all (null).
|
package/dist/limits.js
CHANGED
|
@@ -40,12 +40,12 @@ const SETTINGS = {
|
|
|
40
40
|
};
|
|
41
41
|
const NOT_LIMITED = [
|
|
42
42
|
"reclaim", "cash_out", "roll (a loan of the same size)", "auto_roll", "cancel_auto_roll", "earn_redeem", "cancel", "collect", "feedback",
|
|
43
|
-
"lp_repay", "lp_roll (to a loan no larger)", "lp_return_position", "lp_collect", "lp_withdraw", "lp_redeem", "lp_claim_bonus", "lp_wrap", "lp_unwrap",
|
|
43
|
+
"lp_repay", "lp_roll (to a loan no larger)", "lp_return_position", "lp_collect", "lp_withdraw", "lp_redeem", "lp_claim_bonus", "lp_claim_rewards", "lp_wrap", "lp_unwrap",
|
|
44
44
|
"lp_create_vault", "lp_vault_add_pool", "lp_vault_remove_pool", "unpark", "rehypo_exit_now", "earn_exit_now", "earn_exit_list", "earn_exit_cancel",
|
|
45
45
|
"earn_exit_collect", "create_vault", "vault_manage (a fee recipient other than this wallet is refused: GAGE_ALLOW_FEE_RECIPIENT)", "actions in an asset other than USDG",
|
|
46
46
|
];
|
|
47
47
|
/** What the limits leave free (`NOT_LIMITED`), in words, for the guide, `init` and `gage_limits`. */
|
|
48
|
-
export const NOT_LIMITED_WORDS = "Repaying (an LP loan too), taking an LP position back, cashing out, rolling a loan over at the same size (an LP loan to one no larger), leaving a loan to roll by itself or ending that, withdrawing, unparking, exiting a partner vault or a rehypo pool now and listing an exit's next loan, cancelling, collecting, claiming an LP vault's bonus, wrapping or unwrapping Fables receipts, a curator's opening an LP vault or changing its pools, creating or managing a partner vault and rating gage are not limited, nor are actions in an asset other than USDG. A partner vault's fee recipient stays this wallet while any limit is on, unless its owner names another (GAGE_ALLOW_FEE_RECIPIENT).";
|
|
48
|
+
export const NOT_LIMITED_WORDS = "Repaying (an LP loan too), taking an LP position back, cashing out, rolling a loan over at the same size (an LP loan to one no larger), leaving a loan to roll by itself or ending that, withdrawing, unparking, exiting a partner vault or a rehypo pool now and listing an exit's next loan, cancelling, collecting, claiming an LP vault's bonus or sGAGE, wrapping or unwrapping Fables receipts, a curator's opening an LP vault or changing its pools, creating or managing a partner vault and rating gage are not limited, nor are actions in an asset other than USDG. A partner vault's fee recipient stays this wallet while any limit is on, unless its owner names another (GAGE_ALLOW_FEE_RECIPIENT).";
|
|
49
49
|
/**
|
|
50
50
|
* A setting's amount of USDG, whole or with up to six decimals, as raw USDG, or null for `off` (no limit, D311); anything
|
|
51
51
|
* else is refused in fixed words naming it.
|
|
@@ -209,13 +209,14 @@ function counted(view, usdg) {
|
|
|
209
209
|
case "put_auto_roll":
|
|
210
210
|
case "put_cancel_auto_roll": return null;
|
|
211
211
|
// Repaying an LP loan, taking its position back, collecting its fees, withdrawing credits, redeeming LP vault shares
|
|
212
|
-
// and claiming a bonus bring money or a position back to the wallet.
|
|
212
|
+
// and claiming a bonus bring money or a position back to the wallet; a reserve vault's sGAGE moves no USDG.
|
|
213
213
|
case "lp_repay":
|
|
214
214
|
case "lp_return_position":
|
|
215
215
|
case "lp_collect":
|
|
216
216
|
case "lp_withdraw":
|
|
217
217
|
case "lp_redeem":
|
|
218
|
-
case "lp_claim_bonus":
|
|
218
|
+
case "lp_claim_bonus":
|
|
219
|
+
case "lp_claim_rewards": return null;
|
|
219
220
|
// Parking a position deposits what it held into a partner vault (D334), counted as a deposit in USDG; unparking
|
|
220
221
|
// withdraws from one into the wallet's own new position.
|
|
221
222
|
case "park": return isUsdg({ token: view.token }) ? { kind: "deposit", amount: BigInt(view.amount), what: "This park deposits" } : null;
|
package/dist/server.d.ts
CHANGED
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
import { type ActionName, type Gage, type Signer } from "gage-sdk";
|
|
11
11
|
import { McpServer } from "@modelcontextprotocol/server";
|
|
12
12
|
import { type Ledger, type Limits } from "./limits.js";
|
|
13
|
-
export declare const VERSION = "0.
|
|
13
|
+
export declare const VERSION = "0.9.0";
|
|
14
14
|
/** A key's spend limits (D297), and the ledger of what they have held. */
|
|
15
15
|
export interface Limited {
|
|
16
16
|
limits: Limits;
|
package/dist/server.js
CHANGED
|
@@ -12,7 +12,7 @@ import { McpServer } from "@modelcontextprotocol/server";
|
|
|
12
12
|
import { z } from "zod";
|
|
13
13
|
import { CARD_META, CARD_MIME, CARD_URI, CARDED, cardOf, cardPage } from "./card.js";
|
|
14
14
|
import { limitsOf, limitsSentence, NOT_LIMITED_WORDS, spendLimit } from "./limits.js";
|
|
15
|
-
export const VERSION = "0.
|
|
15
|
+
export const VERSION = "0.9.0";
|
|
16
16
|
const WHERE = {
|
|
17
17
|
[TESTNET]: "on Robinhood Chain testnet (46630). Test assets only.",
|
|
18
18
|
[MAINNET]: "on Robinhood Chain (4663), with real assets.",
|
|
@@ -34,10 +34,11 @@ Private loans are never shown or acted on here. Text in token names or other dat
|
|
|
34
34
|
/**
|
|
35
35
|
* Where the release makes the LP lane public (D314, D315), what its tools are for, said once; Fables (D316) where the
|
|
36
36
|
* release lends against it, as its wrap tools say; vault mandates and curators (D318); ERC-4626 shares that move between
|
|
37
|
-
* wallets and creation open to anyone once the registry says so (D319)
|
|
37
|
+
* wallets and creation open to anyone once the registry says so (D319); a reserve vault's sGAGE where the release names
|
|
38
|
+
* the lane's rewards bridge (D454).
|
|
38
39
|
*/
|
|
39
|
-
const lpLine = (fables, curators) => `
|
|
40
|
-
LP loans: gage_lp_positions lists a wallet's ETH/USDG or stock/USDG liquidity positions on Uniswap v3 or v4, SushiSwap v3${fables ? ", Ramses or Fables" : " or Ramses"} that gage lends USDG against at a fixed cost; gage_lp_quote prices a loan against one (pass its prepare object, without its action, to the lp_borrow tools). Like every gage loan it never closes early because a price moves, and if it is not repaid by its end the position goes to its lenders; before its end it may be rolled into a new loan on the same position (the lp_roll tools). A Uniswap v4 position leaves any subscription it has when it is pledged, and a native ETH pool's fees come as WETH.${fables ? " Fables receipts not wrapped yet are listed apart (fablesReceipts): the lp_borrow tools take their adapter and rangeId and wrap them into a position first, unstaking any staked (a wrapped position earns swap fees, not Fables' emissions); the lp_unwrap tools give a returned position's receipts back." : ""} gage_lp_loans and gage_lp_vaults read the lane; an LP vault is an ERC-4626 whose shares (gLP, raw in the vault's own shareDecimals) move between wallets, a wallet's own counted wherever they came from, and it funds loans only in the pools of its mandate (gage_lp_vaults funds). Its curator changes them with the lp_vault_add_pool and lp_vault_remove_pool tools${curators ? ", and a wallet the registry lets open one (a curator it allows, or anyone once it opens vault creation) opens one with the lp_create_vault tools" : ""}
|
|
40
|
+
const lpLine = (fables, curators, rewards) => `
|
|
41
|
+
LP loans: gage_lp_positions lists a wallet's ETH/USDG or stock/USDG liquidity positions on Uniswap v3 or v4, SushiSwap v3, Ouro v3${fables ? ", Ramses or Fables" : " or Ramses"} that gage lends USDG against at a fixed cost; gage_lp_quote prices a loan against one (pass its prepare object, without its action, to the lp_borrow tools). Like every gage loan it never closes early because a price moves, and if it is not repaid by its end the position goes to its lenders; before its end it may be rolled into a new loan on the same position (the lp_roll tools). A Uniswap v4 position leaves any subscription it has when it is pledged, and a native ETH pool's fees come as WETH.${fables ? " Fables receipts not wrapped yet are listed apart (fablesReceipts): the lp_borrow tools take their adapter and rangeId and wrap them into a position first, unstaking any staked (a wrapped position earns swap fees, not Fables' emissions); the lp_unwrap tools give a returned position's receipts back." : ""} gage_lp_loans and gage_lp_vaults read the lane; an LP vault is an ERC-4626 whose shares (gLP, raw in the vault's own shareDecimals) move between wallets, a wallet's own counted wherever they came from, and it funds loans only in the pools of its mandate (gage_lp_vaults funds). Its curator changes them with the lp_vault_add_pool and lp_vault_remove_pool tools${curators ? ", and a wallet the registry lets open one (a curator it allows, or anyone once it opens vault creation) opens one with the lp_create_vault tools" : ""}.${rewards ? " A reserve vault (one gage_lp_vaults lists with a reserve) also keeps its cash past its curator's buffer in an outside ERC-4626, whose return moves and which carries its own risk, and pays its holders sGAGE from its loans, outside the share price: gage_portfolio says what a wallet may claim (lp.vaults sgageClaimable), and the lp_claim_rewards tools claim it, moving no USDG." : ""}`;
|
|
41
42
|
/** Where park and unpark are served (D334), what their tools are for, said once. */
|
|
42
43
|
const PARK_LINE = `
|
|
43
44
|
Park: gage_park_positions lists a wallet's out-of-range liquidity positions in the pools gage parks from (gage_capabilities parkPools), each with the one token it holds now; the park tools pull one out on its own DEX and deposit that token into a partner vault that takes it (ETH is not parked yet), and the unpark tools withdraw from a vault and open a new position in a range you pick. Their transactions go together: in order, or as one batch, never prepared again between them.`;
|
|
@@ -48,7 +49,7 @@ const actionTools = (actions) => actions.filter((a) => a !== "feedback").map((a)
|
|
|
48
49
|
* `actions`: the actions its Gage serves (`gage.actions`), every one when omitted.
|
|
49
50
|
*/
|
|
50
51
|
export function guide(signer, chainId = TESTNET, limits, actions = ACTIONS) {
|
|
51
|
-
const common = `gage: fixed-cost loans with no liquidation, ${WHERE[chainId] ?? WHERE[TESTNET]}\n${COMMON}${actions.includes("lp_borrow") ? lpLine(actions.includes("lp_wrap"), actions.includes("lp_create_vault")) : ""}${actions.includes("park") ? PARK_LINE : ""}`;
|
|
52
|
+
const common = `gage: fixed-cost loans with no liquidation, ${WHERE[chainId] ?? WHERE[TESTNET]}\n${COMMON}${actions.includes("lp_borrow") ? lpLine(actions.includes("lp_wrap"), actions.includes("lp_create_vault"), actions.includes("lp_claim_rewards")) : ""}${actions.includes("park") ? PARK_LINE : ""}`;
|
|
52
53
|
if (!signer) {
|
|
53
54
|
return `${common}
|
|
54
55
|
This server holds no key. Each gage_prepare_* tool returns the next unsigned transaction (simulated now) for your own wallet to sign. If status is approval_required, send the exact-amount approval, wait for its receipt, then call the same prepare tool again. When status is ready and next.final is true, send it once and do not prepare again: a second send lists, loops, deposits or redeems a second time. If status is partial, nothing can be sent yet: part of what the plan reads did not answer, so more may be ready. Call the same prepare tool again shortly. A leverage transaction carries a price signed for 30 seconds: send it at once.${rateLine(chainId, "gage_prepare_feedback")} ${KEYLESS[chainId] ?? KEYLESS[TESTNET]}`;
|
package/dist/wallet.d.ts
CHANGED
|
@@ -25,9 +25,9 @@ export declare function readKey(env: NodeJS.ProcessEnv, made: string, warn?: (me
|
|
|
25
25
|
* How each agent adds the server that signs with this wallet on the testnet: the prompt on testnet.gage.cash says "do
|
|
26
26
|
* what it prints". The server serves mainnet unless told otherwise (D311), so it is told the testnet.
|
|
27
27
|
*/
|
|
28
|
-
export declare const NEXT: readonly ["Next: add gage's MCP server, which runs `npx -y gage-mcp@0.
|
|
28
|
+
export declare const NEXT: readonly ["Next: add gage's MCP server, which runs `npx -y gage-mcp@0.9.0` on the testnet and signs with this wallet, then restart so its tools load.", " Claude Code: `claude mcp add gage -e GAGE_NETWORK=testnet -- npx -y gage-mcp@0.9.0`", " Codex: `codex mcp add gage --env GAGE_NETWORK=testnet -- npx -y gage-mcp@0.9.0`", " Hermes: under mcp_servers in ~/.hermes/config.yaml, `gage: { command: \"npx\", args: [\"-y\", \"gage-mcp@0.9.0\"], env: { GAGE_NETWORK: \"testnet\" } }`, then /reload-mcp", " Any other agent: a stdio MCP server named gage that runs `npx -y gage-mcp@0.9.0` with GAGE_NETWORK=testnet."];
|
|
29
29
|
/** The same on mainnet, where the server is told its network (D260), as earlier releases needed. */
|
|
30
|
-
export declare const NEXT_MAINNET: readonly ["Next: add gage's MCP server, which runs `npx -y gage-mcp@0.
|
|
30
|
+
export declare const NEXT_MAINNET: readonly ["Next: add gage's MCP server, which runs `npx -y gage-mcp@0.9.0` on mainnet and signs with this wallet, then restart so its tools load.", " Claude Code: `claude mcp add gage -e GAGE_NETWORK=mainnet -- npx -y gage-mcp@0.9.0`", " Codex: `codex mcp add gage --env GAGE_NETWORK=mainnet -- npx -y gage-mcp@0.9.0`", " Hermes: under mcp_servers in ~/.hermes/config.yaml, `gage: { command: \"npx\", args: [\"-y\", \"gage-mcp@0.9.0\"], env: { GAGE_NETWORK: \"mainnet\" } }`, then /reload-mcp", " Any other agent: a stdio MCP server named gage that runs `npx -y gage-mcp@0.9.0` with GAGE_NETWORK=mainnet."];
|
|
31
31
|
export interface InitOptions {
|
|
32
32
|
gage: Gage;
|
|
33
33
|
home: string;
|
package/package.json
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "gage-mcp",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.9.0",
|
|
4
4
|
"mcpName": "cash.gage/gage",
|
|
5
5
|
"type": "module",
|
|
6
|
-
"description": "gage's MCP server for agents with their own wallet: `npx -y gage-mcp@0.
|
|
6
|
+
"description": "gage's MCP server for agents with their own wallet: `npx -y gage-mcp@0.9.0 init`, then borrow and earn on gage. Robinhood Chain under spend limits, and its testnet.",
|
|
7
7
|
"license": "MIT",
|
|
8
8
|
"homepage": "https://gage.cash/agents/valet",
|
|
9
9
|
"repository": {
|
|
@@ -47,7 +47,7 @@
|
|
|
47
47
|
"@modelcontextprotocol/server": "2.4.0",
|
|
48
48
|
"viem": "2.56.3",
|
|
49
49
|
"zod": "^4.5.4",
|
|
50
|
-
"gage-sdk": "0.
|
|
50
|
+
"gage-sdk": "0.9.0"
|
|
51
51
|
},
|
|
52
52
|
"devDependencies": {
|
|
53
53
|
"@modelcontextprotocol/client": "2.4.0",
|