netintel-mcp 1.0.0 → 1.1.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/dist/index.js +115 -1
- package/package.json +6 -1
package/dist/index.js
CHANGED
|
@@ -286,12 +286,126 @@ function registerTools(server, api) {
|
|
|
286
286
|
return err(e);
|
|
287
287
|
}
|
|
288
288
|
});
|
|
289
|
+
// 26. IP Reputation
|
|
290
|
+
server.tool("netintel_ip_reputation", "Check IP against AbuseIPDB and AlienVault OTX. Returns composite risk score, threat categories, and malware families.", { ip: z.string() }, async ({ ip }) => {
|
|
291
|
+
try {
|
|
292
|
+
const res = await api.get("/ip-reputation/analyze", { params: { ip } });
|
|
293
|
+
return ok(res.data);
|
|
294
|
+
}
|
|
295
|
+
catch (e) {
|
|
296
|
+
return err(e);
|
|
297
|
+
}
|
|
298
|
+
});
|
|
299
|
+
// 27. Cron Parser
|
|
300
|
+
server.tool("netintel_cron_parser", "Parse a cron expression, explain the schedule in plain English, and compute the next 5 run times.", { expression: z.string() }, async ({ expression }) => {
|
|
301
|
+
try {
|
|
302
|
+
const res = await api.get("/cron-parser/explain", { params: { expression } });
|
|
303
|
+
return ok(res.data);
|
|
304
|
+
}
|
|
305
|
+
catch (e) {
|
|
306
|
+
return err(e);
|
|
307
|
+
}
|
|
308
|
+
});
|
|
309
|
+
// 28. Currency Exchange
|
|
310
|
+
server.tool("netintel_currency_exchange", "Convert between 32 currencies with real-time or historical rates. Pass a date (YYYY-MM-DD) for historical lookup.", { from: z.string(), to: z.string(), amount: z.number().optional(), date: z.string().optional() }, async ({ from, to, amount, date }) => {
|
|
311
|
+
try {
|
|
312
|
+
const res = await api.get("/currency-exchange/convert", {
|
|
313
|
+
params: params({ from, to, amount, date }),
|
|
314
|
+
});
|
|
315
|
+
return ok(res.data);
|
|
316
|
+
}
|
|
317
|
+
catch (e) {
|
|
318
|
+
return err(e);
|
|
319
|
+
}
|
|
320
|
+
});
|
|
321
|
+
// 29. GitHub Intel
|
|
322
|
+
server.tool("netintel_github_intel", "Analyze a GitHub repo — stars, forks, activity, license, open issues, maintenance score. Pass owner/repo format.", { repo: z.string() }, async ({ repo }) => {
|
|
323
|
+
try {
|
|
324
|
+
const res = await api.get("/github-intel/analyze", { params: { repo } });
|
|
325
|
+
return ok(res.data);
|
|
326
|
+
}
|
|
327
|
+
catch (e) {
|
|
328
|
+
return err(e);
|
|
329
|
+
}
|
|
330
|
+
});
|
|
331
|
+
// 30. Holidays
|
|
332
|
+
server.tool("netintel_holidays", "Get public holidays by country. Check if a date is a business day or weekend. ISO 3166-1 alpha-2 country codes.", { country: z.string(), year: z.number().optional(), month: z.number().optional() }, async ({ country, year, month }) => {
|
|
333
|
+
try {
|
|
334
|
+
const res = await api.get("/holidays/check", {
|
|
335
|
+
params: params({ country, year, month }),
|
|
336
|
+
});
|
|
337
|
+
return ok(res.data);
|
|
338
|
+
}
|
|
339
|
+
catch (e) {
|
|
340
|
+
return err(e);
|
|
341
|
+
}
|
|
342
|
+
});
|
|
343
|
+
// 31. IP Geo
|
|
344
|
+
server.tool("netintel_ip_geo", "Geolocate an IP address — country, city, coordinates, ISP, ASN, timezone.", { ip: z.string() }, async ({ ip }) => {
|
|
345
|
+
try {
|
|
346
|
+
const res = await api.get("/ip-geo/locate", { params: { ip } });
|
|
347
|
+
return ok(res.data);
|
|
348
|
+
}
|
|
349
|
+
catch (e) {
|
|
350
|
+
return err(e);
|
|
351
|
+
}
|
|
352
|
+
});
|
|
353
|
+
// 32. JWT Inspector
|
|
354
|
+
server.tool("netintel_jwt_inspector", "Decode a JWT token — inspect header and payload, check expiry, flag security issues like weak algorithms.", { token: z.string() }, async ({ token }) => {
|
|
355
|
+
try {
|
|
356
|
+
const res = await api.get("/jwt-inspector/decode", { params: { token } });
|
|
357
|
+
return ok(res.data);
|
|
358
|
+
}
|
|
359
|
+
catch (e) {
|
|
360
|
+
return err(e);
|
|
361
|
+
}
|
|
362
|
+
});
|
|
363
|
+
// 33. Lang Detect (POST)
|
|
364
|
+
server.tool("netintel_lang_detect", "Detect the language of any text with confidence scoring. Supports 50+ languages.", { text: z.string() }, async ({ text }) => {
|
|
365
|
+
try {
|
|
366
|
+
const res = await api.post("/lang-detect/analyze", { text });
|
|
367
|
+
return ok(res.data);
|
|
368
|
+
}
|
|
369
|
+
catch (e) {
|
|
370
|
+
return err(e);
|
|
371
|
+
}
|
|
372
|
+
});
|
|
373
|
+
// 34. npm Intel
|
|
374
|
+
server.tool("netintel_npm_intel", "Analyze an npm package — versions, weekly downloads, maintainers, dependencies, quality and maintenance score.", { package: z.string() }, async (args) => {
|
|
375
|
+
try {
|
|
376
|
+
const res = await api.get("/npm-intel/analyze", { params: { package: args.package } });
|
|
377
|
+
return ok(res.data);
|
|
378
|
+
}
|
|
379
|
+
catch (e) {
|
|
380
|
+
return err(e);
|
|
381
|
+
}
|
|
382
|
+
});
|
|
383
|
+
// 35. Sitemap Parser
|
|
384
|
+
server.tool("netintel_sitemap_parser", "Parse an XML sitemap or auto-discover it from a domain. Returns all URLs with metadata including lastmod and priority.", { url: z.string() }, async ({ url }) => {
|
|
385
|
+
try {
|
|
386
|
+
const res = await api.get("/sitemap-parser/fetch", { params: { url } });
|
|
387
|
+
return ok(res.data);
|
|
388
|
+
}
|
|
389
|
+
catch (e) {
|
|
390
|
+
return err(e);
|
|
391
|
+
}
|
|
392
|
+
});
|
|
393
|
+
// 36. URL Safety
|
|
394
|
+
server.tool("netintel_url_safety", "Check a URL against URLhaus malware database and heuristic analysis. Returns threat classification and risk score.", { url: z.string() }, async ({ url }) => {
|
|
395
|
+
try {
|
|
396
|
+
const res = await api.get("/url-safety/check", { params: { url } });
|
|
397
|
+
return ok(res.data);
|
|
398
|
+
}
|
|
399
|
+
catch (e) {
|
|
400
|
+
return err(e);
|
|
401
|
+
}
|
|
402
|
+
});
|
|
289
403
|
}
|
|
290
404
|
async function main() {
|
|
291
405
|
const api = await createClient();
|
|
292
406
|
const server = new McpServer({
|
|
293
407
|
name: "netintel-mcp",
|
|
294
|
-
version: "1.
|
|
408
|
+
version: "1.1.0",
|
|
295
409
|
});
|
|
296
410
|
registerTools(server, api);
|
|
297
411
|
const transport = new StdioServerTransport();
|
package/package.json
CHANGED
|
@@ -1,6 +1,11 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "netintel-mcp",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.1.0",
|
|
4
|
+
"mcpName": "io.github.kjgueye/netintel-mcp",
|
|
5
|
+
"repository": {
|
|
6
|
+
"type": "git",
|
|
7
|
+
"url": "https://github.com/kjgueye/netintel-mcp.git"
|
|
8
|
+
},
|
|
4
9
|
"description": "MCP server for NetIntel — DNS, SSL, WHOIS, email security, OSINT via x402 micropayments",
|
|
5
10
|
"main": "dist/index.js",
|
|
6
11
|
"bin": {
|