Resource
Monitored Domains
stackshield://checks
All domains being monitored for security vulnerabilities with their current status.
MCP server
Connect ChatGPT, Claude, Cursor, VS Code, Codex or Claude Code to your StackShield team and ask what is exposed, why a scan failed, or to fix the middleware behind a finding. 16 tools behind one URL, included on every plan and the free trial.
Security findings get acted on in the editor, in the incident channel and in the deploy checklist, not on a dashboard. With StackShield connected, the assistant reads the finding where you are working and can fix the code in the same session.
“Which of our domains have unresolved critical issues right now?”
Filters by severity and status across every monitored domain, newest first.
Calls
list_issues
“Why did the last scan of app.example.com fail and what do I fix first?”
Finds the scan, reads each failed test with its finding and remediation, and orders the fixes by severity.
Calls
list_scans
get_scan
get_scan_test
“Scan staging.example.com now and tell me when it is done.”
Starts an on-demand scan and polls it, then summarises what changed since the last one.
Calls
trigger_scan
get_scan
“Start monitoring api.example.com with hourly scans and the default checks.”
Adds the domain the same way the dashboard does, within your plan's application limit.
Calls
create_check
“I fixed the three CSP issues on example.com in the last deploy. Mark them resolved.”
Shows you the exact issues first, then resolves them together once you confirm.
Calls
list_issues
bulk_resolve_issues
“Export every unresolved issue to CSV for the audit.”
The same export the dashboard produces, handed to the assistant as a file.
Calls
export_issues_csv
“Give me a security review of example.com.”
A built-in prompt that walks the assistant through checks, issues and recommendations in the right order.
Calls
security_review
“Our security headers test is failing. Fix the Laravel middleware.”
In Cursor, VS Code or Claude Code the assistant reads the finding and edits the code in the same session.
Calls
get_scan_test
Every client needs two things: the server URL and a sign-in. Desktop and browser assistants use OAuth: the first request opens a StackShield consent screen, you approve once and choose a team, and the assistant only ever sees that team. Scripts and CI use a team API key from Settings.
claude mcp add -s user --transport http stackshield https://app.stackshield.io/mcp
claude mcp login stackshield
The -s user flag registers the server for every project. The second command opens the consent screen. To skip the browser, pass --header "Authorization: Bearer YOUR_API_KEY" to claude mcp add instead.
codex mcp add stackshield --url https://app.stackshield.io/mcp
codex mcp login stackshield
Or add to .cursor/mcp.json:
{
"mcpServers": {
"stackshield": {
"url": "https://app.stackshield.io/mcp"
}
}
}
Cursor asks you to sign in the first time it uses the server. For a team API key add "headers": { "Authorization": "Bearer YOUR_API_KEY" } to the entry.
Or add to .vscode/mcp.json:
{
"servers": {
"stackshield": {
"type": "http",
"url": "https://app.stackshield.io/mcp"
}
}
}
Or run MCP: Add Server from the command palette, choose HTTP and paste the URL.
Server URL: https://app.stackshield.io/mcp
Server URL: https://app.stackshield.io/mcp
Works on claude.ai and in Claude Desktop.
gemini mcp add --transport http -s user stackshield https://app.stackshield.io/mcp
npx @modelcontextprotocol/inspector "https://app.stackshield.io/mcp" --header "Authorization: Bearer YOUR_API_KEY"
Anything without a browser can pass a team API key as a bearer token, or as an api_key query parameter when it cannot set headers. It is the same key the REST API uses.
Any other client that speaks Streamable HTTP works with the same URL. Full setup notes, the team picker and troubleshooting are in the MCP documentation.
Each tool is labelled read only, writes, or destructive, so you know before you connect what an assistant can change. The two that cannot be undone always ask for your confirmation first. Open any tool to see what it does and what it needs.
List all monitored domains for your team with optional filtering by status, search, and sorting.
Get detailed information about a specific monitored domain including its schedule and latest scan.
Add a new domain to monitor for security vulnerabilities. Requires domain, schedule frequency, and which tests to enable.
Update settings for a monitored domain. All fields are optional; only include fields you want to change.
Remove a monitored domain and its test configurations. Use this only when the user has explicitly asked to stop monitoring a domain; scan history for it becomes unreachable. Requires confirm=true.
List security scans with optional filters by check, status, and critical issues.
Get the status and results of a security scan, including all individual test results.
Start a security scan for a monitored domain. The check must be active. The scan runs asynchronously; use get_scan to monitor progress. This reaches out to the domain being scanned.
Get detailed results of a specific security test including findings, remediation steps, and technical details.
List security issues found across your monitored domains. Filter by severity, resolution status, domain, test type, or search text.
Get detailed information about a security issue including its check domain and the last 10 related scans.
Mark a security issue as resolved with optional resolution notes.
Re-open a previously resolved security issue.
Resolve or unresolve multiple security issues at once. Use this after the user has reviewed the list; prefer resolve_issue for a single issue. Only issues belonging to your team are affected. Requires confirm=true.
Export all security issues as CSV text. Returns the CSV content as a string.
No inputs.
Get an overview of your security posture: total domains monitored, active scans, priority issues (critical + high), and domains at risk.
No inputs.
Resources are snapshots an assistant can read without calling a tool. Prompts are ready-made workflows that chain the tools in the right order.
Resource
stackshield://checks
All domains being monitored for security vulnerabilities with their current status.
Resource
stackshield://issues/critical
All unresolved critical and high severity security issues across your monitored domains.
Resource
stackshield://stats
Security posture overview: total domains, active scans, priority issues, and domains at risk.
Prompt
security_review domain*
Review the security posture of a domain and provide actionable recommendations for fixing issues.
Prompt
scan_report domain*
Generate a comprehensive summary report of the latest security scan for a domain.
Connecting an assistant gives it the same access you would give a teammate, with tighter limits. Here is what that means in practice.
You choose the team when you approve the connection, and your assistant can only see that team's domains, scans and issues. A team API key is limited the same way.
Desktop and browser assistants sign in through OAuth 2.1 with PKCE. The access token expires after an hour and refreshes silently for up to 90 days. Scripts and CI use a team API key instead.
Every connected assistant is listed under Connected Assistants on the API keys page. Disconnecting revokes its access immediately. Deleting an API key does the same for scripts.
delete_check and bulk_resolve_issues will not run until you have confirmed, so your assistant has to show you what is about to change first.
An assistant cannot create or delete API keys, invite people, change your plan or touch billing. Those actions are only available in your dashboard.
Domains and on-demand scans count against your plan exactly as they do in the app. A separate rate limit on the MCP server means a runaway agent loop cannot flood your scan queue.
MCP access is included from the first minute of the 14-day trial. No card needed to start, and the free scanner needs no account at all.