netintel-mcp 1.1.48 → 1.1.50

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 CHANGED
@@ -40,7 +40,7 @@ Or add manually to your Claude Desktop config:
40
40
  | netintel_redirect_trace | Follows a URL through its full redirect chain (up to 20 hops)… | $0.01 |
41
41
  | netintel_security_headers | Fetches a URL and evaluates 10 security-critical response headers (CSP… | $0.01 |
42
42
  | netintel_email_auth | Email deliverability & domain security check — validates SPF, DKIM… | $0.002 |
43
- | netintel_cloud_fingerprint | Fingerprints a domain's cloud infrastructure by probing DNS records… | $0.01 |
43
+ | netintel_cloud_fingerprint | Fingerprints a domain's cloud infrastructure — DNS records, HTTP… | $0.01 |
44
44
  | netintel_schema_parse | Extract structured data from any unstructured text into your own JSON… | $0.01 |
45
45
  | netintel_asn_lookup | Resolves an IP address or domain to its Autonomous System Number (ASN)… | $0.03 |
46
46
  | netintel_whois_lookup | WHOIS domain lookup via RDAP — registrar, creation/expiry/updated… | $0.003 |
@@ -153,8 +153,8 @@ Or add manually to your Claude Desktop config:
153
153
  | netintel_text_stats | Instant text statistics — characters (with/without spaces), words… | $0.001 |
154
154
  | netintel_embeddings | Multilingual text embeddings (384-dim) served in-house, no OpenAI… | $0.001 |
155
155
  | netintel_email_verify | Verify an email address before you send: syntax + MX +… | $0.001 |
156
- | netintel_exa_search | exaSearchRouteConfig.description | $0.01 |
157
- | netintel_web_search | webSearchRouteConfig.description | $0.01 |
156
+ | netintel_exa_search | Exa neural web search for AI agents — POST or GET a query, get ranked… | $0.01 |
157
+ | netintel_web_search | Web search for AI agents — one query in, ranked live results out… | $0.01 |
158
158
  | netintel_exa_contents | Clean page text for up to 3 URLs in one call via Exa's index + live… | $0.005 |
159
159
  | netintel_exa_answer | Ask a question, get a direct answer grounded in a live web search, with… | $0.01 |
160
160
 
package/dist/index.js CHANGED
@@ -75,7 +75,7 @@ function registerTools(server, api) {
75
75
  }
76
76
  });
77
77
  // 6. Cloud Fingerprint
78
- server.tool("netintel_cloud_fingerprint", "Detect CDN, WAF, hosting provider, DNS provider, and email provider for a domain with confidence scores and an infrastructure security grade.", { domain: z.string() }, async ({ domain }) => {
78
+ server.tool("netintel_cloud_fingerprint", "Detect CDN, WAF, hosting, DNS and email provider for a domain, plus TLS certificate issuer, wildcard coverage and SAN count, with confidence scores and an infrastructure security grade. Hosts that resolve but serve nothing on 80/443 return http_reachable:false and grade insufficient_data rather than a low grade.", { domain: z.string() }, async ({ domain }) => {
79
79
  try {
80
80
  const res = await api.get("/cloud-fingerprint/analyze", { params: { domain } });
81
81
  return ok(res.data);
@@ -831,7 +831,7 @@ function registerTools(server, api) {
831
831
  }
832
832
  });
833
833
  // 80. Openai (POST)
834
- server.tool("netintel_openai", "Call OpenAI's gpt-4o via a single pay-per-call x402 endpoint — no OpenAI account or API key needed, pay $0.10 per request in USDC. Standard OpenAI chat.completions request/response shape, capped input and output. Search terms: OpenAI…", { messages: z.array(z.any()), max_tokens: z.number().optional(), temperature: z.number().optional(), top_p: z.number().optional() }, async ({ messages, max_tokens, temperature, top_p }) => {
834
+ server.tool("netintel_openai", "Call OpenAI's gpt-4o via a single pay-per-call x402 endpoint — no OpenAI account or API key needed, pay $0.10 per request in USDC. Vision: messages may carry up to 4 https image_url parts per call (detail low/high/auto). Every call is bounded by a 16000-token combined input budget plus a 48000-char cap; output capped at 2048…", { messages: z.array(z.any()), max_tokens: z.number().optional(), temperature: z.number().optional(), top_p: z.number().optional() }, async ({ messages, max_tokens, temperature, top_p }) => {
835
835
  try {
836
836
  const res = await api.post("/openai/gpt-4o", { messages, max_tokens, temperature, top_p });
837
837
  return ok(res.data);
@@ -1001,9 +1001,9 @@ function registerTools(server, api) {
1001
1001
  }
1002
1002
  });
1003
1003
  // 97. V1 (POST)
1004
- server.tool("netintel_v1_chat_completions", "OpenAI-compatible chat completions gateway — standard /v1/chat/completions path and request shape, model chosen in the body (gpt-4o, gpt-4.1, gpt-5.6-luna, minis, nanos). Flat $0.10 per call in USDC via x402, no OpenAI account or API key…", { model: z.string(), messages: z.array(z.any()), max_tokens: z.number().optional() }, async ({ model, messages, max_tokens }) => {
1004
+ server.tool("netintel_v1_chat_completions", "OpenAI-compatible chat completions gateway (POST /v1/chat/completions request/response shape). Models: gpt-4.1-mini, gpt-5.4-nano, gpt-4o-mini, gpt-4.1-nano, gpt-5-nano. Flat $0.005 per call in USDC via x402, no OpenAI account or API key. Supports response_format {type:\"json_object\"} (JSON mode).", { model: z.string(), messages: z.array(z.any()), max_tokens: z.number().optional(), response_format: z.object({ type: z.enum(["json_object", "text"]) }).optional() }, async ({ model, messages, max_tokens, response_format }) => {
1005
1005
  try {
1006
- const res = await api.post("/v1/chat/completions", { model, messages, max_tokens });
1006
+ const res = await api.post("/v1/chat/completions", { model, messages, max_tokens, response_format });
1007
1007
  return ok(res.data);
1008
1008
  }
1009
1009
  catch (e) {
@@ -1222,7 +1222,7 @@ function registerTools(server, api) {
1222
1222
  }
1223
1223
  });
1224
1224
  // 120. Exa (POST)
1225
- server.tool("netintel_exa_search", "exaSearchRouteConfig.description", { query: z.string(), num_results: z.number().optional(), type: z.string().optional(), category: z.string().optional(), include_domains: z.array(z.string()).optional(), start_published_date: z.string().optional(), end_published_date: z.string().optional(), snippets: z.string().optional() }, async ({ query, num_results, type, category, include_domains, start_published_date, end_published_date, snippets }) => {
1225
+ server.tool("netintel_exa_search", "Exa neural web search for AI agents — POST or GET a query, get ranked live results (title, url, published_date, author, score) with optional highlight snippets. Filter by category (news, research paper, github, company, pdf…), domain…", { query: z.string(), num_results: z.number().optional(), type: z.string().optional(), category: z.string().optional(), include_domains: z.array(z.string()).optional(), start_published_date: z.string().optional(), end_published_date: z.string().optional(), snippets: z.string().optional() }, async ({ query, num_results, type, category, include_domains, start_published_date, end_published_date, snippets }) => {
1226
1226
  try {
1227
1227
  const res = await api.post("/exa/search", { query, num_results, type, category, include_domains, start_published_date, end_published_date, snippets });
1228
1228
  return ok(res.data);
@@ -1232,7 +1232,7 @@ function registerTools(server, api) {
1232
1232
  }
1233
1233
  });
1234
1234
  // 121. Web (POST)
1235
- server.tool("netintel_web_search", "webSearchRouteConfig.description", { query: z.string(), num_results: z.number().optional(), type: z.string().optional(), category: z.string().optional(), include_domains: z.array(z.string()).optional(), start_published_date: z.string().optional(), end_published_date: z.string().optional(), snippets: z.string().optional() }, async ({ query, num_results, type, category, include_domains, start_published_date, end_published_date, snippets }) => {
1235
+ server.tool("netintel_web_search", "Web search for AI agents — one query in, ranked live results out (title, url, published_date, author, score, optional snippets). Neural + keyword modes, category/domain/date filters. For a direct answer use /exa/answer. Keyless x402, pay…", { query: z.string(), num_results: z.number().optional(), type: z.string().optional(), category: z.string().optional(), include_domains: z.array(z.string()).optional(), start_published_date: z.string().optional(), end_published_date: z.string().optional(), snippets: z.string().optional() }, async ({ query, num_results, type, category, include_domains, start_published_date, end_published_date, snippets }) => {
1236
1236
  try {
1237
1237
  const res = await api.post("/web/search", { query, num_results, type, category, include_domains, start_published_date, end_published_date, snippets });
1238
1238
  return ok(res.data);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "netintel-mcp",
3
- "version": "1.1.48",
3
+ "version": "1.1.50",
4
4
  "mcpName": "io.github.kjgueye/netintel-mcp",
5
5
  "repository": {
6
6
  "type": "git",