Saltar al contenido
HodeiShield®

API, CLI y MCP: tus datos de riesgo, en solo lectura.

Una API REST pública y versionada en api.hodeishield.com, un CLI de código abierto y un servidor MCP alojado que la consume. Ninguna superficie para desarrolladores modifica datos de tu tenant.

  • Claves de API con scopes u OAuth 2.1 con PKCE.
  • CLI Apache-2.0 con firma Sigstore y procedencia SLSA.
Una llamada, de punta a punta
curl -H "Authorization: Bearer $HODEISHIELD_API_KEY" "https://api.hodeishield.com/v1/vendors?per_page=5"
Forma de la respuesta (estructura, sin datos)
{
  "data": [ … ],
  "pagination": {
    "page": 1, "per_page": 5,
    "total": …, "total_pages": …
  }
}

Cinco superficies, un mismo contrato

Todas leen datos de tu tenant. Ninguna escribe.

CLI hodeishield

Linux x86_64 y arm64 · macOS universal · Windows x86_64

Cliente oficial de línea de comandos, para terminal y scripts.

  • Apache-2.0, versión 0.3.1 (0.x: los comandos y la salida pueden cambiar).
  • Cada versión va firmada con Sigstore y con procedencia SLSA.
  • Soporte de 5 años por versión mayor, contados desde la 1.0.0; el fin de soporte se anuncia con 12 meses de antelación.
  • La serie 0.x recibe correcciones de seguridad en su última versión; las actualizaciones de seguridad siguen disponibles tras caducar la suscripción.

Alcance: Solo lectura. Se instala con Homebrew (macOS y Linux), con Scoop (Windows) o desde el archivo de la versión.

Servidor MCP alojado

https://mcp.hodeishield.com/mcp

Tu asistente de IA lee tus datos a través del protocolo MCP, sin instalar nada.

  • 11 herramientas de solo lectura, una por operación de /v1.
  • OAuth 2.1 con PKCE y sesiones de un solo tenant.

Alcance: No modifica nada. Los resultados van en un envoltorio contra inyección de prompts.

Webhooks salientes

Tu endpoint HTTPS recibe los eventos del tenant según tus reglas de enrutado, firmados con HMAC-SHA256.

  • Firma con marca de tiempo para detectar repeticiones.
  • Hasta seis intentos de entrega (cinco reintentos) si no respondes con 2xx.

Alcance: Es un destino de alertas: notifica, no ejecuta nada en HodeiShield.

API: autenticación, scopes y operaciones

Cada clave pertenece a un tenant y lleva solo los scopes de lectura que necesita.

Cómo se autentica

Un administrador crea la clave en la consola, con un nombre, una caducidad y solo los scopes necesarios. El token (hsk_…) se muestra una vez. Para actuar como una persona concreta, por ejemplo desde el CLI o un asistente, se usa OAuth 2.1 con PKCE.

supply_risk:read
Proveedores, alertas y riesgos
compliance.<framework>:read
Controles y postura de un marco concreto
evidence:read
Evidencia
endpoints:read
Equipos con agente

Respuesta y errores

Las colecciones aceptan page (desde 1) y per_page (1 a 200, 50 por defecto) y devuelven data y pagination. Los errores siempre llevan el mismo sobre, con un request_id para soporte.

Primera lectura

curl -H "Authorization: Bearer $HODEISHIELD_API_KEY" "https://api.hodeishield.com/v1/vendors?per_page=5"

Documento OpenAPI (sin autenticación)

curl https://api.hodeishield.com/v1/openapi.json

El documento generado en /v1/openapi.json es la fuente autorizada; sirve para generar clientes tipados.

Operaciones

OperaciónPeticiónScope
ProveedoresGET /v1/vendors · /v1/vendors/{id}supply_risk:read
AlertasGET /v1/alerts · /v1/alerts/{id}supply_risk:read
RiesgosGET /v1/risks · /v1/risks/{id}supply_risk:read
Controles de cumplimientoGET /v1/compliance/controls?framework=…compliance.<framework>:read
Postura de un marcoGET /v1/compliance/frameworks/{framework}compliance.<framework>:read
EvidenciaGET /v1/evidence · /v1/evidence/{id}evidence:read
EndpointsGET /v1/endpointsendpoints:read
Documento OpenAPIGET /v1/openapi.jsonninguno

CLI: instala, verifica y lee

Instálalo con Homebrew o Scoop, o descarga el archivo de tu plataforma desde la versión publicada, verifícalo y colócalo en tu PATH.

Instala

Homebrew (macOS y Linux) y Scoop (Windows x86_64) instalan la versión 0.3.1 desde repositorios públicos de Hodeitek. El ejecutable de Windows va firmado con Authenticode; el de macOS todavía no.

Homebrew (macOS y Linux)

brew install hodeitek/hodeishield/hodeishield

Homebrew, si ya tienes el tap añadido

brew trust --formula hodeitek/hodeishield/hodeishield

Scoop (Windows)

scoop bucket add hodeishield https://github.com/Hodeitek/scoop-hodeishield; scoop install hodeishield

Verifica la descarga

Cada versión publica SHA256SUMS, un paquete Sigstore por archivo y la procedencia SLSA; desde la versión 0.2.0 publica además un SBOM CycloneDX por archivo. Los archivos son .tar.gz en Linux y macOS y .zip en Windows. Una firma cosign válida prueba que el archivo lo construyó el workflow release.yml del repositorio, lanzado por el tag exacto que esperas.

sha256sum --ignore-missing -c SHA256SUMS
cosign verify-blob hodeishield-0.3.1-x86_64-unknown-linux-musl.tar.gz --bundle hodeishield-0.3.1-x86_64-unknown-linux-musl.tar.gz.sigstore.json --certificate-identity https://github.com/Hodeitek/hodeishield-cli/.github/workflows/release.yml@refs/tags/v0.3.1 --certificate-oidc-issuer https://token.actions.githubusercontent.com --certificate-github-workflow-trigger push

Plataformas

  • Linux x86_64 (musl)
  • Linux arm64 (musl)
  • macOS, Apple silicon e Intel
  • Windows x86_64

También se puede compilar desde el código fuente con cargo install --locked, fijando el tag de la versión.

Úsalo

Con --json imprime la respuesta de la API sin tocar; con --csv saca las listas como CSV; con --all recorre todas las páginas. Los códigos de salida van de 0 a 8 y distinguen, por ejemplo, credencial ausente, scope insuficiente, límite de uso o licencia del tenant no vigente.

Con una clave de API (scripts, CI)

export HODEISHIELD_API_KEY=hsk_...

Como persona (navegador, 2FA, passkey o SSO)

hodeishield login
hodeishield whoami
hodeishield vendors list --criticality critical
hodeishield compliance posture nis2
hodeishield alerts list --status open --all --json | jq -r '.[] | [.severity, .title] | @tsv'

MCP: conecta tu asistente

Un servidor alojado, sin instalación. El asistente ve lo mismo que verías tú en el tenant que elijas, y solo con los scopes que concedas.

Cómo se conecta

En un cliente MCP con servidores remotos y OAuth, añade un conector con esta URL. El cliente descubre solo el servidor de autorización; tú inicias sesión en app.hodeishield.com con tus factores de siempre y eliges un único tenant.

URL del servidor MCP

https://mcp.hodeishield.com/mcp

Once herramientas de solo lectura

  • list_vendors
  • get_vendor
  • list_alerts
  • get_alert
  • list_risks
  • get_risk
  • list_compliance_controls
  • get_framework_posture
  • list_evidence
  • get_evidence
  • list_endpoints

Ninguna acepta un identificador de tenant como parámetro: no hay forma de pedir datos de otro.

Modelo de seguridad

  • Cada resultado va en un envoltorio que lo marca como datos del tenant, nunca como instrucción para el asistente.
  • El texto de un proveedor, una evidencia o una nota lo escribió una persona o un tercero. Un modelo de lenguaje puede tratarlo como una orden: revisa con otras herramientas cualquier acción que el asistente proponga a partir de él.
  • El registro guarda qué herramienta se llamó y su resultado técnico, nunca los argumentos, los resultados ni tu token.
  • El servidor aplica su propio límite de uso por usuario.

Webhooks firmados con HMAC

Verifica siempre la firma antes de procesar el cuerpo, y rechaza marcas de tiempo antiguas.

Cabeceras de cada entrega

X-HodeiShield-Timestamp
Marca de tiempo en segundos; cambia en cada intento.
X-HodeiShield-Signature-256
sha256= más HMAC-SHA256 del secreto sobre "{timestamp}.{body}".
X-HodeiShield-Delivery
Idéntica en todos los reintentos de una entrega; sirve para deduplicar.
X-HodeiShield-Event
Tipo de evento.

El secreto (whsec_…) se muestra una sola vez al crear el webhook; si lo pierdes, se rota. Si tu endpoint no responde 2xx, se intenta la entrega hasta seis veces en total (cinco reintentos, entre 5 minutos y 24 horas de espera); agotados los intentos, la entrega queda marcada como fallida en la consola y puedes volver a encolarla.

Verificación (Python)

import hashlib
import hmac

def is_valid(secret: str, timestamp: str, body: bytes, received_signature: str) -> bool:
    message = f"{timestamp}.".encode() + body
    expected = "sha256=" + hmac.new(secret.encode(), message, hashlib.sha256).hexdigest()
    return hmac.compare_digest(expected, received_signature)

Verifica una atestación sin conexión

El verificador es un script de bash y Python que puedes leer entero. No llama a HodeiShield en el momento de verificar.

Alcance: Prueba integridad, origen y momento de lo firmado. No prueba que las afirmaciones sean ciertas, no sustituye a una auditoría y no hay registro de transparencia. Pasa siempre --expect-slug y --expect-issuer: sin ellos, la atestación válida de otra organización también verifica. El código de salida es 0 si verifica, 1 si falla y 2 si no se pudo comprobar. Un documento auténtico pero caducado sale con 1 y su última línea empieza por «EXPIRED — the signature is valid».

Requisitos: bash 4, OpenSSL 3.5 o superior y python3. Si tu máquina no los tiene (macOS, Windows o Ubuntu 24.04), el repositorio del verificador documenta cómo ejecutar el mismo script en un contenedor con Docker o Podman; esa ruta instala OpenSSL y python3 al arrancar, así que necesita red.

curl -s https://app.hodeishield.com/api/public/attest/keys -o keys.json
./verify-attestation.sh --attestation attestation.json --jwks keys.json --expect-slug SLUG --expect-issuer https://app.hodeishield.com

Lo que estas superficies no hacen

Para que no lo descubras al integrarlas.

  1. No escriben

    API, CLI y MCP son de solo lectura. Para actuar sobre el tenant se usa la consola, y ACT siempre pasa por una persona.

  2. El CLI es 0.x

    Los comandos y la salida pueden cambiar antes de la 1.0. Fija la versión en tus scripts.

  3. El MCP depende de tu cliente

    El servidor no controla lo que tu cliente hace con los resultados. Trata como no fiable el texto de terceros que contengan.

  4. Acceso por licencia y por inquilino

    La disponibilidad de la API y del MCP depende de tu licencia y se confirma por inquilino; lo vemos en la demo.

  5. Sin cifras de rendimiento

    No publicamos SLA, tiempos de respuesta ni disponibilidad de la API en esta web.

  6. Los datos no son tiempo real

    La API devuelve lo que la plataforma ya ha recogido: el agente reporta por ciclo y los escaneos son periódicos.

Preguntas de integración

Lo que suele preguntar un equipo técnico antes de empezar.

¿Puedo escribir datos con la API?

No. La API /v1 es de solo lectura: cualquier método distinto de GET devuelve 405. El CLI y el MCP la usan, así que tampoco escriben.

¿Cómo autentico un script o un pipeline de CI?

Con una clave de API de tenant (hsk_…) creada por un administrador con solo los scopes de lectura necesarios. En el CLI basta exportar HODEISHIELD_API_KEY.

¿Cómo sé que el CLI que descargo es el oficial?

Cada versión publica SHA256SUMS, paquetes Sigstore y procedencia SLSA. Verifica con cosign que el archivo lo construyó el workflow release.yml del repositorio para el tag exacto.

¿Qué ve mi asistente a través del MCP?

Lo mismo que verías tú en el único tenant que elijas al conceder acceso y solo con los scopes que otorgues. Ninguna herramienta acepta un identificador de tenant.

¿Puedo verificar una atestación sin tener cuenta?

Sí. Descargas la clave pública de /api/public/attest/keys y ejecutas el verificador de código abierto. Funciona sin conexión con bash 4, OpenSSL 3.5 y python3, o en un contenedor con Docker o Podman.

Integra HodeiShield con lo que ya tienes

En la demo vemos qué leer por API, CLI o MCP, y cómo encaja con tus alertas y tus pipelines.

Una conversación de trabajo, sin compromiso.