@keyban/agent-wallet-mcp 0.2.0 → 0.2.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.
Files changed (3) hide show
  1. package/LICENSE +13 -0
  2. package/README.md +86 -0
  3. package/package.json +17 -3
package/LICENSE ADDED
@@ -0,0 +1,13 @@
1
+ Copyright 2026 Keyban
2
+
3
+ Licensed under the Apache License, Version 2.0 (the "License");
4
+ you may not use this file except in compliance with the License.
5
+ You may obtain a copy of the License at
6
+
7
+ http://www.apache.org/licenses/LICENSE-2.0
8
+
9
+ Unless required by applicable law or agreed to in writing, software
10
+ distributed under the License is distributed on an "AS IS" BASIS,
11
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ See the License for the specific language governing permissions and
13
+ limitations under the License.
package/README.md ADDED
@@ -0,0 +1,86 @@
1
+ # @keyban/agent-wallet-mcp
2
+
3
+ Give an AI agent its own blockchain wallet: balances, USDC transfers and
4
+ [x402](https://x402.org) payments, under a spending policy the agent cannot
5
+ change.
6
+
7
+ Registry name: `io.keyban.prod.mcp/agent-wallet`.
8
+
9
+ The server runs locally over stdio, next to your MCP client. It holds one share
10
+ of a FROST threshold key in your OS keyring; Keyban holds the other. No single
11
+ side can move funds alone, and the model never sees either share or your API
12
+ key.
13
+
14
+ ## Install
15
+
16
+ ```bash
17
+ npx -y @keyban/agent-wallet-mcp
18
+ ```
19
+
20
+ With Claude Code:
21
+
22
+ ```bash
23
+ claude mcp add agent-wallet -- npx -y @keyban/agent-wallet-mcp
24
+ ```
25
+
26
+ The credentials below come from the Keyban admin app, which provisions the
27
+ wallet and hands you a ready-to-paste configuration.
28
+
29
+ ## Configuration
30
+
31
+ | Variable | Required | What it is |
32
+ |---|---|---|
33
+ | `KEYBAN_API_KEY` | yes | API key of the application the wallet belongs to. Never exposed to the model. |
34
+ | `KEYBAN_APP_ID` | yes | Identifier of the Keyban application. |
35
+ | `KEYBAN_INVITE_KEY` | yes | One-shot ECDSA private key authorizing this client's first-boot registration as a signer. |
36
+ | `KEYBAN_WALLET_ADDRESS` | yes | Address of the account this server drives. |
37
+ | `KEYBAN_NETWORK` | yes | Network the wallet operates on, e.g. `base` or `xdc`. |
38
+ | `KEYBAN_BASE_URL` | no | Backend base URL, or one of `dev`, `testing`, `staging`, `prod`, `sandbox`. Defaults to `https://api.prod.keyban.io`. |
39
+ | `KEYBAN_DKG_BLOB` | no | Pre-generated signer share, base64 JSON. For runtimes with no OS keyring; it does not replace the invite key. |
40
+ | `MCP_LOG_FILE` | no | Path the server writes its log to. |
41
+ | `MCP_LOG_LEVEL` | no | `debug`, `info`, `warn` or `error`. Defaults to `info`. |
42
+
43
+ ## Tools
44
+
45
+ Read-only:
46
+
47
+ | Tool | What it does |
48
+ |---|---|
49
+ | `api_status` | Check Keyban API status |
50
+ | `get_account_info` | Get wallet account info |
51
+ | `balance` | Check wallet balance |
52
+ | `list_expense_transactions` | List wallet transactions |
53
+ | `expense_stats` | Get spending statistics |
54
+ | `wait_for_intent` | Wait for approval decisions |
55
+ | `x402_info` | Inspect the x402 price of a URL |
56
+ | `discover_x402_services` | Search the x402 service directory |
57
+
58
+ Writing:
59
+
60
+ | Tool | What it does |
61
+ |---|---|
62
+ | `sign_message` | Sign a message |
63
+ | `cancel_intent` | Cancel a pending payment intent |
64
+ | `transfer_usdc` | Transfer USDC — moves funds |
65
+ | `x402_pay` | Pay for an x402 resource — moves funds |
66
+
67
+ Every tool carries a `title` and the applicable `readOnlyHint` or
68
+ `destructiveHint`, so a client can tell the two groups apart before calling
69
+ anything.
70
+
71
+ ## Spending policy
72
+
73
+ Transfers and x402 payments are checked against the wallet's policy on the
74
+ Keyban side. A call the policy will not clear on its own does not fail
75
+ silently: it comes back naming a payment intent that needs a human decision.
76
+ `wait_for_intent` blocks until the owner approves or declines, and the agent
77
+ retries once it is approved. The policy lives with the wallet, not with this
78
+ process, so editing this server's configuration cannot widen it.
79
+
80
+ ## Documentation
81
+
82
+ <https://docs.keyban.io/>
83
+
84
+ ## License
85
+
86
+ Apache-2.0. See [LICENSE](./LICENSE).
package/package.json CHANGED
@@ -1,15 +1,29 @@
1
1
  {
2
2
  "name": "@keyban/agent-wallet-mcp",
3
- "version": "0.2.0",
3
+ "version": "0.2.1",
4
4
  "description": "MCP server for Keyban agent wallet operations",
5
5
  "mcpName": "io.keyban.prod.mcp/agent-wallet",
6
- "license": "UNLICENSED",
6
+ "license": "Apache-2.0",
7
+ "homepage": "https://docs.keyban.io/",
8
+ "keywords": [
9
+ "mcp",
10
+ "model-context-protocol",
11
+ "agent",
12
+ "wallet",
13
+ "blockchain",
14
+ "usdc",
15
+ "x402",
16
+ "payments",
17
+ "keyban"
18
+ ],
7
19
  "type": "module",
8
20
  "bin": {
9
21
  "agent-wallet-mcp": "./dist/index.mjs"
10
22
  },
11
23
  "files": [
12
- "dist/"
24
+ "dist/",
25
+ "LICENSE",
26
+ "README.md"
13
27
  ],
14
28
  "dependencies": {
15
29
  "@napi-rs/keyring": "^1.2.0",