Skip to main content
The MCP server exposes tools that map to ZeroPath’s REST V2 API. Tools are loaded from ZeroPath’s MCP manifest at startup, so your AI assistant always has access to current capabilities.

Issues

12 tools — list, triage, investigate, update status, severity, and notes, regenerate patches

Scans

3 tools — list scan history, get scan details, rescan PRs

Repositories

1 tool — list repositories with filtering

Code Inspection

3 tools — search, read, and list files in connected repositories

Rules

5 tools — full CRUD for custom security rules

Security Compass

8 tools — manage SD Elements project mappings, sync rules, read the coverage audit, and query linked issues

Organization Scoping

Every tool accepts organizationId. The MCP server handles this automatically:
  • If ZEROPATH_ORG_ID is set, the server injects it into every request — you never need to pass it yourself.
  • If ZEROPATH_ORG_ID is not set, you must pass organizationId explicitly. Most tools require it at the API level; a few (like issues.list) can resolve org context from your auth session.
Set ZEROPATH_ORG_ID during installation to avoid passing organizationId in every call.

Issue Tools

issues.list

List and filter security issues. Uses offset-based pagination via offset and limit.

issues.archive

Archive issues to remove them from active views.

issues.unarchive

Restore archived issues back to active views.

issues.markFalsePositive

Mark issues as false positives. Removes them from active review.

issues.markTruePositive

Confirm issues as true positives.

issues.updateStatus

Update the workflow status of one or more issues.
The field name is issueStatus, not status. Using the wrong field name will cause a validation error.

issues.updateSeverity

Update the severity score of a single issue.
This tool takes a single issueId (string), not issueIds (array). The severity field is a number between 0 and 10, not a string enum.

issues.requestInvestigation

Request an on-demand investigation of a finding using larger AI models for higher-confidence validation.
REST vs MCP: The public HTTP API exposes a single procedure, POST /api/v2/issues/requestInvestigation, with an issueIds array (one or more IDs). That route uses the same backend path as the issues.requestBulkInvestigation MCP tool. This issues.requestInvestigation MCP tool calls the single-issue tRPC mutation instead — there is no matching POST …/{id}/investigate REST endpoint.
If an investigation is already in progress for the issue, the response returns the existing investigation with "status": "already_pending" instead of creating a duplicate.

issues.requestBulkInvestigation

Request investigations for multiple issues at once.
REST mapping: POST /api/v2/issues/requestInvestigation with { issueIds, context?, organizationId? }. This is the HTTP surface for bulk investigations; it is not the same MCP tool name as issues.requestInvestigation (single-issue tRPC tool above).
Issues that already have a pending or in-progress investigation are skipped. Issues that do not belong to your organization are counted as unauthorized.

issues.getInvestigationStatus

Get the latest investigation result for an issue.
Returns null if no investigation has been requested for the issue. The status field can be PENDING, PROCESSING, COMPLETED, or FAILED.

issues.regeneratePatch

Request a new patch to be generated for an issue. Use this when the existing auto-generated patch is outdated, does not apply cleanly, or you want a fresh attempt after the affected code has changed.

issues.updateNotes

Update the internal notes on an issue. Notes are free-text annotations visible to your team on the issue detail page and are useful for capturing triage context, investigation findings, or remediation plans.

Scan Tools

scans.list

List scans with cursor-based pagination. Pass the nextCursor from a previous response to paginate forward.

scans.get

Get details for a specific scan.

scans.rescanPR

Trigger a rescan of a pull request or merge request. Pass the ID of a previous PR scan and the platform will re-fetch the pull request and create new scan(s). Supports GitHub PRs and GitLab MRs.
The outcome field indicates what happened:

Repository Tools

repositories.list

List repositories with cursor-based pagination (string cursor).

Code Inspection Tools

These tools allow you to browse and search source code directly in connected GitHub and GitLab repositories without cloning. Search for code within a repository.

code.read

Read the contents of a file in a repository.
Responses are capped at 1,000 lines and 200 KB. The truncatedByLineRange and truncatedByByteLimit flags indicate whether the response was truncated.

code.listFiles

List files and directories within a repository path.
Code inspection is currently supported for GitHub and GitLab repositories. Bitbucket, generic Git, and uploaded repositories are not yet supported.

Rule Tools

rules.list

List custom security rules. Uses offset-based pagination.

rules.get

Get details for a specific rule, including associated repository names.

rules.create

Create a custom security rule.

rules.update

Update an existing rule. Only the fields you include will be modified.

rules.delete

Delete a custom rule.

Security Compass Tools

These tools let you manage the Security Compass / SD Elements integration from your AI assistant. Credential operations (creating or deleting the integration, and the testConnection token parameter) are intentionally not exposed through MCP — supply your SD Elements API key through the ZeroPath dashboard, not through an AI assistant.

securityCompass.getIntegration

Fetch the Security Compass integration and all project mappings for an organization.

securityCompass.testConnection

Validate credentials against a specific SD Elements project. The apiToken parameter is not exposed through MCP — the tool uses the stored credentials when the requested URL matches the stored integration’s origin.

securityCompass.addProjectMapping

Link an SD Elements project to a ZeroPath repository and start the initial rule sync.

securityCompass.removeProjectMapping

Unlink a project mapping (and clean up generated rules when no other mappings remain for the repository).

securityCompass.syncRules

Manually trigger a countermeasure-to-rule sync for a mapping.

securityCompass.getMappingAudit

Retrieve the per-countermeasure coverage breakdown for a mapping. Returns one entry per SD Elements countermeasure describing how ZeroPath covers it (built-in analysis, auto-generated natural-language rule, unsupported, or classification error), enriched with phase, priority, risk rating, and linked issue count.

securityCompass.getLinkedIssues

List open ZeroPath findings linked to a specific SD Elements countermeasure.

securityCompass.getSyncHistory

Retrieve recent Security Compass audit-log events for an organization — rule syncs, findings pushes, mapping changes, and connection tests — newest first.
Managing mappings and triggering syncs (addProjectMapping, removeProjectMapping, syncRules) requires the admin role. Read operations (getIntegration, getMappingAudit, getLinkedIssues, getSyncHistory) are available to all organization members. See Security Compass / SD Elements for the full workflow.

Common Workflows

  1. List pending issues — call issues.list with statuses: ["PENDING_REVIEW"] sorted by score descending.
  2. Review each issue — ask your AI assistant to summarize the vulnerability and affected code.
  3. Classify — use issues.markTruePositive or issues.markFalsePositive with a reason.
  4. Update status — move confirmed issues to REVIEWING or PATCHING with issues.updateStatus.
  5. Adjust severity — if the auto-assigned score doesn’t match your assessment, use issues.updateSeverity with a value from 0 to 10.
  1. List existing rules — call rules.list to see what’s already configured.
  2. Create a rule — use rules.create with a natural language description. ZeroPath’s scanner will match this pattern during future scans.
  3. Scope it — use repositoryIds to limit the rule to specific repos, globPattern to limit to specific file types, and sourceTypes to target specific entry points.
  4. Tag it — use tagIds to associate the rule with tags for organization.
  5. Iterate — update with rules.update as you refine the pattern.
  1. List recent scans — call scans.list to see scan history. Filter with scanTypes: ["FullScan"] for scheduled scans or ["PrScan"] for PR scans.
  2. Get scan details — use scans.get with a specific scanId to see status, branch, and issue counts.
  3. Drill into findings — call issues.list with a scanId filter to see only issues from that scan.

Error Handling

Failed tool calls return structured errors:
Returned when input validation fails. Check the data.issues array for field-level details.
Verify your ZEROPATH_TOKEN_ID and ZEROPATH_TOKEN_SECRET are correct and the API key is active.
The API key does not have the required permissions for this operation. Check your key’s role in ZeroPath Settings.
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/limit for issues and rules, cursor/limit for 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 reason when archiving, marking false/true positives, or changing status for audit trails.
  • Set org context — configure ZEROPATH_ORG_ID during installation so the server injects organizationId into every request automatically.