ZeroPath MCP Server
Interaja com os achados de segurança do seu produto usando linguagem natural.
Documentação
Servidor MCP ZeroPath
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.