Quick Answer
The "error calling tool 'edit_file'" message in Cursor means the Cursor Agent attempted to invoke its built-in edit_file tool to modify a file in your workspace, and the operation failed. This is not automatically an MCP server error. The most common causes are: the target file no longer exists, the file is outside the active workspace, the file or its parent directory is read-only, another process holds a lock on the file, or the Agent's context has become stale after a filesystem change.
Start with the Quick Fix Checklist below, then use the step-by-step diagnostic to isolate the exact cause.
What edit_file Is — and What the Error Actually Means
Cursor Agent operates through a set of built-in tools it can invoke during a conversation to read files, write changes, run terminal commands, search codebases, and more. edit_file is one of those built-in tools. It is not a tool exposed by an external MCP server — it is part of Cursor's internal Agent toolchain.
When you ask Cursor Agent to "add a function to utils.ts" or "fix the bug in line 42", the Agent constructs a plan and calls edit_file with arguments describing the target path and the proposed changes. If that call fails at any point — wrong path, filesystem rejection, stale context — Cursor surfaces the message:
Error calling tool 'edit_file'
Sometimes the message includes additional detail:
Error calling tool 'edit_file': File not found: src/utils.ts
Error calling tool 'edit_file': Permission denied
Error calling tool 'edit_file': Cannot write to file outside workspace
The stage at which this fails matters:
- Before the write — path resolution fails (wrong path, file missing, outside workspace boundary)
- During the write — filesystem rejects the write (permissions, lock, read-only mount)
- After a concurrent change — the Agent's cached view of the file is stale
Understanding at which stage the failure happens directs you to the right fix faster.
edit_file vs MCP Tool Calls
This distinction matters enough to state plainly: edit_file is a Cursor built-in tool, not an MCP tool. MCP (Model Context Protocol) is a separate layer where external servers expose their own tools to AI clients. If you see error calling tool 'edit_file', the first question to ask is: "Did I configure any MCP server for this project?"
- If no MCP server is configured: the error is entirely within Cursor's built-in toolchain. MCP is irrelevant.
- If an MCP server is configured: the error is still almost certainly in the built-in
edit_filetool unless the error message specifically names an MCP-registered tool (e.g.,error calling tool 'my_mcp_tool').
See the dedicated section Cursor edit_file Error vs MCP Tool Call Errors for a deeper comparison.
Quick Fix Checklist
Work through this list in order. Each item is prioritized by how often it actually resolves the error.
- 1. Confirm the target file still exists. The Agent may be referencing a file path that was deleted, moved, or renamed since the conversation started. Open a terminal and verify the file is present.
- 2. Confirm the file is inside your active Cursor workspace. Cursor Agent cannot edit files outside the workspace root opened in the current window. Check File > Open Folder to verify the workspace root.
- 3. Verify the current project root. A mismatch between what the Agent thinks is the root and the actual open folder causes path resolution failures. The Agent resolves relative paths from the workspace root.
- 4. Check whether the file is read-only. On Windows check
(Get-Item 'path').IsReadOnly. On macOS/Linux checkls -la pathand look at permission bits. - 5. Verify write permissions on both the file and its parent directory. You need write access to both.
- 6. Check whether another process has the file open or locked. Build watchers, test runners, or editors running in parallel can hold exclusive locks.
- 7. Start a fresh Agent conversation. Agent context can become stale when files change during a long session. Closing the conversation and starting a new one forces the Agent to re-index the current filesystem state.
- 8. Test a small edit on a completely new simple file. Create a new
test.txtin the workspace root and ask the Agent to append a line. If this works, the problem is specific to the original file or path. - 9. Check Cursor logs. Open the Command Palette → "Open Logs Folder" and inspect the most recent log for error detail beyond what the UI shows.
- 10. Check for a known Cursor regression. Visit the Cursor changelog and the Cursor forum to see if your version has a reported
edit_fileregression.
Want to analyze your API security?
Import your OpenAPI spec and generate a Security Report automatically.
How Cursor Agent File Editing Works
Before diagnosing failures, a working mental model helps.
┌─────────────────────────────────────────────────────┐
│ Cursor Agent Loop │
│ │
│ User prompt ──► LLM reasoning ──► Tool selection │
│ │ │
│ ▼ │
│ ┌─────────────────┐ │
│ │ edit_file tool │ │
│ │ (built-in) │ │
│ └────────┬────────┘ │
│ │ │
│ Arguments: │ │
│ - target_file │ │
│ - instructions│ │
│ - code_edit │ │
│ ▼ │
│ ┌──────────────────────────┐ │
│ │ Workspace boundary │ │
│ │ check │ │
│ └──────────┬───────────────┘ │
│ │ │
│ ▼ │
│ ┌──────────────────────────┐ │
│ │ Filesystem write │ │
│ │ (OS permission check) │ │
│ └──────────┬───────────────┘ │
│ │ │
│ Success ◄─┘──► Error │
└─────────────────────────────────────────────────────┘
The Agent resolves file paths relative to the workspace root — the folder you opened in Cursor. It then passes the path and the desired edit to the edit_file tool, which handles the actual filesystem write. Any failure at the boundary check or the write step surfaces as error calling tool 'edit_file'.
Importantly, the Agent does not re-scan the filesystem between steps in a multi-step plan. If it discovered a file exists at step 1 and that file is deleted before step 5, the Agent will still attempt to edit it at step 5 and fail.
Common Causes of Cursor edit_file Errors
| Cause | Typical Symptom | How to Verify | Fix |
|---|---|---|---|
| File does not exist at the expected path | "File not found" in error detail | ls src/utils.ts or Test-Path in PowerShell | Correct the path or recreate the file |
| File is outside the workspace root | "Cannot write to file outside workspace" | Compare the file path to File > Open Folder root | Open the correct workspace folder |
| File or directory is read-only | "Permission denied" or silent failure | ls -la on Unix; Get-Item … .IsReadOnly on Windows | Remove read-only flag or fix ownership |
| Agent context is stale after filesystem change | Agent references old path or old content | Start fresh conversation and retry | Close and reopen the conversation |
| Another process holds a file lock | Intermittent failure, often on Windows | lsof on macOS/Linux; handle.exe or Resource Monitor on Windows | Stop the locking process then retry |
File is inside a protected directory (.git, node_modules) | Consistent failure on specific path | Check whether path is inside .git or node_modules | Edit outside protected directories; don't ask Agent to modify these |
| Incorrect workspace root / wrong folder opened | Agent edits different project than expected | Check bottom-left status bar for workspace name | Close and reopen the correct folder |
.cursorignore or .gitignore restricts file access | Agent skips or cannot reach the file | Check .cursorignore and .gitignore for relevant patterns | Adjust ignore rules if appropriate |
| File is on a read-only mounted volume | Consistent failure across all files on volume | Check mount flags: mount on Linux, Disk Utility on macOS | Remount with write access or copy to writable location |
| Cursor regression in current version | Sudden failure after update, no environmental change | Check Cursor changelog and forum for reported bugs | Downgrade or wait for hotfix |
How to Diagnose Cursor edit_file Errors Step by Step
This workflow helps you isolate the exact cause systematically rather than trying fixes at random.
Step 1 — Is the Target File Present and Accessible?
What to check: Does the file the Agent tried to edit actually exist at the path it referenced?
How to check:
# macOS / Linux
ls -la /path/to/your/file
# Windows PowerShell
Test-Path 'C:\path\to\your\file'
Get-Item 'C:\path\to\your\file'
Confirms: If the file is missing, the cause is a deleted, moved, or renamed file.
Action: Restore the file or correct the Agent's instruction to use the current path. Start a fresh conversation so the Agent picks up the current state.
Step 2 — Is the File Inside the Active Workspace?
What to check: Cursor Agent can only edit files within the workspace root currently open in the window.
How to check: In Cursor, check the folder name shown in the bottom-left status bar or in the Explorer panel sidebar. Compare it to the path the Agent tried to edit.
If the error message says something like "Cannot write to file outside workspace", this is almost certainly the cause.
Confirms: If the target path is a parent directory, a sibling directory, or an entirely different drive from the opened workspace, the Agent cannot write there by design.
Action: Open the correct workspace folder (File > Open Folder), or if you need multi-root access, configure a multi-root workspace.
Step 3 — Verify Write Permissions on the File and Parent Directory
What to check: The running OS user needs write permission on both the target file and its containing directory.
How to check:
# macOS / Linux — check file and directory
ls -la /path/to/file
ls -la /path/to/
# Quick writable test
test -w /path/to/file && echo "file is writable" || echo "file is NOT writable"
test -w /path/to/ && echo "directory is writable" || echo "directory is NOT writable"
# Windows PowerShell
(Get-Item 'C:\path\to\file').IsReadOnly
Get-Acl 'C:\path\to\file' | Format-List
Confirms: If test -w returns false or IsReadOnly returns True, permissions are the cause.
Action: See the platform-specific sections below for the correct fix.
Step 4 — Check for File Locks from Other Processes
What to check: Another process may hold an exclusive lock or write lock on the file.
How to check:
# macOS
lsof /path/to/file
# Linux
lsof /path/to/file
fuser /path/to/file
# Windows — using Sysinternals handle.exe (download separately)
handle.exe 'filename'
# Or check in Resource Monitor > CPU tab > Associated Handles
Confirms: If lsof or handle.exe shows another process has the file open, that process may be blocking the write.
Action: Stop the locking process if safe, then retry the Agent operation.
Step 5 — Is the Agent's Context Stale?
What to check: Did you rename, move, or delete a file after the current Agent conversation started? The Agent forms its understanding of the file tree at conversation start and does not automatically re-scan.
How to check: Think about whether you made any filesystem changes manually during the current conversation. If yes, the Agent's view is stale.
Confirms: If you made changes mid-conversation and the error references an old path, stale context is the cause.
Action: Close the current conversation, verify the filesystem state, and start a fresh conversation. Reference the current file paths explicitly in your new prompt.
Step 6 — Is the Edit Operation Itself the Problem?
What to check: Ask the Agent to perform a trivially simple edit — append a blank line — to the same file. If that works but your original complex edit fails, the issue may be with the scope or complexity of the edit instructions rather than the file or path.
How to check: In a fresh conversation, ask:
"Open
src/utils.tsand add a comment// testat the top."
Confirms: If this trivial edit succeeds but the original complex instruction fails, the Agent is struggling to construct valid edit arguments for the complex change, not failing on a filesystem issue.
Action: Break your original request into smaller steps. Ask the Agent to make one focused change at a time rather than a large multi-part refactor in a single prompt.
Step 7 — Is This File-Specific or Project-Wide?
What to check: Try the Minimal Reproduction Test below to determine whether the problem is specific to the original file or affects the entire workspace.
How to check: Create a new file test_edit.txt in the workspace root and ask the Agent to add a line.
Confirms:
- New file edit works → original file has a specific problem (path, permissions, lock)
- New file edit also fails → project-wide issue (workspace config, Cursor bug, permissions on workspace root)
Step 8 — Check Cursor Logs for More Detail
What to check: The UI error message is often truncated. The full log entry may include the underlying OS error or a more specific failure reason.
How to check:
- Open Command Palette:
Cmd+Shift+P(macOS) orCtrl+Shift+P(Windows/Linux) - Type and run: Open Logs Folder
- Open the most recently modified log file
- Search for
edit_fileortool callor the filename you were editing
Alternatively, access runtime errors in the Developer Tools console:
- Help > Toggle Developer Tools
- Check the Console tab for error stack traces
Confirms: Errors like EACCES, ENOENT, EBUSY, or EROFS in the log point to specific OS-level causes (permission denied, no such entry, device busy, read-only filesystem respectively).
Step 9 — Is This a Cursor Regression?
What to check: Did the error start happening after a Cursor update and there was no environmental change on your machine?
How to check:
- Check Cursor > About to confirm your current version
- Visit the Cursor changelog to review recent releases
- Search the Cursor forum for
edit_filecombined with your version number
Confirms: If there is an active forum thread reporting the same error on the same version, you have likely hit a regression.
Action: Follow the official workaround posted in the thread. If none exists yet, report with your reproduction steps.
Step 10 — Is an MCP Server Actually Involved?
What to check: Only investigate MCP if you have explicitly configured MCP servers in your project.
How to check: Look at your Cursor configuration for MCP server definitions. In Cursor settings, search for "MCP" or check .cursor/mcp.json in your project.
If MCP is configured, ask: does the error message name edit_file specifically, or does it name a different tool? If it names edit_file, the built-in tool is failing, not your MCP server.
Confirms: If the error names a tool registered by your MCP server (not edit_file), investigate the MCP transport. See the Cursor edit_file Error vs MCP Tool Call Errors section.
Troubleshooting Decision Tree
Error calling tool 'edit_file'
│
▼
Does the file exist at the path the Agent referenced?
│ │
NO YES
│ │
Restore/correct ▼
the file path Is the file inside the active workspace root?
│ │
NO YES
│ │
Open the correct ▼
workspace folder Does the OS user have write permission?
│ │
NO YES
│ │
Fix permissions ▼
(see platform Is another process holding a lock?
sections) │ │
YES NO
│ │
Stop locking ▼
process Did files change mid-conversation?
│ │
YES NO
│ │
Fresh Agent ▼
conversation Check Cursor logs
for EACCES/ENOENT/
EROFS/regression
│
▼
Minimal repro test:
edit a plain new file
│ │
Works Also fails
│ │
File-specific Project/
problem Cursor bug
Windows-Specific Fixes
Windows has some file access behaviors that differ significantly from Unix systems and that specifically affect Cursor Agent's ability to write files.
Check and Clear the Read-Only Attribute
Files on Windows can have a read-only attribute that is separate from NTFS permissions. This is common for files copied from network shares, ZIP archives, or version-controlled repositories.
# Check read-only attribute
(Get-Item 'C:\your\project\src\utils.ts').IsReadOnly
# Remove read-only attribute
Set-ItemProperty 'C:\your\project\src\utils.ts' -Name IsReadOnly -Value $false
# Verify the change
(Get-Item 'C:\your\project\src\utils.ts').IsReadOnly
# Should now return False
Inspect NTFS Permissions
# View effective permissions
Get-Acl 'C:\your\project\src\utils.ts' | Format-List
# View which user account is running Cursor
[System.Security.Principal.WindowsIdentity]::GetCurrent().Name
# Check whether the current user has write access
$path = 'C:\your\project\src\utils.ts'
$acl = Get-Acl $path
$acl.Access | Where-Object { $_.IdentityReference -match $env:USERNAME }
If the current user lacks Write or Modify in the ACL, you need to adjust permissions through File Properties > Security tab, or ask an administrator to grant access.
Identify File Locks
On Windows, exclusive file locks are more common than on macOS/Linux because the Windows filesystem defaults to mandatory locking.
Use Sysinternals Process Explorer or Resource Monitor to find the locking process:
- Open Resource Monitor (
resmon.exe) - Go to the CPU tab
- In Associated Handles, search for the filename
- Identify the process and stop it if safe
Common culprits: vite, tsc --watch, jest --watch, Windows Defender real-time scan, backup software.
Workspace Path Considerations
Avoid placing your Cursor workspace inside deeply nested paths with special characters or spaces if you are encountering path resolution errors. While Cursor handles quoted paths, some edge cases in path normalization have been reported in community discussions.
If your workspace is on a network drive (\\server\share), be aware that:
- Network drives can have mixed permission models
- They may be temporarily offline or disconnected during an Agent run
- Write latency can occasionally cause unexpected failures
# Verify a network path is reachable and writable
Test-Path '\\server\share\project\src\utils.ts'
$testFile = '\\server\share\project\test_write.tmp'
Set-Content $testFile 'test' -ErrorAction SilentlyContinue
if (Test-Path $testFile) { Remove-Item $testFile; Write-Host 'Writable' } else { Write-Host 'NOT writable' }
macOS and Linux Fixes
Check and Fix File Permissions
The standard Unix permission model applies. The user running Cursor needs write permission on both the file and its parent directory.
# Check permissions on file and directory
ls -la /path/to/project/src/utils.ts
ls -la /path/to/project/src/
# Check ownership
stat /path/to/project/src/utils.ts
# Look at "Uid" and compare to: whoami
# Grant write to owner only (safe, minimal change)
chmod u+w /path/to/project/src/utils.ts
# Grant write on directory for owner
chmod u+w /path/to/project/src/
Do not use chmod 777 on your project files. It grants write access to every user on the system, which is a security problem on shared machines and unnecessary for fixing a Cursor issue.
Check File Ownership
A common cause on macOS: files created by another user (e.g., Docker daemon, CI runner, sudo) are owned by a different UID. Cursor running as your regular user cannot write them.
# Check who owns the file
ls -la /path/to/file
# First column after permissions shows owner
# Fix ownership (run as yourself, use sudo only if needed)
chown $(whoami) /path/to/project/src/utils.ts
# Fix ownership recursively on src/ directory (targeted, not the whole project)
chown -R $(whoami) /path/to/project/src/
Use chown -R only on the specific subdirectory that needs fixing, not your entire home directory.
Symlinks and Mounted Filesystems
If your workspace contains symlinks that point outside the workspace root, the Agent may reach the symlink target but fail due to permissions on the target location.
# Check if a file is a symlink
file /path/to/file
ls -la /path/to/file # Shows -> target if symlink
# Resolve the real path
realpath /path/to/file
# Then check permissions on the resolved path
ls -la $(realpath /path/to/file)
For Docker volumes and container-mounted paths: files written into volumes by the container as root will not be writable by the macOS or Linux host user unless volume permissions are explicitly configured. This is a very common source of edit_file failures in containerized development environments.
# Check mount flags on Linux
mount | grep /path/to/mountpoint
# Look for 'ro' flag indicating read-only mount
# Check mounted volumes on macOS
mount | grep /path/to/mountpoint
macOS Quarantine and Extended Attributes
Files downloaded from the internet on macOS receive a quarantine extended attribute that can interact with write permissions in some edge cases.
# Check extended attributes
xattr -l /path/to/file
# Remove quarantine attribute if present
xattr -d com.apple.quarantine /path/to/file
Cursor edit_file Error vs MCP Tool Call Errors
This is one of the most common points of confusion, and it leads developers down the wrong troubleshooting path.
How Cursor's Tool Architecture Works
Cursor Agent has two categories of tools:
1. Built-in Cursor Agent tools — shipped with Cursor, always available in Agent mode. These include edit_file, read_file, run_terminal_command, search_codebase, and others. They operate directly on your local filesystem through Cursor's internal implementation. No network connection. No JSON-RPC transport to an external server.
2. MCP server tools — tools exposed by external MCP servers you configure. These are registered at runtime by connecting to an MCP server over stdio or SSE transport. The tool names visible in Cursor are whatever the MCP server advertises. Examples might be query_database, search_docs, fetch_url, or anything your specific server exposes.
How to Tell the Difference
| Signal | Built-in Tool Failure | MCP Tool Failure |
|---|---|---|
| Tool name in error | edit_file, read_file, run_terminal_command | Custom name from your MCP server |
| MCP configured? | Irrelevant | You must have MCP configured |
| Network involved | No | Yes (stdio or SSE transport) |
| Related error context | File path, permission, workspace | Connection refused, transport error, tool not found |
| Cursor logs section | Workspace/agent logs | MCP transport logs |
When to Investigate MCP
Only investigate your MCP server if the failure looks like a broader Cursor tool call failed case rather than a built-in edit_file permission or path issue:
- You have MCP servers configured in
.cursor/mcp.jsonor Cursor settings - The error message names a tool that is NOT
edit_fileor another known built-in Cursor tool - You see a separate MCP connection error message alongside or before the tool call error
- The Cursor logs show MCP transport failures (connection refused, authentication errors, JSON-RPC parse errors)
If you have a legitimate MCP server issue and are building or operating a remotely accessible MCP server, MCPForge Verify can help you validate that your server is reachable and responding correctly before connecting it to Cursor.
For production MCP deployments, the patterns described in Running MCP in Production are worth reviewing — especially transport reliability and error handling — since a flaky MCP server can appear as tool call failures in the Cursor UI even when the actual edit_file tool is working fine.
Common MCP-Related Misdiagnosis
Developers sometimes see the edit_file error immediately after adding an MCP server to their configuration and assume the two are connected. In practice, the timing is coincidental. Adding an MCP server does not affect how built-in tools work. If edit_file was working before the MCP server was added and stops working after, first verify that you did not accidentally change your workspace folder or project structure when you edited the configuration.
Minimal Reproduction Test
This is the single most useful diagnostic step when you cannot isolate the cause from the checklist alone. It determines whether the problem is file-specific, project-specific, or a global Cursor Agent failure.
Procedure
1. Create a completely fresh workspace:
# macOS / Linux
mkdir ~/cursor-repro-test
cd ~/cursor-repro-test
echo "Hello world" > test.txt
# Windows
New-Item -ItemType Directory -Path "$HOME\cursor-repro-test"
Set-Location "$HOME\cursor-repro-test"
Set-Content -Path "test.txt" -Value "Hello world"
2. Open this folder in Cursor. Use File > Open Folder and select cursor-repro-test. Do not open a workspace from your original project.
3. Start a new Agent conversation. Ask:
"Add a second line to test.txt that says 'Line two'."
4. Interpret the result:
| Result | What It Means | Next Action |
|---|---|---|
| Edit succeeds | Built-in edit_file works; problem is project or file specific | Return to original project; check path, permissions, ignore rules |
| Edit fails with same error | edit_file is broken globally | Check Cursor version, logs, and forum for regressions |
| Edit fails with a different error | A separate unrelated issue is also present | Note both error messages; address them separately |
5. If the repro test succeeds, return to your original project and progressively add complexity:
- Open your original workspace
- Ask the Agent to edit the specific file that was failing
- Check the error message for any file-specific detail (path, permission)
6. If the repro test fails, collect the Cursor log output from this test session and report it to Cursor with the minimal reproduction case. A failure on a plain test.txt file in a fresh empty directory with no special configuration is a strong signal of a Cursor regression worth reporting.
Ignore Rules and Protected Paths
Cursor respects .cursorignore files and .gitignore patterns for context inclusion. While these primarily affect what is indexed for AI context, there are edge cases where ignore rules can interact with what the Agent is willing or able to modify.
Additionally, certain directories are intentionally protected:
.git/— The Agent should never be writing directly into.git. If a prompt accidentally causes the Agent to attempt this, expect a failure.node_modules/— Similarly, editing files insidenode_modulesis almost never the right action and the Agent may refuse or fail.- System directories — Any path outside the workspace or in OS-protected locations (
/System,C:\Windows) will fail.
If you believe an ignore rule is incorrectly blocking a legitimate file:
# Check which ignore rules apply to a specific file
cat .cursorignore
cat .gitignore
# Check for nested .gitignore files in subdirectories
find . -name '.gitignore' -not -path './.git/*'
How to Report an edit_file Bug to Cursor
If you have worked through this guide and confirmed that:
- The file exists, is inside the workspace, and is writable
- No process holds a lock
- The minimal reproduction test fails on a simple file in a clean directory
- The issue started after a Cursor version update
Then you likely have a genuine Cursor regression.
Before reporting:
- Reproduce the issue on the minimal test project (see above)
- Note your exact Cursor version (Cursor > About)
- Note your OS and OS version
- Copy the relevant error from Cursor logs (sanitize any sensitive file paths)
- Note the exact prompt that triggered the failure
Where to report:
- Cursor GitHub Issues — for reproducible bugs with clear steps
- Cursor Community Forum — for checking if others have the same issue or for general troubleshooting support
Include the minimal reproduction steps in your report. Bug reports with "create an empty folder, open it in Cursor, ask Agent to edit a new file, see error" are far more actionable than reports describing a complex multi-file project.
Prevention and Best Practices
Avoiding edit_file errors in regular usage comes down to a few habits:
Keep the workspace root stable during Agent sessions. Moving, renaming, or restructuring directories while an Agent conversation is active almost guarantees stale context errors. Make large structural changes before starting an Agent conversation, not during one.
Use short, focused Agent conversations. The longer a conversation runs and the more files it touches, the higher the chance that context drifts from reality. For large refactors, break them into discrete sessions with a clear scope per session.
Verify file paths before starting complex operations. Before asking the Agent to edit a deeply nested or recently moved file, confirm the path in the Cursor Explorer sidebar.
Check workspace permissions when switching machines or pulling from CI. If your team uses a CI system that writes files as a different user, check ownership when pulling those files to your local machine.
For Docker-based development: configure volume mounts to use the host user's UID/GID rather than root. This prevents the entire class of permission failures that arise from container-generated files.
# docker-compose.yml — set user to match host
services:
dev:
image: node:20
user: "${UID}:${GID}" # Pass host UID/GID
volumes:
- .:/workspace
Keep Cursor updated — but also check the changelog before updating on a working machine in the middle of a project. Regressions do occur; knowing which version introduced the issue helps both you and Cursor's team.
References
- Cursor Official Documentation — primary source for Agent behavior and tool availability
- Cursor Changelog — version history and known fixes
- Cursor Community Forum — community-reported issues and workarounds
- Model Context Protocol Specification — official MCP specification for understanding MCP tool architecture
- MCPForge: Running MCP in Production — production patterns for MCP server reliability
- Sysinternals Process Explorer — Windows file lock diagnosis