@1ly/mcp-server 0.1.4 → 0.1.6

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 (69) hide show
  1. package/README.md +182 -36
  2. package/dist/budget.d.ts.map +1 -1
  3. package/dist/budget.js +3 -0
  4. package/dist/budget.js.map +1 -1
  5. package/dist/config.d.ts +6 -0
  6. package/dist/config.d.ts.map +1 -1
  7. package/dist/config.js +6 -0
  8. package/dist/config.js.map +1 -1
  9. package/dist/error-codes.d.ts +8 -0
  10. package/dist/error-codes.d.ts.map +1 -0
  11. package/dist/error-codes.js +87 -0
  12. package/dist/error-codes.js.map +1 -0
  13. package/dist/index.js +32 -2
  14. package/dist/index.js.map +1 -1
  15. package/dist/mcp-server.d.ts +36 -0
  16. package/dist/mcp-server.d.ts.map +1 -0
  17. package/dist/mcp-server.js +132 -0
  18. package/dist/mcp-server.js.map +1 -0
  19. package/dist/mcp.d.ts +16 -1
  20. package/dist/mcp.d.ts.map +1 -1
  21. package/dist/mcp.js +38 -2
  22. package/dist/mcp.js.map +1 -1
  23. package/dist/security-log.d.ts +1 -1
  24. package/dist/security-log.d.ts.map +1 -1
  25. package/dist/security-log.js.map +1 -1
  26. package/dist/solana-tx.d.ts +5 -0
  27. package/dist/solana-tx.d.ts.map +1 -0
  28. package/dist/solana-tx.js +31 -0
  29. package/dist/solana-tx.js.map +1 -0
  30. package/dist/tools/call.d.ts.map +1 -1
  31. package/dist/tools/call.js +59 -20
  32. package/dist/tools/call.js.map +1 -1
  33. package/dist/tools/claim-fees.d.ts +31 -0
  34. package/dist/tools/claim-fees.d.ts.map +1 -0
  35. package/dist/tools/claim-fees.js +63 -0
  36. package/dist/tools/claim-fees.js.map +1 -0
  37. package/dist/tools/create-store.d.ts.map +1 -1
  38. package/dist/tools/create-store.js +3 -0
  39. package/dist/tools/create-store.js.map +1 -1
  40. package/dist/tools/launch-token.d.ts +85 -0
  41. package/dist/tools/launch-token.d.ts.map +1 -0
  42. package/dist/tools/launch-token.js +234 -0
  43. package/dist/tools/launch-token.js.map +1 -0
  44. package/dist/tools/list-tokens.d.ts +30 -0
  45. package/dist/tools/list-tokens.d.ts.map +1 -0
  46. package/dist/tools/list-tokens.js +47 -0
  47. package/dist/tools/list-tokens.js.map +1 -0
  48. package/dist/tools/review.d.ts.map +1 -1
  49. package/dist/tools/review.js +5 -3
  50. package/dist/tools/review.js.map +1 -1
  51. package/dist/tools/trade-quote.d.ts +43 -0
  52. package/dist/tools/trade-quote.d.ts.map +1 -0
  53. package/dist/tools/trade-quote.js +58 -0
  54. package/dist/tools/trade-quote.js.map +1 -0
  55. package/dist/tools/trade-token.d.ts +43 -0
  56. package/dist/tools/trade-token.d.ts.map +1 -0
  57. package/dist/tools/trade-token.js +141 -0
  58. package/dist/tools/trade-token.js.map +1 -0
  59. package/dist/wallet/agentic.d.ts +20 -0
  60. package/dist/wallet/agentic.d.ts.map +1 -0
  61. package/dist/wallet/agentic.js +93 -0
  62. package/dist/wallet/agentic.js.map +1 -0
  63. package/dist/wallet/evm.d.ts.map +1 -1
  64. package/dist/wallet/evm.js +13 -6
  65. package/dist/wallet/evm.js.map +1 -1
  66. package/dist/wallet/solana.d.ts.map +1 -1
  67. package/dist/wallet/solana.js +12 -6
  68. package/dist/wallet/solana.js.map +1 -1
  69. package/package.json +4 -1
package/README.md CHANGED
@@ -6,49 +6,73 @@ MCP server for [1ly.store](https://1ly.store) — Enable AI agents to discover,
6
6
 
7
7
  This MCP server gives AI agents the ability to:
8
8
 
9
- - **Buy** — Search, discover, and pay for APIs, resources with automatic crypto payments (x402 protocol)
9
+ - **Buy** — Search, discover, and pay for APIs/resources with automatic crypto payments (x402 protocol)
10
10
  - **Sell** — Create a store, list paid API endpoints or resources, and accept payments
11
+ - **Launch Tokens** — Create and trade tokens on Bags.fm, and claim fee shares
11
12
 
12
13
  **Supported Networks:** Solana (mainnet), Base (mainnet)
13
14
  **Payment Currency:** USDC
14
15
 
15
16
  ## What is this?
16
- This MCP server enables AI agents (Claude, GPT, Cursor, or any AI Agents etc.) to:
17
+ This MCP server enables AI agents (Claude, GPT, Cursor, and more) to:
18
+
19
+ - Create a store on 1ly.store
20
+ - Accept payments for your APIs/resources using 1ly as the payment layer
21
+ - Create paid links that any x402‑compatible agent can call and pay automatically
22
+ - List paid links on the 1ly marketplace for instant agent discovery
23
+ - Search for APIs and services on 1ly.store
24
+ - Get details about pricing, reviews, and usage
25
+ - Call paid APIs with automatic crypto payments (x402 protocol) securely
26
+ - Leave reviews after purchases (optional but recommended)
27
+ — Launch tokens on Bags.fm, trade solana tokens, and claim fees
17
28
 
18
- Create store on 1ly.store
19
- Accept payments for your own APIs/resources using 1ly as the payment layer
20
- Create paid links that any x402‑compatible agent can call and pay automatically
21
- Paid links are listed on the 1ly marketplace by default for instant agent discovery
22
- Search for APIs and services on 1ly.store
23
- Get details about pricing, reviews, and usage
24
- Call paid APIs with automatic crypto payments (x402 protocol) in secure way.
25
- Leave reviews after purchases, optional but recommended to make better experience for 1ly users
26
29
 
27
30
  ---
28
31
 
29
32
  ## Quick Start
30
33
 
34
+ **Wallet path rule:** wallet files must be located in your home directory (recommended) or `/tmp`. Paths outside those locations are rejected for security. `~/` is supported and expands to your home directory.
35
+ **Important:** Claude/Cursor config JSON does **not** expand `~`. Use an absolute path in JSON configs.
36
+
31
37
  ### 1. Install and Run
32
38
 
39
+ #### Option A: Raw Wallet (default)
40
+
33
41
  ```bash
34
42
  # Solana wallet
35
- ONELY_WALLET_SOLANA_KEY="/path/to/solana-wallet.json" npx @1ly/mcp-server
43
+ ONELY_WALLET_SOLANA_KEY="~/.1ly/wallets/solana.json" npx @1ly/mcp-server
36
44
 
37
45
  # OR Base/EVM wallet
38
- ONELY_WALLET_EVM_KEY="/path/to/evm.key" npx @1ly/mcp-server
46
+ ONELY_WALLET_EVM_KEY="~/.1ly/wallets/evm.key" npx @1ly/mcp-server
39
47
 
40
48
  # OR both wallets
41
- ONELY_WALLET_SOLANA_KEY="/path/to/solana-wallet.json" \
42
- ONELY_WALLET_EVM_KEY="/path/to/evm.key" \
49
+ ONELY_WALLET_SOLANA_KEY="~/.1ly/wallets/solana.json" \
50
+ ONELY_WALLET_EVM_KEY="~/.1ly/wallets/evm.key" \
43
51
  npx @1ly/mcp-server
44
52
  ```
45
53
 
46
- ### 2. Verify Setup
54
+ #### Option B: Coinbase Agentic Wallet (Base only)
55
+
56
+ ```bash
57
+ ONELY_WALLET_PROVIDER="coinbase" npx @1ly/mcp-server
58
+ ```
59
+
60
+ > When using Agentic Wallet, you **do not** pass raw private keys.
61
+ > Make sure the Coinbase Agentic Wallet app is running and authenticated.
47
62
 
63
+ If you haven't installed Agentic Wallet yet:
64
+ - Follow Coinbase Agentic Wallet docs: `https://docs.cdp.coinbase.com/agentic-wallet/welcome`
65
+ - Quick install:
48
66
  ```bash
49
- ONELY_WALLET_SOLANA_KEY="/path/to/solana-wallet.json" npx @1ly/mcp-server --self-test
67
+ npx skills add coinbase/agentic-wallet-skills
68
+ npx awal show
50
69
  ```
51
70
 
71
+ ### 2. Verify Setup
72
+
73
+ ```bash
74
+ ONELY_WALLET_SOLANA_KEY="~/.1ly/wallets/solana.json" npx @1ly/mcp-server --self-test
75
+ ```
52
76
  ---
53
77
 
54
78
  ## Configuration
@@ -57,16 +81,19 @@ ONELY_WALLET_SOLANA_KEY="/path/to/solana-wallet.json" npx @1ly/mcp-server --self
57
81
 
58
82
  | Variable | Required | Description |
59
83
  |----------|----------|-------------|
60
- | `ONELY_WALLET_SOLANA_KEY` | Yes* | Path to Solana keypair JSON file, or inline JSON array |
61
- | `ONELY_WALLET_EVM_KEY` | Yes* | Path to EVM private key file, or inline hex key (with or without `0x`) |
84
+ | `ONELY_WALLET_SOLANA_KEY` | No | Path to Solana keypair JSON file, or inline JSON array |
85
+ | `ONELY_WALLET_EVM_KEY` | No | Path to EVM private key file, or inline hex key (with or without `0x`) |
62
86
  | `ONELY_API_KEY` | No | API key for seller tools. Auto-loaded after `1ly_create_store` |
63
87
  | `ONELY_BUDGET_PER_CALL` | No | Max USD per API call (default: `1.00`) |
64
88
  | `ONELY_BUDGET_DAILY` | No | Daily USD spending limit (default: `50.00`) |
65
89
  | `ONELY_BUDGET_STATE_FILE` | No | Path to local budget state file (default: `~/.1ly-mcp-budget.json`) |
66
90
  | `ONELY_NETWORK` | No | Preferred network: `solana` or `base` (default: `solana`) |
91
+ | `ONELY_SOLANA_RPC_URL` | No | Solana RPC URL (default: `https://api.mainnet-beta.solana.com`) |
67
92
  | `ONELY_API_BASE` | No | API base URL (default: `https://1ly.store`) |
93
+ | `ONELY_WALLET_PROVIDER` | No | `raw` (default) or `coinbase` (Agentic Wallet, Base-only) |
68
94
 
69
- *At least one wallet is required for payments.
95
+ *A wallet is required only for **paid** calls. For free search/details you can run without a wallet.*
96
+ Use **one** of: `ONELY_WALLET_SOLANA_KEY`, `ONELY_WALLET_EVM_KEY`, or `ONELY_WALLET_PROVIDER=coinbase`.
70
97
 
71
98
  ### Claude Desktop Configuration
72
99
 
@@ -79,7 +106,7 @@ Add to `claude_desktop_config.json`:
79
106
  "command": "npx",
80
107
  "args": ["@1ly/mcp-server"],
81
108
  "env": {
82
- "ONELY_WALLET_SOLANA_KEY": "/absolute/path/to/solana-wallet.json",
109
+ "ONELY_WALLET_SOLANA_KEY": "~/.1ly/wallets/solana.json",
83
110
  "ONELY_BUDGET_PER_CALL": "1.00",
84
111
  "ONELY_BUDGET_DAILY": "50.00"
85
112
  }
@@ -98,7 +125,7 @@ Add to `claude_desktop_config.json`:
98
125
  "command": "npx",
99
126
  "args": ["@1ly/mcp-server"],
100
127
  "env": {
101
- "ONELY_WALLET_EVM_KEY": "/absolute/path/to/evm.key",
128
+ "ONELY_WALLET_EVM_KEY": "~/.1ly/wallets/evm.key",
102
129
  "ONELY_BUDGET_PER_CALL": "1.00",
103
130
  "ONELY_BUDGET_DAILY": "50.00"
104
131
  }
@@ -108,6 +135,26 @@ Add to `claude_desktop_config.json`:
108
135
  ```
109
136
  </details>
110
137
 
138
+ ### Cursor One-Click Install
139
+
140
+ [![Install MCP Server](https://cursor.com/deeplink/mcp-install-dark.svg)](https://cursor.com/en-US/install-mcp?name=1ly&config=eyJjb21tYW5kIjoibnB4IiwiYXJncyI6WyJAMWx5L21jcC1zZXJ2ZXIiXSwiZW52Ijp7Ik9ORUxZX1dBTExFVF9TT0xBTkFfS0VZIjoiL2Fic29sdXRlL3BhdGgvdG8vc29sYW5hLmpzb24iLCJPTkVMWV9CVURHRVRfUEVSX0NBTEwiOiIxLjAwIiwiT05FTFlfQlVER0VUX0RBSUxZIjoiNTAuMDAifX0%3D)
141
+
142
+ Cursor uses `.cursor/mcp.json`. If you prefer manual setup, use:
143
+ ```json
144
+ {
145
+ "mcpServers": {
146
+ "1ly": {
147
+ "command": "npx",
148
+ "args": ["@1ly/mcp-server"],
149
+ "env": {
150
+ "ONELY_WALLET_SOLANA_KEY": "/absolute/path/to/solana.json",
151
+ "ONELY_BUDGET_PER_CALL": "1.00",
152
+ "ONELY_BUDGET_DAILY": "50.00"
153
+ }
154
+ }
155
+ }
156
+ }
157
+ ```
111
158
  <details>
112
159
  <summary>Both Solana + Base wallets</summary>
113
160
 
@@ -118,8 +165,8 @@ Add to `claude_desktop_config.json`:
118
165
  "command": "npx",
119
166
  "args": ["@1ly/mcp-server"],
120
167
  "env": {
121
- "ONELY_WALLET_SOLANA_KEY": "/absolute/path/to/solana-wallet.json",
122
- "ONELY_WALLET_EVM_KEY": "/absolute/path/to/evm.key",
168
+ "ONELY_WALLET_SOLANA_KEY": "~/.1ly/wallets/solana.json",
169
+ "ONELY_WALLET_EVM_KEY": "~/.1ly/wallets/evm.key",
123
170
  "ONELY_BUDGET_PER_CALL": "1.00",
124
171
  "ONELY_BUDGET_DAILY": "50.00"
125
172
  }
@@ -133,9 +180,9 @@ Add to `claude_desktop_config.json`:
133
180
 
134
181
  ## Tools Reference
135
182
 
136
- ### Buyer Tools (Pay for APIs)
183
+ ### Buyer Tools
137
184
 
138
- These tools require a **wallet** configured.
185
+ Wallet **required only for paid calls** (`1ly_call`). Search/details work without a wallet.
139
186
 
140
187
  #### `1ly_search`
141
188
 
@@ -260,6 +307,11 @@ Call a paid API with automatic crypto payment.
260
307
  > **Note:** The `_1ly` object contains tokens needed for `1ly_review`. Save these if you want to leave a review.
261
308
  > For free APIs, `_1ly` may be `{ "note": "No payment required (free API)" }`.
262
309
 
310
+ **Agentic Wallet (Base only):**
311
+ - Set `ONELY_WALLET_PROVIDER=coinbase`.
312
+ - Ensure Coinbase Agentic Wallet is installed, running, and authenticated.
313
+ - Local private keys are not required.
314
+
263
315
  ---
264
316
 
265
317
  #### `1ly_review`
@@ -304,6 +356,8 @@ These tools require an **API key**. Run `1ly_create_store` first to get one.
304
356
 
305
357
  Create a new store and get an API key. **Run this once.** The API key is automatically saved locally.
306
358
 
359
+ > **Note:** Creating a store requires a raw wallet key (Solana or EVM). Agentic Wallet does not support store creation yet.
360
+
307
361
  | Parameter | Type | Required | Description |
308
362
  |-----------|------|----------|-------------|
309
363
  | `username` | string | No | Store username (3-20 chars, auto-generated if omitted) |
@@ -731,6 +785,81 @@ List recent withdrawals.
731
785
 
732
786
  ---
733
787
 
788
+ ### Token Tools (Bags.fm)
789
+
790
+ These tools require a **Solana wallet** (`ONELY_WALLET_SOLANA_KEY`)
791
+
792
+ #### `1ly_launch_token`
793
+
794
+ Launch a token on Bags.fm (v2 flow).
795
+
796
+ Key fields:
797
+ - `name`, `symbol` (required)
798
+ - `description` (optional; defaults to `Token launched via 1ly.store`)
799
+ - `imageUrl` or `imageBase64` (required; at least one)
800
+ - `twitter`, `website`, `telegram` (optional URLs)
801
+ - `initialBuySol` (optional; defaults to `0`)
802
+ - `feeClaimers` (optional array of `{ provider, username, bps }`)
803
+ - `share_fee` (optional, bps). Adds a 1ly marketplace fee claimer on the backend. If set, the creator share is auto‑reduced.
804
+
805
+ Validation (Bags.fm compatible):
806
+ - `name` max 32 chars
807
+ - `symbol` max 10 chars
808
+ - `description` max 1000 chars
809
+ - `imageBase64` must be raw base64 (no data URL prefix) and <= 15MB decoded
810
+
811
+ `feeClaimers` provider list is strict: `twitter`, `github`, `kick`, `tiktok`. Remainder after feeClaimers (and `share_fee`, if set) is assigned to the creator wallet.
812
+
813
+ `bps` = basis points: **10000 = 100%**, **1000 = 10%**, **100 = 1%**.
814
+ Example: 90% to a GitHub claimer + 1% `share_fee`:
815
+ ```json
816
+ {
817
+ "feeClaimers": [{ "provider": "github", "username": "abc", "bps": 9000 }],
818
+ "share_fee": 100
819
+ }
820
+ ```
821
+
822
+ #### `1ly_list_tokens`
823
+
824
+ List tokens launched by a wallet (public listing by wallet address, default limit 10).
825
+ If `creatorWallet` is omitted, the tool uses the configured Solana wallet.
826
+
827
+ Parameters:
828
+ - `creatorWallet` (optional) — wallet address to list tokens for
829
+ - `limit` (optional) — max results (default 10, max 200)
830
+
831
+ #### `1ly_claim_fees`
832
+
833
+ Claim Bags fee share for a token. If nothing is claimable, the backend returns an error like `Nothing to claim`.
834
+
835
+ Parameters:
836
+ - `tokenMint` (**required**) — token mint address
837
+ - `wallet` (optional) — wallet address to claim for (defaults to configured wallet)
838
+
839
+ #### `1ly_trade_token`
840
+
841
+ Trade tokens on Bags using Bags quote + swap flow.
842
+
843
+ Parameters:
844
+ - `inputMint` (**required**) — input token mint (e.g., SOL = `So11111111111111111111111111111111111111112`)
845
+ - `outputMint` (**required**) — output token mint
846
+ - `amount` (**required**) — amount in smallest units (positive integer string)
847
+ - `slippageMode` (optional) — `auto` or `manual` (default `auto`)
848
+ - `slippageBps` (optional) — required if `slippageMode=manual`, range 0-10000
849
+
850
+ #### `1ly_trade_quote`
851
+
852
+ Get a Bags trade quote without executing a swap.
853
+
854
+ Parameters:
855
+ - `inputMint` (**required**) — input token mint
856
+ - `outputMint` (**required**) — output token mint
857
+ - `amount` (**required**) — amount in smallest units (positive integer string)
858
+ - `slippageMode` (optional) — `auto` or `manual` (default `auto`)
859
+ - `slippageBps` (optional) — required if `slippageMode=manual`, range 0-10000
860
+
861
+ ---
862
+
734
863
  ## Common Workflows
735
864
 
736
865
  ### Workflow 1: Pay for an API
@@ -773,6 +902,14 @@ List recent withdrawals.
773
902
  2. 1ly_list_withdrawals({ "limit": 10 })
774
903
  ```
775
904
 
905
+ ### Workflow 6: Launch + Trade + Claim (Bags)
906
+
907
+ ```
908
+ 1. 1ly_launch_token({ "name": "BLANK", "symbol": "BLANK", "share_fee": 100, "feeClaimers": [{ "provider": "twitter", "username": "x_username", "bps": 9000 }] })
909
+ 2. 1ly_trade_token({ "inputMint": "So11111111111111111111111111111111111111112", "outputMint": "<TOKEN_MINT>", "amount": "20000000" })
910
+ 3. 1ly_claim_fees({ "tokenMint": "<TOKEN_MINT>" })
911
+ ```
912
+
776
913
  ---
777
914
 
778
915
  ## Wallet Setup
@@ -781,16 +918,18 @@ List recent withdrawals.
781
918
 
782
919
  Create a new keypair:
783
920
  ```bash
784
- solana-keygen new -o ./wallets/solana.json
921
+ mkdir -p ~/.1ly/wallets
922
+ solana-keygen new -o ~/.1ly/wallets/solana.json
785
923
  ```
786
924
 
787
925
  Fund with USDC on Solana mainnet.
788
926
 
789
927
  ### EVM (Base)
790
928
 
791
- Export your private key from MetaMask/Rabby and save to a file:
929
+ Export your private key or Create a new keypair:
792
930
  ```bash
793
- echo "0xYOUR_PRIVATE_KEY" > ./wallets/evm.key
931
+ mkdir -p ~/.1ly/wallets
932
+ echo "0xYOUR_PRIVATE_KEY" > ~/.1ly/wallets/evm.key
794
933
  ```
795
934
 
796
935
  Fund with USDC on Base mainnet.
@@ -813,19 +952,26 @@ All responses follow this structure:
813
952
  ```json
814
953
  {
815
954
  "ok": false,
816
- "error": { "message": "Error description" }
955
+ "error": {
956
+ "message": "Error description",
957
+ "code": "MACHINE_READABLE_CODE",
958
+ "action": "recommended_next_step"
959
+ }
817
960
  }
818
961
  ```
819
962
 
820
963
  ### Common Errors
821
964
 
822
- | Error | Cause | Solution |
823
- |-------|-------|----------|
824
- | `Missing wallet config` | No wallet env var set | Set `ONELY_WALLET_SOLANA_KEY` or `ONELY_WALLET_EVM_KEY` |
825
- | `Missing ONELY_API_KEY` | Seller tool called without API key | Run `1ly_create_store` first |
826
- | `Price exceeds per-call budget` | API costs more than limit | Increase `ONELY_BUDGET_PER_CALL` |
827
- | `Daily budget exceeded` | Spent more than daily limit | Wait until tomorrow or increase `ONELY_BUDGET_DAILY` |
828
- | `Insufficient funds` | Wallet balance too low | Add USDC to your wallet |
965
+ | Error | Code | Cause | Solution |
966
+ |-------|------|-------|----------|
967
+ | `Missing wallet config` | `MISSING_WALLET_CONFIG` | No wallet env var set | Set `ONELY_WALLET_SOLANA_KEY`, `ONELY_WALLET_EVM_KEY`, or `ONELY_WALLET_PROVIDER=coinbase` |
968
+ | `Agentic Wallet not running` | `AGENTIC_WALLET_NOT_RUNNING` | Wallet app not running or not authenticated | Open the Agentic Wallet app and sign in (`npx awal show`) |
969
+ | `Agentic Wallet Base-only` | `AGENTIC_WALLET_BASE_ONLY` | API requires Solana payment | Use raw Solana wallet or a Base-compatible endpoint |
970
+ | `Agentic Wallet store creation` | `AGENTIC_WALLET_STORE_CREATION` | `1ly_create_store` requires raw wallet signature | Use raw Solana/EVM wallet keys for store creation |
971
+ | `Missing ONELY_API_KEY` | `MISSING_API_KEY` | Seller tool called without API key | Run `1ly_create_store` first |
972
+ | `Price exceeds per-call budget` | `PRICE_EXCEEDS_PER_CALL_BUDGET` | API costs more than limit | Increase `ONELY_BUDGET_PER_CALL` |
973
+ | `Daily budget exceeded` | `DAILY_BUDGET_EXCEEDED` | Spent more than daily limit | Wait until tomorrow or increase `ONELY_BUDGET_DAILY` |
974
+ | `Insufficient funds` | `INSUFFICIENT_FUNDS` | Wallet balance too low | Add USDC to your wallet |
829
975
 
830
976
  ---
831
977
 
@@ -1 +1 @@
1
- {"version":3,"file":"budget.d.ts","sourceRoot":"","sources":["../src/budget.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAuD1C;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAuC/E"}
1
+ {"version":3,"file":"budget.d.ts","sourceRoot":"","sources":["../src/budget.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AA0D1C;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAuC/E"}
package/dist/budget.js CHANGED
@@ -11,6 +11,9 @@ const security_log_js_1 = require("./security-log.js");
11
11
  function getBudgetStatePath() {
12
12
  const envPath = process.env.ONELY_BUDGET_STATE_FILE;
13
13
  if (envPath && envPath.trim().length > 0) {
14
+ if (envPath.startsWith("~/")) {
15
+ return path_1.default.join(os_1.default.homedir(), envPath.slice(2));
16
+ }
14
17
  return envPath;
15
18
  }
16
19
  return path_1.default.join(os_1.default.homedir(), ".1ly-mcp-budget.json");
@@ -1 +1 @@
1
- {"version":3,"file":"budget.js","sourceRoot":"","sources":["../src/budget.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"budget.js","sourceRoot":"","sources":["../src/budget.ts"],"names":[],"mappings":"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"}
package/dist/config.d.ts CHANGED
@@ -24,6 +24,8 @@ export declare const ConfigSchema: z.ZodObject<{
24
24
  daily?: number | undefined;
25
25
  }>;
26
26
  network: z.ZodDefault<z.ZodEnum<["solana", "base"]>>;
27
+ walletProvider: z.ZodDefault<z.ZodEnum<["raw", "coinbase"]>>;
28
+ solanaRpcUrl: z.ZodDefault<z.ZodString>;
27
29
  apiKey: z.ZodNullable<z.ZodOptional<z.ZodString>>;
28
30
  }, "strip", z.ZodTypeAny, {
29
31
  apiBase: string;
@@ -32,6 +34,8 @@ export declare const ConfigSchema: z.ZodObject<{
32
34
  daily: number;
33
35
  };
34
36
  network: "solana" | "base";
37
+ walletProvider: "raw" | "coinbase";
38
+ solanaRpcUrl: string;
35
39
  wallet?: {
36
40
  type: "solana" | "evm";
37
41
  key: string;
@@ -52,6 +56,8 @@ export declare const ConfigSchema: z.ZodObject<{
52
56
  walletSolana?: string | null | undefined;
53
57
  walletEvm?: string | null | undefined;
54
58
  network?: "solana" | "base" | undefined;
59
+ walletProvider?: "raw" | "coinbase" | undefined;
60
+ solanaRpcUrl?: string | undefined;
55
61
  apiKey?: string | null | undefined;
56
62
  }>;
57
63
  export type Config = z.infer<typeof ConfigSchema>;
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA8CvB,CAAC;AAEH,MAAM,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC;AAElD,wBAAgB,UAAU,IAAI,MAAM,CAkEnC;AAED,wBAAsB,uBAAuB,IAAI,OAAO,CAAC,MAAM,CAAC,CAK/D"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAgDvB,CAAC;AAEH,MAAM,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC;AAElD,wBAAgB,UAAU,IAAI,MAAM,CAwEnC;AAED,wBAAsB,uBAAuB,IAAI,OAAO,CAAC,MAAM,CAAC,CAK/D"}
package/dist/config.js CHANGED
@@ -45,6 +45,8 @@ exports.ConfigSchema = zod_1.z.object({
45
45
  daily: zod_1.z.number().positive().finite().default(50.0),
46
46
  }),
47
47
  network: zod_1.z.enum(["solana", "base"]).default("solana"),
48
+ walletProvider: zod_1.z.enum(["raw", "coinbase"]).default("raw"),
49
+ solanaRpcUrl: zod_1.z.string().url().default("https://api.mainnet-beta.solana.com"),
48
50
  apiKey: zod_1.z.string().optional().nullable(),
49
51
  });
50
52
  function loadConfig() {
@@ -54,6 +56,8 @@ function loadConfig() {
54
56
  const walletEvm = process.env.ONELY_WALLET_EVM_KEY || null;
55
57
  const apiKeyEnv = process.env.ONELY_API_KEY || null;
56
58
  const apiBase = process.env.ONELY_API_BASE || "https://1ly.store";
59
+ const walletProvider = process.env.ONELY_WALLET_PROVIDER === "coinbase" ? "coinbase" : "raw";
60
+ const solanaRpcUrl = process.env.ONELY_SOLANA_RPC_URL || "https://api.mainnet-beta.solana.com";
57
61
  // Parse and validate budget values to prevent NaN/negative bypasses
58
62
  const perCallRaw = process.env.ONELY_BUDGET_PER_CALL || "1.0";
59
63
  const dailyRaw = process.env.ONELY_BUDGET_DAILY || "50.0";
@@ -88,6 +92,8 @@ function loadConfig() {
88
92
  daily,
89
93
  },
90
94
  network: process.env.ONELY_NETWORK || "solana",
95
+ walletProvider,
96
+ solanaRpcUrl,
91
97
  apiKey: apiKeyEnv,
92
98
  });
93
99
  }
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":";;;AAwDA,gCAwEC;AAED,0DAKC;AAvID,6BAAwB;AACxB,uCAA6C;AAC7C,uDAAqD;AAExC,QAAA,YAAY,GAAG,OAAC,CAAC,MAAM,CAAC;IACnC,OAAO,EAAE,OAAC;SACP,MAAM,EAAE;SACR,GAAG,EAAE;SACL,MAAM,CACL,CAAC,GAAG,EAAE,EAAE;QACN,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;YAE5B,kCAAkC;YAClC,IAAI,MAAM,CAAC,QAAQ,KAAK,WAAW,IAAI,MAAM,CAAC,QAAQ,KAAK,eAAe,EAAE,CAAC;gBAC3E,OAAO,MAAM,CAAC,QAAQ,KAAK,QAAQ,CAAC;YACtC,CAAC;YAED,mDAAmD;YACnD,IAAI,MAAM,CAAC,QAAQ,KAAK,WAAW,IAAI,MAAM,CAAC,QAAQ,KAAK,WAAW,EAAE,CAAC;gBACvE,OAAO,IAAI,CAAC;YACd,CAAC;YAED,wBAAwB;YACxB,OAAO,KAAK,CAAC;QACf,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC,EACD;QACE,OAAO,EACL,mFAAmF;KACtF,CACF;SACA,OAAO,CAAC,mBAAmB,CAAC;IAC/B,MAAM,EAAE,OAAC;SACN,MAAM,CAAC;QACN,IAAI,EAAE,OAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QAC/B,GAAG,EAAE,OAAC,CAAC,MAAM,EAAE;KAChB,CAAC;SACD,QAAQ,EAAE;SACV,QAAQ,EAAE;IACb,YAAY,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IAC9C,SAAS,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IAC3C,OAAO,EAAE,OAAC,CAAC,MAAM,CAAC;QAChB,OAAO,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC;QACpD,KAAK,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;KACpD,CAAC;IACF,OAAO,EAAE,OAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC;IACrD,cAAc,EAAE,OAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC;IAC1D,YAAY,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,qCAAqC,CAAC;IAC7E,MAAM,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;CACzC,CAAC,CAAC;AAIH,SAAgB,UAAU;IACxB,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC;IACjD,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC;IAC/C,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,uBAAuB,IAAI,IAAI,CAAC;IACjE,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,oBAAoB,IAAI,IAAI,CAAC;IAC3D,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,IAAI,CAAC;IACpD,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,mBAAmB,CAAC;IAClE,MAAM,cAAc,GAClB,OAAO,CAAC,GAAG,CAAC,qBAAqB,KAAK,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC;IACxE,MAAM,YAAY,GAChB,OAAO,CAAC,GAAG,CAAC,oBAAoB,IAAI,qCAAqC,CAAC;IAE5E,oEAAoE;IACpE,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,qBAAqB,IAAI,KAAK,CAAC;IAC9D,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,kBAAkB,IAAI,MAAM,CAAC;IAE1D,MAAM,OAAO,GAAG,UAAU,CAAC,UAAU,CAAC,CAAC;IACvC,MAAM,KAAK,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC;IAEnC,oDAAoD;IACpD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,OAAO,IAAI,CAAC,EAAE,CAAC;QAC9C,IAAA,kCAAgB,EAAC,uBAAuB,EAAE;YACxC,SAAS,EAAE,uBAAuB;YAClC,KAAK,EAAE,UAAU;YACjB,MAAM,EAAE,OAAO;SAChB,CAAC,CAAC;QACH,MAAM,IAAI,KAAK,CACb,mCAAmC,UAAU,+BAA+B,CAC7E,CAAC;IACJ,CAAC;IACD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;QAC1C,IAAA,kCAAgB,EAAC,uBAAuB,EAAE;YACxC,SAAS,EAAE,oBAAoB;YAC/B,KAAK,EAAE,QAAQ;YACf,MAAM,EAAE,KAAK;SACd,CAAC,CAAC;QACH,MAAM,IAAI,KAAK,CACb,gCAAgC,QAAQ,+BAA+B,CACxE,CAAC;IACJ,CAAC;IAED,IAAI,YAAoB,CAAC;IACzB,IAAI,CAAC;QACH,YAAY,GAAG,oBAAY,CAAC,KAAK,CAAC;YAChC,OAAO;YACP,MAAM,EAAE,UAAU,IAAI,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,IAAI;YAC7E,YAAY,EAAE,YAAY,IAAI,CAAC,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC;YAC1E,SAAS,EAAE,SAAS,IAAI,CAAC,UAAU,KAAK,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC;YACjE,OAAO,EAAE;gBACP,OAAO;gBACP,KAAK;aACN;YACD,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,QAAQ;YAC9C,cAAc;YACd,YAAY;YACZ,MAAM,EAAE,SAAS;SAClB,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,0BAA0B;QAC1B,IAAI,GAAG,YAAY,OAAC,CAAC,QAAQ,EAAE,CAAC;YAC9B,MAAM,YAAY,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC;YACrE,IAAI,YAAY,EAAE,CAAC;gBACjB,IAAA,kCAAgB,EAAC,oBAAoB,EAAE;oBACrC,SAAS,EAAE,OAAO;oBAClB,KAAK,EAAE,YAAY,CAAC,OAAO;iBAC5B,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QACD,MAAM,GAAG,CAAC;IACZ,CAAC;IAED,OAAO,YAAY,CAAC;AACtB,CAAC;AAEM,KAAK,UAAU,uBAAuB;IAC3C,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;IAC5B,IAAI,MAAM,CAAC,MAAM;QAAE,OAAO,MAAM,CAAC;IACjC,MAAM,MAAM,GAAG,MAAM,IAAA,0BAAgB,GAAE,CAAC;IACxC,OAAO,EAAE,GAAG,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;AACvC,CAAC"}
@@ -0,0 +1,8 @@
1
+ export type McpErrorCode = "MISSING_API_KEY" | "MISSING_WALLET_CONFIG" | "WALLET_FILE_NOT_FOUND" | "INVALID_WALLET_FORMAT" | "INVALID_WALLET_PATH" | "AGENTIC_WALLET_NOT_RUNNING" | "AGENTIC_WALLET_BASE_ONLY" | "AGENTIC_WALLET_STORE_CREATION" | "AGENTIC_WALLET_TIMEOUT" | "AGENTIC_WALLET_RESPONSE_INVALID" | "RATE_LIMIT_EXCEEDED" | "PRICE_EXCEEDS_PER_CALL_BUDGET" | "DAILY_BUDGET_EXCEEDED" | "INSUFFICIENT_FUNDS" | "MISSING_SLIPPAGE_BPS" | "INVALID_SLIPPAGE_BPS" | "INVALID_IMAGE_BASE64" | "IMAGE_TOO_LARGE" | "IMAGE_TOO_SMALL" | "PAYMENT_FAILED" | "PAYMENT_REQUIREMENTS_MISSING" | "INVALID_PAYMENT_AMOUNT" | "INVALID_INPUT" | "TX_UNCERTAIN" | "UNKNOWN_ERROR";
2
+ export type McpErrorAction = "run_create_store_or_set_onely_api_key" | "set_wallet_env" | "check_wallet_path" | "use_valid_wallet_format" | "use_home_or_tmp_path" | "start_agentic_wallet" | "use_evm_or_raw_solana" | "use_raw_wallet_keys" | "restart_agentic_wallet" | "reduce_request_rate" | "increase_per_call_budget" | "increase_daily_budget_or_wait" | "fund_wallet" | "set_slippage_bps" | "set_slippage_bps_0_10000" | "provide_valid_base64" | "reduce_image_size" | "use_valid_image" | "verify_funds_and_retry" | "retry_or_contact_support" | "fix_request" | "verify_on_chain_before_retry";
3
+ export type ErrorMapping = {
4
+ code: McpErrorCode;
5
+ action?: McpErrorAction;
6
+ };
7
+ export declare function mapErrorToCode(message: string): ErrorMapping;
8
+ //# sourceMappingURL=error-codes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error-codes.d.ts","sourceRoot":"","sources":["../src/error-codes.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,YAAY,GACpB,iBAAiB,GACjB,uBAAuB,GACvB,uBAAuB,GACvB,uBAAuB,GACvB,qBAAqB,GACrB,4BAA4B,GAC5B,0BAA0B,GAC1B,+BAA+B,GAC/B,wBAAwB,GACxB,iCAAiC,GACjC,qBAAqB,GACrB,+BAA+B,GAC/B,uBAAuB,GACvB,oBAAoB,GACpB,sBAAsB,GACtB,sBAAsB,GACtB,sBAAsB,GACtB,iBAAiB,GACjB,iBAAiB,GACjB,gBAAgB,GAChB,8BAA8B,GAC9B,wBAAwB,GACxB,eAAe,GACf,cAAc,GACd,eAAe,CAAC;AAEpB,MAAM,MAAM,cAAc,GACtB,uCAAuC,GACvC,gBAAgB,GAChB,mBAAmB,GACnB,yBAAyB,GACzB,sBAAsB,GACtB,sBAAsB,GACtB,uBAAuB,GACvB,qBAAqB,GACrB,wBAAwB,GACxB,qBAAqB,GACrB,0BAA0B,GAC1B,+BAA+B,GAC/B,aAAa,GACb,kBAAkB,GAClB,0BAA0B,GAC1B,sBAAsB,GACtB,mBAAmB,GACnB,iBAAiB,GACjB,wBAAwB,GACxB,0BAA0B,GAC1B,aAAa,GACb,8BAA8B,CAAC;AAEnC,MAAM,MAAM,YAAY,GAAG;IACzB,IAAI,EAAE,YAAY,CAAC;IACnB,MAAM,CAAC,EAAE,cAAc,CAAC;CACzB,CAAC;AAEF,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,YAAY,CAsF5D"}
@@ -0,0 +1,87 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.mapErrorToCode = mapErrorToCode;
4
+ function mapErrorToCode(message) {
5
+ const msg = message.toLowerCase();
6
+ if (msg.includes("missing onely_api_key")) {
7
+ return { code: "MISSING_API_KEY", action: "run_create_store_or_set_onely_api_key" };
8
+ }
9
+ if (msg.includes("missing wallet config")) {
10
+ return { code: "MISSING_WALLET_CONFIG", action: "set_wallet_env" };
11
+ }
12
+ if (msg.includes("solana wallet not configured") || msg.includes("evm wallet not configured")) {
13
+ return { code: "MISSING_WALLET_CONFIG", action: "set_wallet_env" };
14
+ }
15
+ if (msg.includes("wallet key file not found") || msg.includes("evm wallet key file not found")) {
16
+ return { code: "WALLET_FILE_NOT_FOUND", action: "check_wallet_path" };
17
+ }
18
+ if (msg.includes("invalid wallet file format")) {
19
+ return { code: "INVALID_WALLET_FORMAT", action: "use_valid_wallet_format" };
20
+ }
21
+ if (msg.includes("wallet file must be in home directory") || msg.includes("invalid wallet file path")) {
22
+ return { code: "INVALID_WALLET_PATH", action: "use_home_or_tmp_path" };
23
+ }
24
+ if (msg.includes("agentic wallet") && msg.includes("not running")) {
25
+ return { code: "AGENTIC_WALLET_NOT_RUNNING", action: "start_agentic_wallet" };
26
+ }
27
+ if (msg.includes("agentic wallet ipc timeout")) {
28
+ return { code: "AGENTIC_WALLET_TIMEOUT", action: "restart_agentic_wallet" };
29
+ }
30
+ if (msg.includes("agentic wallet ipc returned empty result")) {
31
+ return { code: "AGENTIC_WALLET_RESPONSE_INVALID", action: "restart_agentic_wallet" };
32
+ }
33
+ if (msg.includes("agentic wallet returned an invalid address")) {
34
+ return { code: "AGENTIC_WALLET_RESPONSE_INVALID", action: "restart_agentic_wallet" };
35
+ }
36
+ if (msg.includes("agentic wallet only supports base")) {
37
+ return { code: "AGENTIC_WALLET_BASE_ONLY", action: "use_evm_or_raw_solana" };
38
+ }
39
+ if (msg.includes("agentic wallet does not support store creation")) {
40
+ return { code: "AGENTIC_WALLET_STORE_CREATION", action: "use_raw_wallet_keys" };
41
+ }
42
+ if (msg.includes("rate limit exceeded")) {
43
+ return { code: "RATE_LIMIT_EXCEEDED", action: "reduce_request_rate" };
44
+ }
45
+ if (msg.includes("exceeds per-call budget")) {
46
+ return { code: "PRICE_EXCEEDS_PER_CALL_BUDGET", action: "increase_per_call_budget" };
47
+ }
48
+ if (msg.includes("daily budget") && msg.includes("exceed")) {
49
+ return { code: "DAILY_BUDGET_EXCEEDED", action: "increase_daily_budget_or_wait" };
50
+ }
51
+ if (msg.includes("insufficient funds")) {
52
+ return { code: "INSUFFICIENT_FUNDS", action: "fund_wallet" };
53
+ }
54
+ if (msg.includes("missing slippagebps")) {
55
+ return { code: "MISSING_SLIPPAGE_BPS", action: "set_slippage_bps" };
56
+ }
57
+ if (msg.includes("slippage") && msg.includes("range")) {
58
+ return { code: "INVALID_SLIPPAGE_BPS", action: "set_slippage_bps_0_10000" };
59
+ }
60
+ if (msg.includes("invalid imagebase64")) {
61
+ return { code: "INVALID_IMAGE_BASE64", action: "provide_valid_base64" };
62
+ }
63
+ if (msg.includes("imagebase64 exceeds")) {
64
+ return { code: "IMAGE_TOO_LARGE", action: "reduce_image_size" };
65
+ }
66
+ if (msg.includes("image too small")) {
67
+ return { code: "IMAGE_TOO_SMALL", action: "use_valid_image" };
68
+ }
69
+ if (msg.includes("payment failed")) {
70
+ return { code: "PAYMENT_FAILED", action: "verify_funds_and_retry" };
71
+ }
72
+ if (msg.includes("402 response missing payment requirements")) {
73
+ return { code: "PAYMENT_REQUIREMENTS_MISSING", action: "retry_or_contact_support" };
74
+ }
75
+ if (msg.includes("invalid or missing payment amount")) {
76
+ return { code: "INVALID_PAYMENT_AMOUNT", action: "retry_or_contact_support" };
77
+ }
78
+ if (msg.includes("expected") ||
79
+ msg.includes("required") ||
80
+ msg.includes("unrecognized") ||
81
+ msg.includes("invalid_type") ||
82
+ msg.includes("invalid input")) {
83
+ return { code: "INVALID_INPUT", action: "fix_request" };
84
+ }
85
+ return { code: "UNKNOWN_ERROR" };
86
+ }
87
+ //# sourceMappingURL=error-codes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error-codes.js","sourceRoot":"","sources":["../src/error-codes.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -22,8 +22,14 @@ const list_withdrawals_js_1 = require("./tools/list-withdrawals.js");
22
22
  const update_profile_js_1 = require("./tools/update-profile.js");
23
23
  const update_socials_js_1 = require("./tools/update-socials.js");
24
24
  const update_avatar_js_1 = require("./tools/update-avatar.js");
25
+ const launch_token_js_1 = require("./tools/launch-token.js");
26
+ const claim_fees_js_1 = require("./tools/claim-fees.js");
27
+ const trade_token_js_1 = require("./tools/trade-token.js");
28
+ const trade_quote_js_1 = require("./tools/trade-quote.js");
29
+ const list_tokens_js_1 = require("./tools/list-tokens.js");
25
30
  const config_js_1 = require("./config.js");
26
31
  const selftest_js_1 = require("./selftest.js");
32
+ const error_codes_js_1 = require("./error-codes.js");
27
33
  const mcp_js_1 = require("./mcp.js");
28
34
  const argv = process.argv.slice(2);
29
35
  const isSelfTest = argv.includes("--self-test");
@@ -34,7 +40,7 @@ async function main() {
34
40
  }
35
41
  const server = new index_js_1.Server({
36
42
  name: "1ly",
37
- version: "0.1.4",
43
+ version: "0.1.5",
38
44
  }, {
39
45
  capabilities: {
40
46
  tools: {},
@@ -60,6 +66,11 @@ async function main() {
60
66
  update_profile_js_1.updateProfileTool,
61
67
  update_socials_js_1.updateSocialsTool,
62
68
  update_avatar_js_1.updateAvatarTool,
69
+ launch_token_js_1.launchTokenTool,
70
+ list_tokens_js_1.listTokensTool,
71
+ claim_fees_js_1.claimFeesTool,
72
+ trade_token_js_1.tradeTokenTool,
73
+ trade_quote_js_1.tradeQuoteTool,
63
74
  ],
64
75
  }));
65
76
  server.setRequestHandler(types_js_1.CallToolRequestSchema, async (request) => {
@@ -103,6 +114,16 @@ async function main() {
103
114
  return await (0, update_socials_js_1.handleUpdateSocials)(args, config);
104
115
  case "1ly_update_avatar":
105
116
  return await (0, update_avatar_js_1.handleUpdateAvatar)(args, config);
117
+ case "1ly_launch_token":
118
+ return await (0, launch_token_js_1.handleLaunchToken)(args, config);
119
+ case "1ly_claim_fees":
120
+ return await (0, claim_fees_js_1.handleClaimFees)(args, config);
121
+ case "1ly_trade_token":
122
+ return await (0, trade_token_js_1.handleTradeToken)(args, config);
123
+ case "1ly_trade_quote":
124
+ return await (0, trade_quote_js_1.handleTradeQuote)(args, config);
125
+ case "1ly_list_tokens":
126
+ return await (0, list_tokens_js_1.handleListTokens)(args, config);
106
127
  default:
107
128
  return {
108
129
  content: [{ type: "text", text: `Unknown tool: ${name}` }],
@@ -111,8 +132,17 @@ async function main() {
111
132
  }
112
133
  }
113
134
  catch (error) {
135
+ if (error instanceof mcp_js_1.McpToolError) {
136
+ const mapping = error.code ? { code: error.code, action: error.action } : (0, error_codes_js_1.mapErrorToCode)(error.message);
137
+ return (0, mcp_js_1.mcpError)(error.message, {
138
+ code: mapping.code,
139
+ action: mapping.action,
140
+ meta: error.meta,
141
+ });
142
+ }
114
143
  const message = error instanceof Error ? error.message : "Unknown error";
115
- return (0, mcp_js_1.mcpError)(message);
144
+ const mapping = (0, error_codes_js_1.mapErrorToCode)(message);
145
+ return (0, mcp_js_1.mcpError)(message, { code: mapping.code, action: mapping.action });
116
146
  }
117
147
  });
118
148
  const transport = new stdio_js_1.StdioServerTransport();