ZeroPath MCP Server
Interactúa con los hallazgos de seguridad de tu producto usando lenguaje natural.
Documentación
Servidor MCP de ZeroPath
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.