StackShield Now Has an MCP Server: Run Scans and Triage Issues From ChatGPT, Claude and Cursor
Connect StackShield to any MCP-compatible assistant and ask it to scan a domain, explain a failed test, resolve the issues you have fixed, or write a security report. Included on every plan.
StackShield now ships a Model Context Protocol server. Point ChatGPT, Claude, Cursor, VS Code, Codex or Gemini CLI at https://stackshield.io/mcp, sign in, and your assistant can run scans, read findings, resolve issues and write reports against your real account. It is on every plan, including the trial, from today.
Setup for each client is in the MCP documentation. This post is about why we built it and what it is actually useful for.
Why an MCP server
Security scan results have a habit of living in a tab you open on Fridays. The findings are good, the remediation notes are good, and none of it is in the place where you are actually writing code or deciding what to do this week.
MCP fixes the location problem. It is an open standard that lets an AI assistant discover and call a service's tools directly. Instead of copying a scan report into a chat window and asking what it means, the assistant pulls the report itself, reads the failed tests, checks which issues are still open, and answers from the live data. When you tell it a header is fixed, it can trigger a rescan and mark the issue resolved without you leaving the editor.
Every capability is discovered on connection. There is no prompt to paste and no configuration beyond the URL and a sign-in.
What the server exposes
Sixteen tools in five groups, three resources and two prompts. In short:
- Checks. List, inspect, create, update and delete the domains you monitor.
- Scans. List scans, start a new one, and read every individual test result from a finished scan, including the remediation steps.
- Issues. List and filter issues by severity, status, domain or test type; resolve, reopen and bulk resolve them; export the lot as CSV.
- Dashboard. A posture summary: domains, active scans, priority issues, domains at risk.
- Resources.
stackshield://checks,stackshield://issues/criticalandstackshield://stats, for assistants that prefer to load context up front. - Prompts.
security_reviewandscan_report, which walk the assistant through a multi-step workflow and produce a structured result.
Each tool is annotated so the assistant knows which are read-only and which change state. The full list with parameters is on the tools section of the docs.
Use cases
These are the workflows we expect to see most, and the ones we designed the tool set around.
Triage a scan before standup
"Run a scan on app.example.com and tell me which findings are unauthenticated and externally reachable."
The assistant calls trigger_scan, polls get_scan until it finishes, then walks through get_scan and get_scan_test for the failures. Because it can read the technical details for each test, it can sort by what an attacker with no account could reach rather than by the severity label. That is the triage order we recommend, and now it is one sentence instead of a spreadsheet.
Fix the finding without leaving the editor
In Cursor, VS Code or Claude Code the assistant already has your codebase open. Ask it to "look at the open issues for staging.example.com and fix the ones that are middleware changes." It pulls the issues, reads the remediation notes for each, edits app/Http/Middleware or config/cors.php, and when you have deployed, triggers a rescan and resolves the issues that now pass. The finding and the fix live in the same conversation.
Close the loop after a deploy
"We just deployed. Rescan every active domain and tell me what changed."
list_checks, one trigger_scan per domain, then a comparison against the previous scan for each. Configuration drift, like a debug flag flipped during an incident and never flipped back, shows up in minutes rather than at the next weekly scan.
Weekly posture report for someone who does not read dashboards
The scan_report prompt takes a domain and produces an executive summary, detailed findings and next steps. The security_review prompt produces a prioritised remediation plan grouped by severity. Either can be pasted into Slack or a client update as is. If you run an agency, "produce a scan report for every client domain" is now a single request.
Bulk housekeeping
"Resolve every low severity header finding on the marketing site with the note 'accepted, static site behind CDN'."
list_issues with a severity and domain filter, then bulk_resolve_issues. The bulk tool refuses to run without an explicit confirmation, so the assistant will show you the list and ask before it changes anything.
Onboard a new domain
"Add api.example.com, scan it daily at 06:00 UTC, and run the first scan now."
create_check with a schedule, then trigger_scan. Plan limits apply inside the tool, so if you are at your domain limit the assistant is told why and can suggest the upgrade rather than failing silently.
Answer "are we exposed to this?"
When a new advisory lands, ask "do any of our domains have an exposed Telescope or Horizon instance?" The assistant reads stackshield://issues/critical and the relevant test results across every check and gives you a yes or no with the domains listed. That used to be a manual click through each domain.
What it will not do
Some boundaries were deliberate.
- No account changes. The server cannot touch billing, team membership or API keys.
- Team scoped. An OAuth connection sees the team you currently have selected in the dashboard; an API key sees the team that owns it. Neither can reach another team's data.
- Confirmation for irreversible actions.
delete_checkandbulk_resolve_issuesrequireconfirm: true, which a well-behaved assistant only sends after checking with you. - Rate limited. The server has its own rate limiter so a runaway agent loop cannot exhaust your scan allowance in one go.
Authentication is OAuth 2.1 with PKCE for connectors, or a team API key for command-line tools. Access tokens expire after an hour and refresh silently for up to 90 days. You can see and revoke every connected assistant from the API keys page in Team Settings.
Getting connected
Every client is covered in the setup section of the docs, including ChatGPT, Claude, Claude Code, Cursor, VS Code, Codex CLI, Gemini CLI and Windsurf. Cursor and VS Code have one-click install buttons. Everyone else needs the URL and a sign-in.
If you are not a customer yet, the free scan will show you what StackShield finds on your domain, and the 14-day trial includes MCP access from the first minute.
Is your Laravel app exposed right now?
34% of Laravel apps we scan have at least one critical issue, and most teams do not find out until something breaks. The free scan checks your live app in 60 seconds. Then StackShield re-runs every check after each deploy, so a fix you ship today does not quietly regress next week.
Frequently Asked Questions
What is the StackShield MCP server?
It is a remote Model Context Protocol server at stackshield.io/mcp that exposes your StackShield account to AI assistants. Once connected, an assistant such as ChatGPT, Claude, Cursor or Codex can list your monitored domains, trigger scans, read individual test results, resolve issues and pull dashboard statistics, all by you asking in plain language.
Which AI assistants work with StackShield MCP?
Any client that supports remote MCP servers over Streamable HTTP. That includes ChatGPT, Claude on claude.ai and Claude Desktop, Claude Code, Cursor, VS Code with GitHub Copilot, Codex CLI, Gemini CLI and Windsurf. The docs have a setup section for each one, with one-click install links for Cursor and VS Code.
Is MCP access included in my plan?
Yes. MCP works on every plan and during the 14-day trial, for reads and writes. Your plan limits still apply inside the tools, so creating a check respects your domain limit and triggering a scan respects your daily manual scan limit. The REST API remains a Business plan feature.
Can an AI assistant change my billing or team through MCP?
No. The MCP server cannot change billing, invite or remove team members, or manage API keys. It is scoped to the team you have selected, and the two irreversible tools, delete_check and bulk_resolve_issues, refuse to run unless the assistant explicitly confirms after checking with you.
How does authentication work?
Connectors sign in with OAuth 2.1 and PKCE: you approve access once in the browser and tokens refresh silently for up to 90 days. Command-line clients can use a team API key instead. Either way every request is authenticated, and you can revoke a connected assistant from the API keys page at any time.
Related Articles
Laravel Session Security: Cookies, Hijacking & config/session.php
A deep dive into Laravel session security. Learn how cookie flags, session drivers, and config/session.php settings protect against hijacking, fixation, and sidejacking attacks.
SecurityAutomated Security Testing in Laravel CI/CD Pipelines
How to add security gates to your Laravel CI/CD pipeline with GitHub Actions. Covers dependency scanning, static analysis, secret detection, and automated security monitoring.
SecurityLaravel Content Security Policy: Configure CSP Without Breaking Your App
Only 22% of Laravel apps have a Content Security Policy. Learn how to implement CSP with spatie/laravel-csp, handle Livewire and Vite nonces, and avoid the mistakes that break production.
Compare StackShield
Security Checklists
Laravel Production Deployment Security Checklist
A comprehensive security checklist for deploying Laravel applications to production. Covers environment config, server hardening, access control, and monitoring.
20 itemsLaravel API Security Checklist
Secure your Laravel API endpoints against common vulnerabilities. Covers authentication, input validation, rate limiting, and response security.
Stay Updated on Laravel Security
Get actionable security tips, vulnerability alerts, and best practices for Laravel apps.