Issues
7 tools — list, triage, update status and severity
Scans
2 tools — list scan history, get scan details
Repositories
1 tool — list repositories with filtering
Rules
5 tools — full CRUD for custom security rules
Organization Scoping
Every tool acceptsorganizationId. The MCP server handles this automatically:
- If
ZEROPATH_ORG_IDis set, the server injects it into every request — you never need to pass it yourself. - If
ZEROPATH_ORG_IDis not set, you must passorganizationIdexplicitly. Most tools require it at the API level; a few (likeissues.list) can resolve org context from your auth session.
Issue Tools
issues.list
List and filter security issues. Uses offset-based pagination viaoffset and limit.
| Parameter | Type | Required | Description |
|---|---|---|---|
offset | integer | No | Starting index (default: 0) |
limit | integer | No | Results per page (default: 25, max: 100) |
statuses | string[] | No | Filter by status: PENDING_REVIEW, REVIEWING, PATCHING, RESOLVED, BACKLOG, NON_EXPLOITABLE, FALSE_POSITIVE, ACCEPTED_RISK |
scoreLevels | string[] | No | Filter by severity level: CRITICAL, HIGH, MEDIUM, LOW, INFO |
scoreRange | object | No | Filter by numeric score range: { min: number, max: number } (0–100) |
searchQuery | string | No | Free-text search across issue titles and descriptions |
scanId | string | No | Filter to issues from a specific scan |
languages | string[] | No | Filter by programming language |
vulnerabilityClasses | string[] | No | Filter by vulnerability class (e.g., SQL Injection) |
codeScanTypes | string[] | No | Filter by scan type |
detectionTypes | string[] | No | Filter by detection category |
repositoryBranches | object[] | No | Filter to specific repositories and branches |
projectId | string | No | Filter to a specific project |
sortBy | string | No | Sort field: createdAt, score, title, repository, class, file, patch |
sortOrder | string | No | asc or desc |
organizationId | string | No | Injected from ZEROPATH_ORG_ID when configured |
issues.archive
Archive issues to remove them from active views.| Parameter | Type | Required | Description |
|---|---|---|---|
issueIds | string[] | Yes | Issue IDs to archive |
reason | string | No | Reason for archiving |
organizationId | string | Yes | Injected from ZEROPATH_ORG_ID; pass explicitly if not configured |
issues.unarchive
Restore archived issues back to active views.| Parameter | Type | Required | Description |
|---|---|---|---|
issueIds | string[] | Yes | Issue IDs to unarchive |
organizationId | string | Yes | Injected from ZEROPATH_ORG_ID; pass explicitly if not configured |
issues.markFalsePositive
Mark issues as false positives. Removes them from active review.| Parameter | Type | Required | Description |
|---|---|---|---|
issueIds | string[] | Yes | Issue IDs to mark |
reason | string | No | Reason for the determination |
organizationId | string | Yes | Injected from ZEROPATH_ORG_ID; pass explicitly if not configured |
issues.markTruePositive
Confirm issues as true positives.| Parameter | Type | Required | Description |
|---|---|---|---|
issueIds | string[] | Yes | Issue IDs to confirm |
reason | string | No | Reason for confirmation |
organizationId | string | Yes | Injected from ZEROPATH_ORG_ID; pass explicitly if not configured |
issues.updateStatus
Update the workflow status of one or more issues.| Parameter | Type | Required | Description |
|---|---|---|---|
issueIds | string[] | Yes | Issue IDs to update |
issueStatus | string | Yes | PENDING_REVIEW, REVIEWING, PATCHING, RESOLVED, or BACKLOG |
reason | string | No | Reason for the status change |
organizationId | string | Yes | Injected from ZEROPATH_ORG_ID; pass explicitly if not configured |
issues.updateSeverity
Update the severity score of a single issue.| Parameter | Type | Required | Description |
|---|---|---|---|
issueId | string | Yes | Single issue ID (not an array) |
severity | number | Yes | Score from 0 to 10 (supports one decimal place) |
reason | string | No | Reason for the severity change |
organizationId | string | Yes | Injected from ZEROPATH_ORG_ID; pass explicitly if not configured |
Scan Tools
scans.list
List scans with cursor-based pagination. Pass thenextCursor from a previous response to paginate forward.
| Parameter | Type | Required | Description |
|---|---|---|---|
cursor | object | No | Cursor from previous response: { createdAt: string, id: string } |
limit | number | No | Results per page (default: 20, max: 100) |
repositoryIds | string[] | No | Filter to specific repositories |
scanTypes | string[] | No | FullScan, PrScan (defaults to both) |
searchQuery | string | No | Search by scan name |
projectId | string | No | Filter by project ID |
scoreRange | object | No | Filter by vulnerability score: { min: number, max: number } (0–100) |
showEphemeral | boolean | No | Include CLI/ephemeral scans (default: false) |
getCounts | boolean | No | Include vulnerability counts (default: true) |
organizationId | string | No | Injected from ZEROPATH_ORG_ID when configured |
scans.get
Get details for a specific scan.| Parameter | Type | Required | Description |
|---|---|---|---|
scanId | string | Yes | Scan ID |
organizationId | string | No | Injected from ZEROPATH_ORG_ID when configured |
Repository Tools
repositories.list
List repositories with cursor-based pagination (string cursor).| Parameter | Type | Required | Description |
|---|---|---|---|
cursor | string | No | Cursor from previous response nextCursor |
limit | integer | No | Results per page (default: 20, max: 100) |
sortBy | string | No | name or issues (default: name) |
sortDirection | string | No | asc or desc (default: asc) |
getCounts | boolean | No | Include issue counts (default: true, may impact performance) |
organizationId | string | No | Injected from ZEROPATH_ORG_ID when configured |
Rule Tools
rules.list
List custom security rules. Uses offset-based pagination.| Parameter | Type | Required | Description |
|---|---|---|---|
offset | integer | No | Starting index (default: 0) |
limit | integer | No | Results per page (default: 20, max: 100) |
repositoryId | string | No | Filter rules by repository |
organizationId | string | No | Injected from ZEROPATH_ORG_ID when configured |
rules.get
Get details for a specific rule, including associated repository names.| Parameter | Type | Required | Description |
|---|---|---|---|
ruleId | string | Yes | Rule ID |
organizationId | string | No | Injected from ZEROPATH_ORG_ID when configured |
rules.create
Create a custom security rule.| Parameter | Type | Required | Description |
|---|---|---|---|
name | string | Yes | Rule name |
rule | string | Yes | Natural language rule definition |
globPattern | string | No | File pattern (default: **/*) |
sourceTypes | string[] | No | HTTP_HANDLER, FILE_HANDLER, STDIN_HANDLER, BROWSER_DATA, WEBSOCKET, SOCKET, CLI_ARGUMENT, MOBILE_INPUTS |
repositoryIds | string[] | No | Limit to specific repositories |
tagIds | string[] | No | Tag IDs to associate with the rule |
organizationId | string | No | Injected from ZEROPATH_ORG_ID when configured |
rules.update
Update an existing rule. Only the fields you include will be modified.| Parameter | Type | Required | Description |
|---|---|---|---|
ruleId | string | Yes | Rule ID to update |
name | string | No | Updated name |
rule | string | No | Updated definition |
globPattern | string | No | Updated file pattern |
sourceTypes | string[] | No | Updated source types |
repositoryIds | string[] | No | Updated repository scope |
tagIds | string[] | No | Updated tag associations |
organizationId | string | No | Injected from ZEROPATH_ORG_ID when configured |
rules.delete
Delete a custom rule.| Parameter | Type | Required | Description |
|---|---|---|---|
ruleId | string | Yes | Rule ID to delete |
organizationId | string | No | Injected from ZEROPATH_ORG_ID when configured |
Common Workflows
Triage new issues
Triage new issues
- List pending issues — call
issues.listwithstatuses: ["PENDING_REVIEW"]sorted byscoredescending. - Review each issue — ask your AI assistant to summarize the vulnerability and affected code.
- Classify — use
issues.markTruePositiveorissues.markFalsePositivewith a reason. - Update status — move confirmed issues to
REVIEWINGorPATCHINGwithissues.updateStatus. - Adjust severity — if the auto-assigned score doesn’t match your assessment, use
issues.updateSeveritywith a value from 0 to 10.
Create custom rules
Create custom rules
- List existing rules — call
rules.listto see what’s already configured. - Create a rule — use
rules.createwith a natural language description. ZeroPath’s scanner will match this pattern during future scans. - Scope it — use
repositoryIdsto limit the rule to specific repos,globPatternto limit to specific file types, andsourceTypesto target specific entry points. - Tag it — use
tagIdsto associate the rule with tags for organization. - Iterate — update with
rules.updateas you refine the pattern.
Investigate scan results
Investigate scan results
- List recent scans — call
scans.listto see scan history. Filter withscanTypes: ["FullScan"]for scheduled scans or["PrScan"]for PR scans. - Get scan details — use
scans.getwith a specificscanIdto see status, branch, and issue counts. - Drill into findings — call
issues.listwith ascanIdfilter to see only issues from that scan.
Error Handling
Failed tool calls return structured errors:BAD_REQUEST — Invalid input
BAD_REQUEST — Invalid input
Returned when input validation fails. Check the
data.issues array for field-level details.UNAUTHORIZED — Invalid or missing auth
UNAUTHORIZED — Invalid or missing auth
FORBIDDEN — Insufficient permissions
FORBIDDEN — Insufficient permissions
The API key does not have the required permissions for this operation. Check your key’s role in ZeroPath Settings.
NOT_FOUND — Resource doesn't exist
NOT_FOUND — Resource doesn't exist
The specified ID (issue, scan, rule, or repository) was not found. Verify the ID is correct and belongs to your organization.
Tips
- Paginate — always paginate large result sets. Use
offset/limitfor issues and rules,cursor/limitfor scans and repositories. - Filter early — use status, severity, and repository filters to reduce response size.
- Batch updates — pass multiple IDs in a single call when archiving, marking, or updating status.
- Include reasons — add a
reasonwhen archiving, marking false/true positives, or changing status for audit trails. - Set org context — configure
ZEROPATH_ORG_IDduring installation so the server injectsorganizationIdinto every request automatically.