lookup_ip

Pack: virustotal · Endpoint: https://gateway.pipeworx.io/virustotal/mcp

Look up an IPv4 address. Returns last-analysis stats, ASN/owner, country, network range, and reputation score.

Parameters

NameTypeRequiredDescription
ipstringyesIPv4 address

Example call

Arguments

{
  "ip": "192.0.2.1"
}

curl

curl -X POST https://gateway.pipeworx.io/virustotal/mcp \
  -H 'Content-Type: application/json' \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"lookup_ip","arguments":{"ip":"192.0.2.1"}}}'

TypeScript (@pipeworx/sdk)

import { Pipeworx } from '@pipeworx/sdk';
const pipeworx = new Pipeworx();

const result = await pipeworx.call('lookup_ip', {
  "ip": "192.0.2.1"
});

More examples

{
  "ip": "203.0.113.42"
}

Response shape

Always returns: type, id, stats, reputation, community_votes, tags, last_analyzed_at, raw_attributes, vt_url

FieldTypeDescription
typestringResource type (e.g., ‘ip_addresses’)
idstring | nullVirusTotal IP address identifier
statsobject
reputationnumber | nullReputation score from community
community_votesobject | null
tagsarrayTags assigned to the IP
last_analyzed_atstring | nullISO 8601 timestamp of last analysis
raw_attributesobjectFull attributes object from VirusTotal API
vt_urlstring | nullDirect link to VirusTotal IP report
Full JSON Schema
{
  "type": "object",
  "properties": {
    "type": {
      "type": "string",
      "description": "Resource type (e.g., 'ip_addresses')"
    },
    "id": {
      "type": [
        "string",
        "null"
      ],
      "description": "VirusTotal IP address identifier"
    },
    "stats": {
      "type": "object",
      "properties": {
        "malicious": {
          "type": "integer",
          "description": "Number of engines detecting as malicious"
        },
        "suspicious": {
          "type": "integer",
          "description": "Number of engines detecting as suspicious"
        },
        "harmless": {
          "type": "integer",
          "description": "Number of engines detecting as harmless"
        },
        "undetected": {
          "type": "integer",
          "description": "Number of engines with no detection"
        },
        "total_engines": {
          "type": "integer",
          "description": "Total engines that analyzed the IP"
        },
        "malicious_pct": {
          "type": "number",
          "description": "Percentage of engines detecting as malicious"
        }
      },
      "required": [
        "malicious",
        "suspicious",
        "harmless",
        "undetected",
        "total_engines",
        "malicious_pct"
      ]
    },
    "reputation": {
      "type": [
        "number",
        "null"
      ],
      "description": "Reputation score from community"
    },
    "community_votes": {
      "type": [
        "object",
        "null"
      ],
      "properties": {
        "harmless": {
          "type": "integer",
          "description": "Community votes for harmless"
        },
        "malicious": {
          "type": "integer",
          "description": "Community votes for malicious"
        }
      }
    },
    "tags": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Tags assigned to the IP"
    },
    "last_analyzed_at": {
      "type": [
        "string",
        "null"
      ],
      "description": "ISO 8601 timestamp of last analysis"
    },
    "raw_attributes": {
      "type": "object",
      "description": "Full attributes object from VirusTotal API"
    },
    "vt_url": {
      "type": [
        "string",
        "null"
      ],
      "description": "Direct link to VirusTotal IP report"
    }
  },
  "required": [
    "type",
    "id",
    "stats",
    "reputation",
    "community_votes",
    "tags",
    "last_analyzed_at",
    "raw_attributes",
    "vt_url"
  ]
}

Connect

Add this to your MCP client config, or use one-click install buttons:

{
  "mcpServers": {
    "virustotal": {
      "url": "https://gateway.pipeworx.io/virustotal/mcp"
    }
  }
}

See Getting Started for client-specific install steps.

Regenerated from source · build June 27, 2026