@one-source/api-mcp 5.4.7 → 5.6.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/LICENSE +21 -21
- package/README.md +170 -155
- package/README.npm.md +170 -155
- package/README.repo.md +221 -201
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +13 -10
- package/dist/cli.js.map +1 -1
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +9 -7
- package/dist/client.js.map +1 -1
- package/dist/mpp.d.ts +49 -0
- package/dist/mpp.d.ts.map +1 -0
- package/dist/mpp.js +298 -0
- package/dist/mpp.js.map +1 -0
- package/dist/payment.d.ts +48 -0
- package/dist/payment.d.ts.map +1 -0
- package/dist/payment.js +166 -0
- package/dist/payment.js.map +1 -0
- package/dist/tools/chain/payment-mode.d.ts.map +1 -1
- package/dist/tools/chain/payment-mode.js +64 -27
- package/dist/tools/chain/payment-mode.js.map +1 -1
- package/dist/tools/chain/refund.d.ts +5 -1
- package/dist/tools/chain/refund.d.ts.map +1 -1
- package/dist/tools/chain/refund.js +22 -13
- package/dist/tools/chain/refund.js.map +1 -1
- package/dist/types.d.ts +1 -1
- package/dist/types.d.ts.map +1 -1
- package/package.json +14 -3
package/README.repo.md
CHANGED
|
@@ -1,201 +1,221 @@
|
|
|
1
|
-
# onesource-api-mcp
|
|
2
|
-
|
|
3
|
-
MCP server for OneSource blockchain data. 27 named tools for balances, NFTs, transactions, events, and live chain queries via API key or x402 micropayments.
|
|
4
|
-
|
|
5
|
-
```
|
|
6
|
-
npx onesource-api-mcp
|
|
7
|
-
```
|
|
8
|
-
|
|
9
|
-
## Install
|
|
10
|
-
|
|
11
|
-
```sh
|
|
12
|
-
# Claude Code
|
|
13
|
-
claude mcp add onesource-api -- npx onesource-api-mcp
|
|
14
|
-
|
|
15
|
-
# Claude Desktop / Cursor — add to MCP config:
|
|
16
|
-
{
|
|
17
|
-
"mcpServers": {
|
|
18
|
-
"onesource-api": {
|
|
19
|
-
"command": "npx",
|
|
20
|
-
"args": ["-y", "onesource-api-mcp"]
|
|
21
|
-
}
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
```
|
|
25
|
-
|
|
26
|
-
## Tools (27)
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
### Live Chain Data (12 tools)
|
|
30
|
-
|
|
31
|
-
| Tool | Description |
|
|
32
|
-
|------|-------------|
|
|
33
|
-
| `1s_allowance_live` | ERC20 allowance check |
|
|
34
|
-
| `1s_contract_info_live` | Contract type detection via ERC165 |
|
|
35
|
-
| `1s_erc1155_balance_live` | ERC1155 balance via RPC |
|
|
36
|
-
| `1s_erc20_balance_live` | ERC20 balance via balanceOf |
|
|
37
|
-
| `1s_erc20_transfers_live` | ERC20 Transfer logs via eth_getLogs |
|
|
38
|
-
| `1s_erc721_tokens_live` | ERC721 token enumeration |
|
|
39
|
-
| `1s_events_live` | Event logs via eth_getLogs |
|
|
40
|
-
| `1s_multi_balance_live` | ETH + multiple ERC20 balances |
|
|
41
|
-
| `1s_nft_metadata_live` | NFT metadata via tokenURI |
|
|
42
|
-
| `1s_nft_owner_live` | NFT owner via ownerOf |
|
|
43
|
-
| `1s_total_supply_live` | Token total supply |
|
|
44
|
-
| `1s_tx_details_live` | Transaction + receipt via RPC |
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
### Chain Utilities (13 tools) — RPC only
|
|
48
|
-
|
|
49
|
-
| Tool | Description |
|
|
50
|
-
|------|-------------|
|
|
51
|
-
| `1s_block_by_number` | Block details by number |
|
|
52
|
-
| `1s_block_number` | Latest block number |
|
|
53
|
-
| `1s_chain_id` | EIP-155 chain ID |
|
|
54
|
-
| `1s_contract_code` | Contract bytecode |
|
|
55
|
-
| `1s_ens_resolve` | ENS name/address resolution |
|
|
56
|
-
| `1s_estimate_gas` | Gas estimation |
|
|
57
|
-
| `1s_network_info` | Chain ID, block number, gas price |
|
|
58
|
-
| `1s_nonce` | Transaction count |
|
|
59
|
-
| `1s_pending_block` | Pending block from mempool |
|
|
60
|
-
| `1s_proxy_detect` | Proxy contract detection |
|
|
61
|
-
| `1s_simulate_call` | Simulate eth_call |
|
|
62
|
-
| `1s_storage_read` | Read storage slot |
|
|
63
|
-
| `1s_tx_receipt` | Transaction receipt |
|
|
64
|
-
|
|
65
|
-
### Payments (2 tools)
|
|
66
|
-
|
|
67
|
-
| Tool | Description |
|
|
68
|
-
|------|-------------|
|
|
69
|
-
| `1s_payment_mode` | View or switch the
|
|
70
|
-
| `1s_refund` | Refund unused `batch` channel balance back to your wallet on demand |
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
## Networks
|
|
74
|
-
|
|
75
|
-
All tools accept an optional `network` parameter:
|
|
76
|
-
|
|
77
|
-
| Network | Description |
|
|
78
|
-
|---------|-------------|
|
|
79
|
-
| `ethereum` | Ethereum mainnet (default) |
|
|
80
|
-
| `sepolia` | Ethereum Sepolia testnet |
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
## Authentication
|
|
84
|
-
|
|
85
|
-
Two auth methods are supported. **API key takes priority** when both are configured.
|
|
86
|
-
|
|
87
|
-
### API Key (recommended)
|
|
88
|
-
|
|
89
|
-
Set `ONESOURCE_API_KEY` to your OneSource API key. The server sends it as a Bearer token on every request.
|
|
90
|
-
|
|
91
|
-
```sh
|
|
92
|
-
ONESOURCE_API_KEY=your-key-here npx onesource-api-mcp
|
|
93
|
-
```
|
|
94
|
-
|
|
95
|
-
Or in your MCP config:
|
|
96
|
-
```json
|
|
97
|
-
{
|
|
98
|
-
"mcpServers": {
|
|
99
|
-
"onesource-api": {
|
|
100
|
-
"command": "npx",
|
|
101
|
-
"args": ["-y", "onesource-api-mcp"],
|
|
102
|
-
"env": {
|
|
103
|
-
"ONESOURCE_API_KEY": "your-key-here"
|
|
104
|
-
}
|
|
105
|
-
}
|
|
106
|
-
}
|
|
107
|
-
}
|
|
108
|
-
```
|
|
109
|
-
|
|
110
|
-
### x402 Micropayments
|
|
111
|
-
|
|
112
|
-
Set `X402_PRIVATE_KEY` to a funded EVM wallet key. The server automatically signs and settles USDC payments on Base via [x402](https://github.com/coinbase/x402).
|
|
113
|
-
|
|
114
|
-
```sh
|
|
115
|
-
X402_PRIVATE_KEY=your-private-key-hex npx onesource-api-mcp
|
|
116
|
-
```
|
|
117
|
-
|
|
118
|
-
Payments default to the **exact** scheme (one USDC payment per call). For a burst of calls you can switch to **batch** settlement — a payment channel that funds many off-chain calls from a single on-chain deposit, settled with one claim — by calling the `1s_payment_mode` tool with `{ "mode": "batch" }`, or by setting `X402_PAYMENT_MODE=batch`. Both modes use the same wallet.
|
|
119
|
-
|
|
120
|
-
In batch mode the first paid call deposits `price × X402_DEPOSIT_MULTIPLIER` (default 10) up front, so a session typically over-funds the channel. Reclaim the unused balance whenever you're done with the `1s_refund` tool; idle channels are also auto-refunded by the receiver after a few hours. The deposit residual is always recoverable.
|
|
121
|
-
|
|
122
|
-
###
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
|
149
|
-
|
|
150
|
-
| `
|
|
151
|
-
| `
|
|
152
|
-
| `
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
-
|
|
182
|
-
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
**Step
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
```
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
1
|
+
# onesource-api-mcp
|
|
2
|
+
|
|
3
|
+
MCP server for OneSource blockchain data. 27 named tools for balances, NFTs, transactions, events, and live chain queries via API key or x402 micropayments.
|
|
4
|
+
|
|
5
|
+
```
|
|
6
|
+
npx onesource-api-mcp
|
|
7
|
+
```
|
|
8
|
+
|
|
9
|
+
## Install
|
|
10
|
+
|
|
11
|
+
```sh
|
|
12
|
+
# Claude Code
|
|
13
|
+
claude mcp add onesource-api -- npx onesource-api-mcp
|
|
14
|
+
|
|
15
|
+
# Claude Desktop / Cursor — add to MCP config:
|
|
16
|
+
{
|
|
17
|
+
"mcpServers": {
|
|
18
|
+
"onesource-api": {
|
|
19
|
+
"command": "npx",
|
|
20
|
+
"args": ["-y", "onesource-api-mcp"]
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
## Tools (27)
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
### Live Chain Data (12 tools)
|
|
30
|
+
|
|
31
|
+
| Tool | Description |
|
|
32
|
+
|------|-------------|
|
|
33
|
+
| `1s_allowance_live` | ERC20 allowance check |
|
|
34
|
+
| `1s_contract_info_live` | Contract type detection via ERC165 |
|
|
35
|
+
| `1s_erc1155_balance_live` | ERC1155 balance via RPC |
|
|
36
|
+
| `1s_erc20_balance_live` | ERC20 balance via balanceOf |
|
|
37
|
+
| `1s_erc20_transfers_live` | ERC20 Transfer logs via eth_getLogs |
|
|
38
|
+
| `1s_erc721_tokens_live` | ERC721 token enumeration |
|
|
39
|
+
| `1s_events_live` | Event logs via eth_getLogs |
|
|
40
|
+
| `1s_multi_balance_live` | ETH + multiple ERC20 balances |
|
|
41
|
+
| `1s_nft_metadata_live` | NFT metadata via tokenURI |
|
|
42
|
+
| `1s_nft_owner_live` | NFT owner via ownerOf |
|
|
43
|
+
| `1s_total_supply_live` | Token total supply |
|
|
44
|
+
| `1s_tx_details_live` | Transaction + receipt via RPC |
|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
### Chain Utilities (13 tools) — RPC only
|
|
48
|
+
|
|
49
|
+
| Tool | Description |
|
|
50
|
+
|------|-------------|
|
|
51
|
+
| `1s_block_by_number` | Block details by number |
|
|
52
|
+
| `1s_block_number` | Latest block number |
|
|
53
|
+
| `1s_chain_id` | EIP-155 chain ID |
|
|
54
|
+
| `1s_contract_code` | Contract bytecode |
|
|
55
|
+
| `1s_ens_resolve` | ENS name/address resolution |
|
|
56
|
+
| `1s_estimate_gas` | Gas estimation |
|
|
57
|
+
| `1s_network_info` | Chain ID, block number, gas price |
|
|
58
|
+
| `1s_nonce` | Transaction count |
|
|
59
|
+
| `1s_pending_block` | Pending block from mempool |
|
|
60
|
+
| `1s_proxy_detect` | Proxy contract detection |
|
|
61
|
+
| `1s_simulate_call` | Simulate eth_call |
|
|
62
|
+
| `1s_storage_read` | Read storage slot |
|
|
63
|
+
| `1s_tx_receipt` | Transaction receipt |
|
|
64
|
+
|
|
65
|
+
### Payments (2 tools)
|
|
66
|
+
|
|
67
|
+
| Tool | Description |
|
|
68
|
+
|------|-------------|
|
|
69
|
+
| `1s_payment_mode` | View or switch the payment rail + mode: `x402-exact` / `x402-batch` (USDC on Base) or `mpp-charge` / `mpp-session` (Tempo) |
|
|
70
|
+
| `1s_refund` | Refund unused x402 `batch` channel balance back to your wallet on demand |
|
|
71
|
+
|
|
72
|
+
|
|
73
|
+
## Networks
|
|
74
|
+
|
|
75
|
+
All tools accept an optional `network` parameter:
|
|
76
|
+
|
|
77
|
+
| Network | Description |
|
|
78
|
+
|---------|-------------|
|
|
79
|
+
| `ethereum` | Ethereum mainnet (default) |
|
|
80
|
+
| `sepolia` | Ethereum Sepolia testnet |
|
|
81
|
+
|
|
82
|
+
|
|
83
|
+
## Authentication
|
|
84
|
+
|
|
85
|
+
Two auth methods are supported. **API key takes priority** when both are configured.
|
|
86
|
+
|
|
87
|
+
### API Key (recommended)
|
|
88
|
+
|
|
89
|
+
Set `ONESOURCE_API_KEY` to your OneSource API key. The server sends it as a Bearer token on every request.
|
|
90
|
+
|
|
91
|
+
```sh
|
|
92
|
+
ONESOURCE_API_KEY=your-key-here npx onesource-api-mcp
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
Or in your MCP config:
|
|
96
|
+
```json
|
|
97
|
+
{
|
|
98
|
+
"mcpServers": {
|
|
99
|
+
"onesource-api": {
|
|
100
|
+
"command": "npx",
|
|
101
|
+
"args": ["-y", "onesource-api-mcp"],
|
|
102
|
+
"env": {
|
|
103
|
+
"ONESOURCE_API_KEY": "your-key-here"
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
### x402 Micropayments
|
|
111
|
+
|
|
112
|
+
Set `X402_PRIVATE_KEY` to a funded EVM wallet key. The server automatically signs and settles USDC payments on Base via [x402](https://github.com/coinbase/x402).
|
|
113
|
+
|
|
114
|
+
```sh
|
|
115
|
+
X402_PRIVATE_KEY=your-private-key-hex npx onesource-api-mcp
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
Payments default to the **exact** scheme (one USDC payment per call). For a burst of calls you can switch to **batch** settlement — a payment channel that funds many off-chain calls from a single on-chain deposit, settled with one claim — by calling the `1s_payment_mode` tool with `{ "mode": "batch" }`, or by setting `X402_PAYMENT_MODE=batch`. Both modes use the same wallet.
|
|
119
|
+
|
|
120
|
+
In batch mode the first paid call deposits `price × X402_DEPOSIT_MULTIPLIER` (default 10) up front, so a session typically over-funds the channel. Reclaim the unused balance whenever you're done with the `1s_refund` tool; idle channels are also auto-refunded by the receiver after a few hours. The deposit residual is always recoverable.
|
|
121
|
+
|
|
122
|
+
### MPP Micropayments (Tempo)
|
|
123
|
+
|
|
124
|
+
Set `MPP_PRIVATE_KEY` to a funded [Tempo](https://mpp.dev) wallet key. The server automatically signs and settles Tempo payments (USDC.e / pathUSD) via the [`mppx`](https://github.com/wevm/mppx) SDK.
|
|
125
|
+
|
|
126
|
+
```sh
|
|
127
|
+
MPP_PRIVATE_KEY=your-private-key-hex npx onesource-api-mcp
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
MPP has two modes, switched with `1s_payment_mode`:
|
|
131
|
+
|
|
132
|
+
- **`mpp-charge`** (default) — one signed Tempo payment per call.
|
|
133
|
+
- **`mpp-session`** — a voucher channel: the first call opens an on-chain channel (capped by `MPP_MAX_DEPOSIT`, default `1`), then subsequent calls are signed off-chain as cumulative vouchers. The unspent deposit is settled and reclaimed automatically when the server shuts down cleanly. A hard kill leaves it locked until reclaimed on-chain later.
|
|
134
|
+
|
|
135
|
+
x402 and MPP are separate rails with separate wallets (USDC on Base vs USDC.e/pathUSD on Tempo). If both `X402_PRIVATE_KEY` and `MPP_PRIVATE_KEY` are set, x402 is the initial rail; switch between all four modes in-session with `1s_payment_mode`.
|
|
136
|
+
|
|
137
|
+
### No auth
|
|
138
|
+
|
|
139
|
+
Without either variable, tools work for free endpoints. Paid endpoints return 402 errors with a descriptive message.
|
|
140
|
+
|
|
141
|
+
|
|
142
|
+
## Configuration
|
|
143
|
+
|
|
144
|
+
### Required
|
|
145
|
+
|
|
146
|
+
Set one to access paid endpoints. Without either, only free endpoints work. API key takes priority when both are set.
|
|
147
|
+
|
|
148
|
+
| Variable | Default | Description |
|
|
149
|
+
|----------|---------|-------------|
|
|
150
|
+
| `ONESOURCE_API_KEY` | — | OneSource API key. Sent as `Authorization: Bearer <key>`. Takes priority over a payment wallet. |
|
|
151
|
+
| `X402_PRIVATE_KEY` | — | EVM private key (hex, with or without 0x prefix) for automatic x402 USDC payments on Base. |
|
|
152
|
+
| `MPP_PRIVATE_KEY` | — | EVM private key (hex, with or without 0x prefix) for automatic MPP payments on Tempo (USDC.e / pathUSD). |
|
|
153
|
+
|
|
154
|
+
### Optional / Advanced
|
|
155
|
+
|
|
156
|
+
All have sensible defaults — every payment mode runs out of the box. Set these only to override an endpoint, tune how channel modes behave, or adjust analytics. Payment modes can also be switched at runtime with the `1s_payment_mode` tool.
|
|
157
|
+
|
|
158
|
+
| Variable | Default | Description |
|
|
159
|
+
|----------|---------|-------------|
|
|
160
|
+
| `ONESOURCE_BASE_URL` | `https://api.onesource.io` | Skills API endpoint. |
|
|
161
|
+
| `ONESOURCE_PAYMENT_MODE` | rail default | Initial rail+mode: `x402-exact`, `x402-batch`, `mpp-charge`, or `mpp-session`. Falls back to the enabled rail's own default. |
|
|
162
|
+
| `X402_PAYMENT_MODE` | `exact` | Initial x402 scheme: `exact` (per-call) or `batch` (payment channel). Switch in-session with the `1s_payment_mode` tool. |
|
|
163
|
+
| `X402_RPC_URL` | Base default | Base RPC endpoint used to submit channel deposits in batch mode. |
|
|
164
|
+
| `X402_CHANNEL_DIR` | — | Directory to persist batch channel state across restarts. Unset = in-memory (channel lost on restart). |
|
|
165
|
+
| `X402_DEPOSIT_MULTIPLIER` | `10` | Batch mode: deposit = price × this multiplier, funding that many calls per channel. Unused balance is reclaimable via `1s_refund`. |
|
|
166
|
+
| `X402_CHANNEL_SALT` | zero | Batch mode: 32-byte hex salt to derive the starting channel id. The client auto-rotates to the next salt when a channel is exhausted or refunded. |
|
|
167
|
+
| `MPP_PAYMENT_MODE` | `charge` | Initial MPP mode: `charge` (per-call) or `session` (voucher channel). Switch in-session with the `1s_payment_mode` tool. |
|
|
168
|
+
| `MPP_MAX_DEPOSIT` | `1` | `mpp-session`: max tokens reserved in the on-chain channel deposit. Bounds the worst-case locked balance on an unclean shutdown. |
|
|
169
|
+
| `MPP_RPC_URL` | Tempo default | Tempo RPC endpoint used to open/settle the session channel (`mpp-session` only; `mpp-charge` needs no RPC). |
|
|
170
|
+
| `ONESOURCE_ANALYTICS` | `true` | Set `false` to disable all analytics. |
|
|
171
|
+
| `ONESOURCE_ANALYTICS_URL` | `https://1s-analytics.vercel.app` | Dashboard endpoint for event ingestion (baked in by default). |
|
|
172
|
+
| `X402_ANALYTICS_KEY` | `onesource-api-mcp` | Bearer token for the analytics dashboard (baked in by default). |
|
|
173
|
+
|
|
174
|
+
## Transport Modes
|
|
175
|
+
|
|
176
|
+
```sh
|
|
177
|
+
# stdio (default — for MCP clients)
|
|
178
|
+
npx onesource-api-mcp
|
|
179
|
+
|
|
180
|
+
# HTTP (for testing or remote access)
|
|
181
|
+
npx onesource-api-mcp --http
|
|
182
|
+
npx onesource-api-mcp --http --port=8080
|
|
183
|
+
```
|
|
184
|
+
|
|
185
|
+
HTTP mode binds to `127.0.0.1` by default.
|
|
186
|
+
|
|
187
|
+
## Adding a New Tool
|
|
188
|
+
|
|
189
|
+
When a new SKILL.md is added to `skills/OneSource*/`, a corresponding MCP tool file needs to be created here.
|
|
190
|
+
|
|
191
|
+
**Step 1:** Create the SKILL.md in the skills repo (see the skills README for format).
|
|
192
|
+
|
|
193
|
+
**Step 2:** Scaffold the tool file:
|
|
194
|
+
|
|
195
|
+
```sh
|
|
196
|
+
cd mcp/
|
|
197
|
+
npm run new-tool
|
|
198
|
+
```
|
|
199
|
+
|
|
200
|
+
This prompts for:
|
|
201
|
+
- **Tool name** — `1s_` prefix, snake_case (e.g. `1s_token_info`)
|
|
202
|
+
- **Category** — `live` (direct RPC) or `chain` (RPC-only utility)
|
|
203
|
+
- **Description** — one-liner for the tool
|
|
204
|
+
- **Endpoint** — REST API path (e.g. `/api/chain/my-endpoint`)
|
|
205
|
+
- **Method** — GET or POST
|
|
206
|
+
|
|
207
|
+
It generates a tool file in `src/tools/{category}/` with TODO markers.
|
|
208
|
+
|
|
209
|
+
**Step 3:** Edit the generated file — fill in the Zod schema parameters and handler logic. Use the shared params from `src/types.ts` (`addressParam`, `txHashParam`, `tokenIdParam`, `hexDataParam`, `networkParam`, `limitParam`, `blockNumberParam`).
|
|
210
|
+
|
|
211
|
+
**Step 4:** Build:
|
|
212
|
+
|
|
213
|
+
```sh
|
|
214
|
+
npm run build
|
|
215
|
+
```
|
|
216
|
+
|
|
217
|
+
This auto-regenerates the tool index and compiles. The new tool is immediately available in the MCP server.
|
|
218
|
+
|
|
219
|
+
## License
|
|
220
|
+
|
|
221
|
+
MIT
|
package/dist/cli.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AA6QA,OAAO,EAAE,CAAC"}
|
package/dist/cli.js
CHANGED
|
@@ -10,31 +10,32 @@
|
|
|
10
10
|
import { createMcpServer, VERSION } from './create-server.js';
|
|
11
11
|
import { createClientFromEnv } from './client.js';
|
|
12
12
|
import { createAnalytics } from './analytics.js';
|
|
13
|
-
import {
|
|
13
|
+
import { setupPayments, closePaymentSession } from './payment.js';
|
|
14
|
+
import { createX402 } from './x402.js';
|
|
14
15
|
const MAX_BODY_BYTES = 1_048_576; // 1 MB
|
|
15
16
|
// Analytics defaults — must be set before any createAnalytics() call.
|
|
16
17
|
// Users can override via environment; ONESOURCE_ANALYTICS=false disables entirely.
|
|
17
18
|
process.env.ONESOURCE_ANALYTICS_URL ??= 'https://1s-analytics.vercel.app';
|
|
18
19
|
process.env.X402_ANALYTICS_KEY ??= 'onesource-api-mcp';
|
|
19
|
-
// --- Auth resolution: API key takes priority over
|
|
20
|
+
// --- Auth resolution: API key takes priority over a payment wallet ---
|
|
20
21
|
const apiKey = process.env.ONESOURCE_API_KEY?.trim() || undefined; // || coerces whitespace-only to undefined
|
|
21
22
|
let authMethod;
|
|
22
23
|
let clientFetch;
|
|
23
24
|
let walletAddress;
|
|
24
25
|
if (apiKey) {
|
|
25
|
-
if (process.env.X402_PRIVATE_KEY) {
|
|
26
|
-
console.error('[onesource-api] warning:
|
|
26
|
+
if (process.env.X402_PRIVATE_KEY || process.env.MPP_PRIVATE_KEY) {
|
|
27
|
+
console.error('[onesource-api] warning: ONESOURCE_API_KEY is set — X402_PRIVATE_KEY / MPP_PRIVATE_KEY will be ignored');
|
|
27
28
|
}
|
|
28
29
|
authMethod = 'api_key';
|
|
29
30
|
console.error('[onesource-api] auth: api_key');
|
|
30
31
|
}
|
|
31
32
|
else {
|
|
32
|
-
const
|
|
33
|
-
if (
|
|
34
|
-
authMethod = 'x402'
|
|
35
|
-
clientFetch =
|
|
36
|
-
walletAddress =
|
|
37
|
-
console.error(`[onesource-api] auth:
|
|
33
|
+
const pay = setupPayments();
|
|
34
|
+
if (pay.enabled) {
|
|
35
|
+
authMethod = pay.authMethod; // 'x402' | 'mpp'
|
|
36
|
+
clientFetch = pay.fetch;
|
|
37
|
+
walletAddress = pay.x402Address ?? pay.mppAddress;
|
|
38
|
+
console.error(`[onesource-api] auth: ${authMethod} (wallet: ${walletAddress})`);
|
|
38
39
|
}
|
|
39
40
|
else {
|
|
40
41
|
authMethod = 'none';
|
|
@@ -216,6 +217,7 @@ if (args.includes('--http')) {
|
|
|
216
217
|
});
|
|
217
218
|
gracefulShutdown(sharedAnalytics, async () => {
|
|
218
219
|
await new Promise((resolve) => httpServer.close(() => resolve()));
|
|
220
|
+
await closePaymentSession();
|
|
219
221
|
});
|
|
220
222
|
}
|
|
221
223
|
else {
|
|
@@ -236,6 +238,7 @@ else {
|
|
|
236
238
|
gracefulShutdown(analytics, async () => {
|
|
237
239
|
stdioTransport.close();
|
|
238
240
|
await server.close();
|
|
241
|
+
await closePaymentSession();
|
|
239
242
|
});
|
|
240
243
|
}
|
|
241
244
|
//# sourceMappingURL=cli.js.map
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AACA;;;;;;;GAOG;AACH,OAAO,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,eAAe,EAAkB,MAAM,gBAAgB,CAAC;AACjE,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
package/dist/client.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,YAAY,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE9C,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,OAAO,UAAU,CAAC,KAAK,CAAC;IAChC,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,aAAa,EAAE,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;CACd;AAED,qBAAa,eAAe;IAC1B,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,MAAM,CAA0B;IACxC,OAAO,CAAC,OAAO,CAAC,CAAS;IACzB,OAAO,CAAC,QAAQ,CAA6B;IAE7C,6DAA6D;IAC7D,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,CAAC;gBAEjC,IAAI,EAAE,aAAa;IAY/B;;;;OAIG;IACH,WAAW,CAAC,GAAG,EAAE,WAAW,GAAG,eAAe;IAO9C;;OAEG;IACG,GAAG,CAAC,CAAC,GAAG,OAAO,EACnB,IAAI,EAAE,MAAM,EACZ,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC,GACnD,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IAS1B;;OAEG;IACG,IAAI,CAAC,CAAC,GAAG,OAAO,EACpB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC,GACnD,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;YAUZ,gBAAgB;IAoB9B,OAAO,CAAC,QAAQ;IAehB,OAAO,CAAC,OAAO;YAQD,cAAc;
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,YAAY,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE9C,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,OAAO,UAAU,CAAC,KAAK,CAAC;IAChC,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,aAAa,EAAE,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;CACd;AAED,qBAAa,eAAe;IAC1B,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,MAAM,CAA0B;IACxC,OAAO,CAAC,OAAO,CAAC,CAAS;IACzB,OAAO,CAAC,QAAQ,CAA6B;IAE7C,6DAA6D;IAC7D,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,CAAC;gBAEjC,IAAI,EAAE,aAAa;IAY/B;;;;OAIG;IACH,WAAW,CAAC,GAAG,EAAE,WAAW,GAAG,eAAe;IAO9C;;OAEG;IACG,GAAG,CAAC,CAAC,GAAG,OAAO,EACnB,IAAI,EAAE,MAAM,EACZ,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC,GACnD,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IAS1B;;OAEG;IACG,IAAI,CAAC,CAAC,GAAG,OAAO,EACpB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC,GACnD,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;YAUZ,gBAAgB;IAoB9B,OAAO,CAAC,QAAQ;IAehB,OAAO,CAAC,OAAO;YAQD,cAAc;CAoE7B;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,CAAC,EAAE;IAAE,KAAK,CAAC,EAAE,OAAO,UAAU,CAAC,KAAK,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,eAAe,CAQhH"}
|
package/dist/client.js
CHANGED
|
@@ -99,12 +99,13 @@ export class OneSourceClient {
|
|
|
99
99
|
error: 'Access denied (403): your API key does not have access to this endpoint. A developer plan is required — upgrade at app.onesource.io',
|
|
100
100
|
};
|
|
101
101
|
}
|
|
102
|
-
// Payment required. The
|
|
103
|
-
//
|
|
104
|
-
//
|
|
105
|
-
//
|
|
106
|
-
//
|
|
107
|
-
//
|
|
102
|
+
// Payment required. The gateway advertises two payment protocols on every
|
|
103
|
+
// paid route: x402 (USDC on Base, via the Payment-Required header) and MPP
|
|
104
|
+
// (Tempo USDC.e / pathUSD, via RFC 7235 WWW-Authenticate: Payment). This
|
|
105
|
+
// MCP auto-pays BOTH when a wallet is configured, so reaching here means
|
|
106
|
+
// payment couldn't be satisfied — no wallet, an unfunded/wrong-rail wallet,
|
|
107
|
+
// or a rejected API key. The payment fetch already attempted the active
|
|
108
|
+
// rail; this guidance is keyed off the challenge headers.
|
|
108
109
|
if (res.status === 402) {
|
|
109
110
|
if (this._apiKey) {
|
|
110
111
|
return {
|
|
@@ -115,7 +116,8 @@ export class OneSourceClient {
|
|
|
115
116
|
const mppHeader = res.headers.get('WWW-Authenticate');
|
|
116
117
|
const parts = [
|
|
117
118
|
'Payment required (402). This endpoint accepts x402 (USDC on Base) or MPP (Tempo USDC.e / pathUSD).',
|
|
118
|
-
'
|
|
119
|
+
'This MCP auto-pays both: set X402_PRIVATE_KEY and fund USDC on Base, or set MPP_PRIVATE_KEY and fund USDC.e/pathUSD on Tempo.',
|
|
120
|
+
'If a wallet is already set, it may be unfunded or on the wrong rail for this endpoint — check funding and use 1s_payment_mode to switch rails.',
|
|
119
121
|
];
|
|
120
122
|
if (x402Header)
|
|
121
123
|
parts.push(`x402: ${x402Header.slice(0, 200)}`);
|
package/dist/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|