@one-source/api-mcp 5.4.1 → 5.4.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.repo.md CHANGED
@@ -1,201 +1,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 x402 payment scheme (`exact` per-call vs `batch` payment channel) |
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
- ### No auth
123
-
124
- Without either variable, tools work for free endpoints. Paid endpoints return 402 errors with a descriptive message.
125
-
126
-
127
- ## Configuration
128
-
129
- ### Required
130
-
131
- Set one to access paid endpoints. Without either, only free endpoints work. API key takes priority when both are set.
132
-
133
- | Variable | Default | Description |
134
- |----------|---------|-------------|
135
- | `ONESOURCE_API_KEY` | — | OneSource API key. Sent as `Authorization: Bearer <key>`. Takes priority over x402. |
136
- | `X402_PRIVATE_KEY` | — | EVM private key (hex, with or without 0x prefix) for automatic x402 USDC payments on Base. |
137
-
138
- ### Optional / Advanced
139
-
140
- All have sensible defaults — batch mode runs out of the box. Set these only to override an endpoint, tune how `batch` mode behaves, or adjust analytics. Payment modes can also be switched at runtime with the `1s_payment_mode` tool.
141
-
142
- | Variable | Default | Description |
143
- |----------|---------|-------------|
144
- | `ONESOURCE_BASE_URL` | `https://api.onesource.io` | Skills API endpoint. |
145
- | `X402_PAYMENT_MODE` | `exact` | Initial x402 scheme: `exact` (per-call) or `batch` (payment channel). Switch in-session with the `1s_payment_mode` tool. |
146
- | `X402_RPC_URL` | Base default | Base RPC endpoint used to submit channel deposits in batch mode. |
147
- | `X402_CHANNEL_DIR` | — | Directory to persist batch channel state across restarts. Unset = in-memory (channel lost on restart). |
148
- | `X402_DEPOSIT_MULTIPLIER` | `10` | Batch mode: deposit = price × this multiplier, funding that many calls per channel. Unused balance is reclaimable via `1s_refund`. |
149
- | `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. |
150
- | `ONESOURCE_ANALYTICS` | `true` | Set `false` to disable all analytics. |
151
- | `ONESOURCE_ANALYTICS_URL` | `https://1s-analytics.vercel.app` | Dashboard endpoint for event ingestion (baked in by default). |
152
- | `X402_ANALYTICS_KEY` | `onesource-api-mcp` | Bearer token for the analytics dashboard (baked in by default). |
153
-
154
- ## Transport Modes
155
-
156
- ```sh
157
- # stdio (default — for MCP clients)
158
- npx onesource-api-mcp
159
-
160
- # HTTP (for testing or remote access)
161
- npx onesource-api-mcp --http
162
- npx onesource-api-mcp --http --port=8080
163
- ```
164
-
165
- HTTP mode binds to `127.0.0.1` by default.
166
-
167
- ## Adding a New Tool
168
-
169
- When a new SKILL.md is added to `skills/OneSource*/`, a corresponding MCP tool file needs to be created here.
170
-
171
- **Step 1:** Create the SKILL.md in the skills repo (see the skills README for format).
172
-
173
- **Step 2:** Scaffold the tool file:
174
-
175
- ```sh
176
- cd mcp/
177
- npm run new-tool
178
- ```
179
-
180
- This prompts for:
181
- - **Tool name** — `1s_` prefix, snake_case (e.g. `1s_token_info`)
182
- - **Category** — `live` (direct RPC) or `chain` (RPC-only utility)
183
- - **Description** — one-liner for the tool
184
- - **Endpoint** — REST API path (e.g. `/api/chain/my-endpoint`)
185
- - **Method** — GET or POST
186
-
187
- It generates a tool file in `src/tools/{category}/` with TODO markers.
188
-
189
- **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`).
190
-
191
- **Step 4:** Build:
192
-
193
- ```sh
194
- npm run build
195
- ```
196
-
197
- This auto-regenerates the tool index and compiles. The new tool is immediately available in the MCP server.
198
-
199
- ## License
200
-
201
- MIT
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 x402 payment scheme (`exact` per-call vs `batch` payment channel) |
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
+ ### No auth
123
+
124
+ Without either variable, tools work for free endpoints. Paid endpoints return 402 errors with a descriptive message.
125
+
126
+
127
+ ## Configuration
128
+
129
+ ### Required
130
+
131
+ Set one to access paid endpoints. Without either, only free endpoints work. API key takes priority when both are set.
132
+
133
+ | Variable | Default | Description |
134
+ |----------|---------|-------------|
135
+ | `ONESOURCE_API_KEY` | — | OneSource API key. Sent as `Authorization: Bearer <key>`. Takes priority over x402. |
136
+ | `X402_PRIVATE_KEY` | — | EVM private key (hex, with or without 0x prefix) for automatic x402 USDC payments on Base. |
137
+
138
+ ### Optional / Advanced
139
+
140
+ All have sensible defaults — batch mode runs out of the box. Set these only to override an endpoint, tune how `batch` mode behaves, or adjust analytics. Payment modes can also be switched at runtime with the `1s_payment_mode` tool.
141
+
142
+ | Variable | Default | Description |
143
+ |----------|---------|-------------|
144
+ | `ONESOURCE_BASE_URL` | `https://api.onesource.io` | Skills API endpoint. |
145
+ | `X402_PAYMENT_MODE` | `exact` | Initial x402 scheme: `exact` (per-call) or `batch` (payment channel). Switch in-session with the `1s_payment_mode` tool. |
146
+ | `X402_RPC_URL` | Base default | Base RPC endpoint used to submit channel deposits in batch mode. |
147
+ | `X402_CHANNEL_DIR` | — | Directory to persist batch channel state across restarts. Unset = in-memory (channel lost on restart). |
148
+ | `X402_DEPOSIT_MULTIPLIER` | `10` | Batch mode: deposit = price × this multiplier, funding that many calls per channel. Unused balance is reclaimable via `1s_refund`. |
149
+ | `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. |
150
+ | `ONESOURCE_ANALYTICS` | `true` | Set `false` to disable all analytics. |
151
+ | `ONESOURCE_ANALYTICS_URL` | `https://1s-analytics.vercel.app` | Dashboard endpoint for event ingestion (baked in by default). |
152
+ | `X402_ANALYTICS_KEY` | `onesource-api-mcp` | Bearer token for the analytics dashboard (baked in by default). |
153
+
154
+ ## Transport Modes
155
+
156
+ ```sh
157
+ # stdio (default — for MCP clients)
158
+ npx onesource-api-mcp
159
+
160
+ # HTTP (for testing or remote access)
161
+ npx onesource-api-mcp --http
162
+ npx onesource-api-mcp --http --port=8080
163
+ ```
164
+
165
+ HTTP mode binds to `127.0.0.1` by default.
166
+
167
+ ## Adding a New Tool
168
+
169
+ When a new SKILL.md is added to `skills/OneSource*/`, a corresponding MCP tool file needs to be created here.
170
+
171
+ **Step 1:** Create the SKILL.md in the skills repo (see the skills README for format).
172
+
173
+ **Step 2:** Scaffold the tool file:
174
+
175
+ ```sh
176
+ cd mcp/
177
+ npm run new-tool
178
+ ```
179
+
180
+ This prompts for:
181
+ - **Tool name** — `1s_` prefix, snake_case (e.g. `1s_token_info`)
182
+ - **Category** — `live` (direct RPC) or `chain` (RPC-only utility)
183
+ - **Description** — one-liner for the tool
184
+ - **Endpoint** — REST API path (e.g. `/api/chain/my-endpoint`)
185
+ - **Method** — GET or POST
186
+
187
+ It generates a tool file in `src/tools/{category}/` with TODO markers.
188
+
189
+ **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`).
190
+
191
+ **Step 4:** Build:
192
+
193
+ ```sh
194
+ npm run build
195
+ ```
196
+
197
+ This auto-regenerates the tool index and compiles. The new tool is immediately available in the MCP server.
198
+
199
+ ## License
200
+
201
+ MIT
package/dist/cli.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AA8MA,OAAO,EAAE,CAAC"}
1
+ {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AA0QA,OAAO,EAAE,CAAC"}
package/dist/cli.js CHANGED
@@ -10,7 +10,7 @@
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 { setupX402 } from './x402.js';
13
+ import { setupX402, createX402 } from './x402.js';
14
14
  const MAX_BODY_BYTES = 1_048_576; // 1 MB
15
15
  // Analytics defaults — must be set before any createAnalytics() call.
16
16
  // Users can override via environment; ONESOURCE_ANALYTICS=false disables entirely.
@@ -85,6 +85,25 @@ if (args.includes('--http')) {
85
85
  const sharedClient = createClientFromEnv({ fetch: clientFetch, apiKey });
86
86
  const sharedAnalytics = createAnalytics();
87
87
  console.error(`[onesource-api] analytics: ${process.env.ONESOURCE_ANALYTICS === 'false' ? 'disabled' : `dashboard (${process.env.ONESOURCE_ANALYTICS_URL})`}`);
88
+ // Per-request key extraction. Rejects empty, overlong (>512), or CRLF-containing values
89
+ // before they reach createClientFromEnv (whose constructor throws on \r\n, escaping try/catch).
90
+ const MAX_KEY_LEN = 512;
91
+ const extractBearerKey = (h) => {
92
+ if (typeof h !== 'string' || !h.startsWith('Bearer '))
93
+ return undefined;
94
+ const k = h.slice(7).trim();
95
+ if (!k || k.length > MAX_KEY_LEN || /[\r\n]/.test(k))
96
+ return undefined;
97
+ return k;
98
+ };
99
+ const extractRawKey = (h) => {
100
+ if (typeof h !== 'string')
101
+ return undefined;
102
+ const k = h.trim();
103
+ if (!k || k.length > MAX_KEY_LEN || /[\r\n]/.test(k))
104
+ return undefined;
105
+ return k;
106
+ };
88
107
  const httpServer = createServer(async (req, res) => {
89
108
  if (req.url === '/mcp' && req.method === 'POST') {
90
109
  // Reject oversized requests (content-length check; body may still be streamed)
@@ -98,8 +117,50 @@ if (args.includes('--http')) {
98
117
  }));
99
118
  return;
100
119
  }
101
- // Fresh server per request (SDK stateless pattern), shared client + analytics
102
- const { server } = createMcpServer({ client: sharedClient, analytics: sharedAnalytics, transport: 'http', authMethod, ...(walletAddress ? { walletId: walletAddress } : {}) });
120
+ // Per-request auth: API key takes priority over x402; both fall back to startup auth.
121
+ const reqApiKey = extractBearerKey(req.headers['authorization']) ??
122
+ extractRawKey(req.headers['x-api-key']);
123
+ const reqX402Key = extractRawKey(req.headers['x402-private-key']);
124
+ let requestClient = sharedClient;
125
+ let requestAuthMethod = authMethod;
126
+ let requestWalletId = undefined;
127
+ let authError;
128
+ if (reqApiKey) {
129
+ try {
130
+ requestClient = createClientFromEnv({ apiKey: reqApiKey });
131
+ requestAuthMethod = 'api_key';
132
+ requestWalletId = undefined;
133
+ }
134
+ catch (err) {
135
+ authError = 'Invalid Authorization header';
136
+ console.error('[onesource-api] api key client construction error:', err);
137
+ }
138
+ }
139
+ else if (reqX402Key) {
140
+ try {
141
+ const x402 = createX402(reqX402Key);
142
+ if (x402.enabled) {
143
+ requestClient = createClientFromEnv({ fetch: x402.fetch });
144
+ requestAuthMethod = 'x402';
145
+ requestWalletId = x402.address;
146
+ }
147
+ }
148
+ catch (err) {
149
+ authError = 'Invalid X402-Private-Key';
150
+ console.error('[onesource-api] createX402 error:', err instanceof Error ? err.message : String(err));
151
+ }
152
+ }
153
+ if (authError) {
154
+ res.writeHead(401, { 'Content-Type': 'application/json' });
155
+ res.end(JSON.stringify({
156
+ jsonrpc: '2.0',
157
+ error: { code: -32001, message: authError },
158
+ id: null,
159
+ }));
160
+ return;
161
+ }
162
+ // Fresh server per request (SDK stateless pattern), shared analytics
163
+ const { server } = createMcpServer({ client: requestClient, analytics: sharedAnalytics, transport: 'http', authMethod: requestAuthMethod, ...(requestWalletId ? { walletId: requestWalletId } : {}) });
103
164
  const httpTransport = new StreamableHTTPServerTransport({
104
165
  sessionIdGenerator: undefined,
105
166
  });
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
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,SAAS,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAGlD,MAAM,cAAc,GAAG,SAAS,CAAC,CAAC,OAAO;AAEzC,sEAAsE;AACtE,mFAAmF;AACnF,OAAO,CAAC,GAAG,CAAC,uBAAuB,KAAK,iCAAiC,CAAC;AAC1E,OAAO,CAAC,GAAG,CAAC,kBAAkB,KAAK,mBAAmB,CAAC;AAEvD,4DAA4D;AAC5D,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,iBAAiB,EAAE,IAAI,EAAE,IAAI,SAAS,CAAC,CAAC,0CAA0C;AAC7G,IAAI,UAAsB,CAAC;AAC3B,IAAI,WAAgD,CAAC;AAErD,IAAI,aAAiC,CAAC;AAEtC,IAAI,MAAM,EAAE,CAAC;IACX,IAAI,OAAO,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;QACjC,OAAO,CAAC,KAAK,CAAC,iHAAiH,CAAC,CAAC;IACnI,CAAC;IACD,UAAU,GAAG,SAAS,CAAC;IACvB,OAAO,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC;AACjD,CAAC;KAAM,CAAC;IACN,MAAM,IAAI,GAAG,SAAS,EAAE,CAAC;IACzB,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;QACjB,UAAU,GAAG,MAAM,CAAC;QACpB,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC;QACzB,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC;QAC7B,OAAO,CAAC,KAAK,CAAC,uCAAuC,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;IACxE,CAAC;SAAM,CAAC;QACN,UAAU,GAAG,MAAM,CAAC;QACpB,OAAO,CAAC,KAAK,CAAC,4BAA4B,CAAC,CAAC;IAC9C,CAAC;AACH,CAAC;AAED,SAAS,gBAAgB,CAAC,SAAoB,EAAE,OAA4B;IAC1E,MAAM,QAAQ,GAAG,KAAK,IAAI,EAAE;QAC1B,SAAS,CAAC,YAAY,CAAC;YACrB,IAAI,EAAE,cAAc;YACpB,OAAO,EAAE,eAAe;YACxB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACnC,OAAO,EAAE,OAAO;SACjB,CAAC,CAAC;QACH,SAAS,CAAC,IAAI,EAAE,CAAC;QACjB,MAAM,OAAO,CAAC,IAAI,CAAC;YACjB,CAAC,KAAK,IAAI,EAAE;gBACV,MAAM,SAAS,CAAC,KAAK,EAAE,CAAC;gBACxB,MAAM,OAAO,EAAE,CAAC;YAClB,CAAC,CAAC,EAAE;YACJ,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;SAC3D,CAAC,CAAC;QACH,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC;IACF,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IACjC,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;AACpC,CAAC;AAED,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAEnC,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;IAC5B,6BAA6B;IAC7B,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAC/B,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,UAAU,CAAC,SAAS,CAAC,CACjD,CAAC;IACF,IAAI,IAAI,GAAG,IAAI,CAAC;IAChB,IAAI,UAAU,KAAK,CAAC,CAAC,EAAE,CAAC;QACtB,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC;QAC7B,MAAM,OAAO,GAAG,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC;YACvC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YACnB,CAAC,CAAC,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC;QACzB,MAAM,MAAM,GAAG,QAAQ,CAAC,OAAO,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;QAC3C,IAAI,CAAC,OAAO,IAAI,KAAK,CAAC,MAAM,CAAC,IAAI,MAAM,GAAG,CAAC,IAAI,MAAM,GAAG,KAAK,EAAE,CAAC;YAC9D,OAAO,CAAC,KAAK,CACX,wBAAwB,OAAO,IAAI,EAAE,iCAAiC,CACvE,CAAC;YACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QACD,IAAI,GAAG,MAAM,CAAC;IAChB,CAAC;IAED,MAAM,EAAE,6BAA6B,EAAE,GAAG,MAAM,MAAM,CACpD,oDAAoD,CACrD,CAAC;IACF,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,CAAC;IAEnD,qDAAqD;IACrD,MAAM,YAAY,GAAG,mBAAmB,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC,CAAC;IACzE,MAAM,eAAe,GAAG,eAAe,EAAE,CAAC;IAC1C,OAAO,CAAC,KAAK,CAAC,8BAA8B,OAAO,CAAC,GAAG,CAAC,mBAAmB,KAAK,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,cAAc,OAAO,CAAC,GAAG,CAAC,uBAAuB,GAAG,EAAE,CAAC,CAAC;IAE/J,wFAAwF;IACxF,gGAAgG;IAChG,MAAM,WAAW,GAAG,GAAG,CAAC;IACxB,MAAM,gBAAgB,GAAG,CAAC,CAAqB,EAAsB,EAAE;QACrE,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,SAAS,CAAC;YAAE,OAAO,SAAS,CAAC;QACxE,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAC5B,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,WAAW,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;YAAE,OAAO,SAAS,CAAC;QACvE,OAAO,CAAC,CAAC;IACX,CAAC,CAAC;IACF,MAAM,aAAa,GAAG,CAAC,CAAqB,EAAsB,EAAE;QAClE,IAAI,OAAO,CAAC,KAAK,QAAQ;YAAE,OAAO,SAAS,CAAC;QAC5C,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;QACnB,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,WAAW,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;YAAE,OAAO,SAAS,CAAC;QACvE,OAAO,CAAC,CAAC;IACX,CAAC,CAAC;IAEF,MAAM,UAAU,GAAG,YAAY,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;QACjD,IAAI,GAAG,CAAC,GAAG,KAAK,MAAM,IAAI,GAAG,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;YAChD,+EAA+E;YAC/E,MAAM,aAAa,GAAG,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,gBAAgB,CAAC,IAAI,GAAG,EAAE,EAAE,CAAC,CAAC;YACzE,IAAI,aAAa,GAAG,cAAc,EAAE,CAAC;gBACnC,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAC,CAAC;gBAC3D,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC;oBACrB,OAAO,EAAE,KAAK;oBACd,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,mBAAmB,EAAE;oBACrD,EAAE,EAAE,IAAI;iBACT,CAAC,CAAC,CAAC;gBACJ,OAAO;YACT,CAAC;YAED,sFAAsF;YACtF,MAAM,SAAS,GACb,gBAAgB,CAAC,GAAG,CAAC,OAAO,CAAC,eAAe,CAAuB,CAAC;gBACpE,aAAa,CAAC,GAAG,CAAC,OAAO,CAAC,WAAW,CAAuB,CAAC,CAAC;YAChE,MAAM,UAAU,GAAG,aAAa,CAAC,GAAG,CAAC,OAAO,CAAC,kBAAkB,CAAuB,CAAC,CAAC;YAExF,IAAI,aAAa,GAAG,YAAY,CAAC;YACjC,IAAI,iBAAiB,GAAe,UAAU,CAAC;YAC/C,IAAI,eAAe,GAAuB,SAAS,CAAC;YACpD,IAAI,SAA6B,CAAC;YAElC,IAAI,SAAS,EAAE,CAAC;gBACd,IAAI,CAAC;oBACH,aAAa,GAAG,mBAAmB,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;oBAC3D,iBAAiB,GAAG,SAAS,CAAC;oBAC9B,eAAe,GAAG,SAAS,CAAC;gBAC9B,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,SAAS,GAAG,8BAA8B,CAAC;oBAC3C,OAAO,CAAC,KAAK,CAAC,oDAAoD,EAAE,GAAG,CAAC,CAAC;gBAC3E,CAAC;YACH,CAAC;iBAAM,IAAI,UAAU,EAAE,CAAC;gBACtB,IAAI,CAAC;oBACH,MAAM,IAAI,GAAG,UAAU,CAAC,UAAU,CAAC,CAAC;oBACpC,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;wBACjB,aAAa,GAAG,mBAAmB,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;wBAC3D,iBAAiB,GAAG,MAAM,CAAC;wBAC3B,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC;oBACjC,CAAC;gBACH,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,SAAS,GAAG,0BAA0B,CAAC;oBACvC,OAAO,CAAC,KAAK,CAAC,mCAAmC,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;gBACvG,CAAC;YACH,CAAC;YAED,IAAI,SAAS,EAAE,CAAC;gBACd,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAC,CAAC;gBAC3D,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC;oBACrB,OAAO,EAAE,KAAK;oBACd,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE;oBAC3C,EAAE,EAAE,IAAI;iBACT,CAAC,CAAC,CAAC;gBACJ,OAAO;YACT,CAAC;YAED,qEAAqE;YACrE,MAAM,EAAE,MAAM,EAAE,GAAG,eAAe,CAAC,EAAE,MAAM,EAAE,aAAa,EAAE,SAAS,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,iBAAiB,EAAE,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,eAAe,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;YACvM,MAAM,aAAa,GAAG,IAAI,6BAA6B,CAAC;gBACtD,kBAAkB,EAAE,SAAS;aAC9B,CAAC,CAAC;YAEH,IAAI,CAAC;gBACH,MAAM,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;gBACpC,MAAM,aAAa,CAAC,aAAa,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;YAC9C,CAAC;YAAC,MAAM,CAAC;gBACP,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC;oBACrB,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAC,CAAC;oBAC3D,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC;wBACrB,OAAO,EAAE,KAAK;wBACd,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,uBAAuB,EAAE;wBACzD,EAAE,EAAE,IAAI;qBACT,CAAC,CAAC,CAAC;gBACN,CAAC;YACH,CAAC;YAED,sCAAsC;YACtC,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;gBACnB,aAAa,CAAC,KAAK,EAAE,CAAC;gBACtB,MAAM,CAAC,KAAK,EAAE,CAAC;YACjB,CAAC,CAAC,CAAC;QAEL,CAAC;aAAM,IAAI,GAAG,CAAC,GAAG,KAAK,MAAM,IAAI,CAAC,GAAG,CAAC,MAAM,KAAK,KAAK,IAAI,GAAG,CAAC,MAAM,KAAK,QAAQ,CAAC,EAAE,CAAC;YACnF,mDAAmD;YACnD,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAC,CAAC;YAC3D,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC;gBACrB,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,sCAAsC,EAAE;gBACxE,EAAE,EAAE,IAAI;aACT,CAAC,CAAC,CAAC;QAEN,CAAC;aAAM,IAAI,GAAG,CAAC,GAAG,KAAK,SAAS,EAAE,CAAC;YACjC,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAC,CAAC;YAC3D,GAAG,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;QAE7B,CAAC;aAAM,CAAC;YACN,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;YACnB,GAAG,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QACvB,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,yDAAyD;IACzD,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE,WAAW,EAAE,GAAG,EAAE;QACxC,OAAO,CAAC,KAAK,CAAC,6DAA6D,IAAI,EAAE,CAAC,CAAC;QACnF,OAAO,CAAC,KAAK,CAAC,kDAAkD,IAAI,MAAM,CAAC,CAAC;IAC9E,CAAC,CAAC,CAAC;IAEH,eAAe,CAAC,YAAY,CAAC;QAC3B,IAAI,EAAE,eAAe;QACrB,OAAO,EAAE,eAAe;QACxB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACnC,OAAO,EAAE,OAAO;QAChB,OAAO,EAAE,QAAQ,IAAI,EAAE;KACxB,CAAC,CAAC;IAEH,gBAAgB,CAAC,eAAe,EAAE,KAAK,IAAI,EAAE;QAC3C,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;IAC1E,CAAC,CAAC,CAAC;AAEL,CAAC;KAAM,CAAC;IACN,MAAM,EAAE,oBAAoB,EAAE,GAAG,MAAM,MAAM,CAC3C,2CAA2C,CAC5C,CAAC;IACF,MAAM,MAAM,GAAG,mBAAmB,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC,CAAC;IACnE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,eAAe,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IACjJ,MAAM,cAAc,GAAG,IAAI,oBAAoB,EAAE,CAAC;IAClD,MAAM,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;IACrC,OAAO,CAAC,KAAK,CAAC,4CAA4C,CAAC,CAAC;IAC5D,OAAO,CAAC,KAAK,CAAC,8BAA8B,OAAO,CAAC,GAAG,CAAC,mBAAmB,KAAK,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,cAAc,OAAO,CAAC,GAAG,CAAC,uBAAuB,GAAG,EAAE,CAAC,CAAC;IAE/J,SAAS,CAAC,YAAY,CAAC;QACrB,IAAI,EAAE,eAAe;QACrB,OAAO,EAAE,eAAe;QACxB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACnC,OAAO,EAAE,OAAO;QAChB,OAAO,EAAE,OAAO;KACjB,CAAC,CAAC;IAEH,gBAAgB,CAAC,SAAS,EAAE,KAAK,IAAI,EAAE;QACrC,cAAc,CAAC,KAAK,EAAE,CAAC;QACvB,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;IACvB,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"create-server.d.ts","sourceRoot":"","sources":["../src/create-server.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAGpE,OAAO,EAAuB,eAAe,EAAE,MAAM,aAAa,CAAC;AAEnE,OAAO,EAAmB,KAAK,SAAS,EAAE,MAAM,gBAAgB,CAAC;AACjE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAG7C,eAAO,MAAM,OAAO,EAAE,MAA2C,CAAC;AAElE,MAAM,WAAW,mBAAmB;IAClC,wDAAwD;IACxD,MAAM,CAAC,EAAE,eAAe,CAAC;IACzB,2DAA2D;IAC3D,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,2DAA2D;IAC3D,SAAS,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IAC7B,2DAA2D;IAC3D,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,gGAAgG;IAChG,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,0CAA0C;IAC1C,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAOD;;GAEG;AACH,wBAAgB,eAAe,CAAC,IAAI,CAAC,EAAE,mBAAmB,GAAG;IAAE,MAAM,EAAE,SAAS,CAAC;IAAC,SAAS,EAAE,SAAS,CAAA;CAAE,CAgHvG"}
1
+ {"version":3,"file":"create-server.d.ts","sourceRoot":"","sources":["../src/create-server.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAGpE,OAAO,EAAuB,eAAe,EAAE,MAAM,aAAa,CAAC;AAEnE,OAAO,EAAmB,KAAK,SAAS,EAAE,MAAM,gBAAgB,CAAC;AACjE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAG7C,eAAO,MAAM,OAAO,EAAE,MAA2C,CAAC;AAElE,MAAM,WAAW,mBAAmB;IAClC,wDAAwD;IACxD,MAAM,CAAC,EAAE,eAAe,CAAC;IACzB,2DAA2D;IAC3D,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,2DAA2D;IAC3D,SAAS,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IAC7B,2DAA2D;IAC3D,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,gGAAgG;IAChG,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,0CAA0C;IAC1C,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAOD;;GAEG;AACH,wBAAgB,eAAe,CAAC,IAAI,CAAC,EAAE,mBAAmB,GAAG;IAAE,MAAM,EAAE,SAAS,CAAC;IAAC,SAAS,EAAE,SAAS,CAAA;CAAE,CAsHvG"}
@@ -32,8 +32,14 @@ export function createMcpServer(opts) {
32
32
  name: 'onesource-api',
33
33
  version: VERSION,
34
34
  });
35
+ // Tools that operate on the module-level x402 singleton.
36
+ // Safe in stdio (single user = singleton owner); unsafe in HTTP mode
37
+ // where multiple users share one process and do not own that singleton.
38
+ const SINGLETON_TOOLS = new Set(['1s_payment_mode', '1s_refund']);
35
39
  // Register all tools with analytics instrumentation
36
40
  for (const tool of allTools) {
41
+ if (transport !== 'stdio' && SINGLETON_TOOLS.has(tool.name))
42
+ continue;
37
43
  server.registerTool(tool.name, {
38
44
  description: tool.description,
39
45
  inputSchema: tool.schema,
@@ -1 +1 @@
1
- {"version":3,"file":"create-server.js","sourceRoot":"","sources":["../src/create-server.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,mBAAmB,EAAmB,MAAM,aAAa,CAAC;AACnE,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAkB,MAAM,gBAAgB,CAAC;AAGjE,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC/C,MAAM,CAAC,MAAM,OAAO,GAAW,OAAO,CAAC,iBAAiB,CAAC,CAAC,OAAO,CAAC;AAiBlE,SAAS,WAAW,CAAC,SAA6B;IAChD,IAAI,CAAC,SAAS;QAAE,OAAO,SAAS,CAAC;IACjC,OAAO,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AAC3E,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,IAA0B;IACxD,MAAM,MAAM,GAAG,IAAI,EAAE,MAAM,IAAI,mBAAmB,EAAE,CAAC;IACrD,MAAM,SAAS,GAAG,IAAI,EAAE,SAAS,IAAI,eAAe,EAAE,CAAC;IACvD,MAAM,SAAS,GAAG,IAAI,EAAE,SAAS,CAAC;IAElC,kEAAkE;IAClE,MAAM,UAAU,GAAe,IAAI,EAAE,UAAU,IAAI,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;IAEzF,kFAAkF;IAClF,MAAM,QAAQ,GAAG,qBAAqB,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,IAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;IAE/F,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC;QAC3B,IAAI,EAAE,eAAe;QACrB,OAAO,EAAE,OAAO;KACjB,CAAC,CAAC;IAEH,oDAAoD;IACpD,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE,CAAC;QAC5B,MAAM,CAAC,YAAY,CACjB,IAAI,CAAC,IAAI,EACT;YACE,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,WAAW,EAAE,IAAI,CAAC,MAAM;SACzB,EACD,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;YACrB,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;YAChC,MAAM,WAAW,GAAG,KAAgC,CAAC;YACrD,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YAC3C,MAAM,OAAO,GAAG,WAAW,CAAC,OAA6B,CAAC;YAC1D,MAAM,WAAW,GAAG,WAAW,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;YACjD,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,gBAAgB,EAAE,CAAC;YAEpD,sFAAsF;YACtF,MAAM,UAAU,GAAG,MAAM,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;YAE3D,UAAU,CAAC,WAAW,GAAG,CAAC,KAAK,EAAE,EAAE;gBACjC,SAAS,CAAC,SAAS,CAAC;oBAClB,IAAI,EAAE,WAAW;oBACjB,OAAO,EAAE,eAAe;oBACxB,IAAI,EAAE,KAAK,CAAC,IAAI;oBAChB,WAAW,EAAE,KAAK,CAAC,WAAW;oBAC9B,kBAAkB,EAAE,KAAK,CAAC,kBAAkB;oBAC5C,aAAa,EAAE,KAAK,CAAC,aAAa;oBAClC,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;oBACnC,UAAU,EAAE,WAAW;iBACxB,CAAC,CAAC;YACL,CAAC,CAAC;YAEF,IAAI,CAAC;gBACH,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;gBACzD,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,CAAC;gBAEzD,SAAS,CAAC,SAAS,CAAC;oBAClB,IAAI,EAAE,WAAW;oBACjB,OAAO,EAAE,eAAe;oBACxB,IAAI,EAAE,IAAI,CAAC,IAAI;oBACf,QAAQ,EAAE,IAAI,CAAC,QAAQ;oBACvB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;oBACnC,WAAW,EAAE,UAAU;oBACvB,OAAO,EAAE,IAAI;oBACb,OAAO;oBACP,YAAY,EAAE,SAAS;oBACvB,aAAa,EAAE,IAAI,CAAC,MAAM;oBAC1B,OAAO,EAAE,OAAO;oBAChB,WAAW,EAAE,UAAU;oBACvB,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBAC5C,WAAW,EAAE,UAAU,EAAE,IAAI;oBAC7B,cAAc,EAAE,UAAU,EAAE,OAAO;oBACnC,UAAU,EAAE,WAAW;oBACvB,SAAS;iBACV,CAAC,CAAC;gBAEH,OAAO;oBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;iBAClC,CAAC;YACJ,CAAC;YAAC,OAAO,GAAY,EAAE,CAAC;gBACtB,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,CAAC;gBACzD,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBAEjE,SAAS,CAAC,SAAS,CAAC;oBAClB,IAAI,EAAE,WAAW;oBACjB,OAAO,EAAE,eAAe;oBACxB,IAAI,EAAE,IAAI,CAAC,IAAI;oBACf,QAAQ,EAAE,IAAI,CAAC,QAAQ;oBACvB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;oBACnC,WAAW,EAAE,UAAU;oBACvB,OAAO,EAAE,KAAK;oBACd,cAAc,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,iBAAiB,EAAE,OAAO,CAAC;oBACzE,OAAO;oBACP,YAAY,EAAE,SAAS;oBACvB,aAAa,EAAE,CAAC;oBAChB,OAAO,EAAE,OAAO;oBAChB,WAAW,EAAE,UAAU;oBACvB,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBAC5C,WAAW,EAAE,UAAU,EAAE,IAAI;oBAC7B,cAAc,EAAE,UAAU,EAAE,OAAO;oBACnC,UAAU,EAAE,WAAW;oBACvB,SAAS;iBACV,CAAC,CAAC;gBAEH,OAAO;oBACL,OAAO,EAAE,IAAI;oBACb,OAAO,EAAE;wBACP,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,eAAe,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,EAAE;qBAC/D;iBACF,CAAC;YACJ,CAAC;QACH,CAAC,CACF,CAAC;IACJ,CAAC;IAED,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;AAC/B,CAAC"}
1
+ {"version":3,"file":"create-server.js","sourceRoot":"","sources":["../src/create-server.ts"],"names":[],"mappings":"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"}
package/dist/x402.d.ts CHANGED
@@ -15,6 +15,18 @@ export interface PaymentModeInfo {
15
15
  batchAvailable: boolean;
16
16
  }
17
17
  export declare function setupX402(): X402SetupResult;
18
+ /**
19
+ * Create an isolated x402 payment instance from an explicit private key.
20
+ *
21
+ * Unlike {@link setupX402}, this function:
22
+ * - accepts privateKey as a parameter instead of reading process.env
23
+ * - creates fresh local state and does not touch any module-level singleton
24
+ * - is safe to call concurrently from multiple HTTP requests
25
+ *
26
+ * Returns the same {@link X402SetupResult} shape as setupX402(). Uses exact-mode
27
+ * payment only — batch is session-scoped and not applicable per-request.
28
+ */
29
+ export declare function createX402(rawKey: string): X402SetupResult;
18
30
  /** Current payment scheme. */
19
31
  export declare function getPaymentMode(): PaymentMode;
20
32
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"x402.d.ts","sourceRoot":"","sources":["../src/x402.ts"],"names":[],"mappings":"AA6BA,MAAM,MAAM,WAAW,GAAG,OAAO,GAAG,OAAO,CAAC;AAkB5C,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,OAAO,UAAU,CAAC,KAAK,CAAC;CACjC;AAED,MAAM,WAAW,eAAe;IAC9B,6DAA6D;IAC7D,OAAO,EAAE,OAAO,CAAC;IACjB,8BAA8B;IAC9B,IAAI,EAAE,WAAW,CAAC;IAClB,0CAA0C;IAC1C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,6EAA6E;IAC7E,cAAc,EAAE,OAAO,CAAC;CACzB;AAiCD,wBAAgB,SAAS,IAAI,eAAe,CAkF3C;AA4BD,8BAA8B;AAC9B,wBAAgB,cAAc,IAAI,WAAW,CAE5C;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,WAAW,GAAG,WAAW,CAK7D;AAED,8DAA8D;AAC9D,wBAAgB,kBAAkB,IAAI,eAAe,CAEpD;AAuBD,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,OAAO,CAAC;IACZ,oEAAoE;IACpE,OAAO,EAAE,MAAM,CAAC;IAChB,8DAA8D;IAC9D,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAWD;;;;;;;;;;GAUG;AACH,wBAAsB,kBAAkB,IAAI,OAAO,CAAC,YAAY,CAAC,CAgDhE"}
1
+ {"version":3,"file":"x402.d.ts","sourceRoot":"","sources":["../src/x402.ts"],"names":[],"mappings":"AA6BA,MAAM,MAAM,WAAW,GAAG,OAAO,GAAG,OAAO,CAAC;AAkB5C,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,OAAO,UAAU,CAAC,KAAK,CAAC;CACjC;AAED,MAAM,WAAW,eAAe;IAC9B,6DAA6D;IAC7D,OAAO,EAAE,OAAO,CAAC;IACjB,8BAA8B;IAC9B,IAAI,EAAE,WAAW,CAAC;IAClB,0CAA0C;IAC1C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,6EAA6E;IAC7E,cAAc,EAAE,OAAO,CAAC;CACzB;AAiCD,wBAAgB,SAAS,IAAI,eAAe,CAkF3C;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,eAAe,CAa1D;AA4BD,8BAA8B;AAC9B,wBAAgB,cAAc,IAAI,WAAW,CAE5C;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,WAAW,GAAG,WAAW,CAK7D;AAED,8DAA8D;AAC9D,wBAAgB,kBAAkB,IAAI,eAAe,CAEpD;AAuBD,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,OAAO,CAAC;IACZ,oEAAoE;IACpE,OAAO,EAAE,MAAM,CAAC;IAChB,8DAA8D;IAC9D,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAWD;;;;;;;;;;GAUG;AACH,wBAAsB,kBAAkB,IAAI,OAAO,CAAC,YAAY,CAAC,CAgDhE"}
package/dist/x402.js CHANGED
@@ -147,6 +147,29 @@ export function setupX402() {
147
147
  _cachedResult = { enabled: true, address: account.address, fetch: dispatchFetch };
148
148
  return _cachedResult;
149
149
  }
150
+ /**
151
+ * Create an isolated x402 payment instance from an explicit private key.
152
+ *
153
+ * Unlike {@link setupX402}, this function:
154
+ * - accepts privateKey as a parameter instead of reading process.env
155
+ * - creates fresh local state and does not touch any module-level singleton
156
+ * - is safe to call concurrently from multiple HTTP requests
157
+ *
158
+ * Returns the same {@link X402SetupResult} shape as setupX402(). Uses exact-mode
159
+ * payment only — batch is session-scoped and not applicable per-request.
160
+ */
161
+ export function createX402(rawKey) {
162
+ if (!rawKey?.trim())
163
+ return { enabled: false };
164
+ const privateKey = rawKey.startsWith('0x')
165
+ ? rawKey
166
+ : `0x${rawKey}`;
167
+ const account = privateKeyToAccount(privateKey);
168
+ const client = new x402Client();
169
+ registerExactEvmScheme(client, { signer: account });
170
+ const exactFetch = wrapFetchWithPayment(fetch, client);
171
+ return { enabled: true, address: account.address, fetch: exactFetch };
172
+ }
150
173
  // isDeadChannel402 reports whether a response is a "this channel can't be
151
174
  // reused" rejection — the deterministic channelId is exhausted or was refunded,
152
175
  // so the voucher's cumulative can't be backed. Detected from the gateway's 402