netintel-mcp 1.1.47 → 1.1.48
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 +7 -2
- package/dist/index.js +50 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# netintel-mcp
|
|
2
2
|
|
|
3
|
-
MCP server for NetIntel —
|
|
3
|
+
MCP server for NetIntel — 122 network intelligence tools for AI agents.
|
|
4
4
|
DNS, SSL, WHOIS, email security, cloud fingerprinting, OSINT and more.
|
|
5
5
|
Pay-per-call via x402 — the NetIntel API accepts USDC on Base or Solana; this MCP server pays on Base. No API keys needed — just a wallet with USDC.
|
|
6
6
|
|
|
@@ -31,7 +31,7 @@ Or add manually to your Claude Desktop config:
|
|
|
31
31
|
|
|
32
32
|
## Tools
|
|
33
33
|
|
|
34
|
-
|
|
34
|
+
122 pay-per-call tools across DNS, SSL/TLS, WHOIS & domains, email security, IP intelligence, web & content, OSINT, AI text processing, and bundled reports.
|
|
35
35
|
|
|
36
36
|
| Tool | Description | Price |
|
|
37
37
|
|------|-------------|-------|
|
|
@@ -152,6 +152,11 @@ Or add manually to your Claude Desktop config:
|
|
|
152
152
|
| netintel_text_chunk | Split text into overlapping chunks for RAG ingestion — by characters or… | $0.001 |
|
|
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
|
+
| 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 |
|
|
158
|
+
| netintel_exa_contents | Clean page text for up to 3 URLs in one call via Exa's index + live… | $0.005 |
|
|
159
|
+
| netintel_exa_answer | Ask a question, get a direct answer grounded in a live web search, with… | $0.01 |
|
|
155
160
|
|
|
156
161
|
## Payment
|
|
157
162
|
All tools pay automatically via x402 in USDC on Base mainnet.
|
package/dist/index.js
CHANGED
|
@@ -1211,6 +1211,56 @@ function registerTools(server, api) {
|
|
|
1211
1211
|
return err(e);
|
|
1212
1212
|
}
|
|
1213
1213
|
});
|
|
1214
|
+
// 119. Email (POST)
|
|
1215
|
+
server.tool("netintel_email_verify", "Verify an email address before you send: syntax + MX + disposable/role/free-provider detection in one call, boolean-first (deliverable, safe_to_send) with a machine-readable reason. DNS-level check only — does not confirm the individual…", { email: z.string() }, async ({ email }) => {
|
|
1216
|
+
try {
|
|
1217
|
+
const res = await api.post("/email/verify", { email });
|
|
1218
|
+
return ok(res.data);
|
|
1219
|
+
}
|
|
1220
|
+
catch (e) {
|
|
1221
|
+
return err(e);
|
|
1222
|
+
}
|
|
1223
|
+
});
|
|
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 }) => {
|
|
1226
|
+
try {
|
|
1227
|
+
const res = await api.post("/exa/search", { query, num_results, type, category, include_domains, start_published_date, end_published_date, snippets });
|
|
1228
|
+
return ok(res.data);
|
|
1229
|
+
}
|
|
1230
|
+
catch (e) {
|
|
1231
|
+
return err(e);
|
|
1232
|
+
}
|
|
1233
|
+
});
|
|
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 }) => {
|
|
1236
|
+
try {
|
|
1237
|
+
const res = await api.post("/web/search", { query, num_results, type, category, include_domains, start_published_date, end_published_date, snippets });
|
|
1238
|
+
return ok(res.data);
|
|
1239
|
+
}
|
|
1240
|
+
catch (e) {
|
|
1241
|
+
return err(e);
|
|
1242
|
+
}
|
|
1243
|
+
});
|
|
1244
|
+
// 122. Exa (POST)
|
|
1245
|
+
server.tool("netintel_exa_contents", "Clean page text for up to 3 URLs in one call via Exa's index + live crawl — works on JS-rendered and bot-walled pages that direct fetch can't read. Returns title, author, published_date and text per URL, with per-URL status. Pairs with…", { urls: z.array(z.string()), max_characters: z.number().optional(), livecrawl: z.string().optional() }, async ({ urls, max_characters, livecrawl }) => {
|
|
1246
|
+
try {
|
|
1247
|
+
const res = await api.post("/exa/contents", { urls, max_characters, livecrawl });
|
|
1248
|
+
return ok(res.data);
|
|
1249
|
+
}
|
|
1250
|
+
catch (e) {
|
|
1251
|
+
return err(e);
|
|
1252
|
+
}
|
|
1253
|
+
});
|
|
1254
|
+
// 123. Exa (POST)
|
|
1255
|
+
server.tool("netintel_exa_answer", "Ask a question, get a direct answer grounded in a live web search, with numbered citations (title, url, published_date). One call replaces search + read + summarize. For ranked results instead of a synthesized answer use /exa/search…", { query: z.string(), include_citation_text: z.boolean().optional() }, async ({ query, include_citation_text }) => {
|
|
1256
|
+
try {
|
|
1257
|
+
const res = await api.post("/exa/answer", { query, include_citation_text });
|
|
1258
|
+
return ok(res.data);
|
|
1259
|
+
}
|
|
1260
|
+
catch (e) {
|
|
1261
|
+
return err(e);
|
|
1262
|
+
}
|
|
1263
|
+
});
|
|
1214
1264
|
}
|
|
1215
1265
|
async function main() {
|
|
1216
1266
|
const api = await createClient();
|