@abstract-foundation/agw-mcp 0.1.0-beta.2 → 0.1.0-beta.5
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 +23 -12
- package/dist/index.mjs +215 -19567
- package/package.json +20 -11
- package/dist/ccip-CkLhvKuV.mjs +0 -155
package/README.md
CHANGED
|
@@ -9,13 +9,13 @@ MCP server for [Abstract Global Wallet](https://abs.xyz) session-key workflows
|
|
|
9
9
|
## Quick Start
|
|
10
10
|
|
|
11
11
|
```bash
|
|
12
|
-
npx -y @abstract-foundation/agw-mcp serve --chain-id
|
|
12
|
+
npx -y @abstract-foundation/agw-mcp serve --chain-id 2741
|
|
13
13
|
```
|
|
14
14
|
|
|
15
15
|
Or add it to Claude Code directly:
|
|
16
16
|
|
|
17
17
|
```bash
|
|
18
|
-
claude mcp add agw -- npx -y @abstract-foundation/agw-mcp serve --chain-id
|
|
18
|
+
claude mcp add agw -- npx -y @abstract-foundation/agw-mcp serve --chain-id 2741
|
|
19
19
|
```
|
|
20
20
|
|
|
21
21
|
## Setup
|
|
@@ -23,10 +23,10 @@ claude mcp add agw -- npx -y @abstract-foundation/agw-mcp serve --chain-id 11124
|
|
|
23
23
|
### 1. Bootstrap a session
|
|
24
24
|
|
|
25
25
|
```bash
|
|
26
|
-
npx -y @abstract-foundation/agw-mcp init --chain-id
|
|
26
|
+
npx -y @abstract-foundation/agw-mcp init --chain-id 2741
|
|
27
27
|
```
|
|
28
28
|
|
|
29
|
-
This opens the hosted onboarding app (`https://
|
|
29
|
+
This opens the hosted onboarding app (`https://mcp.abs.xyz` by default) where you:
|
|
30
30
|
|
|
31
31
|
1. Choose a policy preset (or provide custom policy JSON)
|
|
32
32
|
2. Connect your Abstract Global Wallet
|
|
@@ -35,11 +35,12 @@ This opens the hosted onboarding app (`https://app-jarrodwatts.vercel.app`) wher
|
|
|
35
35
|
Session data is saved to `~/.agw-mcp/session.json` with `0o600` file permissions. The session signer key is stored separately in `~/.agw-mcp/session-signer.key`.
|
|
36
36
|
If a previous active session exists locally, the CLI attempts to revoke it on-chain after creating the new one.
|
|
37
37
|
Bootstrap is single-process per storage directory (lockfile: `~/.agw-mcp/.bootstrap-init.lock`) to prevent concurrent `init` races.
|
|
38
|
+
When local sessions are revoked/cleared, the signer keyfile is deleted as part of local cleanup.
|
|
38
39
|
|
|
39
40
|
### 2. Start the MCP server
|
|
40
41
|
|
|
41
42
|
```bash
|
|
42
|
-
npx -y @abstract-foundation/agw-mcp serve --chain-id
|
|
43
|
+
npx -y @abstract-foundation/agw-mcp serve --chain-id 2741
|
|
43
44
|
```
|
|
44
45
|
|
|
45
46
|
## Client Configuration
|
|
@@ -47,7 +48,7 @@ npx -y @abstract-foundation/agw-mcp serve --chain-id 11124
|
|
|
47
48
|
### Claude Code
|
|
48
49
|
|
|
49
50
|
```bash
|
|
50
|
-
claude mcp add agw -- npx -y @abstract-foundation/agw-mcp serve --chain-id
|
|
51
|
+
claude mcp add agw -- npx -y @abstract-foundation/agw-mcp serve --chain-id 2741
|
|
51
52
|
```
|
|
52
53
|
|
|
53
54
|
### Claude Desktop
|
|
@@ -62,7 +63,7 @@ Add to your `claude_desktop_config.json`:
|
|
|
62
63
|
"mcpServers": {
|
|
63
64
|
"agw-mcp": {
|
|
64
65
|
"command": "npx",
|
|
65
|
-
"args": ["-y", "@abstract-foundation/agw-mcp", "serve", "--chain-id", "
|
|
66
|
+
"args": ["-y", "@abstract-foundation/agw-mcp", "serve", "--chain-id", "2741"]
|
|
66
67
|
}
|
|
67
68
|
}
|
|
68
69
|
}
|
|
@@ -78,7 +79,7 @@ Add to your `claude_desktop_config.json`:
|
|
|
78
79
|
"mcpServers": {
|
|
79
80
|
"agw-mcp": {
|
|
80
81
|
"command": "npx",
|
|
81
|
-
"args": ["-y", "@abstract-foundation/agw-mcp", "serve", "--chain-id", "
|
|
82
|
+
"args": ["-y", "@abstract-foundation/agw-mcp", "serve", "--chain-id", "2741"]
|
|
82
83
|
}
|
|
83
84
|
}
|
|
84
85
|
}
|
|
@@ -93,7 +94,7 @@ Use the same JSON block as Claude Desktop in your editor's MCP configuration fil
|
|
|
93
94
|
### Generate config snippet
|
|
94
95
|
|
|
95
96
|
```bash
|
|
96
|
-
npx -y @abstract-foundation/agw-mcp config --npx --chain-id
|
|
97
|
+
npx -y @abstract-foundation/agw-mcp config --npx --chain-id 2741
|
|
97
98
|
```
|
|
98
99
|
|
|
99
100
|
## Tools
|
|
@@ -117,7 +118,7 @@ npx -y @abstract-foundation/agw-mcp config --npx --chain-id 11124
|
|
|
117
118
|
|
|
118
119
|
## Network Configuration
|
|
119
120
|
|
|
120
|
-
Defaults to Abstract
|
|
121
|
+
Defaults to Abstract mainnet (chain ID `2741`). Override RPC or switch to testnet when needed:
|
|
121
122
|
|
|
122
123
|
```bash
|
|
123
124
|
# Mainnet
|
|
@@ -132,15 +133,16 @@ Environment variables are also supported:
|
|
|
132
133
|
```bash
|
|
133
134
|
AGW_MCP_CHAIN_ID=2741 npx -y @abstract-foundation/agw-mcp serve
|
|
134
135
|
AGW_MCP_RPC_URL=https://api.mainnet.abs.xyz npx -y @abstract-foundation/agw-mcp serve
|
|
135
|
-
AGW_MCP_APP_URL=
|
|
136
|
+
AGW_MCP_APP_URL=https://mcp.abs.xyz npx -y @abstract-foundation/agw-mcp init --chain-id 2741
|
|
136
137
|
```
|
|
137
138
|
|
|
138
139
|
`init` requires `https://` app URLs except for loopback local development URLs (`http://localhost`, `http://127.0.0.1`, `http://[::1]`).
|
|
140
|
+
`init` defaults to `https://mcp.abs.xyz` if no app URL is configured via `--app-url` or `AGW_MCP_APP_URL`.
|
|
139
141
|
|
|
140
142
|
For local hosted-app development:
|
|
141
143
|
|
|
142
144
|
```bash
|
|
143
|
-
npx -y @abstract-foundation/agw-mcp init --chain-id
|
|
145
|
+
npx -y @abstract-foundation/agw-mcp init --chain-id 2741 --app-url http://localhost:3001
|
|
144
146
|
```
|
|
145
147
|
|
|
146
148
|
## Security Model
|
|
@@ -151,6 +153,15 @@ npx -y @abstract-foundation/agw-mcp init --chain-id 11124 --app-url http://local
|
|
|
151
153
|
- **Restrictive file permissions**: Session storage directory `0o700`, files `0o600`.
|
|
152
154
|
- **Stderr-only logging**: stdout is reserved for MCP stdio transport. All operational logs go to stderr.
|
|
153
155
|
|
|
156
|
+
### Real Funds Checklist
|
|
157
|
+
|
|
158
|
+
For production usage with real money:
|
|
159
|
+
|
|
160
|
+
1. Use a trusted onboarding host (`--app-url` or `AGW_MCP_APP_URL`) and pin it in deployment config.
|
|
161
|
+
2. Start with minimal intent scope (prefer payments-only) and shortest practical expiry.
|
|
162
|
+
3. Keep `execute` off by default and run preview-first workflows where possible.
|
|
163
|
+
4. Revoke sessions after task completion (`revoke_session`) and confirm status with `get_session_status`.
|
|
164
|
+
|
|
154
165
|
## Development
|
|
155
166
|
|
|
156
167
|
```bash
|