mcp-workspace
MCP Workspace Server: A secure Model Context Protocol server providing file, git, and GitHub tools for AI assistants within a sandboxed project directory.
Install / Use
claude mcp add MarcusJellinghaus -- npx -y github:MarcusJellinghaus/mcp-workspaceIf the server publishes to npm under a different name, use that package instead — check the repo README.
MCP Server
Model Context Protocol server
Quality Score
Category
Development & EngineeringSupported Platforms
Skill content
View source on GitHubMCP File System Server
A simple Model Context Protocol (MCP) server providing file system operations. This server offers a clean API for performing file system operations within a specified project directory, following the MCP protocol design.
Overview
This MCP server enables AI assistants like Claude (via Claude Desktop) or other MCP-compatible systems to interact with your local file system. With these capabilities, AI assistants can:
- Read your existing code and project files
- Write new files with generated content
- Update and modify existing files with precision using exact string matching
- Make selective edits to code without rewriting entire files
- Delete files when needed
- Review repositories to provide analysis and recommendations
- Debug and fix issues in your codebase
- Generate complete implementations based on your specifications
All operations are securely contained within your specified project directory, giving you control while enabling powerful AI collaboration on your local files.
By connecting your AI assistant to your filesystem, you can transform your workflow from manual coding to a more intuitive prompting approach - describe what you need in natural language and let the AI generate, modify, and organize code directly in your project files.
Features
list_directory: List all files and directories in the project directoryread_file: Read a file, or a line slice via start_line/end_line.save_file: Write a file, creating parent directories as needed.append_file: Append content to the end of a filedelete_this_file: Delete a single specified file from the filesystemdelete_directory: Delete a directory (empty by default, whole tree withrecursive=True)edit_file: Edit a file by exact string match; replace_all for multiple matches.move_file: Move or rename files and directories (git-aware: uses git mv for tracked files, else filesystem move)get_reference_projects: Discover available reference projectslist_reference_directory: List files in reference projectsread_reference_file: Read a reference-project file, or a line slice via start_line/end_line.Structured Logging: Comprehensive logging system with both human-readable and JSON formats
Installation
# Clone the repository
git clone https://github.com/MarcusJellinghaus/mcp-workspace.git
cd mcp_workspace
# Create and activate a virtual environment (optional but recommended)
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
# Install dependencies using pip with pyproject.toml
pip install -e .
Running the Server
Once installed, you can use the mcp-workspace command directly:
mcp-workspace --project-dir /path/to/project [--reference-project NAME=/path/to/reference]... [--log-level LEVEL] [--log-file PATH] [--file-size-limit N]
Command Line Arguments:
--project-dir: (Required) Directory to serve files from--reference-project: (Optional) Add reference project in format name=/path/to/dir (repeatable, auto-renames duplicates)--log-level: (Optional) Set logging level (DEBUG, INFO, WARNING, ERROR, CRITICAL)--log-file: (Optional) Path for structured JSON logs. If not specified, logs to mcp_workspace_{timestamp}.log in project_dir/logs/.--file-size-limit: (Optional) Default line limit forcheck_file_sizewhenmax_linesis omitted; must be > 0. Falls back to 600 when not set.
The server uses FastMCP for operation. The project directory parameter (--project-dir) is required for security reasons. All file operations will be restricted to this directory. Attempts to access files outside this directory will result in an error.
Structured Logging
The server provides flexible logging options:
- Standard human-readable logs to console
- Structured JSON logs to file (default:
project_dir/logs/mcp_workspace_{timestamp}.logor custom path with--log-file) - Function call tracking with parameters, timing, and results
- Automatic error context capture
- Configurable log levels (DEBUG, INFO, WARNING, ERROR, CRITICAL)
- Use
--console-onlyto disable file logging
Reference Projects
Reference projects allow you to provide AI assistants with read-only access to additional codebases or directories for context and reference. This feature enables the LLM to browse and read files from multiple projects while maintaining write access only to the main project directory.
Features
- Read-only access: Reference projects can only be browsed and read from, never modified
- Multiple projects: Configure multiple reference projects simultaneously
- Auto-discovery: LLM can discover available reference projects
- Security: Same path validation and gitignore filtering as main project
- Flexible paths: Supports both relative and absolute paths
Configuration
Use the --reference-project argument to add reference projects:
# Single reference project
mcp-workspace --project-dir ./my-project --reference-project docs=./documentation
# Multiple reference projects
mcp-workspace --project-dir ./my-project \
--reference-project docs=./documentation \
--reference-project examples=/home/user/examples \
--reference-project libs=../shared-libraries
# Absolute paths
mcp-workspace --project-dir /path/to/main/project \
--reference-project utils=/usr/local/utils \
--reference-project config=/etc/myapp
Auto-Rename Behavior
If you specify duplicate reference project names, they are automatically renamed with numeric suffixes:
# This configuration:
mcp-workspace --project-dir ./project \
--reference-project docs=./docs1 \
--reference-project docs=./docs2 \
--reference-project docs=./docs3
# Results in these reference project names:
# - docs (points to ./docs1)
# - docs_2 (points to ./docs2)
# - docs_3 (points to ./docs3)
Startup Validation
The server validates reference projects at startup:
- Valid references: Added successfully and available to the LLM
- Invalid references: Logged as warnings, but server continues with valid ones
- Path resolution: Relative paths are resolved relative to the current working directory
Use Cases
- Documentation browsing: Give the LLM access to project documentation or wikis
- Code examples: Reference example projects or templates
- Shared libraries: Browse common utility libraries or frameworks
- Configuration files: Access system or application configuration directories
- Multi-project development: Work on one project while referencing related projects
Security Notes
- Reference projects are strictly read-only - no write, edit, or delete operations are possible
- All paths are validated to prevent directory traversal attacks
- Gitignore filtering is automatically applied to hide irrelevant files
- Path access is restricted to the specified reference project directories
Integration Options
This server can be integrated with different Claude interfaces. Each requires a specific configuration.
Claude Desktop App Integration
The Claude Desktop app can also use this file system server.
Configuration Steps for Claude Desktop
-
Locate the Claude Desktop configuration file:
- Windows:
%APPDATA%\Claude\claude_desktop_config.json - macOS:
~/Library/Application Support/Claude/claude_desktop_config.json
- Windows:
-
Add the MCP server configuration (create the file if it doesn't exist):
{
"mcpServers": {
"filesystem": {
"command": "mcp-workspace",
"args": [
"--project-dir",
"C:\\path\\to\\your\\specific\\project",
"--reference-project",
"docs=C:\\path\\to\\documentation",
"--reference-project",
"examples=C:\\path\\to\\examples",
"--log-level",
"INFO"
]
}
}
}
-
Configuration notes:
- The
mcp-workspacecommand should be available in your PATH after installation - You must specify an explicit project directory path in
--project-dir - Replace the project directory path with your actual project path
- The project directory should be the folder you want Claude to access
- The
-
Restart the Claude Desktop app to apply changes
Troubleshooting Claude Desktop Integration
- Check logs at:
%APPDATA%\Claude\logs(Windows) or~/Library/Application Support/Claude/logs(macOS) - Verify the
mcp-workspacecommand is available in your PATH (runmcp-workspace --helpto test) - Ensure the specified project directory exists and is accessible
- Verify all paths in your configuration are correct
Contributing
For development setup, testing, and contribution guidelines, see CONTRIBUTING.md.
Available Tools
The server exposes the following MCP tools:
| Operation | Description | Example Prompt |
|-----------|-------------|----------------|
| list_directory | Lists files and directories in the project directory | "List all files in the src directory" |
| read_file | Reads the contents of a file | "Show me the contents of main.js" |
| save_file | Creates or overwrites files atomically | "Create a new file called app.js" |
| append_file | Adds content to existing files | "Add a function to utils.js" |
| delete_this_file | Removes files from the filesystem | "Delete the temporary.txt file" |
| delete_directory | Deletes a directory (empty, or a whole tree with recursive) | "Delete the pr_info directory and its contents" |
| edit_file | Makes selective edits using exact string matching | "Fix the bug in the fetch function" |
| move_file | Moves or renames files/directories (git-aware: uses git mv for tracked files, else filesystem move) | "Rename config.js to settings.js" |
| get_reference_projects | Lists available reference projects | "What reference projects are available?" |
| list_reference_directory | Lists files in a reference project | "List files in the docs reference project" |
| read_reference_file | Reads files from reference projects | "Show me the README from the examples project" |
Tool Details
List Directory
- Returns a list of file and directory names
- By default, results are filtered based on .gitignore patterns and .git folders are excluded
Read File
- Parameters:
file_path(string): Path to the file to read (relative to project directory)start_line(integer, optional): First line to return (1-based, inclusive). Must be provided together withend_line.end_line(integer, optional): Last line to return (1-based, inclusive). Must be provided together withstart_line.with_line_numbers(boolean, optional): Prefix each line with its line number. Defaults toTruewhen a line range is specified,Falsefor full reads.
- Returns the content of the file as a string
Save File
- Parameters:
file_path(string): Path to the file to write tocontent(string): Content to write to the file
- Returns a boolean indicating success
Append File
- Parameters:
file_path(string): Path to the file to append tocontent(string): Content to append to the file
- Returns a boolean indicating success
- Note: The file must already exist; use
save_fileto create new files
Delete This File
- Parameters:
file_path(string): Path to the file to delete - Returns a boolean indicating success
- Note: This operation is irreversible and will permanently remove the file
Delete Directory
Deletes a directory within the project directory.
Parameters:
dir_path(string): Path to the directory to delete (relative to project)recursive(boolean, optional): Delete the whole tree whenTrue(default:False)
Features:
- Deletes an empty directory by default (
recursive=False) recursive=Truedeletes the whole tree, including its contents (viashutil.rmtree)- Handles directories only - use
delete_this_filefor files
Truncated for display — read the full file on GitHub.
Related Skills
Agent-Reach
84.2kGive your AI agent eyes to see the entire internet. Read & search Twitter, Reddit, YouTube, GitHub, Bilibili, XiaoHongShu — one CLI, zero API fees.
headroom
73.4kCompress tool outputs, logs, files, and RAG chunks before they reach the LLM. 20% fewer tokens for coding agents, 60-95% fewer tokens for JSON, same answers. Library, proxy, MCP server.
ruflo
73.0k🌊 The original agent harness. Deploy intelligent multi-player swarms, coordinate autonomous workflows, and build conversational AI systems. Features adaptive memory, self-learning intelligence, federation, vector RAG integration, and native Claude Code / Codex / Hermes and many more Integrated
career-ops
72.3kOpen-source AI job search: scan job portals, evaluate listings into a structured A-H report with a global 1-5 score, tailor your CV, track applications — runs locally in your AI coding CLI (Claude Code, Codex, OpenCode, Antigravity…)
