@dominusnode/mcp-server 1.3.0 → 1.5.2
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 +57 -56
- package/dist/src/config.d.ts.map +1 -1
- package/dist/src/config.js +16 -6
- package/dist/src/config.js.map +1 -1
- package/dist/src/http-client.d.ts.map +1 -1
- package/dist/src/http-client.js +24 -5
- package/dist/src/http-client.js.map +1 -1
- package/dist/src/index.js +13 -7
- package/dist/src/index.js.map +1 -1
- package/dist/src/proxy-fetch.d.ts.map +1 -1
- package/dist/src/proxy-fetch.js +51 -13
- package/dist/src/proxy-fetch.js.map +1 -1
- package/dist/src/token-manager.d.ts.map +1 -1
- package/dist/src/token-manager.js.map +1 -1
- package/dist/src/tools/account.d.ts.map +1 -1
- package/dist/src/tools/account.js +172 -35
- package/dist/src/tools/account.js.map +1 -1
- package/dist/src/tools/agent-wallet.d.ts.map +1 -1
- package/dist/src/tools/agent-wallet.js +164 -36
- package/dist/src/tools/agent-wallet.js.map +1 -1
- package/dist/src/tools/crypto.d.ts.map +1 -1
- package/dist/src/tools/crypto.js +57 -11
- package/dist/src/tools/crypto.js.map +1 -1
- package/dist/src/tools/fetch.d.ts.map +1 -1
- package/dist/src/tools/fetch.js +32 -10
- package/dist/src/tools/fetch.js.map +1 -1
- package/dist/src/tools/keys.d.ts.map +1 -1
- package/dist/src/tools/keys.js +49 -10
- package/dist/src/tools/keys.js.map +1 -1
- package/dist/src/tools/mpp.d.ts.map +1 -1
- package/dist/src/tools/mpp.js +72 -15
- package/dist/src/tools/mpp.js.map +1 -1
- package/dist/src/tools/paypal.d.ts.map +1 -1
- package/dist/src/tools/paypal.js +20 -4
- package/dist/src/tools/paypal.js.map +1 -1
- package/dist/src/tools/plans.d.ts.map +1 -1
- package/dist/src/tools/plans.js +23 -4
- package/dist/src/tools/plans.js.map +1 -1
- package/dist/src/tools/proxy.d.ts.map +1 -1
- package/dist/src/tools/proxy.js +15 -3
- package/dist/src/tools/proxy.js.map +1 -1
- package/dist/src/tools/sessions.d.ts.map +1 -1
- package/dist/src/tools/sessions.js +14 -2
- package/dist/src/tools/sessions.js.map +1 -1
- package/dist/src/tools/slots.d.ts.map +1 -1
- package/dist/src/tools/slots.js +37 -6
- package/dist/src/tools/slots.js.map +1 -1
- package/dist/src/tools/stripe.d.ts.map +1 -1
- package/dist/src/tools/stripe.js +20 -4
- package/dist/src/tools/stripe.js.map +1 -1
- package/dist/src/tools/teams.d.ts.map +1 -1
- package/dist/src/tools/teams.js +266 -66
- package/dist/src/tools/teams.js.map +1 -1
- package/dist/src/tools/usage.d.ts.map +1 -1
- package/dist/src/tools/usage.js +42 -9
- package/dist/src/tools/usage.js.map +1 -1
- package/dist/src/tools/wallet-auth.d.ts.map +1 -1
- package/dist/src/tools/wallet-auth.js +75 -13
- package/dist/src/tools/wallet-auth.js.map +1 -1
- package/dist/src/tools/wallet.d.ts.map +1 -1
- package/dist/src/tools/wallet.js +21 -4
- package/dist/src/tools/wallet.js.map +1 -1
- package/dist/src/types.d.ts.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -163,6 +163,7 @@ Start without any configuration — the agent creates its own account:
|
|
|
163
163
|
```
|
|
164
164
|
|
|
165
165
|
Available bootstrap tools:
|
|
166
|
+
|
|
166
167
|
- `dominusnode_setup` — one-shot: solve PoW, register, verify email, create API key
|
|
167
168
|
- `dominusnode_register` / `dominusnode_login` — step-by-step (auto-solves PoW)
|
|
168
169
|
- `dominusnode_create_agent_secret` — create a per-agent secret (`das_*`) for elevated privileges
|
|
@@ -174,90 +175,90 @@ Available bootstrap tools:
|
|
|
174
175
|
|
|
175
176
|
### Proxy
|
|
176
177
|
|
|
177
|
-
| Tool
|
|
178
|
-
|
|
179
|
-
| `dominusnode_fetch`
|
|
180
|
-
| `dominusnode_get_proxy_config` | Proxy endpoints and geo options
|
|
181
|
-
| `dominusnode_get_proxy_status` | Live status, latency, providers
|
|
178
|
+
| Tool | Description |
|
|
179
|
+
| ------------------------------ | ------------------------------------------------------------ |
|
|
180
|
+
| `dominusnode_fetch` | Fetch URL through rotating proxy (HTTP/HTTPS, geo-targeting) |
|
|
181
|
+
| `dominusnode_get_proxy_config` | Proxy endpoints and geo options |
|
|
182
|
+
| `dominusnode_get_proxy_status` | Live status, latency, providers |
|
|
182
183
|
|
|
183
184
|
### Account (Self-Service)
|
|
184
185
|
|
|
185
|
-
| Tool
|
|
186
|
-
|
|
187
|
-
| `dominusnode_register`
|
|
188
|
-
| `dominusnode_login`
|
|
189
|
-
| `dominusnode_setup`
|
|
190
|
-
| `dominusnode_get_account_info`
|
|
191
|
-
| `dominusnode_create_agent_secret` | Create per-agent secret (`das_*`) for elevated privileges
|
|
186
|
+
| Tool | Description |
|
|
187
|
+
| --------------------------------- | -------------------------------------------------------------- |
|
|
188
|
+
| `dominusnode_register` | Create a new account (auto-solves PoW, no CAPTCHA needed) |
|
|
189
|
+
| `dominusnode_login` | Login with email/password |
|
|
190
|
+
| `dominusnode_setup` | One-shot: solve PoW + register + verify email + create API key |
|
|
191
|
+
| `dominusnode_get_account_info` | Account email, status, MFA |
|
|
192
|
+
| `dominusnode_create_agent_secret` | Create per-agent secret (`das_*`) for elevated privileges |
|
|
192
193
|
|
|
193
194
|
### Billing
|
|
194
195
|
|
|
195
|
-
| Tool
|
|
196
|
-
|
|
197
|
-
| `dominusnode_get_balance`
|
|
198
|
-
| `dominusnode_get_forecast`
|
|
199
|
-
| `dominusnode_get_transactions` | Transaction history (paginated)
|
|
196
|
+
| Tool | Description |
|
|
197
|
+
| ------------------------------ | --------------------------------- |
|
|
198
|
+
| `dominusnode_get_balance` | Wallet balance in USD |
|
|
199
|
+
| `dominusnode_get_forecast` | Spending forecast, days remaining |
|
|
200
|
+
| `dominusnode_get_transactions` | Transaction history (paginated) |
|
|
200
201
|
|
|
201
202
|
### Crypto Payments
|
|
202
203
|
|
|
203
|
-
| Tool
|
|
204
|
-
|
|
205
|
-
| `dominusnode_pay_crypto`
|
|
206
|
-
| `dominusnode_check_payment` | Check crypto payment status
|
|
204
|
+
| Tool | Description |
|
|
205
|
+
| --------------------------- | ---------------------------------------------------------------------- |
|
|
206
|
+
| `dominusnode_pay_crypto` | Create crypto invoice (BTC/ETH/LTC/XMR/ZEC/USDC/SOL/USDT/DAI/BNB/LINK) |
|
|
207
|
+
| `dominusnode_check_payment` | Check crypto payment status |
|
|
207
208
|
|
|
208
209
|
### x402 & Agentic Wallets
|
|
209
210
|
|
|
210
|
-
| Tool
|
|
211
|
-
|
|
212
|
-
| `dominusnode_x402_info`
|
|
213
|
-
| `dominusnode_agent_wallet_create`
|
|
214
|
-
| `dominusnode_agent_wallet_balance` | Check agentic wallet balance and budget
|
|
211
|
+
| Tool | Description |
|
|
212
|
+
| ---------------------------------- | --------------------------------------------------- |
|
|
213
|
+
| `dominusnode_x402_info` | Get x402 micropayment protocol info |
|
|
214
|
+
| `dominusnode_agent_wallet_create` | Create Coinbase Agentic Wallet with spending limits |
|
|
215
|
+
| `dominusnode_agent_wallet_balance` | Check agentic wallet balance and budget |
|
|
215
216
|
|
|
216
217
|
### Usage
|
|
217
218
|
|
|
218
|
-
| Tool
|
|
219
|
-
|
|
220
|
-
| `dominusnode_get_usage`
|
|
221
|
-
| `dominusnode_get_daily_usage` | Daily bandwidth breakdown
|
|
222
|
-
| `dominusnode_get_top_hosts`
|
|
219
|
+
| Tool | Description |
|
|
220
|
+
| ----------------------------- | ------------------------------------- |
|
|
221
|
+
| `dominusnode_get_usage` | Usage summary (bytes, cost, requests) |
|
|
222
|
+
| `dominusnode_get_daily_usage` | Daily bandwidth breakdown |
|
|
223
|
+
| `dominusnode_get_top_hosts` | Top target hosts by bandwidth |
|
|
223
224
|
|
|
224
225
|
### API Keys
|
|
225
226
|
|
|
226
|
-
| Tool
|
|
227
|
-
|
|
228
|
-
| `dominusnode_list_keys`
|
|
227
|
+
| Tool | Description |
|
|
228
|
+
| ------------------------ | ------------------------------- |
|
|
229
|
+
| `dominusnode_list_keys` | List API keys |
|
|
229
230
|
| `dominusnode_create_key` | Create new API key (shown once) |
|
|
230
|
-
| `dominusnode_revoke_key` | Revoke API key by ID
|
|
231
|
+
| `dominusnode_revoke_key` | Revoke API key by ID |
|
|
231
232
|
|
|
232
233
|
### Plans & Sessions
|
|
233
234
|
|
|
234
|
-
| Tool
|
|
235
|
-
|
|
236
|
-
| `dominusnode_get_plan`
|
|
237
|
-
| `dominusnode_list_plans`
|
|
238
|
-
| `dominusnode_get_active_sessions` | Active proxy sessions
|
|
235
|
+
| Tool | Description |
|
|
236
|
+
| --------------------------------- | ------------------------------ |
|
|
237
|
+
| `dominusnode_get_plan` | Current plan and monthly usage |
|
|
238
|
+
| `dominusnode_list_plans` | Available pricing plans |
|
|
239
|
+
| `dominusnode_get_active_sessions` | Active proxy sessions |
|
|
239
240
|
|
|
240
241
|
## Environment Variables
|
|
241
242
|
|
|
242
|
-
| Variable
|
|
243
|
-
|
|
244
|
-
| `DOMINUSNODE_API_KEY`
|
|
245
|
-
| `DOMINUSNODE_API_URL`
|
|
246
|
-
| `DOMINUSNODE_PROXY_HOST`
|
|
247
|
-
| `DOMINUSNODE_HTTP_PROXY_PORT`
|
|
248
|
-
| `DOMINUSNODE_SOCKS5_PROXY_PORT`
|
|
249
|
-
| `DOMINUSNODE_FETCH_TIMEOUT_MS`
|
|
250
|
-
| `DOMINUSNODE_FETCH_MAX_RESPONSE_BYTES` | No
|
|
251
|
-
| `MCP_AGENT_SECRET`
|
|
243
|
+
| Variable | Required | Default | Description |
|
|
244
|
+
| -------------------------------------- | -------- | ----------------------------- | ---------------------------------------------- |
|
|
245
|
+
| `DOMINUSNODE_API_KEY` | No | — | API key (omit for bootstrap mode) |
|
|
246
|
+
| `DOMINUSNODE_API_URL` | No | `https://api.dominusnode.com` | REST API base URL |
|
|
247
|
+
| `DOMINUSNODE_PROXY_HOST` | No | `proxy.dominusnode.com` | Proxy gateway host |
|
|
248
|
+
| `DOMINUSNODE_HTTP_PROXY_PORT` | No | `8080` | HTTP proxy port |
|
|
249
|
+
| `DOMINUSNODE_SOCKS5_PROXY_PORT` | No | `1080` | SOCKS5 proxy port |
|
|
250
|
+
| `DOMINUSNODE_FETCH_TIMEOUT_MS` | No | `30000` | Proxy fetch timeout (max 120000) |
|
|
251
|
+
| `DOMINUSNODE_FETCH_MAX_RESPONSE_BYTES` | No | `5242880` | Max response body (5MB) |
|
|
252
|
+
| `MCP_AGENT_SECRET` | No | — | Global agent secret for first-party MCP agents |
|
|
252
253
|
|
|
253
254
|
## Pricing
|
|
254
255
|
|
|
255
|
-
| Tier
|
|
256
|
-
|
|
257
|
-
| Free
|
|
258
|
-
| Pay-as-you-go | $5/GB | Unlimited
|
|
259
|
-
| Volume 100GB
|
|
260
|
-
| Volume 1TB
|
|
256
|
+
| Tier | Price | Bandwidth |
|
|
257
|
+
| ------------- | ----- | -------------------------- |
|
|
258
|
+
| Free | $0 | 1 GB/month, 10 connections |
|
|
259
|
+
| Pay-as-you-go | $5/GB | Unlimited |
|
|
260
|
+
| Volume 100GB | $4/GB | 100 GB/month |
|
|
261
|
+
| Volume 1TB | $3/GB | 1 TB/month |
|
|
261
262
|
|
|
262
263
|
Crypto payments: BTC, ETH, LTC, XMR, ZEC, USDC, SOL, USDT, DAI, BNB, LINK
|
|
263
264
|
|
package/dist/src/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/config.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,SAAS;IACxB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,eAAe,EAAE,MAAM,CAAC;IACxB,cAAc,EAAE,MAAM,CAAC;IACvB,qBAAqB,EAAE,MAAM,CAAC;IAC9B,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,qBAAa,WAAY,SAAQ,KAAK;gBACxB,OAAO,EAAE,MAAM;CAI5B;AAED,wBAAgB,WAAW,
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/config.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,SAAS;IACxB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,eAAe,EAAE,MAAM,CAAC;IACxB,cAAc,EAAE,MAAM,CAAC;IACvB,qBAAqB,EAAE,MAAM,CAAC;IAC9B,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,qBAAa,WAAY,SAAQ,KAAK;gBACxB,OAAO,EAAE,MAAM;CAI5B;AAED,wBAAgB,WAAW,CACzB,GAAG,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAe,GACpD,SAAS,CAwJX"}
|
package/dist/src/config.js
CHANGED
|
@@ -14,11 +14,13 @@ export function parseConfig(env = process.env) {
|
|
|
14
14
|
// Validate API URL protocol to prevent credential leakage to non-HTTPS endpoints
|
|
15
15
|
try {
|
|
16
16
|
const parsedApiUrl = new URL(apiUrl);
|
|
17
|
-
if (parsedApiUrl.protocol !== "https:" &&
|
|
17
|
+
if (parsedApiUrl.protocol !== "https:" &&
|
|
18
|
+
parsedApiUrl.protocol !== "http:") {
|
|
18
19
|
throw new ConfigError("DOMINUSNODE_API_URL must use http: or https: protocol");
|
|
19
20
|
}
|
|
20
21
|
// Warn when http: is used for non-localhost (credentials sent in plaintext)
|
|
21
|
-
if (parsedApiUrl.protocol === "http:" &&
|
|
22
|
+
if (parsedApiUrl.protocol === "http:" &&
|
|
23
|
+
!["localhost", "127.0.0.1", "[::1]"].includes(parsedApiUrl.hostname)) {
|
|
22
24
|
process.stderr.write("WARNING: DOMINUSNODE_API_URL uses http: — credentials will be sent in plaintext. Use https: in production.\n");
|
|
23
25
|
}
|
|
24
26
|
}
|
|
@@ -37,8 +39,12 @@ export function parseConfig(env = process.env) {
|
|
|
37
39
|
}
|
|
38
40
|
// Block bare localhost and other loopback/private hostnames
|
|
39
41
|
const BLOCKED_PROXY_HOSTS = new Set([
|
|
40
|
-
"localhost",
|
|
41
|
-
"
|
|
42
|
+
"localhost",
|
|
43
|
+
"localhost.localdomain",
|
|
44
|
+
"ip6-localhost",
|
|
45
|
+
"ip6-loopback",
|
|
46
|
+
"0.0.0.0",
|
|
47
|
+
"127.0.0.1",
|
|
42
48
|
]);
|
|
43
49
|
const proxyHostLower = proxyHost.toLowerCase();
|
|
44
50
|
if (BLOCKED_PROXY_HOSTS.has(proxyHostLower) ||
|
|
@@ -52,12 +58,16 @@ export function parseConfig(env = process.env) {
|
|
|
52
58
|
if (ipMatch) {
|
|
53
59
|
// Block octal notation IPs (e.g., 0177.0.0.1) to prevent private IP bypass
|
|
54
60
|
const octets = [ipMatch[1], ipMatch[2], ipMatch[3], ipMatch[4]];
|
|
55
|
-
if (octets.some(o => o.startsWith("0") && o.length > 1)) {
|
|
61
|
+
if (octets.some((o) => o.startsWith("0") && o.length > 1)) {
|
|
56
62
|
throw new ConfigError("DOMINUSNODE_PROXY_HOST must not use octal IP notation");
|
|
57
63
|
}
|
|
58
64
|
const a = parseInt(ipMatch[1], 10);
|
|
59
65
|
const b = parseInt(ipMatch[2], 10);
|
|
60
|
-
if (a === 127 ||
|
|
66
|
+
if (a === 127 ||
|
|
67
|
+
a === 10 ||
|
|
68
|
+
a === 0 ||
|
|
69
|
+
(a === 172 && b >= 16 && b <= 31) ||
|
|
70
|
+
(a === 192 && b === 168)) {
|
|
61
71
|
throw new ConfigError("DOMINUSNODE_PROXY_HOST must not be a private/loopback IP address");
|
|
62
72
|
}
|
|
63
73
|
}
|
package/dist/src/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/config.ts"],"names":[],"mappings":"AAWA,MAAM,OAAO,WAAY,SAAQ,KAAK;IACpC,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,aAAa,CAAC;IAC5B,CAAC;CACF;AAED,MAAM,UAAU,WAAW,
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/config.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http-client.d.ts","sourceRoot":"","sources":["../../src/http-client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"http-client.d.ts","sourceRoot":"","sources":["../../src/http-client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AA4FvD,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED,qBAAa,UAAU;IAKnB,OAAO,CAAC,OAAO;IACf,OAAO,CAAC,YAAY;IALtB,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,cAAc,CAAS;gBAGrB,OAAO,EAAE,MAAM,EACf,YAAY,EAAE,YAAY,EAClC,cAAc,SAAK;IASf,OAAO,CAAC,CAAC,EAAE,IAAI,EAAE,kBAAkB,GAAG,OAAO,CAAC,CAAC,CAAC;IAsLtD,qFAAqF;IACrF,WAAW,CAAC,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,IAAI;IAItD,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,YAAY,UAAO,GAAG,OAAO,CAAC,CAAC,CAAC;IAIrD,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,EAAE,YAAY,UAAO,GAAG,OAAO,CAAC,CAAC,CAAC;IAItE,KAAK,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC;IAIlD,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC;IAIhD,MAAM,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC;CAG1C"}
|
package/dist/src/http-client.js
CHANGED
|
@@ -93,7 +93,16 @@ export class HttpClient {
|
|
|
93
93
|
throw new Error("MCP rate limit exceeded — too many requests. Please slow down.");
|
|
94
94
|
}
|
|
95
95
|
// Protect base headers from user override
|
|
96
|
-
const PROTECTED_HEADERS = new Set([
|
|
96
|
+
const PROTECTED_HEADERS = new Set([
|
|
97
|
+
"user-agent",
|
|
98
|
+
"content-type",
|
|
99
|
+
"authorization",
|
|
100
|
+
"host",
|
|
101
|
+
"connection",
|
|
102
|
+
"content-length",
|
|
103
|
+
"x-dominusnode-agent",
|
|
104
|
+
"x-dominusnode-agent-secret",
|
|
105
|
+
]);
|
|
97
106
|
const headers = {
|
|
98
107
|
"User-Agent": USER_AGENT,
|
|
99
108
|
"Content-Type": "application/json",
|
|
@@ -200,9 +209,14 @@ export class HttpClient {
|
|
|
200
209
|
try {
|
|
201
210
|
// Use safeJsonParse to prevent prototype pollution on error paths
|
|
202
211
|
const parsed = safeJsonParse(retryBody);
|
|
203
|
-
retryMessage =
|
|
212
|
+
retryMessage =
|
|
213
|
+
parsed.error ??
|
|
214
|
+
parsed.message ??
|
|
215
|
+
retryBody.slice(0, 500);
|
|
216
|
+
}
|
|
217
|
+
catch {
|
|
218
|
+
/* use raw text */
|
|
204
219
|
}
|
|
205
|
-
catch { /* use raw text */ }
|
|
206
220
|
throw new Error(scrubCredentials(`API error ${retry.status}: ${retryMessage}`));
|
|
207
221
|
}
|
|
208
222
|
const responseText = await response.text();
|
|
@@ -215,9 +229,14 @@ export class HttpClient {
|
|
|
215
229
|
try {
|
|
216
230
|
// Use safeJsonParse to prevent prototype pollution on error paths
|
|
217
231
|
const parsed = safeJsonParse(responseText);
|
|
218
|
-
message =
|
|
232
|
+
message =
|
|
233
|
+
parsed.error ??
|
|
234
|
+
parsed.message ??
|
|
235
|
+
responseText.slice(0, 500);
|
|
236
|
+
}
|
|
237
|
+
catch {
|
|
238
|
+
/* use raw text */
|
|
219
239
|
}
|
|
220
|
-
catch { /* use raw text */ }
|
|
221
240
|
throw new Error(scrubCredentials(`API error ${response.status}: ${message}`));
|
|
222
241
|
}
|
|
223
242
|
return responseText ? safeJsonParse(responseText) : {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http-client.js","sourceRoot":"","sources":["../../src/http-client.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"http-client.js","sourceRoot":"","sources":["../../src/http-client.ts"],"names":[],"mappings":"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"}
|
package/dist/src/index.js
CHANGED
|
@@ -44,12 +44,18 @@ async function main() {
|
|
|
44
44
|
function cleanupCredentials() {
|
|
45
45
|
tokenManager.clear();
|
|
46
46
|
}
|
|
47
|
-
process.on("SIGINT", () => {
|
|
48
|
-
|
|
47
|
+
process.on("SIGINT", () => {
|
|
48
|
+
cleanupCredentials();
|
|
49
|
+
process.exit(0);
|
|
50
|
+
});
|
|
51
|
+
process.on("SIGTERM", () => {
|
|
52
|
+
cleanupCredentials();
|
|
53
|
+
process.exit(0);
|
|
54
|
+
});
|
|
49
55
|
process.on("exit", cleanupCredentials);
|
|
50
56
|
const server = new McpServer({
|
|
51
57
|
name: "dominusnode",
|
|
52
|
-
version: "1.
|
|
58
|
+
version: "1.5.2",
|
|
53
59
|
});
|
|
54
60
|
const bootstrapMode = config.apiKey === null;
|
|
55
61
|
if (bootstrapMode) {
|
|
@@ -73,7 +79,7 @@ async function main() {
|
|
|
73
79
|
const transport = new StdioServerTransport();
|
|
74
80
|
await server.connect(transport);
|
|
75
81
|
process.stderr.write("Dominus Node MCP Server ready — bootstrap mode (22 tools + bootstrap helper)\n");
|
|
76
|
-
process.stderr.write("Run dominusnode_setup or dominusnode_wallet_setup to create an account and unlock all
|
|
82
|
+
process.stderr.write("Run dominusnode_setup or dominusnode_wallet_setup to create an account and unlock all 67 tools.\n");
|
|
77
83
|
}
|
|
78
84
|
else {
|
|
79
85
|
// ── Authenticated Mode ──────────────────────────────────────────
|
|
@@ -106,7 +112,7 @@ async function main() {
|
|
|
106
112
|
registerMppTools(server, httpClient);
|
|
107
113
|
const transport = new StdioServerTransport();
|
|
108
114
|
await server.connect(transport);
|
|
109
|
-
process.stderr.write("Dominus Node MCP Server ready —
|
|
115
|
+
process.stderr.write("Dominus Node MCP Server ready — 67 tools available\n");
|
|
110
116
|
}
|
|
111
117
|
}
|
|
112
118
|
function registerBootstrapHelper(server) {
|
|
@@ -152,10 +158,10 @@ function registerBootstrapHelper(server) {
|
|
|
152
158
|
` All traffic bills to team wallet. Only lead needs payment.`,
|
|
153
159
|
``,
|
|
154
160
|
`After setup, set DOMINUSNODE_API_KEY in your environment`,
|
|
155
|
-
`to unlock all
|
|
161
|
+
`to unlock all 67 tools on next startup.`,
|
|
156
162
|
``,
|
|
157
163
|
`Email auto-verified for MCP agents — crypto payments enabled (11 currencies).`,
|
|
158
|
-
`Free tier:
|
|
164
|
+
`Free tier: 5 connections, 500MB bandwidth — no payment required.`,
|
|
159
165
|
].join("\n");
|
|
160
166
|
return { content: [{ type: "text", text }] };
|
|
161
167
|
});
|
package/dist/src/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAC;AACnE,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAElD,KAAK,UAAU,IAAI;IACjB,IAAI,MAAM,CAAC;IACX,IAAI,CAAC;QACH,MAAM,GAAG,WAAW,EAAE,CAAC;IACzB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAI,GAAG,YAAY,WAAW,EAAE,CAAC;YAC/B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,wBAAwB,GAAG,CAAC,OAAO,IAAI,CAAC,CAAC;YAC9D,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,qCAAqC,CAAC,CAAC;YAC5D,OAAO,CAAC,MAAM,CAAC,KAAK,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"proxy-fetch.d.ts","sourceRoot":"","sources":["../../src/proxy-fetch.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAE7C,MAAM,WAAW,iBAAiB;IAChC,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,IAAI,GAAG,aAAa,GAAG,MAAM,CAAC;IACzC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,EAAE,OAAO,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;CACnB;
|
|
1
|
+
{"version":3,"file":"proxy-fetch.d.ts","sourceRoot":"","sources":["../../src/proxy-fetch.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAE7C,MAAM,WAAW,iBAAiB;IAChC,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,IAAI,GAAG,aAAa,GAAG,MAAM,CAAC;IACzC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,EAAE,OAAO,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;CACnB;AAiMD,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CA+C5C;AAED,wBAAsB,UAAU,CAC9B,MAAM,EAAE,SAAS,EACjB,IAAI,EAAE,iBAAiB,GACtB,OAAO,CAAC,gBAAgB,CAAC,CAmD3B"}
|
package/dist/src/proxy-fetch.js
CHANGED
|
@@ -13,9 +13,15 @@ function validateHeaders(headers) {
|
|
|
13
13
|
}
|
|
14
14
|
}
|
|
15
15
|
const BINARY_CONTENT_TYPES = [
|
|
16
|
-
"image/",
|
|
17
|
-
"
|
|
18
|
-
"
|
|
16
|
+
"image/",
|
|
17
|
+
"audio/",
|
|
18
|
+
"video/",
|
|
19
|
+
"application/octet-stream",
|
|
20
|
+
"application/zip",
|
|
21
|
+
"application/gzip",
|
|
22
|
+
"application/pdf",
|
|
23
|
+
"application/x-tar",
|
|
24
|
+
"application/x-rar",
|
|
19
25
|
];
|
|
20
26
|
function isBinaryContentType(contentType) {
|
|
21
27
|
const lower = contentType.toLowerCase();
|
|
@@ -207,7 +213,9 @@ export function validateUrl(url) {
|
|
|
207
213
|
throw new Error("Requests to localhost/loopback addresses are blocked");
|
|
208
214
|
}
|
|
209
215
|
// Block hostnames ending in .local, .internal, .arpa
|
|
210
|
-
if (hostname.endsWith(".local") ||
|
|
216
|
+
if (hostname.endsWith(".local") ||
|
|
217
|
+
hostname.endsWith(".internal") ||
|
|
218
|
+
hostname.endsWith(".arpa")) {
|
|
211
219
|
throw new Error("Requests to internal network hostnames are blocked");
|
|
212
220
|
}
|
|
213
221
|
// DNS rebinding note — proxyFetch always routes through the upstream proxy
|
|
@@ -253,7 +261,15 @@ function httpProxyFetch(apiKey, config, opts, parsed, method, timeoutMs, maxByte
|
|
|
253
261
|
}, timeoutMs);
|
|
254
262
|
// Block smuggling-prone headers on HTTP path (matches HTTPS path blocklist)
|
|
255
263
|
// Add user-agent to blocked set (matches HTTPS path PROTECTED_HEADERS)
|
|
256
|
-
const BLOCKED_HTTP_HEADERS = new Set([
|
|
264
|
+
const BLOCKED_HTTP_HEADERS = new Set([
|
|
265
|
+
"host",
|
|
266
|
+
"connection",
|
|
267
|
+
"content-length",
|
|
268
|
+
"transfer-encoding",
|
|
269
|
+
"proxy-authorization",
|
|
270
|
+
"user-agent",
|
|
271
|
+
"authorization",
|
|
272
|
+
]);
|
|
257
273
|
const safeHttpHeaders = {};
|
|
258
274
|
if (opts.headers) {
|
|
259
275
|
for (const [key, value] of Object.entries(opts.headers)) {
|
|
@@ -277,13 +293,18 @@ function httpProxyFetch(apiKey, config, opts, parsed, method, timeoutMs, maxByte
|
|
|
277
293
|
const contentType = res.headers["content-type"] ?? "";
|
|
278
294
|
// Redact security-sensitive response headers
|
|
279
295
|
const REDACTED_RESP = new Set([
|
|
280
|
-
"set-cookie",
|
|
281
|
-
"
|
|
296
|
+
"set-cookie",
|
|
297
|
+
"www-authenticate",
|
|
298
|
+
"proxy-authenticate",
|
|
299
|
+
"authorization",
|
|
300
|
+
"proxy-authorization",
|
|
282
301
|
]);
|
|
283
302
|
const responseHeaders = {};
|
|
284
303
|
for (const [key, value] of Object.entries(res.headers)) {
|
|
285
304
|
if (value && !REDACTED_RESP.has(key))
|
|
286
|
-
responseHeaders[key] = Array.isArray(value)
|
|
305
|
+
responseHeaders[key] = Array.isArray(value)
|
|
306
|
+
? value.join(", ")
|
|
307
|
+
: value;
|
|
287
308
|
}
|
|
288
309
|
let responseBody;
|
|
289
310
|
if (isBinaryContentType(contentType)) {
|
|
@@ -323,7 +344,9 @@ function httpsProxyFetch(apiKey, config, opts, parsed, method, timeoutMs, maxByt
|
|
|
323
344
|
}, timeoutMs);
|
|
324
345
|
let socket;
|
|
325
346
|
// Step 1: CONNECT tunnel
|
|
326
|
-
const connectHost = parsed.hostname.includes(":")
|
|
347
|
+
const connectHost = parsed.hostname.includes(":")
|
|
348
|
+
? `[${parsed.hostname}]`
|
|
349
|
+
: parsed.hostname;
|
|
327
350
|
const connectReq = http.request({
|
|
328
351
|
hostname: config.proxyHost,
|
|
329
352
|
port: config.httpProxyPort,
|
|
@@ -360,7 +383,14 @@ function httpsProxyFetch(apiKey, config, opts, parsed, method, timeoutMs, maxByt
|
|
|
360
383
|
return;
|
|
361
384
|
}
|
|
362
385
|
// Set base headers first, then user headers, but block security-sensitive overrides
|
|
363
|
-
const BLOCKED_HEADERS = new Set([
|
|
386
|
+
const BLOCKED_HEADERS = new Set([
|
|
387
|
+
"host",
|
|
388
|
+
"connection",
|
|
389
|
+
"content-length",
|
|
390
|
+
"transfer-encoding",
|
|
391
|
+
"proxy-authorization",
|
|
392
|
+
"authorization",
|
|
393
|
+
]);
|
|
364
394
|
const safeUserHeaders = {};
|
|
365
395
|
if (opts.headers) {
|
|
366
396
|
for (const [key, value] of Object.entries(opts.headers)) {
|
|
@@ -370,7 +400,12 @@ function httpsProxyFetch(apiKey, config, opts, parsed, method, timeoutMs, maxByt
|
|
|
370
400
|
}
|
|
371
401
|
}
|
|
372
402
|
// Merge user headers WITHOUT allowing override of security-critical base headers
|
|
373
|
-
const PROTECTED_HEADERS = new Set([
|
|
403
|
+
const PROTECTED_HEADERS = new Set([
|
|
404
|
+
"host",
|
|
405
|
+
"user-agent",
|
|
406
|
+
"connection",
|
|
407
|
+
"content-length",
|
|
408
|
+
]);
|
|
374
409
|
const reqHeaders = {
|
|
375
410
|
Host: parsed.host,
|
|
376
411
|
"User-Agent": "dominusnode-mcp-server/1.0.0",
|
|
@@ -496,8 +531,11 @@ function parseHttpResponse(socket, maxBytes, timer) {
|
|
|
496
531
|
const statusText = statusMatch?.[2] ?? "";
|
|
497
532
|
// Redact security-sensitive response headers before returning to MCP client
|
|
498
533
|
const REDACTED_RESPONSE_HEADERS = new Set([
|
|
499
|
-
"set-cookie",
|
|
500
|
-
"
|
|
534
|
+
"set-cookie",
|
|
535
|
+
"www-authenticate",
|
|
536
|
+
"proxy-authenticate",
|
|
537
|
+
"authorization",
|
|
538
|
+
"proxy-authorization",
|
|
501
539
|
]);
|
|
502
540
|
const headers = {};
|
|
503
541
|
const headerLines = headerSection.split("\r\n").slice(1);
|