ZeroPath MCP Server

Interactúa con los hallazgos de seguridad de tu producto usando lenguaje natural.

Documentación

Servidor MCP de ZeroPath

License: MIT

Interactúa con los hallazgos de seguridad de ZeroPath mediante herramientas compatibles con MCP.

Este servidor MCP llama directamente a los procedimientos tRPC V2 de ZeroPath (sin envoltorios REST) y devuelve respuestas JSON estructuradas adecuadas para el consumo por agentes.


Publicación en el Blog

Obtén más información sobre por qué construimos esto y cómo encaja en el ecosistema de desarrollo de IA en evolución:

Chatea con tus Escaneos de AppSec: Presentamos el Servidor MCP de ZeroPath

Instalación

Instalación Rápida (Recomendada)

Instala directamente desde GitHub:

# Using pip
pip install git+https://github.com/ZeroPathAI/zeropath-mcp-server.git

# Using uvx (run without installing)
uvx --from git+https://github.com/ZeroPathAI/zeropath-mcp-server zeropath-mcp-server

También puedes fijar una versión específica:

# Specific version tag
pip install git+https://github.com/ZeroPathAI/zeropath-mcp-server.git@v0.1.0

# Latest from main branch
uvx --from "git+https://github.com/ZeroPathAI/zeropath-mcp-server@main" zeropath-mcp-server

Desde el Código Fuente

git clone https://github.com/ZeroPathAI/zeropath-mcp-server.git
cd zeropath-mcp-server
uv sync

Desde PyPI (Opcional)

Si el paquete está publicado en PyPI, también puedes instalarlo mediante:

pip install zeropath-mcp-server

Configuración

1. Generar Clave de API

Genera una clave de API a nivel de usuario o de administrador desde la Configuración de ZeroPath.

2. Configurar Variables de Entorno

export ZEROPATH_BASE_URL="https://zeropath.com"  # optional (defaults to https://zeropath.com)
export ZEROPATH_TOKEN_ID=your_token_id
export ZEROPATH_TOKEN_SECRET=your_token_secret
export ZEROPATH_ORG_ID=your_org_id

Usa ZEROPATH_BASE_URL para apuntar a staging u otro entorno, por ejemplo:

export ZEROPATH_BASE_URL="https://staging.branch.zeropath.com"

Configuración

Agrega lo siguiente a tu archivo de configuración de MCP (Claude Desktop, Cursor, etc.):

Usando URL de GitHub (Recomendado)

{
  "mcpServers": {
    "zeropath": {
      "command": "uvx",
      "args": [
        "--from",
        "git+https://github.com/ZeroPathAI/zeropath-mcp-server",
        "zeropath-mcp-server"
      ],
      "env": {
        "ZEROPATH_BASE_URL": "https://zeropath.com",
        "ZEROPATH_TOKEN_ID": "your_token_id",
        "ZEROPATH_TOKEN_SECRET": "your_token_secret",
        "ZEROPATH_ORG_ID": "your_org_id"
      }
    }
  }
}

Usando instalación desde el código fuente

{
  "mcpServers": {
    "zeropath": {
      "command": "uv",
      "args": [
        "run",
        "--project",
        "/path/to/zeropath-mcp-server",
        "python",
        "-m",
        "zeropath_mcp_server"
      ],
      "env": {
        "ZEROPATH_BASE_URL": "https://zeropath.com",
        "ZEROPATH_TOKEN_ID": "your_token_id",
        "ZEROPATH_TOKEN_SECRET": "your_token_secret",
        "ZEROPATH_ORG_ID": "your_org_id"
      }
    }
  }
}

Usando instalación desde PyPI (Opcional)

{
  "mcpServers": {
    "zeropath": {
      "command": "zeropath-mcp-server",
      "env": {
        "ZEROPATH_BASE_URL": "https://zeropath.com",
        "ZEROPATH_TOKEN_ID": "your_token_id",
        "ZEROPATH_TOKEN_SECRET": "your_token_secret",
        "ZEROPATH_ORG_ID": "your_org_id"
      }
    }
  }
}

Superficie de Herramientas (tRPC V2)

Las herramientas se cargan dinámicamente desde el manifiesto MCP del frontend de ZeroPath al inicio.

Todas las llamadas a herramientas usan procedimientos tRPC V2 directamente siguiendo las convenciones HTTP de tRPC v10:

  • Consultas: GET /trpc/<procedure>?input=<url-encoded-json>
  • Mutaciones: POST /trpc/<procedure> con el objeto JSON de entrada sin procesar como cuerpo (sin envolver).

Las respuestas exitosas se devuelven como JSON estructurado con el envoltorio { "result": { "data": ... } } eliminado. Los errores devuelven el objeto error de tRPC directamente.

El servidor también realiza validación de entrada del lado del cliente con el mejor esfuerzo usando el inputSchema de cada herramienta desde el manifiesto y devuelve un error BAD_REQUEST antes de llamar a tRPC cuando las entradas no son válidas. Si un esquema usa características de JSON Schema no compatibles, la validación del lado del cliente se omite para esa llamada (la validación del lado del servidor sigue siendo la autoritativa).


Ejemplos de Llamadas

Listar problemas:

{
  "tool": "issues.list",
  "input": {
    "page": 1,
    "pageSize": 25,
    "statuses": ["PENDING_REVIEW"],
    "sortBy": "score",
    "sortOrder": "desc"
  }
}

Archivar problemas:

{
  "tool": "issues.archive",
  "input": {
    "issueIds": ["issue_123", "issue_456"],
    "reason": "Confirmed duplicate"
  }
}

Crear una regla:

{
  "tool": "rules.create",
  "input": {
    "name": "Detect unsafe eval",
    "rule": "Detect any use of eval() on user input",
    "globPattern": "**/*.js",
    "sourceTypes": ["FILE_HANDLER"],
    "repositoryIds": ["repo_123"]
  }
}

Obtener resumen de estadísticas:

{
  "tool": "stats.summary",
  "input": {
    "organizationId": "org_123"
  }
}

Desarrollo

Ejecutar Pruebas

uv run pytest tests/ -v

Compilar el Paquete

uv build

Publicar en PyPI (Opcional)

uv publish

Contribuciones

Damos la bienvenida a contribuciones de las comunidades de seguridad, IA y herramientas para desarrolladores.

  • ¿Encontraste un error? Abre un problema
  • ¿Quieres mejorar una herramienta o agregar una nueva? Envía una solicitud de extracción
  • ¿Tienes comentarios o preguntas? Únete a nosotros en Discord

Licencia

Licencia MIT: consulta LICENCIA para más detalles.