EVIDIQ Bastion
OfficialLas configuraciones de Infraestructura como Código y las de despliegue definen el perímetro de seguridad de los servicios de agentes autónomos. Un servicio de agente configurado para ejecutar cargas de trabajo de contenedores como root, exponer reglas de acceso entrante 0.0.0.0/0, usar GitHub Actions sin fijar, o montar rutas de red del host introduce riesgos inmediatos de compromiso del clúster antes de que se ejecute cualquier código.
EVIDIQ Bastion es la puerta de seguridad previa al despliegue para las configuraciones de infraestructura.
Pásale Dockerfiles, flujos de trabajo CI de GitHub Actions, manifiestos de Kubernetes o archivos Terraform HCL / Compose. Evalúa 14 reglas de seguridad deterministas — que imponen la ejecución no root, el aislamiento de credenciales, la integridad de la cadena de suministro, los límites de recursos y las atestaciones firmadas.
Bastion nunca despliega infraestructura, nunca ejecuta los manifiestos de entrada y nunca acepta claves privadas.
Qué hace
Aplicación de ejecución no root — Detecta la ejecución como usuario root (
USER rooto la ausencia de una directivaUSERno root) en las construcciones de contenedores.Fijación de acciones de la cadena de suministro — Aplica el fijado completo del SHA de commit de 40 caracteres para GitHub Actions (bloqueando etiquetas mutables
@v3/@main) y resúmenes SHA-256 inmutables para las imágenes base de Docker.Aislamiento de credenciales — Detecta secretos codificados, claves de API o claves privadas en directivas ARG/ENV de construcción, valores predeterminados de variables IaC en texto plano y variables de entorno de secretos de Kubernetes.
Endurecimiento de cargas de trabajo de Kubernetes — Identifica contenedores privilegiados (
privileged: true), montajes de volúmeneshostPath, exposición dehostNetworky ausencia de límites de recursos de CPU/memoria.Auditoría de exposición de IaC — Audita Terraform HCL y Docker Compose para detectar acceso entrante mundial abierto (
0.0.0.0/0), cubos S3 públicos y capacidades de contenedor sin restricciones.Vectores de ataque en tuberías CI/CD — Detecta riesgos de checkout de código no confiable en activadores
pull_request_target, inyección de expresionesgithub.eventsin escapar en pasosruny permisos excesivamente ampliospermissions: write-all.Atestaciones firmadas —
attest_deploymentvincula el resumen de la configuración, los hallazgos de la evaluación y el veredicto en una atestación firmada EIP-191 y la ancla en el almacenamiento 0G.Veredictos deterministas — Cualquier
blockerfallido produceBLOCK; de lo contrario, cualquierhighfallido produceREVIEW; las evaluaciones limpias producenPASS.Pago por verificación — Cinco herramientas de análisis de pago a
0.005–0.03 USDT0; cinco herramientas de preflight y verificación son gratuitas.
Related MCP server: supership-scan
Cuándo acudir a Bastion
Usa Bastion antes de aplicar o desplegar código de infraestructura: antes de construir imágenes de contenedores, antes de fusionar solicitudes de extracción de flujos de trabajo CI/CD, antes de aplicar manifiestos de Kubernetes (kubectl apply) o antes de ejecutar Terraform (terraform apply).
No le envíes claves privadas — nunca. No enrutes calldata de contratos inteligentes aquí (eso es Assay), el código fuente es Warden, la accesibilidad de endpoints es Sentinel, los manifiestos de dependencias son Lineage y el registro de acciones duradero es Vault.
Una cadena natural: validate_config → scan_dockerfile / scan_workflow → attest_deployment → append_record (Vault).
Úsalo desde cualquier agente
# Read the public Skill document
curl -s https://mcp.evidiq.dev/bastion/skill.md
# Inspect current x402 pricing discovery
curl -s https://mcp.evidiq.dev/bastion/x402
# Connect the remote MCP server (OpenClaw)
openclaw mcp add evidiq-bastion --transport streamable-http --url https://mcp.evidiq.dev/bastion/mcp
# Connect the remote MCP server (Claude Code)
claude mcp add --transport http evidiq-bastion https://mcp.evidiq.dev/bastion/mcpEndpoints públicos:
Endpoint | Propósito |
| Transporte MCP HTTP Streamable remoto |
| Guía de uso y seguridad legible por agentes |
| Descubrimiento de precios y pagos x402 v2 |
| Estado del servicio y del portal de pagos |
| Documentación técnica |
Herramientas MCP
Análisis de pago y atestaciones
Herramienta | Costo | Atómico | Descripción |
|
|
| Audita Dockerfiles en busca de usuario root, imágenes base sin fijar, secretos en etapas de construcción y URLs ADD |
|
|
| Audita el YAML de flujos de trabajo de GitHub Actions en busca de acciones sin fijar, riesgos de |
|
|
| Audita manifiestos de Kubernetes en busca de modo privilegiado, |
|
|
| Audita Terraform HCL y Docker Compose en busca de acceso entrante |
|
|
| Vincula el resumen de la configuración de despliegue y el veredicto en una atestación firmada EIP-191 anclada en el almacenamiento 0G |
Preflight y verificación gratuitos
Herramienta | Costo | Descripción |
| Gratis | Catálogo de reglas con severidades, tipos de configuración compatibles, límites, precios completos y lista de herramientas |
| Gratis | Verificación de preflight gratuita: detecta automáticamente el tipo de configuración, calcula el resumen SHA-256, comprueba si hay secretos en la entrada e informa recuentos de severidad |
| Gratis | Herramienta de consulta de precios; sin argumento, muestra la tabla de precios completa |
| Gratis | Validador de resumen de contenido SHA-256 fuera de línea y de firma EIP-191 |
| Gratis | Recupera el informe o la atestación almacenados por artifactId (TTL de 10 minutos) |
Verificación de pruebas y salida del arnés automatizado
Cada regla y portal de pago en EVIDIQ Bastion se valida mediante un arnés de pruebas automatizado (tester/harness.mjs) en VPS.
1. Matriz de casos de prueba del arnés automatizado (14/14 PASS)
Caso de prueba | Herramienta | Veredicto esperado | Veredicto real | Coincidencia de igualdad de conjuntos |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2. Registros del arnés de verificación (node tester/harness.mjs)
=== Starting EVIDIQ Bastion MCP Test Harness ===
Test Container Endpoint: http://127.0.0.1:4012/mcp
Production Endpoint: http://127.0.0.1:3012/mcp
--- Step 1: Verify Test Container Health & Bypass ---
PASS: Test container health is 200 OK
PASS: Test container carries bypass header 'x-x402-bypass: true'
PASS: Test container response includes 'x402Bypass: true' in body
--- Step 2 & 3: Bare Call Sweep & Fixture Verification (14 Fixtures) ---
PASS: 14/14 Fixture Assertions Passed with Exact Set-Equality Match
--- Step 4: Determinism & Digest Stability ---
PASS: Repeated scan yields byte-identical SHA-256 digest: 274cd946dd164d373f6472ef66ab9d85450733f3c167dc4a066d25238a3eeeea
--- Step 5: Test Build Markers Check ---
PASS: Response carries 'testBuild: true' marker
--- Step 6: Production Unpaid 402 Probes ---
PASS: Production /health is 200 OK
PASS: Production paymentGate is 'enforced'
PASS: Production HEAD /mcp returns 402 Payment Required
PASS: Production unpaid scan_dockerfile returns HTTP 402
=================================================
SUCCESS: All EVIDIQ Bastion MCP test harness assertions PASSED!3. Trazas de ejecución del agente autónomo OpenClaw
Ejecución del Agente 1 — Auditoría de Dockerfile (scan_dockerfile):
openclaw@evidiq-vps:~$ openclaw agent --session-id bastion-dockerfile-audit \
--message "Use tool scan_dockerfile from evidiq-bastion MCP to audit: 'FROM node:22-alpine\nCMD [\"node\"]'" --local
[provider-transport-fetch] start provider=zerog model=glm-5.2 method=POST url=https://router-api.0g.ai/v1/chat/completions
[evidiq-bastion] Executing tool scan_dockerfile (content-length: 32 bytes)
## Dockerfile Audit Results
Verdict: 🚫 BLOCK (1 blocker finding)
Finding:
• [BASTION_ROOT_USER] Blocker (Line 2)
Why: Container runs as root by default. A container escape gives root access on the host node.
Remediation: Add 'USER node' instruction (node:22-alpine ships with UID 1000).
Report Integrity:
Digest: 86e0124f52a23e277f9864190fcbff9
Signer: 0x131E4A54aB221929834815c99195dAec316aC270
Artifact ID: art_86e0124f52a23e27Ejecución del Agente 2 — Auditoría de flujo de trabajo de GitHub Actions (scan_workflow):
openclaw@evidiq-vps:~$ openclaw agent --session-id bastion-workflow-audit \
--message "Use tool scan_workflow from evidiq-bastion MCP to audit GitHub Actions workflow" --local
[provider-transport-fetch] start provider=zerog model=glm-5.2 method=POST url=https://router-api.0g.ai/v1/chat/completions
[evidiq-bastion] Executing tool scan_workflow (content-length: 88 bytes)
## GitHub Actions Workflow Audit
Verdict: ⚠️ REVIEW (0 Blocker, 1 High, 0 Medium)
Finding:
• [BASTION_ACTION_NOT_PINNED] High Severity
Detail: actions/checkout@v3 is pinned to a mutable tag instead of commit SHA.
Why: Mutable tags can be hijacked. Pinning to a SHA prevents untrusted action code updates.
Remediation: Pin action to immutable 40-character commit SHA (e.g., actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11).
Integrity:
Signature: EIP-191 signed by 0x131E4A54aB221929834815c99195dAec316aC270
Artifact ID: art_960389b236d8cb9fFlujo de trabajo recomendado
El cobro se produce antes de que se ejecute una herramienta de pago, por lo que un argumento mal formado sigue siendo una llamada de pago. Haz primero el preflight gratuito:
bastion_capabilities— catálogo de reglas, tipos de configuración compatibles, límites y precios.validate_config— confirma el tipo de configuración, detecta secretos en la entrada y devuelve recuentos de severidad sin cobrar.estimate_cost— precio exacto de la operación que pretendes ejecutar.Una llamada de pago por solicitud (
scan_dockerfile,scan_workflow,scan_manifest,scan_iacoattest_deployment).verify_bastion_report— verificación gratuita fuera de línea de la firma y del resumen del informe.
Familias de reglas y motor de veredictos
Bastion impone 14 reglas de seguridad deterministas en 6 familias:
Privilegio:
BASTION_ROOT_USER,BASTION_PRIVILEGEDExposición:
BASTION_WORLD_INGRESS,BASTION_PUBLIC_STORAGE,BASTION_HOST_NETWORKSecretos:
BASTION_SECRET_IN_BUILD_ARG,BASTION_PLAINTEXT_SECRET,BASTION_SECRET_ENVCadena de suministro:
BASTION_UNPINNED_BASE,BASTION_ACTION_NOT_PINNED,BASTION_PR_TARGET_UNTRUSTED,BASTION_EXPR_INJECTIONRecurso:
BASTION_NO_RESOURCE_LIMITSHigiene:
BASTION_ADD_URL,BASTION_UNPINNED_PKG_INSTALL
Lógica de veredicto:
Si falla cualquier regla
blocker→BLOCKSi falla cualquier regla
high(con 0 bloqueantes) →REVIEWEvaluación limpia (0 bloqueantes, 0 hallazgos de severidad alta) →
PASS
Lo que un informe demuestra, y lo que no
Sí demuestra que esta configuración de despliegue exacta, evaluada bajo la versión determinista del motor de 14 reglas, produjo este resumen de contenido, conjunto de hallazgos y veredicto.
Sí produce una firma EIP-191 firmada por la clave de confianza de Bastion, anclable en el almacenamiento de 0G.
No garantiza la seguridad de la aplicación en tiempo de ejecución más allá de la configuración estática. Los errores dinámicos de la aplicación o los ataques a la red en vivo fuera de la definición de IaC quedan fuera del alcance estático.
Arquitectura
flowchart TB
agent["<b>AI agent</b><br/>MCP client"]
request{"Tool call<br/>free or paid?"}
agent -->|POST /bastion/mcp| request
free["Free preflight<br/>capabilities · validate_config<br/>estimate · verify · get_artifact"]
gate["x402 v2 gate<br/>EIP-3009 exact · pay per config scan"]
xlayer[("X Layer<br/>USD₮0 · eip155:196")]
request -->|free helper| free
request -->|paid config scan| gate
gate -. verify and settle .-> xlayer
subgraph bastion["EVIDIQ Bastion trust boundary"]
direction TB
parse["1. Config parser<br/>Dockerfile · YAML · HCL · manifest"]
rules["2. 14-rule engine<br/>privilege · exposure · secrets · supply chain · resources"]
report["3. Canonical report<br/>SHA-256 digest · EIP-191 signature"]
artifacts["4. Content-addressed artifacts<br/>scan reports & attestations"]
parse --> rules --> report --> artifacts
end
free --> parse
gate --> parse
response["<b>MCP response</b><br/>verdict + findings + attestation"]
artifacts --> response
classDef client fill:#312e81,stroke:#a78bfa,color:#ffffff,stroke-width:2px;
classDef payment fill:#052e16,stroke:#4ade80,color:#ffffff,stroke-width:2px;
classDef core fill:#0f172a,stroke:#38bdf8,color:#ffffff,stroke-width:2px;
classDef output fill:#4c1d95,stroke:#c4b5fd,color:#ffffff,stroke-width:2px;
class agent,request client;
class free,gate,xlayer payment;
class parse,rules,report,artifacts core;
class response output;
style bastion fill:#0f172a,stroke:#38bdf8,color:#e0f2fe,stroke-width:2px;SDK de TypeScript
Un cliente tipado para el endpoint en vivo se encuentra en sdk/index.ts: 10 herramientas (5 gratuitas, 5 de pago). Las herramientas gratuitas responden a una llamada simple; las de pago ejecutan el flujo x402 automáticamente (desafío 402 → hook pay → reintento con la cabecera x-payment). Ninguna clave reside en el archivo.
import { BastionClient } from "./sdk/index.js";
const client = new BastionClient(); // endpoint defaults to https://mcp.evidiq.dev/bastion/mcp
// free
const caps = await client.callTool("bastion_capabilities", {});
// paid — settle the 402 challenge via the constructor's pay hook, or omit it
// to receive a PaymentRequiredError carrying the full x402 v2 challenge
const result = await client.callTool("some_paid_tool", { arg: "value" });El hook pay recibe el desafío x402 v2 decodificado ({ x402Version, resource, accepts[] } — payTo, asset, amount) y devuelve el valor para la cabecera x-payment, p. ej., un transferWithAuthorization EIP-3009 liquidado mediante el SDK oficial de OKX. Sin un hook, las llamadas de pago lanzan PaymentRequiredError para que el llamante pueda liquidarlo como quiera.
Licencia
EVIDIQ es propietaria del código original de Bastion y lo licencia bajo MIT. Las dependencias de terceros conservan sus propias licencias de código abierto en THIRD_PARTY_NOTICES.md.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseAqualityBmaintenanceSecurity co-pilot for AI agents. Scans for vulnerabilities like prompt injection, infinite loops, and token bombing in AI Agents, audits MCP servers, verifies AGENTS.md governance, and generates EU AI Act compliance reports.10633Apache 2.0
- AlicenseNot gradedqualityBmaintenancePredeploy security scanner for AI-generated code. 80+ vulnerability patterns across secrets, auth, injection, config, Supabase, and logging. Runs locally, code never leaves your machine. Optional x402 witnessed attestation.136Apache 2.0
- AlicenseAqualityCmaintenanceSecurity auditor for CI ecosystems that detects supply-chain and injection flaws in CI/CD configuration files across seven CI platforms, providing taint analysis, remediation, and compliance scoring.2MIT
- AlicenseNot gradedqualityBmaintenanceLocal-first security check for AI coding agents — finds hardcoded secrets, exposed .env files, git-history leaks and vulnerable dependencies (OSV), entirely on your machine. Ask your agent "is this safe to ship?" and get a Launch Readiness score with a fix for every finding.MIT
Related MCP Connectors
Four IaC audits in one call: Compose, Dockerfile, GitHub Actions, Kubernetes. 131 checks.
Hadolint-grade Dockerfile audit — 19 checks: secrets, privileges, supply chain, hygiene.
Multi-CI security scanner with a live threat-intel feed of compromised CI components
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/evidiq/evidiq-bastion-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server