ZeroPath MCP Server

Interaja com os achados de segurança do seu produto usando linguagem natural.

Documentação

Servidor MCP ZeroPath

License: MIT

Interaja com os achados de segurança do ZeroPath por meio de ferramentas compatíveis com MCP.

Este servidor MCP chama os procedimentos tRPC V2 do ZeroPath diretamente (sem wrappers REST) e retorna respostas JSON estruturadas adequadas para consumo por agentes.


Post no Blog

Saiba mais sobre por que criamos isso e como se encaixa no ecossistema de desenvolvimento de IA em evolução:

Converse com seus Scans de AppSec: Apresentando o Servidor MCP ZeroPath

Instalação

Instalação Rápida (Recomendada)

Instale diretamente do 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

Você também pode fixar uma versão 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

A partir do código-fonte

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

A partir do PyPI (Opcional)

Se o pacote for publicado no PyPI, você também pode instalar via:

pip install zeropath-mcp-server

Configuração

1. Gerar Chave de API

Gere uma chave de API com escopo de usuário ou de administrador nas Configurações do ZeroPath.

2. Configurar Variáveis de Ambiente

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

Use ZEROPATH_BASE_URL para direcionar o staging ou outro ambiente, por exemplo:

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

Configuração

Adicione o seguinte ao seu arquivo de configuração MCP (Claude Desktop, Cursor, etc.):

Usando URL do 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 instalação a partir do código-fonte

{
  "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 instalação via 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"
      }
    }
  }
}

Superfície de Ferramentas (tRPC V2)

As ferramentas são carregadas dinamicamente a partir do manifesto MCP do frontend do ZeroPath na inicialização.

Todas as chamadas de ferramentas usam os procedimentos tRPC V2 diretamente, seguindo as convenções HTTP do tRPC v10:

  • Consultas: GET /trpc/<procedure>?input=<url-encoded-json>
  • Mutações: POST /trpc/<procedure> com o objeto JSON bruto de entrada como corpo (sem wrapper).

Respostas bem-sucedidas são retornadas como JSON estruturado com o wrapper { "result": { "data": ... } } removido. Erros retornam o objeto error do tRPC diretamente.

O servidor também realiza validação de entrada no lado do cliente com melhor esforço, usando o inputSchema de cada ferramenta do manifesto, e retorna um erro BAD_REQUEST antes de chamar o tRPC quando as entradas são inválidas. Se um esquema usar recursos de JSON Schema não suportados, a validação no lado do cliente é ignorada para essa chamada (a validação no lado do servidor permanece autoritativa).


Exemplos de Chamadas

Listar problemas:

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

Arquivar problemas:

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

Criar uma regra:

{
  "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"]
  }
}

Buscar resumo de estatísticas:

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

Desenvolvimento

Executando Testes

uv run pytest tests/ -v

Compilando o Pacote

uv build

Publicando no PyPI (Opcional)

uv publish

Contribuindo

Aceitamos contribuições das comunidades de segurança, IA e ferramentas para desenvolvedores.

  • Encontrou um bug? Abra uma issue
  • Quer melhorar uma ferramenta ou adicionar uma nova? Envie um pull request
  • Tem feedback ou perguntas? Junte-se a nós no Discord

Licença

Licença MIT - consulte LICENSE para detalhes.