workspace-mcp
# ๐ Workspace MCP ๐ ๏ธ
> **The ultimate local filesystem bridge for Claude Desktop & Claude Code!** โก Stop losing code to token limits โ let Claude design, scaffold, build, and save full-stack software projects directly on your hard drive! ๐๐ป
[](https://www.python.org/)
[](LICENSE)
[](https://modelcontextprotocol.io)
---
## ๐ฏ Overview: Solving Claude's Token Limits ๐
When using Claude to build multi-file projects, developers frequently run into **output token limits** and **context window cutoffs**:
1. โ ๏ธ **Truncated File Outputs**: Claude hits completion token limits mid-file, cutting off output and forcing you to repeatedly ask it to continue.
2. ๐ **Lost Progress**: When a conversation gets too long or expires, un-saved code in the chat window disappears unless manually copy-pasted into your editor.
3. ๐ซ **No Direct Disk Access**: Standard web and desktop chats cannot write files directly to your local computer.
### ๐ช How Workspace MCP Helps ๐
Workspace MCP connects Claude directly to your local filesystem:
- ๐พ **Incremental Local Disk Saves**: Every file and folder is saved immediately as Claude works. If Claude hits an output token limit on a long response, everything written up to that point remains 100% safely stored on disk.
- ๐ **Resuming Work**: In a new chat prompt, simply ask Claude to read your project files and pick up right where it left off using `read_file`, `find_text`, or `update_file`.
- ๐ **Automatic Work Logs (`CLOUD.md`)**: Maintains an architectural work log tracking what was built, key decisions, and next steps for future chat sessions.
---
## ๐งญ Capabilities Guide: What Workspace MCP Does ๐ ๏ธ
Think of `workspace-mcp` as providing **file and project management hands** ๐คฒ to your AI assistant. The AI handles the reasoning (what code to write and how to structure it); `workspace-mcp` handles applying those changes directly to disk in a clean, organized folder layout.
### ๐จ The 4 Main Tool Categories
| Category | Description |
|---|---|
| ๐๏ธ **Project & Folder Management** | Create, rename, or remove project roots and subdirectories. |
| ๐ **File Operations** | Create, read, edit, move, rename, and delete individual files safely. |
| ๐ **Search & Discovery** | Find text across files (`grep`), search by filename patterns (`glob`), or list directory trees. |
| ๐ **Auto-Documentation** | Automatically generate `README.md`, `PROJECT_TREE.md`, and `CLOUD.md` work logs. |
---
### ๐๏ธ 1. Project & Folder Management
- `create_project` ๐๏ธ โ Initializes a project directory with a default scaffold.
- `create_directory` ๐ โ Creates subfolders (e.g. `src/`, `docs/`) and missing parent folders automatically.
- `rename_project` โ๏ธ โ Moves or renames an entire project directory.
- `delete_directory` ๐๏ธ โ Recursively deletes a folder (requires explicit `confirm=true`).
- `delete_project` ๐ฅ โ Permanently removes an entire project directory (requires `confirm=true`).
*๐ก Tip:* Always start a new application with `create_project` to keep files scoped inside a dedicated folder!
---
### ๐ 2. File Operations
- `create_file` โจ โ Creates a new file with content (fails if the file already exists to prevent accidental overwrites).
- `write_file` ๐ โ Overwrites a file completely or creates it if missing (requires `confirm=true` if overwriting).
- `update_file` ๐ง โ Performs targeted string edits (`find`/`replace`) on existing files without replacing the entire file.
- `append_file` โ โ Appends text to the end of a file without touching existing content.
- `read_file` ๐ โ Reads a file's full UTF-8 text content.
- `move_file` ๐ โ Relocates a file to another directory.
- `rename_file` ๐ท๏ธ โ Renames a file within its current folder.
- `delete_file` โ โ Deletes a single file (requires `confirm=true`).
*๐ก Tip:* Use `create_file` for brand new files, `update_file` for inline edits, and `write_file` when replacing an entire file!
---
### ๐ 3. Search & Discovery
- `find_text` ๐ โ Grep-like search across text files for literal strings (e.g. finding `TODO` comments or function usages).
- `search_files` ๐ฏ โ Glob search for files matching a pattern (e.g. `**/*.py` or `*.ts`).
- `list_directory` ๐ โ Lists files and subdirectories with sizes and metadata.
*๐ก Tip:* Use `search_files` when looking for file types or names, and `find_text` when searching for specific code text across your project!
---
### ๐ 4. Auto-Documentation & Validation
- `generate_readme` ๐ โ Creates or updates a structured `README.md`.
- `generate_project_tree` ๐ด โ Saves an ASCII visual tree map to `PROJECT_TREE.md`.
- `project_tree` ๐๏ธ โ Returns an ASCII visual tree in the tool response without saving to disk.
- `generate_cloud_log` โ๏ธ โ Writes `CLOUD.md` documenting what was built and why.
- `validate_workspace` ๐ฅ โ Checks workspace health, server configuration, and limits.
- `validate_path` ๐ก๏ธ โ Verifies if a path is safe and valid before performing file operations.
---
### ๐ Typical Workflow
```text
1. create_project ๐๏ธ โ Initialize project directory
2. create_directory ๐ โ Scaffold subfolders (src/, docs/)
3. create_file โจ โ Write initial source files
4. update_file ๐ง โ Edit and refine code incrementally
5. find_text/search_files๐ โ Locate references or check for TODOs
6. move_file/rename_file ๐ โ Organize file structure
7. generate_project_tree ๐ด โ Save project tree map
8. generate_readme ๐ โ Document setup and usage
9. generate_cloud_log โ๏ธ โ Save AI work log
10. validate_workspace ๐ฅ โ Verify workspace state
```
---
## ๐ Connecting to Claude Desktop ๐ค
Claude Desktop manages MCP servers via its configuration file. Using `uv` allows Claude Desktop to run `workspace-mcp` automatically in the background without needing to start a server manually! โก
### ๐ Step 1: Locate `claude_desktop_config.json`
| OS | Config Path |
| --- | --- |
| **Windows ๐ช** | `%APPDATA%\Claude\claude_desktop_config.json` |
| **macOS ๐** | `~/Library/Application Support/Claude/claude_desktop_config.json` |
| **Linux ๐ง** | `~/.config/Claude/claude_desktop_config.json` |
### โ๏ธ Step 2: Add Configuration
Add the following to your `claude_desktop_config.json`. Update the paths to point to your local installation of `workspace-mcp` and your desired `--workspace-root` directory:
#### Windows ๐ช
```json
{
"mcpServers": {
"workspace-mcp": {
"command": "uv",
"args": [
"--directory",
"C:/Users/YourUsername/mcp/servers/workspace-mcp",
"run",
"workspace-mcp",
"--workspace-root",
"C:/Users/YourUsername/AIProjects"
]
}
}
}
```
#### macOS ๐ / Linux ๐ง
```json
{
"mcpServers": {
"workspace-mcp": {
"command": "uv",
"args": [
"--directory",
"/home/user/workspace-mcp",
"run",
"workspace-mcp",
"--workspace-root",
"/home/user/AIProjects"
]
}
}
}
```
*๐ก Note:* Requires [`uv`](https://github.com/astral-sh/uv) to be installed on your system PATH.
### ๐ Step 3: Restart Claude Desktop ๐จ
1. Fully close Claude Desktop (from system tray or menu bar).
2. Re-open Claude Desktop.
3. Click the hammer icon (๐จ) in the chat bar to confirm that the **workspace-mcp** tools are active! ๐
---
## ๐ฎ Usage & Master Prompt ๐
### ๐ Comprehensive Master Prompt
Copy and paste this prompt into Claude Desktop to test all tool capabilities at once:
```text
Using the workspace MCP, create a new project called [project-name]. Set up the following structure: create a src/ directory, add starter files inside it ([file1], [file2]), and create a top-level README.md and .gitignore.
Once the files exist, append a notes section to the README, then update [file1] with the core logic for [feature].
Search the project for any TODO or FIXME comments using find_text. Find all files matching *.[ext] using search_files.
Rename [file2] to [new-name], then move it into a new docs/ directory.
Generate the project tree, generate a proper README, and generate a CLOUD.md log summarizing what was built.
Finally, validate the workspace configuration, and list the contents of the project root to confirm everything is in place.
```
### โก Resuming Work After Token Limits
If Claude hits a completion limit mid-task:
1. Open a new chat session.
2. Prompt Claude:
> "Check the files in `MyProject/src`, review `CLOUD.md` to see what was built so far, and finish implementing the main module."
3. Claude will use `list_directory`, `read_file`, and `update_file` to continue development seamlessly! ๐
---
## ๐ก๏ธ Security Sandbox Architecture ๐
Workspace MCP strictly isolates all operations to the configured `--workspace-root`:
```
Claude Desktop (Client ๐ค)
โ
โผ Stdio Transport โก
Workspace MCP Server ๐ฅ๏ธ
โ
โผ
Service Layer โ๏ธ โโโบ PathValidator (os.path.realpath Sandbox ๐ก๏ธ)
โ
โผ
Sandboxed Workspace Root ๐
```
- ๐ก๏ธ **Path Security**: All input paths are resolved using `os.path.realpath` / `Path.resolve(strict=False)` to prevent `..` path traversal sequences and symlink escapes.
- ๐ซ **Reserved Names**: Windows reserved filenames (`CON`, `NUL`, `AUX`, `COM1-9`) are rejected to preserve cross-platform compatibility.
- ๐ **Confirmation Gating**: Destructive actions (`delete_file`, `delete_directory`, file overwrites) require explicit confirmation flags (`confirm=true` / `overwrite=true`).
- ๐ **Audit Logs**: Operations are logged to both `operations.jsonl` (machine-readable) and `operations.log` (human-readable text).
---
## ๐งฐ Tool Reference ๐ฆ
| Category | Tool | Description |
| --- | --- | --- |
| **Project ๐๏ธ** | `create_project` | Scaffolds directory structure + `.gitignore`, `Dockerfile`, `README.md`, `CLOUD.md` |
| | `delete_project` | Removes project folder (requires `confirm=true`) |
| | `rename_project` | Renames or relocates a project directory |
| **Directory ๐** | `create_directory` | Creates subdirectories (including missing parents) |
| | `delete_directory` | Deletes directory recursively (requires `confirm=true`) |
| | `list_directory` | Lists directory files and metadata |
| **File ๐** | `create_file` | Creates a new file |
| | `read_file` | Reads UTF-8 text file content |
| | `write_file` | Overwrites file content (requires `confirm=true`) |
| | `append_file` | Appends text to end of file |
| | `update_file` | Performs `find`/`replace` string substitution or partial update |
| | `move_file` / `rename_file` | Relocates or renames a file |
| | `delete_file` | Deletes a file (requires `confirm=true`) |
| **Search ๐** | `search_files` | Glob search for matching filenames |
| | `find_text` | Grep-like search across text files |
| | `project_tree` | Generates ASCII project tree string |
| **Docs ๐** | `generate_readme` | Creates/updates `README.md` |
| | `generate_cloud_log` | Creates `CLOUD.md` work log |
| | `generate_project_tree` | Saves `PROJECT_TREE.md` to disk |
| **Validation ๐ฅ** | `validate_workspace` | Returns server health and settings |
| | `validate_path` | Validates relative path safety without modifying disk |
---
## โ๏ธ Configuration Reference ๐ง
Settings can be specified via command-line flags or environment variables (`WORKSPACE_MCP_*`):
| Option | Environment Variable | Default | Description |
| --- | --- | --- | --- |
| `--workspace-root` | `WORKSPACE_MCP_WORKSPACE_ROOT` | `./workspace` | Base sandboxed directory for all operations |
| `--config` | `WORKSPACE_MCP_CONFIG` | `None` | Path to YAML/JSON configuration file |
| `max_file_size_bytes` | `WORKSPACE_MCP_MAX_FILE_SIZE_BYTES` | `10485760` (10MB) | File size write limit |
| `require_overwrite_confirmation` | `WORKSPACE_MCP_REQUIRE_OVERWRITE_CONFIRMATION` | `true` | Enforces confirmation on file overwrite/delete |
---
## ๐ License โ๏ธ
Distributed under the [MIT License](LICENSE).
TDQS
Scored across 22 tools
Multiple file-mutation tools overlap significantly: create_file, write_file, and update_file can all write full file content, and move_file supersedes rename_file. delete_project is essentially a specific case of delete_directory with recursive. Though descriptions are detailed, the boundaries are blurry and agents could easily select the wrong tool.
Most tool names follow a consistent verb_noun snake_case pattern (create_file, delete_directory, generate_readme, validate_workspace). The outlier is project_tree, which is a noun phrase, and it conflicts with the similarly named generate_project_tree, creating a minor inconsistency.
With 22 tools, the set feels heavy, and several tools are near-duplicates (rename_file vs move_file, write_file vs update_file), making it padded. A streamlined set of 15-18 tools could cover the same functionality without redundancy.
File CRUD, search, and project management are well covered, but there is no copy operation for files or directories, and no general rename/move for directories other than top-level projects via rename_project. These are notable gaps for a workspace management tool.