#197 · MCP, API, and CLI: Run the Whole Platform From Your Agent
Availability: General Availability Operations tagged
Betain the API reference, and the CLI commands and MCP tools built on them, may still change.
Your agent now reaches almost everything you do in Escape. In one week the public API grew from 186 to 326 operations, and the MCP server from 69 to 178 tools, each one backed by an escape-cli command. You asked for SARIF straight from the CLI and for agents that pull new high-severity issues and work them on their own: both are here, along with the rest of the loop.
This note is the full inventory. Two earlier notes go deeper on the first batches: Agents and Pipelines Finish the Fix Loop and Issue Bulk Updates Now Return Exact IDs and Preview With Dry Run.
What's New¶
Findings and Remediation¶
- Evidence on every issue:
GET /issues/{issueId}andescape-cli issues getreturn the reproduction, the exploit, the attack chain, and a fix prompt. - AI remediation:
POST /issues/{issueId}/ai-remediationstarts a fix, andPOST /issues/{issueId}/ai-remediation/feedbackrates it. In the CLI:issues remediation generate,get, andfeedback. - Retests:
retests start,retests list, andretests getprove a fix without a full scan. - Sharper filters:
GET /issuesacceptsprojectIds,categories,assetTypes,assetStatuses,aiFalsePositive,agentic,targetIds,securityTestUids,blacklistedIds,blacklistedNames,noTags, anddnf. - Workflows on issues:
issues trigger-workflowruns a manual workflow on one issue.POST /issues/bulk-workflowandissues bulk-workflowrun it on every issue a filter matches. - Saved views:
/viewslists, creates, updates, reorders, and deletes the views you share with the UI.GET /views/{viewId}/issueslists the issues of a view.
Scans and AI Pentesting¶
- What a scan did:
GET /scans/{scanId}/configuration,/statistics, and/compliance, withscans configuration,scans statistics, andscans compliance. - Attack scenarios (Beta):
GET /scans/{scanId}/scenariosandscans scenarioslist the scenarios an AI pentest explored, filtered byvectorandsearch. - Target filters:
GET /scans/{scanId}/targetsfilters oncoverage,issues,severities,methods, andsearch. - Scan filters:
GET /scansacceptscommitBranch,latestBranchScans,assetTypes,tagIds,noTags,problemCodes,problemSeverities,search, anddnf. - Stop and diagnose:
scans cancel,scans ignore,scans problems, andprofiles problems. - Target validation (Beta):
POST /validationschecks that a target is reachable and in scope before you create a profile.validations startandvalidations getdo the same from the CLI. - AI pentest profiles:
profiles updateedits an AI pentest profile after creation and reads its settings back.POST /profiles/bulk-updateandprofiles bulk-updatechange several profiles in one call. - Continuous pentest (Beta): create, update, enable, and disable under
/profiles/{profileId}/continuous-pentest, and withprofiles continuous-pentest. - Regression tests (Beta): nine operations under
/regression-testscover create, update, delete, run, stop, history, and clarifications. The CLI group isregression-tests. - Knowledge files (Beta):
/knowledge-fileslists, uploads, and deletes the documents that give an AI pentest its context. Over MCP,knowledge-files uploadtakes text content inline with--content.
Assets and Schemas¶
- Asset filters:
GET /assetsacceptsclasses,domains,environments,frameworks,integrationIds,ownerEmails,ports,risks,severities,tagIds,technologyKeys, anddnf. - Bulk import:
POST /assets/bulk-importandassets bulk-import. - Schema download:
GET /assets/{assetId}/contentreturns a signed URL for an uploaded schema.assets downloadfetches it. - Clear a field:
assets update --description ''and empty tag, owner, project, or schema lists now clear the value.profiles updatekeeps an explicitnull, so you clearproxyId,context.additional, andoffLimitsAreas.
Reporting and Analytics¶
- SARIF and CSV (Beta):
GET /exports/issues/sarif,/exports/issues/csv, and/exports/assets/csv. In the CLI:issues export --format sarif|csvandassets export --format csv. - Security KPIs:
GET /statistics/issues,/statistics/endpoints, and/statistics/trends.statistics trends --project-idscopes the trend to projects. - Compliance:
GET /compliance,/compliance/per-application, and/compliance/enabled.compliance enablesets the frameworks you track (Beta). - Reports (Beta):
GET /jobslists export jobs.jobs renameandjobs send-artefactsname a report and email it. - Security-test catalog:
GET /security-testslists every test with its scanner, asset type, and severity.security-tests updateandbulk-updatetune them for the organization (Beta).
Integrations and Workflows¶
- Run and inspect:
POST /integrations/{kind}/{id}/testand/sync,GET /integrations/{kind}/{id}/runs, withintegrations test,sync, andruns. - Ticket lookups:
GET /integrations/jira/{id}/projects,/integrations/jira/{id}/issue-types, and/integrations/azure-boards/{id}/areasreturn what you need to configure a ticket workflow. In the CLI:integrations jira-projects,jira-issue-types, andazure-areas. - Repositories and vaults:
integrations repositorieslists the repositories granted to the GitHub App.integrations vaultslists the vaults a provider exposes. - Vault variables (Beta):
/vault-variablesand/vaultsmanage the secret references your authentication uses. Values are write-only: the API never returns them. - Workflows:
workflows pause,workflows executions, andGET /workflows/{id}/executions.
Organization Administration¶
- Settings:
GET /organization-settingsreads the SLA policy and AI system prompt.org-settings updateandorg-settings scanner-configuration createchange them (Beta). - People and access:
PUT /users/{userId}andusers deactivatedeactivate a user.GET /permissionslists the permission catalog.DELETE /projects/{projectId}andDELETE /roles/{roleId}now respond. - Pagination and search:
/roles,/custom-rules,/users, and/tagsacceptcursorandsize. The array body stays, and the next cursor comes back in theX-Next-Cursorheader. - Private locations:
GET /locations/{locationId}/logsandPUT /locations/{locationId}/tags, withlocations logsandlocations tags. - Account state:
GET /mereports subscription and trial state. - Copilot chats (Beta): five operations under
/ai-chats, and theai-chatsCLI group.
MCP Server¶
- A confirmation gate: tools that delete or change resources in bulk require
confirm: true. - Paged results: list tools return 50 results and a
nextCursor.scans list,scans agents, andscans targetspage with--cursorand--size. - Truthful schemas: tool inputs and outputs match what the tools accept and return, dry runs included.
-o schemanever calls the API. - Filters that filter: array filters such as
--project-id,--target-id, and--nameonissues listandscans listnow reach the API as real values. - Room for slow work:
assets createwaits up to 15 minutes for a schema build instead of 30 seconds.
Requirements and Limits¶
PUT /organization-settings,PUT /compliance/enabled, and the security-test updates require an administrator.- An inline export larger than the MCP response limit fails with a message asking you to narrow
where. Usejobs trigger-exportfor full reports. GET /integrations/jira/{id}/projectsreturns up to 1,000 projects per call without parameters, thenX-Next-Cursor.- Every CLI command listed here ships in
escape-cli1.12.0.
Compatibility¶
Hard-breaking¶
- Tags (API):
PUT /tags/{tagId}/{tagId}is gone. UsePUT /tags/{tagId}. - Audit logs (API):
actionandactoronGET /audit/logsmatch exactly. - Projects (API):
PUT /projects/{id}validatesslug. - Bulk issue update (API and CLI):
POST /issues/bulk-updaterequires a filter or"all": true, and rejects a filter that matches more than 10,000 issues. - Integrations (API):
GET,PUT, andDELETE /integrations/{kind}/{id}return404when the integration is of another kind than the URL. - AI pentest profiles (API):
PUT /profiles/{id}andPOST /profiles/bulk-updatereturn400for a recurring schedule (cronorschedule.cron),useAllAvailableExtraAssets, ordefaultProxyType: ESCAPE. Recurrence is continuous pentest. - Asset update (API):
PUT /assets/{id}returns400when the body carries a field the asset class ignores, and404for an unknown asset. - Asset delete (API):
DELETE /assets/{assetId}returns{"message": "..."}instead of a baretrue. - Wiz workflow action (API): a Wiz export action requires
integrationId. - Scan watching (CLI):
scans watchandscans start --watchexit non-zero on failed, canceled, or unfinished scans. - Job watching (CLI):
jobs get --watchandjobs trigger-export --watchprint one final state, fail onFAILEDorCANCELLED, and stop after--timeout(default 15 minutes).--streamrestores the per-poll output. - Tools (MCP):
scans_watchis removed. Poll withscans_get.
Soft-breaking¶
- AI pentest profiles:
GETreportsscheduleandcronasnull. - Profile schemas:
isActiveistruefor every schema attached to a profile. - Beta tags: 74 operations carry the
Betatag, up from 5. Regenerated clients see the new tag.
Non-breaking¶
- Every new operation, query parameter, response field, CLI command, and CLI flag listed above.
MCP Server Docs → Public API Docs →
Questions?¶
Have a question? Reach out on your dedicated support channel, or email us at support@escape.tech.