Skip to main content
Glama
rossja

IR Toolshed MCP Server

by rossja

Servidor MCP de IR Toolshed

Un servidor integral de Protocolo de Contexto de Modelo (MCP) que proporciona herramientas de respuesta a incidentes y análisis de red para profesionales de la seguridad. Este servidor permite a agentes de IA como Claude realizar diversas búsquedas y análisis relacionados con la red para facilitar las investigaciones de seguridad.

Descripción general

El servidor MCP de IR Toolshed ofrece un conjunto de herramientas de red y seguridad accesibles mediante el Protocolo de Contexto de Modelo. Está diseñado como un servicio de propósito general para los responsables de la respuesta a incidentes de red, permitiéndoles realizar búsquedas básicas mediante:

  • Búsquedas de ASN (Número de sistema autónomo)

  • Búsquedas y análisis de DNS

  • Recuperación de registros WHOIS

  • Geolocalización de IP

  • Y más capacidades de análisis de red por venir

Cada herramienta viene acompañada de documentación detallada como recurso, lo que facilita que los sistemas de IA comprendan cómo usar las herramientas y qué resultados esperar.

Related MCP server: Wireshark MCP

Herramientas actuales

Herramienta de búsqueda de ASN

La herramienta de búsqueda ASN devuelve información sobre una dirección IP, incluyendo:

  • La dirección IP que se consultó

  • El número AS asociado con la dirección IP

  • El nombre de la organización propietaria del número AS

Herramienta de búsqueda de DNS

La herramienta de búsqueda de DNS proporciona información de registros DNS para dominios:

  • Admite múltiples tipos de registros (A, AAAA, MX, NS, TXT)

  • Devuelve registros DNS formateados

  • Maneja consultas tanto IPv4 como IPv6

Herramienta de búsqueda WHOIS

La herramienta de búsqueda WHOIS recupera información de registro de dominio:

  • Detalles de propiedad del dominio

  • Fechas de inscripción

  • Información del servidor de nombres

  • Datos del registrador

Herramienta de geolocalización

La herramienta de geolocalización IP proporciona información de ubicación utilizando la base de datos GeoLite2 de MaxMind:

  • Datos de ubicación a nivel de país y ciudad

  • Coordenadas de latitud y longitud

  • Información de la red

  • Datos de zona horaria

Nota: La herramienta de geolocalización requiere una clave de licencia de MaxMind. Puede:

  1. Obtenga una clave gratuita en: https://dev.maxmind.com/geoip/geolite2-free-geolocation-data

  2. Cualquiera:

    • Establezca la variable de entorno MAXMIND_LICENSE_KEY

    • Proporciónelo como parámetro al utilizar la herramienta

    • Introdúzcalo cuando se le solicite

Se agregarán más herramientas en futuras versiones.

Prerrequisitos

  • Python 3.8 o más reciente (se recomienda 3.13+)

  • gestor de paquetes uv Python

Instalación

  1. Clonar este repositorio:

git clone <repository-url>
cd ir-toolshed-mcp-server
  1. Crear un entorno virtual:

uv venv
  1. Activar el entorno virtual:

En Windows:

.venv\Scripts\activate

En macOS/Linux:

source .venv/bin/activate
  1. Instalar el paquete en modo de desarrollo:

uv pip install -e .

Ejecución del servidor

Inicie el servidor MCP con:

uv run mcp dev src/mcp_server.py

Esto lanzará el servidor en modo de desarrollo, haciéndolo disponible para clientes MCP como Claude Desktop.

Usando las herramientas

Herramienta de búsqueda de ASN

Cuando se conecta a un cliente MCP como Claude Desktop, puede utilizar la herramienta de búsqueda ASN proporcionando una dirección IP:

asnlookup("8.8.8.8")

Ejemplo de salida:

{
    "ip_addr": "8.8.8.8",
    "as_number": "15169",
    "as_name": "GOOGLE - Google LLC"
}

Herramienta de búsqueda de DNS

Cuando se conecta a un cliente MCP como Claude Desktop, puede utilizar la herramienta de búsqueda DNS proporcionando un dominio:

dnslookup("example.com")

Ejemplo de salida:

{
    "domain": "example.com",
    "record_type": "A",
    "record_value": "93.184.216.34"
}

Herramienta de búsqueda WHOIS

Cuando se conecta a un cliente MCP como Claude Desktop, puede utilizar la herramienta de búsqueda WHOIS proporcionando un dominio:

whoislookup("example.com")

Ejemplo de salida:

{
    "domain": "example.com",
    "ownership_details": "Google LLC",
    "registration_date": "2004-04-26",
    "nameserver_information": "ns1.google.com",
    "registrar_details": "MarkMonitor Inc."
}

Herramienta de geolocalización

Cuando se conecta a un cliente MCP como Claude Desktop, puede utilizar la herramienta de geolocalización proporcionando una dirección IP:

geolocation("8.8.8.8")

Ejemplo de salida:

{
    "ip_addr": "8.8.8.8",
    "country": "US",
    "city": "Mountain View",
    "latitude": 37.40599,
    "longitude": -122.078514,
    "network": "AS15169 Google LLC",
    "timezone": "America/Los_Angeles"
}

Manejo de errores

Cada herramienta sigue un patrón de manejo de errores consistente:

Formato de respuesta de error general:

{
    "status": "error",
    "error": "Detailed error message",
    "query": "Original query value"
}

Ejemplos de errores específicos de la herramienta:

Búsqueda de ASN:

{
    "ip_addr": "<queried-ip>",
    "status": "error",
    "error": "Invalid IP address format"
}

Búsqueda de DNS:

{
    "domain": "<queried-domain>",
    "record_type": "<requested-type>",
    "status": "error",
    "error": "DNS resolution failed"
}

Búsqueda WHOIS:

{
    "domain": "<queried-domain>",
    "status": "error",
    "error": "WHOIS server not available"
}

Geolocalización:

{
    "ip_addr": "<queried-ip>",
    "status": "error",
    "error": "MaxMind database not found or license key invalid"
}

Estructura del proyecto

El proyecto sigue una estructura de paquete Python estándar:

irtoolshed_mcp_server/     # Main package directory
├── __init__.py           # Package initialization
├── asnlookup.py         # ASN lookup functionality
├── dnslookup.py         # DNS lookup functionality
├── geolookup.py         # Geolocation functionality
├── mcp_server.py        # Main MCP server implementation
└── whoislookup.py       # WHOIS lookup functionality

tests/                    # Test directory
├── test_asnlookup.py    # ASN lookup tests
├── test_dnslookup.py    # DNS lookup tests
├── test_geolookup.py    # Geolocation tests
└── test_whoislookup.py  # WHOIS lookup tests

Desarrollo

Configuración del entorno de desarrollo

  1. Clonar este repositorio:

git clone <repository-url>
cd ir-toolshed-mcp-server
  1. Cree un entorno virtual e instale dependencias:

uv venv
source .venv/bin/activate  # On Windows use: .venv\Scripts\activate
uv pip install -e ".[dev]"

Ejecución de pruebas

Para ejecutar el conjunto de pruebas:

uv run pytest

Esto hará lo siguiente:

  • Ejecutar todas las pruebas en el directorio tests/

  • Mostrar información de cobertura de la prueba

  • Mostrar salida detallada para cualquier falla

Nota: Algunas pruebas requieren configuración adicional:

  • Las pruebas de geolocalización requieren una base de datos MaxMind GeoLite2 y una clave de licencia

  • Las pruebas WHOIS pueden fallar si el servicio WHOIS no está disponible

Calidad del código

El proyecto utiliza varias herramientas para mantener la calidad del código:

  • Código de formato con negro:

uv run black .
  • Ordenar importaciones con isort:

uv run isort .
  • Ejecutar la comprobación de tipos con mypy:

uv run mypy .
  • Ejecutar pelusa con ruff:

uv run ruff .

Hoja de ruta

Completado: ✓ Búsquedas de ASN ✓ Búsquedas de registros DNS (A, AAAA, MX, etc.) ✓ Recuperación de registros WHOIS ✓ Servicios de geolocalización de IP

Herramientas futuras planificadas para su inclusión:

  • Puntuación de reputación de dominio

  • Análisis de certificados SSL

  • Escaneo de puertos de red

  • Integración de inteligencia de amenazas

  • Historial de DNS pasivo

  • Análisis de seguridad del correo electrónico (SPF, DKIM, DMARC)

  • Análisis de ruta BGP

  • Visualización del tráfico de red

  • Búsquedas de hash de malware

  • Comprobación de la reputación de URL

Contribuyendo

Se agradecen las contribuciones para añadir nuevas herramientas de IR o mejorar las existentes. Siga estos pasos:

  1. Bifurcar el repositorio

  2. Crear una rama de características

  3. Agregue su herramienta siguiendo el patrón existente en mcp_server.py

  4. Incluir documentación apropiada como recurso

  5. Envíe una solicitud de extracción con una descripción clara de sus cambios

Licencia

Apache 2.0

Consideraciones de seguridad

Este servidor está diseñado para la investigación legítima de seguridad y la respuesta a incidentes. Los usuarios deben asegurarse de cumplir con todas las leyes y normativas aplicables al utilizar estas herramientas.

Available Tools

4 tools
asnlookupD
ParametersJSON Schema
NameRequiredDescriptionDefault
ipaddrYes

TDQS

D1/5.0
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Tool has no description.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness1/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Tool has no description.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Tool has no description.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Tool has no description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose1/5

Does the description clearly state what the tool does and how it differs from similar tools?

Tool has no description.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines1/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Tool has no description.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

dnslookupD
ParametersJSON Schema
NameRequiredDescriptionDefault
domainYes
record_typeNoA

TDQS

D1/5.0
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Tool has no description.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness1/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Tool has no description.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Tool has no description.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Tool has no description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose1/5

Does the description clearly state what the tool does and how it differs from similar tools?

Tool has no description.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines1/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Tool has no description.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

geolookupD
ParametersJSON Schema
NameRequiredDescriptionDefault
ipaddrYes
license_keyNo

TDQS

D1/5.0
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Tool has no description.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness1/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Tool has no description.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Tool has no description.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Tool has no description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose1/5

Does the description clearly state what the tool does and how it differs from similar tools?

Tool has no description.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines1/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Tool has no description.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

whoislookupD
ParametersJSON Schema
NameRequiredDescriptionDefault
domainYes

TDQS

D1/5.0
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Tool has no description.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness1/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Tool has no description.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Tool has no description.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Tool has no description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose1/5

Does the description clearly state what the tool does and how it differs from similar tools?

Tool has no description.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines1/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Tool has no description.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 4 tool updatesv0.1.0
    • First observedasnlookup
    • First observeddnslookup
    • First observedgeolookup
    • First observedwhoislookup

TDQS

C2.1/5.0

Scored across 4 tools

Disambiguation5/5

Each tool has a clearly distinct purpose: asnlookup for Autonomous System Number queries, dnslookup for DNS resolution, geolookup for geographic IP location, and whoislookup for domain registration details. There is no overlap or ambiguity between these tools, making it easy for an agent to select the correct one based on the specific information needed.

Naming Consistency5/5

All tool names follow a consistent pattern of noun+lookup (e.g., asnlookup, dnslookup, geolookup, whoislookup), using lowercase and no separators. This predictable naming scheme enhances readability and makes the tool set easy to navigate without any deviations or mixed conventions.

Tool Count5/5

With 4 tools, this server is well-scoped for its purpose in IR (Incident Response) or network investigation. Each tool earns its place by covering a distinct aspect of network intelligence (ASN, DNS, geolocation, WHOIS), providing a focused and efficient set without being too thin or overloaded.

Completeness4/5

The tool set covers core network investigation functions comprehensively, with no obvious gaps for basic lookups. However, minor gaps might exist for advanced IR workflows, such as IP reputation checks or threat intelligence queries, but agents can likely work around this with the provided tools for most common tasks.

Maintenance

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

  • Cybersecurity MCP server for URL scanning, threat intelligence, and domain reputation.

  • The Google GKE MCP server is a managed Model Context Protocol server that provides AI applications with tools to manage Google Kubernetes Engine (GKE) clusters and Kubernetes resources. It exposes a structured, discoverable interface that allows AI agents to interact with GKE and Kubernetes APIs, enabling them to inspect cluster configurations, retrieve Kubernetes resource YAMLs, monitor operations like cluster upgrades, diagnose issues, and optimize costs—all without needing to parse text output or use complex kubectl commands.

  • The Telnyx MCP server is an official implementation of the Model Context Protocol that enables AI clients (like Claude Desktop, Cursor, and OpenAI Agents) to interact with Telnyx's telephony, messaging, and AI assistant APIs. It provides comprehensive capabilities including making and managing phone calls, sending SMS/MMS messages, purchasing and configuring phone numbers, creating AI assistants with custom instructions, managing cloud storage buckets, scraping and embedding website content, and handling integration secrets. The server exists as both a local implementation and a remotely hosted version, allowing developers to integrate real-world communication infrastructure directly into AI applications.

  • The Remote MCP server acts as a standardized bridge between LLM applications (like Claude, ChatGPT, and Cursor) and external services, enabling AI agents to access external tools and resources. Its primary capability is providing a centralized search tool to discover other MCP servers and their respective tools. Unlike local implementations, it runs remotely with OAuth authentication and permission controls for security.

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    A Model Context Protocol server that provides access to Shodan and VirusTotal APIs for cybersecurity analysis, enabling analysts to perform network intelligence operations including host lookups, vulnerability analysis, and threat intelligence gathering.
    25
    -
  • A
    license
    Not graded
    quality
    D
    maintenance
    A Model Context Protocol server that integrates Wireshark's network analysis capabilities with AI systems like Claude, allowing direct analysis of network packet data without manual copying.
    32
    MIT
  • A
    license
    A
    quality
    F
    maintenance
    A Model Context Protocol server that provides network packet capture and analysis capabilities through Wireshark/tshark integration, enabling AI assistants to perform network security analysis and troubleshooting.
    4
    35
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    A Model Context Protocol server that provides comprehensive domain analysis capabilities including WHOIS lookups, DNS record queries, and DNS health checking.
    14
    MIT