@ton/mcp 0.1.13 → 0.1.15-alpha.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/README.md +205 -20
- package/dist/cli.js +21208 -25445
- package/dist/contracts/agentic_wallet/AgenticWallet.source.d.ts +11 -0
- package/dist/contracts/agentic_wallet/AgenticWallet.source.d.ts.map +1 -0
- package/dist/contracts/agentic_wallet/AgenticWalletAdapter.d.ts +62 -0
- package/dist/contracts/agentic_wallet/AgenticWalletAdapter.d.ts.map +1 -0
- package/dist/contracts/agentic_wallet/actions.d.ts.map +1 -0
- package/dist/contracts/agentic_wallet/index.d.ts +10 -0
- package/dist/contracts/agentic_wallet/index.d.ts.map +1 -0
- package/dist/factory.d.ts +13 -34
- package/dist/factory.d.ts.map +1 -1
- package/dist/http-mode.d.ts +25 -0
- package/dist/http-mode.d.ts.map +1 -0
- package/dist/index.cjs +99024 -103135
- package/dist/index.d.ts +8 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +99021 -103136
- package/dist/registry/config.d.ts +202 -0
- package/dist/registry/config.d.ts.map +1 -0
- package/dist/runtime/wallet-runtime.d.ts +35 -0
- package/dist/runtime/wallet-runtime.d.ts.map +1 -0
- package/dist/serverless.cjs +19249 -23360
- package/dist/serverless.d.ts.map +1 -1
- package/dist/serverless.js +19250 -23361
- package/dist/services/AgenticOnboardingService.d.ts +51 -0
- package/dist/services/AgenticOnboardingService.d.ts.map +1 -0
- package/dist/services/AgenticSetupSessionManager.d.ts +82 -0
- package/dist/services/AgenticSetupSessionManager.d.ts.map +1 -0
- package/dist/services/McpWalletService.d.ts +64 -0
- package/dist/services/McpWalletService.d.ts.map +1 -1
- package/dist/services/WalletRegistryService.d.ts +99 -0
- package/dist/services/WalletRegistryService.d.ts.map +1 -0
- package/dist/tools/address-tools.d.ts +119 -0
- package/dist/tools/address-tools.d.ts.map +1 -0
- package/dist/tools/agentic-onboarding-tools.d.ts +120 -0
- package/dist/tools/agentic-onboarding-tools.d.ts.map +1 -0
- package/dist/tools/agentic-tools.d.ts +71 -0
- package/dist/tools/agentic-tools.d.ts.map +1 -0
- package/dist/tools/dns-tools.d.ts.map +1 -1
- package/dist/tools/index.d.ts +4 -0
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/sanitize.d.ts +44 -0
- package/dist/tools/sanitize.d.ts.map +1 -0
- package/dist/tools/transfer-tools.d.ts +8 -8
- package/dist/tools/transfer-tools.d.ts.map +1 -1
- package/dist/tools/wallet-management-tools.d.ts +249 -0
- package/dist/tools/wallet-management-tools.d.ts.map +1 -0
- package/dist/types/config.d.ts +3 -3
- package/dist/types/config.d.ts.map +1 -1
- package/dist/utils/address.d.ts +15 -0
- package/dist/utils/address.d.ts.map +1 -0
- package/dist/utils/agentic.d.ts +61 -0
- package/dist/utils/agentic.d.ts.map +1 -0
- package/dist/utils/math.d.ts +9 -0
- package/dist/utils/math.d.ts.map +1 -0
- package/dist/utils/private-key.d.ts +14 -0
- package/dist/utils/private-key.d.ts.map +1 -0
- package/dist/utils/ton-client.d.ts +14 -0
- package/dist/utils/ton-client.d.ts.map +1 -0
- package/llms.txt +141 -5
- package/package.json +2 -2
- package/skills/SKILL.md +59 -7
- package/dist/contracts/w5_ownable/WalletOwnable.d.ts +0 -87
- package/dist/contracts/w5_ownable/WalletOwnable.d.ts.map +0 -1
- package/dist/contracts/w5_ownable/WalletOwnable.source.d.ts +0 -11
- package/dist/contracts/w5_ownable/WalletOwnable.source.d.ts.map +0 -1
- package/dist/contracts/w5_ownable/WalletOwnableAdapter.d.ts +0 -111
- package/dist/contracts/w5_ownable/WalletOwnableAdapter.d.ts.map +0 -1
- package/dist/contracts/w5_ownable/actions.d.ts.map +0 -1
- package/dist/contracts/w5_ownable/index.d.ts +0 -12
- package/dist/contracts/w5_ownable/index.d.ts.map +0 -1
- /package/dist/contracts/{w5_ownable → agentic_wallet}/actions.d.ts +0 -0
package/README.md
CHANGED
|
@@ -6,32 +6,66 @@ A Model Context Protocol (MCP) server for TON blockchain wallet operations. Buil
|
|
|
6
6
|
|
|
7
7
|
- **Balance Queries**: Check TON and Jetton balances, view transaction history
|
|
8
8
|
- **Transfers**: Send TON, Jettons, and NFTs to any address
|
|
9
|
+
- **Agentic Sub-wallet Deploy**: Deploy additional Agentic wallets from a root Agentic wallet
|
|
9
10
|
- **Swaps**: Get quotes for token swaps via DEX aggregators
|
|
10
11
|
- **NFTs**: List, inspect, and transfer NFTs
|
|
11
|
-
- **DNS**: Resolve
|
|
12
|
+
- **DNS**: Resolve TON DNS-compatible domains and reverse-lookup addresses
|
|
12
13
|
- **Known Jettons**: Built-in directory of popular tokens
|
|
13
|
-
- **
|
|
14
|
+
- **Wallet Registry Mode**: Work with multiple stored wallets, active wallet selection, and local config-backed management tools
|
|
15
|
+
- **Agentic Onboarding**: Start and complete first root-agent wallet setup from MCP
|
|
16
|
+
- **Multiple Transports**: Stdio (default), multi-session HTTP server, and serverless modes
|
|
14
17
|
|
|
15
18
|
## Quick Start
|
|
16
19
|
|
|
17
|
-
|
|
20
|
+
`@ton/mcp` supports two runtime modes.
|
|
21
|
+
|
|
22
|
+
- **Registry mode**: if `MNEMONIC` and `PRIVATE_KEY` are not set, the server starts from local config registry at `~/.config/ton/config.json` or `TON_CONFIG_PATH`
|
|
23
|
+
- **Single-wallet mode**: if `MNEMONIC` or `PRIVATE_KEY` is set, the server starts with one in-memory wallet
|
|
18
24
|
|
|
19
25
|
```bash
|
|
20
|
-
# Run as stdio MCP server
|
|
26
|
+
# Run as stdio MCP server in registry mode
|
|
27
|
+
npx @ton/mcp
|
|
28
|
+
|
|
29
|
+
# Run in registry mode with a custom config path
|
|
30
|
+
TON_CONFIG_PATH=/path/to/config.json npx @ton/mcp
|
|
31
|
+
|
|
32
|
+
# Run as stdio MCP server with mnemonic
|
|
21
33
|
MNEMONIC="word1 word2 ..." npx @ton/mcp
|
|
22
34
|
|
|
23
35
|
# Run as HTTP server (port 3000)
|
|
24
|
-
|
|
36
|
+
npx @ton/mcp --http
|
|
25
37
|
|
|
26
38
|
# Run as HTTP server on custom port
|
|
27
|
-
|
|
39
|
+
npx @ton/mcp --http 8080
|
|
40
|
+
|
|
41
|
+
# Run with custom agentic wallet contract
|
|
42
|
+
PRIVATE_KEY="0xyour_private_key" \
|
|
43
|
+
WALLET_VERSION="agentic" \
|
|
44
|
+
AGENTIC_WALLET_ADDRESS="EQ..." \
|
|
45
|
+
npx @ton/mcp
|
|
28
46
|
```
|
|
29
47
|
|
|
30
48
|
## Usage with MCP Clients
|
|
31
49
|
|
|
32
50
|
### Claude Desktop / Cursor
|
|
33
51
|
|
|
34
|
-
|
|
52
|
+
Registry mode:
|
|
53
|
+
|
|
54
|
+
```json
|
|
55
|
+
{
|
|
56
|
+
"mcpServers": {
|
|
57
|
+
"ton": {
|
|
58
|
+
"command": "npx",
|
|
59
|
+
"args": ["-y", "@ton/mcp"],
|
|
60
|
+
"env": {
|
|
61
|
+
"TON_CONFIG_PATH": "/absolute/path/to/config.json"
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
Single-wallet mode:
|
|
35
69
|
|
|
36
70
|
```json
|
|
37
71
|
{
|
|
@@ -53,22 +87,33 @@ Add to your MCP configuration:
|
|
|
53
87
|
Start the server and point your MCP client to the endpoint:
|
|
54
88
|
|
|
55
89
|
```bash
|
|
56
|
-
|
|
90
|
+
npx @ton/mcp --http 3000
|
|
57
91
|
# MCP endpoint: http://localhost:3000/mcp
|
|
58
92
|
```
|
|
59
93
|
|
|
94
|
+
HTTP mode keeps a separate MCP session/transport per client session id, so multiple clients can initialize and reconnect independently.
|
|
95
|
+
|
|
60
96
|
## Environment Variables
|
|
61
97
|
|
|
62
|
-
| Variable
|
|
98
|
+
| Variable | Default | Description |
|
|
63
99
|
|-------------------|-----------|-------------------------------------------------------|
|
|
64
|
-
| `NETWORK`
|
|
65
|
-
| `MNEMONIC`
|
|
66
|
-
| `PRIVATE_KEY`
|
|
67
|
-
| `WALLET_VERSION`
|
|
68
|
-
| `
|
|
100
|
+
| `NETWORK` | `mainnet` | TON network (`mainnet` / `testnet`) and default env override target for `TONCENTER_API_KEY` |
|
|
101
|
+
| `MNEMONIC` | | Space-separated 24-word mnemonic phrase for single-wallet mode |
|
|
102
|
+
| `PRIVATE_KEY` | | Hex-encoded private key: 32-byte seed or 64-byte `private||public` (alternative to mnemonic) |
|
|
103
|
+
| `WALLET_VERSION` | `v5r1` | Wallet version to use in single-wallet mode (`v5r1`, `v4r2`, or `agentic`) |
|
|
104
|
+
| `AGENTIC_WALLET_ADDRESS` | | Agentic wallet address (required for `WALLET_VERSION=agentic`, unless derived from init params) |
|
|
105
|
+
| `AGENTIC_WALLET_NFT_INDEX` | | Agentic wallet NFT index / subwallet id (`uint256`, optional) |
|
|
106
|
+
| `AGENTIC_COLLECTION_ADDRESS` | `EQByQ19qvWxW7VibSbGEgZiYMqilHY5y1a_eeSL2VaXhfy07` | Agentic collection address override for single-wallet mode |
|
|
107
|
+
| `TONCENTER_API_KEY` | | API key for Toncenter (optional, for higher rate limits) |
|
|
108
|
+
| `TON_CONFIG_PATH` | `~/.config/ton/config.json` | Config path for registry mode |
|
|
109
|
+
| `AGENTIC_CALLBACK_BASE_URL` | | Optional public base URL for agentic onboarding callbacks |
|
|
110
|
+
| `AGENTIC_CALLBACK_HOST` | `127.0.0.1` | Host for the local callback server in stdio mode |
|
|
111
|
+
| `AGENTIC_CALLBACK_PORT` | random free port | Port for the local callback server in stdio mode |
|
|
69
112
|
|
|
70
113
|
## Available Tools
|
|
71
114
|
|
|
115
|
+
In registry mode, wallet-scoped tools below also accept optional `walletSelector`. If omitted, the active wallet is used.
|
|
116
|
+
|
|
72
117
|
### Wallet Info
|
|
73
118
|
|
|
74
119
|
#### `get_wallet`
|
|
@@ -76,6 +121,24 @@ Get the current wallet address and network information.
|
|
|
76
121
|
|
|
77
122
|
**Returns:** Wallet address and network (`mainnet` or `testnet`)
|
|
78
123
|
|
|
124
|
+
#### `list_wallets` (registry mode only)
|
|
125
|
+
List all wallets stored in the local TON config registry.
|
|
126
|
+
|
|
127
|
+
#### `get_current_wallet` (registry mode only)
|
|
128
|
+
Get the currently active wallet from the local TON config registry.
|
|
129
|
+
|
|
130
|
+
#### `set_active_wallet` (registry mode only)
|
|
131
|
+
Set the active wallet by id, name, or address.
|
|
132
|
+
|
|
133
|
+
**Parameters:**
|
|
134
|
+
- `walletSelector` (required): Wallet id, name, or address
|
|
135
|
+
|
|
136
|
+
#### `remove_wallet` (registry mode only)
|
|
137
|
+
Soft-delete a stored wallet from the local registry. Removed wallets remain in the config file but are hidden from MCP listings and wallet selection.
|
|
138
|
+
|
|
139
|
+
**Parameters:**
|
|
140
|
+
- `walletSelector` (required): Wallet id, name, or address
|
|
141
|
+
|
|
79
142
|
### Balance & History
|
|
80
143
|
|
|
81
144
|
#### `get_balance`
|
|
@@ -83,6 +146,14 @@ Get the TON balance of the wallet.
|
|
|
83
146
|
|
|
84
147
|
**Returns:** Balance in TON and nanoTON
|
|
85
148
|
|
|
149
|
+
#### `get_balance_by_address`
|
|
150
|
+
Get the TON balance of any address.
|
|
151
|
+
|
|
152
|
+
**Parameters:**
|
|
153
|
+
- `address` (required): TON wallet address
|
|
154
|
+
|
|
155
|
+
**Returns:** Address balance in TON and nanoTON
|
|
156
|
+
|
|
86
157
|
#### `get_jetton_balance`
|
|
87
158
|
Get the balance of a specific Jetton in the wallet.
|
|
88
159
|
|
|
@@ -92,6 +163,20 @@ Get the balance of a specific Jetton in the wallet.
|
|
|
92
163
|
#### `get_jettons`
|
|
93
164
|
List all Jettons held by the wallet with balances and metadata.
|
|
94
165
|
|
|
166
|
+
#### `get_jettons_by_address`
|
|
167
|
+
List Jettons held by any address with balances and metadata.
|
|
168
|
+
|
|
169
|
+
**Parameters:**
|
|
170
|
+
- `address` (required): Owner wallet address
|
|
171
|
+
- `limit` (optional): Maximum number of jettons to return (default: 20, max: 100)
|
|
172
|
+
- `offset` (optional): Offset for pagination (default: 0)
|
|
173
|
+
|
|
174
|
+
#### `get_jetton_info`
|
|
175
|
+
Get metadata for a Jetton master contract.
|
|
176
|
+
|
|
177
|
+
**Parameters:**
|
|
178
|
+
- `address` (required): Jetton master contract address
|
|
179
|
+
|
|
95
180
|
#### `get_transactions`
|
|
96
181
|
Get recent transaction history for the wallet (TON transfers, Jetton transfers, swaps, etc.).
|
|
97
182
|
|
|
@@ -109,7 +194,7 @@ Get the status of a transaction by its normalized hash to know if it is pending,
|
|
|
109
194
|
### Transfers
|
|
110
195
|
|
|
111
196
|
#### `send_ton`
|
|
112
|
-
Send TON to an address. Amount is in human-readable format (e.g., `"1.5"` means 1.5 TON). Returns `normalizedHash`. Default flow: poll `get_transaction_status` until completed or failed; user can skip.
|
|
197
|
+
Send TON to an address. Amount is in human-readable format (e.g., `"1.5"` means 1.5 TON). Returns top-level `normalizedHash`. Default flow: poll `get_transaction_status` until completed or failed; user can skip.
|
|
113
198
|
|
|
114
199
|
**Parameters:**
|
|
115
200
|
- `toAddress` (required): Recipient TON address
|
|
@@ -117,7 +202,7 @@ Send TON to an address. Amount is in human-readable format (e.g., `"1.5"` means
|
|
|
117
202
|
- `comment` (optional): Transaction comment/memo
|
|
118
203
|
|
|
119
204
|
#### `send_jetton`
|
|
120
|
-
Send Jettons to an address. Amount is in human-readable format. Returns `normalizedHash`. Default flow: poll `get_transaction_status` until completed or failed; user can skip.
|
|
205
|
+
Send Jettons to an address. Amount is in human-readable format. Returns top-level `normalizedHash`. Default flow: poll `get_transaction_status` until completed or failed; user can skip.
|
|
121
206
|
|
|
122
207
|
**Parameters:**
|
|
123
208
|
- `toAddress` (required): Recipient TON address
|
|
@@ -126,7 +211,7 @@ Send Jettons to an address. Amount is in human-readable format. Returns `normali
|
|
|
126
211
|
- `comment` (optional): Transaction comment/memo
|
|
127
212
|
|
|
128
213
|
#### `send_raw_transaction`
|
|
129
|
-
Send a raw transaction with full control over messages. Supports multiple messages. Returns `normalizedHash`. Default flow: poll `get_transaction_status` until completed or failed; user can skip.
|
|
214
|
+
Send a raw transaction with full control over messages. Supports multiple messages. Returns top-level `normalizedHash`. Default flow: poll `get_transaction_status` until completed or failed; user can skip.
|
|
130
215
|
|
|
131
216
|
**Parameters:**
|
|
132
217
|
- `messages` (required): Array of messages, each with:
|
|
@@ -137,6 +222,16 @@ Send a raw transaction with full control over messages. Supports multiple messag
|
|
|
137
222
|
- `validUntil` (optional): Unix timestamp after which the transaction becomes invalid
|
|
138
223
|
- `fromAddress` (optional): Sender wallet address
|
|
139
224
|
|
|
225
|
+
#### `agentic_deploy_subwallet`
|
|
226
|
+
Deploy a new Agentic sub-wallet from the current wallet. Works only with an agentic root wallet that can sign and only when the current wallet is a user-root wallet (`deployedByUser=true`). Returns `normalizedHash`, deployed sub-wallet address, and computed sub-wallet NFT index. NFT metadata is written in onchain TEP-64 format.
|
|
227
|
+
|
|
228
|
+
**Default flow:** Poll `get_transaction_status` with the returned `normalizedHash` until completion.
|
|
229
|
+
|
|
230
|
+
**Parameters:**
|
|
231
|
+
- `operatorPublicKey` (required): New sub-wallet operator public key (`uint256`, decimal or `0x`-prefixed hex)
|
|
232
|
+
- `metadata` (required): Onchain TEP-64 metadata object. Must include at least `name` (non-empty string).
|
|
233
|
+
- `amountTon` (optional): TON amount to attach for deployment in TON units (default: `"0.05"`)
|
|
234
|
+
|
|
140
235
|
### Swaps
|
|
141
236
|
|
|
142
237
|
#### `get_swap_quote`
|
|
@@ -157,6 +252,14 @@ List all NFTs in the wallet with metadata, collection info, and attributes.
|
|
|
157
252
|
- `limit` (optional): Maximum number of NFTs to return (default: 20, max: 100)
|
|
158
253
|
- `offset` (optional): Offset for pagination (default: 0)
|
|
159
254
|
|
|
255
|
+
#### `get_nfts_by_address`
|
|
256
|
+
List NFTs held by any address with metadata, collection info, and attributes.
|
|
257
|
+
|
|
258
|
+
**Parameters:**
|
|
259
|
+
- `address` (required): Owner wallet address
|
|
260
|
+
- `limit` (optional): Maximum number of NFTs to return (default: 20, max: 100)
|
|
261
|
+
- `offset` (optional): Offset for pagination (default: 0)
|
|
262
|
+
|
|
160
263
|
#### `get_nft`
|
|
161
264
|
Get detailed information about a specific NFT by its address.
|
|
162
265
|
|
|
@@ -174,13 +277,13 @@ Transfer an NFT from the wallet to another address. Returns `normalizedHash`. De
|
|
|
174
277
|
### DNS
|
|
175
278
|
|
|
176
279
|
#### `resolve_dns`
|
|
177
|
-
Resolve a TON DNS domain (e.g., `"foundation.ton"`) to a wallet address.
|
|
280
|
+
Resolve a TON DNS-compatible domain name (e.g., `"foundation.ton"` or `"viqex.t.me"`) to a wallet address.
|
|
178
281
|
|
|
179
282
|
**Parameters:**
|
|
180
283
|
- `domain` (required): TON DNS domain to resolve
|
|
181
284
|
|
|
182
285
|
#### `back_resolve_dns`
|
|
183
|
-
Reverse-resolve a TON wallet address to its
|
|
286
|
+
Reverse-resolve a TON wallet address to its associated DNS domain when available.
|
|
184
287
|
|
|
185
288
|
**Parameters:**
|
|
186
289
|
- `address` (required): TON wallet address to reverse resolve
|
|
@@ -190,16 +293,82 @@ Reverse-resolve a TON wallet address to its `.ton` domain.
|
|
|
190
293
|
#### `get_known_jettons`
|
|
191
294
|
Get a list of known/popular Jettons on TON with their addresses and metadata. Useful for looking up token addresses for swaps or transfers.
|
|
192
295
|
|
|
296
|
+
#### `agentic_validate_wallet` (registry mode only)
|
|
297
|
+
Validate an existing agentic wallet address against the expected network and collection.
|
|
298
|
+
|
|
299
|
+
**Parameters:**
|
|
300
|
+
- `address` (required): Agentic wallet address
|
|
301
|
+
- `network` (optional): Network to validate against
|
|
302
|
+
- `collectionAddress` (optional): Collection address override
|
|
303
|
+
- `ownerAddress` (optional): Expected owner address
|
|
304
|
+
|
|
305
|
+
#### `agentic_list_wallets_by_owner` (registry mode only)
|
|
306
|
+
List agentic wallets owned by a given main wallet address.
|
|
307
|
+
|
|
308
|
+
**Parameters:**
|
|
309
|
+
- `ownerAddress` (required): Owner wallet address
|
|
310
|
+
- `network` (optional): Network to query
|
|
311
|
+
|
|
312
|
+
#### `agentic_import_wallet` (registry mode only)
|
|
313
|
+
Import an existing agentic wallet into the local TON config registry, recovering a matching pending key draft when available. Otherwise the wallet is imported read-only until `agentic_rotate_operator_key` is completed.
|
|
314
|
+
|
|
315
|
+
**Parameters:**
|
|
316
|
+
- `address` (required): Agentic wallet address
|
|
317
|
+
- `network` (optional): Network to validate against
|
|
318
|
+
- `name` (optional): Wallet display name
|
|
319
|
+
|
|
320
|
+
#### `agentic_start_root_wallet_setup` (registry mode only)
|
|
321
|
+
Start first-root-agent setup: generate operator keys, persist a pending draft, and return a dashboard URL for the user to create the wallet from their main wallet.
|
|
322
|
+
|
|
323
|
+
**Parameters:**
|
|
324
|
+
- `network` (optional): Network for the new root wallet
|
|
325
|
+
- `name` (optional): Agent display name
|
|
326
|
+
- `source` (optional): Source or description
|
|
327
|
+
- `collectionAddress` (optional): Collection address override
|
|
328
|
+
- `tonDeposit` (optional): TON deposit hint for the dashboard
|
|
329
|
+
|
|
330
|
+
Pending onboarding callback state is persisted in the local config, so the setup can be resumed after MCP transport restarts. In HTTP mode, callback URLs are stable on the MCP server base URL. In stdio mode, use `AGENTIC_CALLBACK_BASE_URL` and/or `AGENTIC_CALLBACK_PORT` if you need a fixed callback endpoint across restarts.
|
|
331
|
+
|
|
332
|
+
#### `agentic_list_pending_root_wallet_setups` (registry mode only)
|
|
333
|
+
List pending root-agent onboarding drafts and their callback/session status.
|
|
334
|
+
|
|
335
|
+
#### `agentic_get_root_wallet_setup` (registry mode only)
|
|
336
|
+
Get one pending root-agent onboarding draft by setup id.
|
|
337
|
+
|
|
338
|
+
**Parameters:**
|
|
339
|
+
- `setupId` (required): Pending setup identifier
|
|
340
|
+
|
|
341
|
+
#### `agentic_complete_root_wallet_setup` (registry mode only)
|
|
342
|
+
Complete root-agent onboarding from callback payload or manually supplied wallet address, then import the resulting wallet and make it active.
|
|
343
|
+
|
|
344
|
+
**Parameters:**
|
|
345
|
+
- `setupId` (required): Pending setup identifier
|
|
346
|
+
- `walletAddress` (optional): Manual wallet address if no callback was received
|
|
347
|
+
- `ownerAddress` (optional): Owner address hint for validation
|
|
348
|
+
|
|
349
|
+
#### `agentic_cancel_root_wallet_setup` (registry mode only)
|
|
350
|
+
Cancel a pending root-agent onboarding draft and remove its pending state.
|
|
351
|
+
|
|
352
|
+
**Parameters:**
|
|
353
|
+
- `setupId` (required): Pending setup identifier
|
|
354
|
+
|
|
193
355
|
## Serverless Deployment
|
|
194
356
|
|
|
195
357
|
The package exports a `@ton/mcp/serverless` entry point for deploying as a serverless function (AWS Lambda, Vercel, Cloudflare Workers, etc.). Credentials are passed via request headers instead of environment variables.
|
|
196
358
|
|
|
359
|
+
By design, serverless mode:
|
|
360
|
+
|
|
361
|
+
- operates in single-wallet mode only
|
|
362
|
+
- does not use the wallet registry
|
|
363
|
+
- does not expose wallet management and onboarding tools
|
|
364
|
+
- uses standard `v5r1` wallet type
|
|
365
|
+
|
|
197
366
|
### Headers
|
|
198
367
|
|
|
199
368
|
| Header | Description |
|
|
200
369
|
|-----------------|----------------------------------------------------------|
|
|
201
370
|
| `MNEMONIC` | 24-word mnemonic phrase |
|
|
202
|
-
| `PRIVATE_KEY` | Hex-encoded private key (takes priority over `MNEMONIC`) |
|
|
371
|
+
| `PRIVATE_KEY` | Hex-encoded private key: 32-byte seed or 64-byte (takes priority over `MNEMONIC`) |
|
|
203
372
|
| `NETWORK` | `mainnet` (default) or `testnet` |
|
|
204
373
|
| `TONCENTER_KEY` | Optional TonCenter API key for higher rate limits |
|
|
205
374
|
|
|
@@ -249,6 +418,10 @@ pnpm --filter @ton/mcp dev:cli:http
|
|
|
249
418
|
# Build
|
|
250
419
|
pnpm --filter @ton/mcp build
|
|
251
420
|
|
|
421
|
+
# Checks
|
|
422
|
+
pnpm --filter @ton/mcp test
|
|
423
|
+
pnpm --filter @ton/mcp typecheck
|
|
424
|
+
|
|
252
425
|
# Run built version
|
|
253
426
|
node packages/mcp/dist/cli.js
|
|
254
427
|
node packages/mcp/dist/cli.js --http 8080
|
|
@@ -282,6 +455,18 @@ const wallet = await kit.addWallet(walletAdapter);
|
|
|
282
455
|
const server = await createTonWalletMCP({ wallet });
|
|
283
456
|
```
|
|
284
457
|
|
|
458
|
+
The same factory also supports registry mode:
|
|
459
|
+
|
|
460
|
+
```typescript
|
|
461
|
+
import { createTonWalletMCP } from '@ton/mcp';
|
|
462
|
+
|
|
463
|
+
const server = await createTonWalletMCP({
|
|
464
|
+
networks: {
|
|
465
|
+
mainnet: { apiKey: process.env.TONCENTER_API_KEY },
|
|
466
|
+
},
|
|
467
|
+
});
|
|
468
|
+
```
|
|
469
|
+
|
|
285
470
|
## License
|
|
286
471
|
|
|
287
472
|
MIT
|