@1ly/mcp-server 0.1.5 → 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.
- package/README.md +125 -11
- package/dist/config.d.ts +3 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +3 -0
- package/dist/config.js.map +1 -1
- package/dist/error-codes.d.ts +8 -0
- package/dist/error-codes.d.ts.map +1 -0
- package/dist/error-codes.js +87 -0
- package/dist/error-codes.js.map +1 -0
- package/dist/index.js +31 -1
- package/dist/index.js.map +1 -1
- package/dist/mcp-server.d.ts +36 -0
- package/dist/mcp-server.d.ts.map +1 -0
- package/dist/mcp-server.js +132 -0
- package/dist/mcp-server.js.map +1 -0
- package/dist/mcp.d.ts +16 -1
- package/dist/mcp.d.ts.map +1 -1
- package/dist/mcp.js +38 -2
- package/dist/mcp.js.map +1 -1
- package/dist/security-log.d.ts +1 -1
- package/dist/security-log.d.ts.map +1 -1
- package/dist/security-log.js.map +1 -1
- package/dist/solana-tx.d.ts +5 -0
- package/dist/solana-tx.d.ts.map +1 -0
- package/dist/solana-tx.js +31 -0
- package/dist/solana-tx.js.map +1 -0
- package/dist/tools/claim-fees.d.ts +31 -0
- package/dist/tools/claim-fees.d.ts.map +1 -0
- package/dist/tools/claim-fees.js +63 -0
- package/dist/tools/claim-fees.js.map +1 -0
- package/dist/tools/create-store.d.ts.map +1 -1
- package/dist/tools/create-store.js +3 -0
- package/dist/tools/create-store.js.map +1 -1
- package/dist/tools/launch-token.d.ts +85 -0
- package/dist/tools/launch-token.d.ts.map +1 -0
- package/dist/tools/launch-token.js +234 -0
- package/dist/tools/launch-token.js.map +1 -0
- package/dist/tools/list-tokens.d.ts +30 -0
- package/dist/tools/list-tokens.d.ts.map +1 -0
- package/dist/tools/list-tokens.js +47 -0
- package/dist/tools/list-tokens.js.map +1 -0
- package/dist/tools/review.d.ts.map +1 -1
- package/dist/tools/review.js +5 -3
- package/dist/tools/review.js.map +1 -1
- package/dist/tools/trade-quote.d.ts +43 -0
- package/dist/tools/trade-quote.d.ts.map +1 -0
- package/dist/tools/trade-quote.js +58 -0
- package/dist/tools/trade-quote.js.map +1 -0
- package/dist/tools/trade-token.d.ts +43 -0
- package/dist/tools/trade-token.d.ts.map +1 -0
- package/dist/tools/trade-token.js +141 -0
- package/dist/tools/trade-token.js.map +1 -0
- package/dist/wallet/agentic.d.ts +1 -0
- package/dist/wallet/agentic.d.ts.map +1 -1
- package/dist/wallet/agentic.js +19 -3
- package/dist/wallet/agentic.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -8,6 +8,7 @@ This MCP server gives AI agents the ability to:
|
|
|
8
8
|
|
|
9
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
|
|
@@ -23,12 +24,15 @@ This MCP server enables AI agents (Claude, GPT, Cursor, and more) to:
|
|
|
23
24
|
- Get details about pricing, reviews, and usage
|
|
24
25
|
- Call paid APIs with automatic crypto payments (x402 protocol) securely
|
|
25
26
|
- Leave reviews after purchases (optional but recommended)
|
|
27
|
+
— Launch tokens on Bags.fm, trade solana tokens, and claim fees
|
|
28
|
+
|
|
26
29
|
|
|
27
30
|
---
|
|
28
31
|
|
|
29
32
|
## Quick Start
|
|
30
33
|
|
|
31
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.
|
|
32
36
|
|
|
33
37
|
### 1. Install and Run
|
|
34
38
|
|
|
@@ -69,7 +73,6 @@ npx awal show
|
|
|
69
73
|
```bash
|
|
70
74
|
ONELY_WALLET_SOLANA_KEY="~/.1ly/wallets/solana.json" npx @1ly/mcp-server --self-test
|
|
71
75
|
```
|
|
72
|
-
|
|
73
76
|
---
|
|
74
77
|
|
|
75
78
|
## Configuration
|
|
@@ -85,6 +88,7 @@ ONELY_WALLET_SOLANA_KEY="~/.1ly/wallets/solana.json" npx @1ly/mcp-server --self-
|
|
|
85
88
|
| `ONELY_BUDGET_DAILY` | No | Daily USD spending limit (default: `50.00`) |
|
|
86
89
|
| `ONELY_BUDGET_STATE_FILE` | No | Path to local budget state file (default: `~/.1ly-mcp-budget.json`) |
|
|
87
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`) |
|
|
88
92
|
| `ONELY_API_BASE` | No | API base URL (default: `https://1ly.store`) |
|
|
89
93
|
| `ONELY_WALLET_PROVIDER` | No | `raw` (default) or `coinbase` (Agentic Wallet, Base-only) |
|
|
90
94
|
|
|
@@ -131,6 +135,26 @@ Add to `claude_desktop_config.json`:
|
|
|
131
135
|
```
|
|
132
136
|
</details>
|
|
133
137
|
|
|
138
|
+
### Cursor One-Click Install
|
|
139
|
+
|
|
140
|
+
[](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
|
+
```
|
|
134
158
|
<details>
|
|
135
159
|
<summary>Both Solana + Base wallets</summary>
|
|
136
160
|
|
|
@@ -332,6 +356,8 @@ These tools require an **API key**. Run `1ly_create_store` first to get one.
|
|
|
332
356
|
|
|
333
357
|
Create a new store and get an API key. **Run this once.** The API key is automatically saved locally.
|
|
334
358
|
|
|
359
|
+
> **Note:** Creating a store requires a raw wallet key (Solana or EVM). Agentic Wallet does not support store creation yet.
|
|
360
|
+
|
|
335
361
|
| Parameter | Type | Required | Description |
|
|
336
362
|
|-----------|------|----------|-------------|
|
|
337
363
|
| `username` | string | No | Store username (3-20 chars, auto-generated if omitted) |
|
|
@@ -759,6 +785,81 @@ List recent withdrawals.
|
|
|
759
785
|
|
|
760
786
|
---
|
|
761
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
|
+
|
|
762
863
|
## Common Workflows
|
|
763
864
|
|
|
764
865
|
### Workflow 1: Pay for an API
|
|
@@ -801,6 +902,14 @@ List recent withdrawals.
|
|
|
801
902
|
2. 1ly_list_withdrawals({ "limit": 10 })
|
|
802
903
|
```
|
|
803
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
|
+
|
|
804
913
|
---
|
|
805
914
|
|
|
806
915
|
## Wallet Setup
|
|
@@ -843,21 +952,26 @@ All responses follow this structure:
|
|
|
843
952
|
```json
|
|
844
953
|
{
|
|
845
954
|
"ok": false,
|
|
846
|
-
"error": {
|
|
955
|
+
"error": {
|
|
956
|
+
"message": "Error description",
|
|
957
|
+
"code": "MACHINE_READABLE_CODE",
|
|
958
|
+
"action": "recommended_next_step"
|
|
959
|
+
}
|
|
847
960
|
}
|
|
848
961
|
```
|
|
849
962
|
|
|
850
963
|
### Common Errors
|
|
851
964
|
|
|
852
|
-
| Error | Cause | Solution |
|
|
853
|
-
|
|
854
|
-
| `Missing wallet config` | No wallet env var set | Set `ONELY_WALLET_SOLANA_KEY`, `ONELY_WALLET_EVM_KEY`, or `ONELY_WALLET_PROVIDER=coinbase` |
|
|
855
|
-
| `Agentic Wallet not running` | Wallet app not running or not authenticated | Open the Agentic Wallet app and sign in (`npx awal show`) |
|
|
856
|
-
| `Agentic Wallet Base-only` | API requires Solana payment | Use raw Solana wallet or a Base-compatible endpoint |
|
|
857
|
-
| `
|
|
858
|
-
| `
|
|
859
|
-
| `
|
|
860
|
-
| `
|
|
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 |
|
|
861
975
|
|
|
862
976
|
---
|
|
863
977
|
|
package/dist/config.d.ts
CHANGED
|
@@ -25,6 +25,7 @@ export declare const ConfigSchema: z.ZodObject<{
|
|
|
25
25
|
}>;
|
|
26
26
|
network: z.ZodDefault<z.ZodEnum<["solana", "base"]>>;
|
|
27
27
|
walletProvider: z.ZodDefault<z.ZodEnum<["raw", "coinbase"]>>;
|
|
28
|
+
solanaRpcUrl: z.ZodDefault<z.ZodString>;
|
|
28
29
|
apiKey: z.ZodNullable<z.ZodOptional<z.ZodString>>;
|
|
29
30
|
}, "strip", z.ZodTypeAny, {
|
|
30
31
|
apiBase: string;
|
|
@@ -34,6 +35,7 @@ export declare const ConfigSchema: z.ZodObject<{
|
|
|
34
35
|
};
|
|
35
36
|
network: "solana" | "base";
|
|
36
37
|
walletProvider: "raw" | "coinbase";
|
|
38
|
+
solanaRpcUrl: string;
|
|
37
39
|
wallet?: {
|
|
38
40
|
type: "solana" | "evm";
|
|
39
41
|
key: string;
|
|
@@ -55,6 +57,7 @@ export declare const ConfigSchema: z.ZodObject<{
|
|
|
55
57
|
walletEvm?: string | null | undefined;
|
|
56
58
|
network?: "solana" | "base" | undefined;
|
|
57
59
|
walletProvider?: "raw" | "coinbase" | undefined;
|
|
60
|
+
solanaRpcUrl?: string | undefined;
|
|
58
61
|
apiKey?: string | null | undefined;
|
|
59
62
|
}>;
|
|
60
63
|
export type Config = z.infer<typeof ConfigSchema>;
|
package/dist/config.d.ts.map
CHANGED
|
@@ -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
|
|
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
|
@@ -46,6 +46,7 @@ exports.ConfigSchema = zod_1.z.object({
|
|
|
46
46
|
}),
|
|
47
47
|
network: zod_1.z.enum(["solana", "base"]).default("solana"),
|
|
48
48
|
walletProvider: zod_1.z.enum(["raw", "coinbase"]).default("raw"),
|
|
49
|
+
solanaRpcUrl: zod_1.z.string().url().default("https://api.mainnet-beta.solana.com"),
|
|
49
50
|
apiKey: zod_1.z.string().optional().nullable(),
|
|
50
51
|
});
|
|
51
52
|
function loadConfig() {
|
|
@@ -56,6 +57,7 @@ function loadConfig() {
|
|
|
56
57
|
const apiKeyEnv = process.env.ONELY_API_KEY || null;
|
|
57
58
|
const apiBase = process.env.ONELY_API_BASE || "https://1ly.store";
|
|
58
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";
|
|
59
61
|
// Parse and validate budget values to prevent NaN/negative bypasses
|
|
60
62
|
const perCallRaw = process.env.ONELY_BUDGET_PER_CALL || "1.0";
|
|
61
63
|
const dailyRaw = process.env.ONELY_BUDGET_DAILY || "50.0";
|
|
@@ -91,6 +93,7 @@ function loadConfig() {
|
|
|
91
93
|
},
|
|
92
94
|
network: process.env.ONELY_NETWORK || "solana",
|
|
93
95
|
walletProvider,
|
|
96
|
+
solanaRpcUrl,
|
|
94
97
|
apiKey: apiKeyEnv,
|
|
95
98
|
});
|
|
96
99
|
}
|
package/dist/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
|
|
@@ -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");
|
|
@@ -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
|
-
|
|
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();
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAEA,wEAAmE;AACnE,wEAAiF;AACjF,iEAG4C;AAE5C,iDAA6D;AAC7D,mDAAgE;AAChE,6CAAuD;AACvD,iDAA6D;AAC7D,2DAA0E;AAC1E,yDAAuE;AACvE,2DAA0E;AAC1E,2DAA0E;AAC1E,uDAAoE;AACpE,6DAA6E;AAC7E,uDAAoE;AACpE,yDAAuE;AACvE,yDAAuE;AACvE,qDAAmE;AACnE,qEAAyF;AACzF,iEAAmF;AACnF,iEAAmF;AACnF,+DAAgF;AAChF,2CAAsD;AACtD,+CAA4C;AAC5C,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { Server } from "@modelcontextprotocol/sdk/server/index.js";
|
|
2
|
+
export declare function createMcpServer(): Server<{
|
|
3
|
+
method: string;
|
|
4
|
+
params?: {
|
|
5
|
+
[x: string]: unknown;
|
|
6
|
+
_meta?: {
|
|
7
|
+
[x: string]: unknown;
|
|
8
|
+
progressToken?: string | number | undefined;
|
|
9
|
+
"io.modelcontextprotocol/related-task"?: {
|
|
10
|
+
taskId: string;
|
|
11
|
+
} | undefined;
|
|
12
|
+
} | undefined;
|
|
13
|
+
} | undefined;
|
|
14
|
+
}, {
|
|
15
|
+
method: string;
|
|
16
|
+
params?: {
|
|
17
|
+
[x: string]: unknown;
|
|
18
|
+
_meta?: {
|
|
19
|
+
[x: string]: unknown;
|
|
20
|
+
progressToken?: string | number | undefined;
|
|
21
|
+
"io.modelcontextprotocol/related-task"?: {
|
|
22
|
+
taskId: string;
|
|
23
|
+
} | undefined;
|
|
24
|
+
} | undefined;
|
|
25
|
+
} | undefined;
|
|
26
|
+
}, {
|
|
27
|
+
[x: string]: unknown;
|
|
28
|
+
_meta?: {
|
|
29
|
+
[x: string]: unknown;
|
|
30
|
+
progressToken?: string | number | undefined;
|
|
31
|
+
"io.modelcontextprotocol/related-task"?: {
|
|
32
|
+
taskId: string;
|
|
33
|
+
} | undefined;
|
|
34
|
+
} | undefined;
|
|
35
|
+
}>;
|
|
36
|
+
//# sourceMappingURL=mcp-server.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcp-server.d.ts","sourceRoot":"","sources":["../src/mcp-server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AAgCnE,wBAAgB,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8G9B"}
|