Outdated Drivers Are Slowing You Down
One free scan finds every outdated or missing driver and matches the right update for your exact hardware.Free scan · exact hardware matchPC Slower Than It Used to Be?
A free scan shows the junk files, broken settings and background clutter dragging Windows down - then fixes them in one click.Free scan · Windows 10 & 11The usual fix is to make sure Burp Suite is running with the official MCP extension loaded and enabled, then make the MCP client use the same host and port that Burp is actually listening on. PortSwigger documents http://127.0.0.1:9876 as the default endpoint. If you use the packaged stdio proxy instead, the client must be able to execute Java and the proxy JAR through absolute paths.
Work through the checks below in order. They separate process-spawn errors, endpoint refusal, handshake failures and client configuration mistakes instead of changing several variables at once.
Fix the attachment failure in the right order
- Start Burp Suite. The MCP server is provided by the Burp extension, so a client cannot attach while Burp is closed.
- Open Burp’s Extensions area. Confirm that the PortSwigger MCP extension is loaded and that Burp shows no extension error.
- Open the extension’s MCP tab. Enable the server and note the configured host and port. Use the displayed values rather than assuming the default if you changed them.
- Probe the endpoint locally. From the same computer, connect to the configured loopback URL. A refusal means the extension is not listening, the port is wrong, or another local process or firewall is interfering.
- Check the client transport. For SSE, use the exact URL shown by Burp. For stdio, verify the executable command and every argument, including the
--sse-urlvalue. - Restart the MCP client completely. Quit the desktop application, not just the conversation or configuration view, and launch it again after edits.
After reconnecting, verify that the Burp tools are visible before testing a request. If the server still disappears, use the error-specific branches below.
What “Could not attach” actually means
The message is a client-side summary, not a diagnosis. The failure normally falls into one of four categories:
- The process cannot be spawned. The client cannot find Java, the proxy JAR or another command in its configured path.
- The process exits before MCP initialization. A Java exception, missing dependency or startup error closes the transport before the handshake completes.
- The client targets the wrong endpoint. The host or port in the client does not match Burp’s current MCP setting.
- The Burp extension is disabled or not listening. Burp may be open while the extension remains unloaded or its MCP server is turned off.
Logs often show a sequence such as Failed to spawn process: No such file or directory, followed by transport closure and disconnection. In that case, changing the URL will not help until the command runs successfully outside the client.
Verify Burp and the official extension
Confirm the extension is loaded
In Burp, open the Extensions area and select the PortSwigger MCP extension. A load error, Java exception or missing dependency must be fixed before any AI client can connect. The extension must remain loaded while the client is in use.
Enable the MCP server and record its address
In the extension’s MCP tab, enable the server and copy the host and port shown in its advanced settings. The official implementation uses a local SSE server and documents http://127.0.0.1:9876 by default. A changed port is valid, but every client must use the changed value.
Probe the endpoint before debugging the client
Testing the listener directly tells you whether the problem is inside Burp or inside the MCP client. Run this on the same machine as Burp, replacing the URL only if the extension displays a different one:
Do these 3 things before closing this tab:
1Clear out junk files and repair common Windows errors2Scan for outdated or missing drivers - takes under a minute3Repair Windows errors before they cause bigger problemscurl -i --max-time 5 http://127.0.0.1:9876
An immediate Connection refused indicates that nothing is accepting connections at that address. Start or enable the extension, correct the port, and check for a local process conflict or firewall rule. An SSE endpoint may keep the connection open or return a protocol-specific status; the important distinction is whether a listener can be reached at all.
Rank #2
Do not mix settings from a third-party Burp MCP implementation with PortSwigger’s extension. One independent implementation uses a different default port, 9877, and its probe and configuration must be followed separately.
Choose the correct MCP transport
| Transport | How it starts | Main failure surface | What to verify |
|---|---|---|---|
| SSE | The client connects directly to Burp’s local HTTP/SSE URL. | Wrong host or port, disabled listener, refusal or local connectivity problem. | Burp’s displayed URL and a successful local probe. |
| Packaged stdio proxy | The client spawns a local Java process, which proxies to Burp’s SSE URL. | Missing executable, incorrect JAR path, bad arguments or early process exit. | Absolute Java and JAR paths, a valid --sse-url, and a command that runs in a terminal. |
Configure an SSE connection
Use the client’s documented SSE field and enter the exact URL from Burp. Client schemas differ, so treat the following as a shape to adapt rather than a universal key name:
{
"mcpServers": {
"burp": {
"url": "http://127.0.0.1:9876"
}
}
}
Save the file, validate that it is legal JSON, and fully restart the client. If Burp is configured for another port, change the URL in the same edit; do not leave one client pointing at 9876 while Burp listens elsewhere.
Configure the packaged stdio proxy
The official repository documents a packaged proxy that accepts the Burp SSE URL through --sse-url. Use absolute paths for both Java and the proxy JAR. For example, if your installed files are in /opt/burp-mcp:
{
"mcpServers": {
"burp": {
"command": "/usr/bin/java",
"args": [
"-jar",
"/opt/burp-mcp/burp-mcp-proxy.jar",
"--sse-url",
"http://127.0.0.1:9876"
]
}
}
}
Replace those example paths with the real locations on your machine. Relative paths, shell aliases and commands that work only in an interactive terminal frequently fail in desktop clients because they inherit a narrower environment.
Run the stdio command outside the MCP client
Manual execution isolates path and runtime problems. With Burp running and its MCP server enabled, execute the same command shown in the client configuration:
/usr/bin/java -jar /opt/burp-mcp/burp-mcp-proxy.jar --sse-url http://127.0.0.1:9876
- If the shell reports that Java or the JAR cannot be found, correct the path or install the missing runtime before reopening the client.
- If Java starts and then exits, read the terminal’s stderr output and Burp’s extension output for the exception or dependency failure.
- If the command stays running, stop it and let the MCP client launch it; the successful manual start proves that the executable and arguments are viable.
Do not add a shell wrapper unless the client specifically requires one. A wrapper introduces another quoting and path layer that can hide the original error.
Read both layers of logs
MCP client log
Look for the first event in the sequence, not only the final “disconnected” line. Spawn errors identify command and path problems; handshake or timeout messages indicate that a process started but did not complete MCP initialization; transport-close messages often mean that the process exited unexpectedly.
Per-server and Burp output
Open the per-server log if the client provides one, then inspect Burp’s extension output. Java exceptions, dependency failures and extension startup errors appear there even when the client reports only a generic attachment failure. Keep the endpoint, command, arguments and the first stack trace together when troubleshooting.
Use this decision tree
| Observed message or symptom | Likely cause | Next action |
|---|---|---|
Failed to spawn process or No such file or directory |
The configured executable or JAR is missing or unreachable. | Use absolute paths, confirm Java is installed, and run the exact command manually. |
Connection refused at 127.0.0.1:9876 |
Burp is not listening there, the extension is disabled, the port changed, or a local conflict exists. | Enable the MCP server, copy its actual port, probe it locally and check for a conflicting process or firewall. |
| Server starts, then disconnects | The spawned process exits during initialization or the extension throws an exception. | Inspect stderr and Burp extension output, fix the first error, then restart the client. |
| Tools do not appear after editing JSON | Invalid JSON, stale client state or a different installed command is being launched. | Validate the file, compare it with the terminal command and completely restart the client. |
| Only one MCP client fails | That application’s environment or path resolution differs from your terminal. | Use absolute paths and compare the failing client’s configured command with a direct invocation. |
Common edge cases
Burp uses a non-default port
The documented 9876 value is a default, not a requirement. If you changed the advanced setting, update the SSE URL in every client and in the stdio proxy’s --sse-url argument. Probe the new address before restarting clients.
Rank #4
A port is occupied by another process
A listener on the expected port is not proof that it is Burp. If the probe returns an unexpected service or Burp cannot bind the port, identify the conflicting local process, stop it when appropriate, or select an available port in the extension and update the client.
Quick wins for a faster PC:
Clear out junk files and repair common Windows errorsFree Scan →Fix the driver behind crashes, sound loss and screen glitchesFind Drivers →Repair Windows errors before they cause bigger problemsFix Now →Configuration looks correct but nothing changed
Desktop clients may cache server processes. Quit the application completely, verify that no old client process remains, and relaunch it. Recheck the JSON after every edit; one missing comma or quote can prevent the server definition from loading.
Burp was upgraded or the extension was reloaded
Compatibility problems can appear after an upgrade. Confirm that the extension loads without an error, update Burp when compatibility is in doubt, enable the MCP server again if the extension reset its settings, and then perform a clean client restart.
Final verification checklist
- Burp Suite is running.
- The official MCP extension is loaded without an error.
- The MCP server is enabled in the extension’s MCP tab.
- The client URL matches Burp’s current host and port.
- Any stdio command uses executable absolute paths and the correct
--sse-url. - The command succeeds when run manually.
- The MCP client was fully quit and relaunched.
- The Burp tools appear before you attempt an operation.
Or skip the browser setup
If your immediate goal is to capture a clean image of a web page while documenting or testing a Burp workflow, ScreenshotNeo provides a direct website screenshot API instead of requiring a local browser automation setup. A single GET request returns PNG, JPEG or WebP, and the service can also produce PDFs.
Use the API documentation at https://screenshotneo.com/docs/ for all parameters. This cURL request is runnable as written after replacing the access key:
Free tools Windows power users keep installed
One-click scans. No signup required.
Best Value
curl -G "https://api.screenshotneo.com/v1/shot" -d access_key=YOUR_API_KEY --data-urlencode url=https://stripe.com -o shot.webp
Python equivalent:
import requests
r = requests.get("https://api.screenshotneo.com/v1/shot", params={"access_key": "YOUR_API_KEY", "url": "https://stripe.com"}, timeout=90)
open("shot.webp", "wb").write(r.content)
Node.js equivalent:
const q = new URLSearchParams({ access_key: 'YOUR_API_KEY', url: 'https://stripe.com' });
const res = await fetch(`https://api.screenshotneo.com/v1/shot?${q}`);
Before capture, ScreenshotNeo can accept cookie or consent banners and remove more than 60 known consent platforms, newsletter popups and chat widgets; each step can be disabled. Bot checks, CAPTCHAs, blank pages, timeouts, failed loads and cache hits are not billed, and response headers identify the page verdict and whether the request was billed. Its MCP server offers take_screenshot, get_page_info and capture_pdf tools for Claude, Cursor and other MCP clients.
| Plan | Included shots per month | Price |
|---|---|---|
| Free | 1,000 | No card required |
| Starter | 3,000 | $5 |
| Growth | 15,000 | $15 |
| Pro | 60,000 | $39 |
| Scale | 250,000 | $99 |
| Business | 1,000,000 | $249 |
Yearly billing gives two months free, and every feature is included on every plan. Create a free ScreenshotNeo account to get 1,000 screenshots a month with no card.
Frequently Asked Questions
How can I report this failure so someone else can reproduce it?
Include Burp’s configured host and port, whether the extension is enabled, the exact client transport, the complete command and arguments (with secrets removed), the local probe result, and the first error from both the client and Burp logs.
Is a successful HTTP probe enough to prove MCP is healthy?
No. It proves that something is reachable at the address. The client must still complete the MCP initialization handshake and expose the expected tools; a process that exits immediately can leave the endpoint reachable briefly while attachment still fails.
The Tool Desk
Outbyte PC Repair FREERepair Windows errors before they cause bigger problemsFix Now →Outbyte Driver Updater FREEFix the driver behind crashes, sound loss and screen glitchesFind Drivers →Can I use the SSE URL and stdio proxy at the same time?
Yes, they are separate connection paths to the same Burp server. Configure each client deliberately and avoid troubleshooting one path with the executable assumptions of the other.
Quick Recap
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

