vpndetection-mcp 4.1.0 → 5.0.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.
@@ -1,6 +1,8 @@
1
1
  export declare const LOOKUP_MEMBERS: readonly string[];
2
2
  export declare const LOOKUP_GATED_MEMBERS: readonly string[];
3
- export declare const SPEC_VERSION = "2026.09.13";
3
+ export declare const SPEC_VERSION = "2026.09.15";
4
+ /** The most history rows `list_downloads` may ask for. The API clamps to the same. */
5
+ export declare const DOWNLOADS_LIMIT = 200;
4
6
  export interface ObjectSchema {
5
7
  type: 'object';
6
8
  properties?: Record<string, object>;
@@ -35,7 +35,9 @@ export const LOOKUP_GATED_MEMBERS = [
35
35
  'dcproxy',
36
36
  'mobproxy',
37
37
  ];
38
- export const SPEC_VERSION = '2026.09.13';
38
+ export const SPEC_VERSION = '2026.09.15';
39
+ /** The most history rows `list_downloads` may ask for. The API clamps to the same. */
40
+ export const DOWNLOADS_LIMIT = 200;
39
41
  export const LOOKUP_RESULT_SCHEMA = {
40
42
  "type": "object",
41
43
  "description": "The union of every plan's answer. Only `ip` and `is_vpn` are guaranteed;\neach remaining field is present when your plan includes it, and absent\notherwise. A client that must work across plans should treat an absent\nflag as unknown rather than as `false`.\n",
@@ -369,8 +371,9 @@ export const DATABASE_SCHEMA = {
369
371
  },
370
372
  "bytes": {
371
373
  "type": "integer",
374
+ "format": "int64",
372
375
  "nullable": true,
373
- "description": "Size of the published file, or null when it has not been published yet"
376
+ "description": "Size of the published file, or null when it has not been published\nyet. int64 because it is not hypothetical: resproxy_ip_14d's MMDB is\n4.58 GB, so a 32-bit field cannot carry the catalogue and `list`\nthrows for every caller rather than for that one entry.\n"
374
377
  }
375
378
  },
376
379
  "required": [
@@ -470,14 +473,16 @@ export const DATABASE_METADATA_SCHEMA = {
470
473
  "size": {
471
474
  "type": "object",
472
475
  "additionalProperties": {
473
- "type": "integer"
476
+ "type": "integer",
477
+ "format": "int64"
474
478
  },
475
479
  "description": "Bytes per format"
476
480
  },
477
481
  "sample_size": {
478
482
  "type": "object",
479
483
  "additionalProperties": {
480
- "type": "integer"
484
+ "type": "integer",
485
+ "format": "int64"
481
486
  },
482
487
  "description": "Bytes per format of the evaluation sample, where one is published"
483
488
  },
@@ -1 +1 @@
1
- {"version":3,"file":"schema.gen.js","sourceRoot":"","sources":["../src/schema.gen.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"schema.gen.js","sourceRoot":"","sources":["../src/schema.gen.ts"],"names":[],"mappings":"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"}
package/dist/tools.d.ts CHANGED
@@ -1,10 +1,10 @@
1
1
  import type { Server } from '@modelcontextprotocol/sdk/server/index.js';
2
2
  import type { CallToolResult, Tool } from '@modelcontextprotocol/sdk/types.js';
3
3
  import type { VPNDetection } from 'vpndetection';
4
+ import { DOWNLOADS_LIMIT } from './schema.gen.js';
4
5
  /** The most addresses one `lookup_ips` call may carry. */
5
6
  export declare const BATCH_LIMIT = 100;
6
- /** The most history rows one `list_downloads` call may ask for. The API clamps to the same. */
7
- export declare const DOWNLOADS_LIMIT = 200;
7
+ export { DOWNLOADS_LIMIT };
8
8
  export interface ToolContext {
9
9
  client: VPNDetection;
10
10
  /**
package/dist/tools.js CHANGED
@@ -1,19 +1,41 @@
1
1
  import { z } from 'zod';
2
2
  import { CallToolRequestSchema, ListToolsRequestSchema, } from '@modelcontextprotocol/sdk/types.js';
3
3
  import { batchCoverage, COVERAGE_SCHEMA, coverageOf, wireBody } from './coverage.js';
4
- import { DATABASE_METADATA_SCHEMA, DATABASE_SCHEMA, DB_CHECKSUMS_SCHEMA, LOOKUP_RESULT_SCHEMA, } from './schema.gen.js';
4
+ import { DATABASE_METADATA_SCHEMA, DATABASE_SCHEMA, DB_CHECKSUMS_SCHEMA, DOWNLOADS_LIMIT, LOOKUP_RESULT_SCHEMA, } from './schema.gen.js';
5
5
  /** The most addresses one `lookup_ips` call may carry. */
6
6
  export const BATCH_LIMIT = 100;
7
- /** The most history rows one `list_downloads` call may ask for. The API clamps to the same. */
8
- export const DOWNLOADS_LIMIT = 200;
7
+ export { DOWNLOADS_LIMIT };
9
8
  // Both spellings of a database id, stated wherever one is taken. `list_databases`
10
- // answers a `base` id (what a licence names) and a `versions[].id`; everything
9
+ // answers a `base` id (what a license names) and a `versions[].id`; everything
11
10
  // else accepts only the versioned one. A model that has just read
12
11
  // `base: "cdn_ip"` will otherwise pass it and get a refusal that reads like a
13
12
  // bad database rather than a wrong spelling.
14
13
  const VERSIONED_ID = 'A VERSIONED database id, from `versions[].id` in `list_databases` - '
15
- + '`cdn_ip_v1`, not `cdn_ip`. The unversioned base id is a licence reference and is '
14
+ + '`cdn_ip_v1`, not `cdn_ip`. The unversioned base id is a license reference and is '
16
15
  + 'not accepted here.';
16
+ const FORMATS = z.enum(['csvgz', 'mmdb']);
17
+ // Each tool's arguments, declared ONCE. `jsonSchema()` publishes the object and
18
+ // the handler parses with the same one, so the cap a client is shown is the cap
19
+ // it meets. Two lookalike declarations - a schema for the manifest and another
20
+ // in the handler - is how an advertised bound and an enforced bound drift.
21
+ const LOOKUP_INPUT = z.object({
22
+ ip: z.string().describe('The IPv4 or IPv6 address to classify.'),
23
+ });
24
+ const LOOKUP_BATCH_INPUT = z.object({
25
+ ips: z.array(z.string()).min(1).max(BATCH_LIMIT)
26
+ .describe(`The addresses to classify, at most ${BATCH_LIMIT}.`),
27
+ });
28
+ const METADATA_INPUT = z.object({
29
+ dataset_id: z.string().describe(VERSIONED_ID),
30
+ });
31
+ const CHECKSUM_INPUT = z.object({
32
+ dataset_id: z.string().describe(VERSIONED_ID),
33
+ format: FORMATS.describe('Which published file to digest.'),
34
+ });
35
+ const DOWNLOADS_INPUT = z.object({
36
+ limit: z.number().int().min(1).max(DOWNLOADS_LIMIT).optional().describe(`How many attempts to return, newest first. At most ${DOWNLOADS_LIMIT}; `
37
+ + 'the API defaults to 50.'),
38
+ });
17
39
  /**
18
40
  * The tool manifest, and the single place either transport gets it from.
19
41
  *
@@ -32,9 +54,7 @@ export function createTools(ctx) {
32
54
  + 'Private and reserved addresses are answered locally and cost nothing. '
33
55
  + 'Always read `coverage.note` before concluding anything from a field that is '
34
56
  + 'not in the result.',
35
- inputSchema: jsonSchema(z.object({
36
- ip: z.string().describe('The IPv4 or IPv6 address to classify.'),
37
- })),
57
+ inputSchema: jsonSchema(LOOKUP_INPUT),
38
58
  outputSchema: objectSchema({
39
59
  result: LOOKUP_RESULT_SCHEMA,
40
60
  coverage: COVERAGE_SCHEMA,
@@ -56,10 +76,7 @@ export function createTools(ctx) {
56
76
  + 'mattering. Prefer this over repeated `lookup_ip` calls when you already have '
57
77
  + 'the list, for example when triaging a log file. An address that fails '
58
78
  + 'carries its error in place of a result rather than failing the batch.',
59
- inputSchema: jsonSchema(z.object({
60
- ips: z.array(z.string()).min(1).max(BATCH_LIMIT)
61
- .describe(`The addresses to classify, at most ${BATCH_LIMIT}.`),
62
- })),
79
+ inputSchema: jsonSchema(LOOKUP_BATCH_INPUT),
63
80
  outputSchema: objectSchema({
64
81
  results: {
65
82
  type: 'object',
@@ -112,14 +129,12 @@ function guard(handler) {
112
129
  };
113
130
  }
114
131
  async function lookupIp(ctx, args) {
115
- const { ip } = z.object({ ip: z.string() }).parse(args);
132
+ const { ip } = LOOKUP_INPUT.parse(args);
116
133
  const body = wireBody(await ctx.client.lookup(ip));
117
134
  return ok({ result: body, coverage: coverageOf(body) });
118
135
  }
119
136
  async function lookupIps(ctx, args) {
120
- const { ips } = z.object({
121
- ips: z.array(z.string()).min(1).max(BATCH_LIMIT),
122
- }).parse(args);
137
+ const { ips } = LOOKUP_BATCH_INPUT.parse(args);
123
138
  const answers = await ctx.client.lookupBatch(ips);
124
139
  const results = {};
125
140
  const served = [];
@@ -148,7 +163,7 @@ async function lookupIps(ctx, args) {
148
163
  function accountTool(ctx) {
149
164
  return {
150
165
  tool: {
151
- name: 'my_account',
166
+ name: 'my_entitlement',
152
167
  title: 'Plan and usage for this key',
153
168
  description: 'What this API key is entitled to and how much of it has been used: the '
154
169
  + 'plan, the field tier that decides how much of a lookup answer comes back, the '
@@ -159,8 +174,8 @@ function accountTool(ctx) {
159
174
  + 'serving - it is NOT a limit of zero.',
160
175
  inputSchema: { type: 'object', additionalProperties: false },
161
176
  outputSchema: objectSchema({
162
- account: { type: 'object', additionalProperties: true },
163
- }, ['account']),
177
+ entitlement: { type: 'object', additionalProperties: true },
178
+ }, ['entitlement']),
164
179
  annotations: {
165
180
  readOnlyHint: true,
166
181
  // Not idempotent: the number it reports moves with every other
@@ -170,21 +185,20 @@ function accountTool(ctx) {
170
185
  },
171
186
  },
172
187
  handler: async () => {
173
- return ok({ account: await ctx.client.myAccount() });
188
+ return ok({ entitlement: await ctx.client.myEntitlement() });
174
189
  },
175
190
  };
176
191
  }
177
192
  function databaseTools(ctx) {
178
- const formats = z.enum(['csvgz', 'mmdb']);
179
193
  return [
180
194
  {
181
195
  tool: {
182
196
  name: 'list_databases',
183
197
  title: 'List databases',
184
198
  description: 'The database catalog as this API key\'s organization may see it, '
185
- + 'one entry per database FAMILY, with the licence type and term. A database '
199
+ + 'one entry per database FAMILY, with the license type and term. A database '
186
200
  + 'absent from this list is one the organization does not hold. Each entry has '
187
- + 'a `base` id, which is what the licence names, and a `versions` array whose '
201
+ + 'a `base` id, which is what the license names, and a `versions` array whose '
188
202
  + '`id` is what the other database tools take - pass `versions[].id` '
189
203
  + '(`cdn_ip_v1`), never the `base` (`cdn_ip`). Ask again rather than holding '
190
204
  + 'on to this: it is answered per key and is not the same for everyone.',
@@ -211,9 +225,7 @@ function databaseTools(ctx) {
211
225
  + 'build date and the file sizes. Use this to answer questions about what a '
212
226
  + 'database contains without downloading it - the files reach several GB - and '
213
227
  + 'to budget a transfer before starting one.',
214
- inputSchema: jsonSchema(z.object({
215
- dataset_id: z.string().describe(VERSIONED_ID),
216
- })),
228
+ inputSchema: jsonSchema(METADATA_INPUT),
217
229
  outputSchema: DATABASE_METADATA_SCHEMA,
218
230
  annotations: {
219
231
  readOnlyHint: true,
@@ -222,7 +234,7 @@ function databaseTools(ctx) {
222
234
  },
223
235
  },
224
236
  handler: async (args) => {
225
- const { dataset_id } = z.object({ dataset_id: z.string() }).parse(args);
237
+ const { dataset_id } = METADATA_INPUT.parse(args);
226
238
  return ok(await ctx.client.database.metadata(dataset_id));
227
239
  },
228
240
  },
@@ -233,10 +245,7 @@ function databaseTools(ctx) {
233
245
  description: 'The published digests for one database file, for verifying a copy '
234
246
  + 'you already hold or deciding whether a build has changed since you last '
235
247
  + 'fetched it.',
236
- inputSchema: jsonSchema(z.object({
237
- dataset_id: z.string().describe(VERSIONED_ID),
238
- format: formats.describe('Which published file to digest.'),
239
- })),
248
+ inputSchema: jsonSchema(CHECKSUM_INPUT),
240
249
  outputSchema: objectSchema({ checksums: DB_CHECKSUMS_SCHEMA }, ['checksums']),
241
250
  annotations: {
242
251
  readOnlyHint: true,
@@ -245,10 +254,7 @@ function databaseTools(ctx) {
245
254
  },
246
255
  },
247
256
  handler: async (args) => {
248
- const parsed = z.object({
249
- dataset_id: z.string(),
250
- format: formats,
251
- }).parse(args);
257
+ const parsed = CHECKSUM_INPUT.parse(args);
252
258
  const checksums = await ctx.client.database.checksums(parsed.dataset_id, parsed.format);
253
259
  return ok({ checksums: checksums });
254
260
  },
@@ -264,10 +270,7 @@ function databaseTools(ctx) {
264
270
  + 'was theirs. This is a bounded WINDOW of at most '
265
271
  + `${DOWNLOADS_LIMIT} rows, so a database missing from the answer means it is `
266
272
  + 'not in this window - never that it was never downloaded.',
267
- inputSchema: jsonSchema(z.object({
268
- limit: z.number().int().min(1).max(DOWNLOADS_LIMIT).optional().describe(`How many attempts to return, newest first. At most ${DOWNLOADS_LIMIT}; `
269
- + 'the API defaults to 50.'),
270
- })),
273
+ inputSchema: jsonSchema(DOWNLOADS_INPUT),
271
274
  outputSchema: objectSchema({
272
275
  downloads: { type: 'array', items: { type: 'object', additionalProperties: true } },
273
276
  }, ['downloads']),
@@ -278,9 +281,7 @@ function databaseTools(ctx) {
278
281
  },
279
282
  },
280
283
  handler: async (args) => {
281
- const { limit } = z.object({
282
- limit: z.number().int().min(1).max(DOWNLOADS_LIMIT).optional(),
283
- }).parse(args);
284
+ const { limit } = DOWNLOADS_INPUT.parse(args);
284
285
  const downloads = await ctx.client.database.downloads(limit === undefined ? {} : { limit: limit });
285
286
  return ok({ downloads: downloads });
286
287
  },
@@ -308,15 +309,31 @@ function ok(structured) {
308
309
  * act on. The text block is what it reads instead.
309
310
  */
310
311
  function toolError(err) {
311
- const known = asClientError(err);
312
- const detail = known !== undefined
313
- ? { kind: known.kind, message: known.message, retryable: known.retryable === true }
314
- : { kind: 'internal', message: err instanceof Error ? err.message : String(err) };
315
312
  return {
316
- content: [{ type: 'text', text: JSON.stringify({ error: detail }, null, 2) }],
313
+ content: [{ type: 'text', text: JSON.stringify({ error: errorDetail(err) }, null, 2) }],
317
314
  isError: true,
318
315
  };
319
316
  }
317
+ function errorDetail(err) {
318
+ const known = asClientError(err);
319
+ if (known !== undefined) {
320
+ return { kind: known.kind, message: known.message, retryable: known.retryable === true };
321
+ }
322
+ const rejected = asZodError(err);
323
+ if (rejected !== undefined) {
324
+ // The MODEL's own mistake, and the one failure it can fix unaided - so
325
+ // it must not arrive as `internal`, which reads as "the server broke"
326
+ // and invites an identical retry. zod's formatter names the field and
327
+ // what was expected; the raw `issues` array is JSON a model has to
328
+ // decode before it can act on.
329
+ return {
330
+ kind: 'invalid_argument',
331
+ message: z.prettifyError(rejected),
332
+ retryable: false,
333
+ };
334
+ }
335
+ return { kind: 'internal', message: err instanceof Error ? err.message : String(err) };
336
+ }
320
337
  /**
321
338
  * Recognises a `VPNDetectionError` by SHAPE, not by `instanceof`.
322
339
  *
@@ -337,6 +354,22 @@ function asClientError(err) {
337
354
  }
338
355
  return e;
339
356
  }
357
+ /**
358
+ * Recognises a `ZodError` by SHAPE, for the same reason `asClientError` does.
359
+ *
360
+ * zod resolves per package here, so `instanceof` would miss a copy thrown by a
361
+ * different one and fall back to exactly the `internal` this exists to replace.
362
+ */
363
+ function asZodError(err) {
364
+ if (err === null || typeof err !== 'object') {
365
+ return undefined;
366
+ }
367
+ const e = err;
368
+ if (e.name !== 'ZodError' || !Array.isArray(e.issues)) {
369
+ return undefined;
370
+ }
371
+ return err;
372
+ }
340
373
  // One zod declaration yields both the published schema and the runtime parse, so
341
374
  // a cap advertised to a client is the same cap the handler enforces.
342
375
  function jsonSchema(schema) {
package/dist/tools.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"tools.js","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tools.js","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vpndetection-mcp",
3
- "version": "4.1.0",
3
+ "version": "5.0.0",
4
4
  "description": "Official MCP server for the VPNDetection API. Gives an LLM agent VPN, proxy, Tor, hosting and CDN detection for any IP address.",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -50,13 +50,15 @@
50
50
  },
51
51
  "dependencies": {
52
52
  "@modelcontextprotocol/sdk": "^1.20.2",
53
- "vpndetection": "^4.0.0",
53
+ "vpndetection": "^5.0.0",
54
54
  "zod": "^4.1.12"
55
55
  },
56
56
  "devDependencies": {
57
+ "@mslmio/eslint-config": "^1.0.0",
57
58
  "@types/node": "^26.2.0",
58
59
  "ajv": "^8.20.0",
59
60
  "ajv-formats": "^3.0.1",
61
+ "eslint": "^9.39.0",
60
62
  "typescript": "^5.9.3"
61
63
  },
62
64
  "scripts": {