English | ไธญๆ
๐ One MCP, Complete Agent Capabilities!
Beyond Filesystem - Complete AI Development Environment - Enable AI to perform full-stack Web development, data processing, and code execution like Claude Code
๐ก Core Value: No need to integrate multiple MCP tools. One MCP server provides complete Agent capabilities including file operations, code execution, web deployment, data processing, and image generation. Ready to use out of the box, an all-in-one solution.
A powerful MCP (Model Context Protocol) server that goes far beyond file system operations. It's a complete AI development workspace with code execution, one-click web deployment, wildcard domain support, Excel processing, image generation, and enterprise-grade capabilities.
Traditional Approach: Need to integrate multiple MCP tools to achieve full functionality
- โ File operations โ Need one MCP
- โ Code execution โ Need another MCP
- โ Web deployment โ Need a third MCP
- โ Data processing โ Need a fourth MCP
- โ Image generation โ Need a fifth MCP
- Result: Complex configuration, difficult maintenance, scattered functionality
Our Approach: Just one MCP, all capabilities ready out of the box
- โ File operations + Code execution + Web deployment + Data processing + Image generation
- โ Unified Configuration: Configure once, enable all
- โ Unified Management: One service, centralized management
- โ Unified Security: One security policy, comprehensive protection
We provide a complete AI development workspace with capabilities far beyond traditional filesystem servers:
- ๐ Web Development: AI can create full web applications (HTML/CSS/JS) and deploy them to production with one click
- ๐ Wildcard Domain Deployment: Support
*.your-domain.comwildcard domains, each session automatically gets its own subdomain - ๐ป Code Execution: Built-in Python 3.12 and Node.js 20 sandbox environments for real-time code execution and debugging
- ๐ Data Processing: Complete Excel/CSV processing with templates, formulas, and formatting
- ๐จ Image Generation: Multiple image generation methods including Mermaid flowcharts, data charts, and HTML rendering
- ๐ Smart Search: Advanced capabilities like file content search, knowledge base retrieval, and web crawling
- ๐ Enterprise Security: Multi-tenant isolation, path security protection, resource limits, and sandbox execution
| Traditional Approach | Our Approach |
|---|---|
| Need 5+ MCP tools | Just 1 MCP |
| Complex configuration, need to integrate one by one | Ready out of the box, one-click configuration |
| Scattered functionality, hard to manage | Centralized functionality, unified management |
| Inconsistent security policies | Unified security policy |
| High maintenance cost | Simple maintenance |
In One Sentence: One MCP server = Complete Agent capability stack ๐
Use Case 1: AI-Driven Web Development
AI creates full frontend app โ One-click deployment โ Gets independent domain access
Example: https://user123_chat456.your-domain.com
Use Case 2: Data Analysis & Visualization
Read Excel โ Data processing โ Generate charts โ Create reports โ Deploy showcase page
Use Case 3: Code Development & Testing
Write Python scripts โ Execute tests โ Fix bugs โ Deploy API services
Each user/session has an independent virtual workspace, completely isolated from others.
Workspace Naming Convention:
| X-User-ID | X-Chat-ID | Workspace Directory |
|---|---|---|
user123 |
chat456 |
user_data/user123_chat456/ |
user123 |
(empty) | user_data/user123/ |
| (empty) | chat456 |
user_data/chat456/ |
| (empty) | (empty) | Uses default global mode |
Pass identity via HTTP headers:
X-User-ID: User unique identifier (optional)X-Chat-ID: Session unique identifier (optional)
Fully Virtualized LLM Perspective: AI models see a clean virtual filesystem with / as the root.
LLM's View Actual Physical Path
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
/ โ /server/user_data/user123_chat456/
/todo.txt โ /server/user_data/user123_chat456/todo.txt
/docs/readme.md โ /server/user_data/user123_chat456/docs/readme.md
Benefits:
- โ Does not expose real server directory structure
- โ AI platforms cannot access physical path information
- โ Simplifies AI file operation commands
- โ Enhanced security and privacy protection
Built-in multi-layer security mechanisms to prevent path traversal attacks:
Attack Attempt Result
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
/../../../etc/passwd โ Blocked
../../../etc/passwd โ Blocked
/foo/../../../etc/passwd โ Blocked
/foo/bar/../../.. โ Blocked
Security Mechanisms:
- Path Resolution: Uses
Path.resolve()to resolve all..and symlinks - Boundary Check: Validates that resolved paths are within allowed scope
- Double Protection: Even after resolution, paths must be within
allowed_dirs
Supports Server-Sent Events (SSE) transport, compatible with various AI platforms:
Client Server
โ โ
โโโโโ GET /sse โโโโโโโโโโโโโโโโโโโโโโโถโ Establish SSE connection
โโโโโ SSE: endpoint=/messages?sid=xxx โ Return message endpoint
โ โ
โโโโโ POST /messages?session_id=xxx โโถโ Send tool calls
โโโโโ SSE: message (response) โโโโโโโโ Receive results
One-Click Web Deployment:
- Frontend projects created by AI can be deployed with one click via
preview_frontendtool - Automatically generates accessible URLs with HTTPS support
- Supports custom entry files and directory structures
Wildcard Domain Deployment (Production):
{
"preview": {
"wildcard_domain": "*.proxy.your-domain.com",
"use_tls": true
}
}After configuration, each session automatically gets its own subdomain:
user123_chat456.proxy.your-domain.comuser789_chat012.proxy.your-domain.com
Benefits:
- โ No manual domain or port configuration needed
- โ Automatic isolation, no interference
- โ HTTPS support, production-ready
- โ Single-port service, simplified deployment
| Tool | Feature | Highlight |
|---|---|---|
fs_write |
Create web files (HTML/CSS/JS) | Auto-detects format, supports full frontend projects |
preview_frontend |
One-click static frontend deployment | Supports wildcard domains, auto-generates unique subdomains |
exec |
Execute Python/Node.js code | Sandbox environment, supports real-time debugging |
generate_image |
Generate charts and flowcharts | Mermaid, data visualization, HTML rendering |
| Tool | Description |
|---|---|
fs_read |
Read files (supports batch, Excel, line ranges) |
fs_write |
Create/overwrite files (auto-detects format) |
fs_ops |
File system operations (list/mkdir/move/info/delete) |
fs_replace |
Precise file editing using SEARCH/REPLACE diff syntax |
fs_search |
Search files (glob=by filename, content=by content regex) |
| Tool | Description |
|---|---|
fs_read |
Read Excel files (supports sheet, range parameters) |
fs_write |
Create/overwrite Excel files (auto-detects format) |
excel_edit |
Edit Excel (batch update cells, formatting) |
list_excel_templates |
List available Excel templates |
create_excel_from_template |
Create Excel file from template |
| Tool | Description | Config |
|---|---|---|
kb_search |
Enterprise knowledge base glob search | kb.enabled=true |
kb_read |
Read knowledge base files (returns Markdown) | kb.enabled=true |
crawl_url |
Crawl web pages and return Markdown | web_crawl.enabled=true |
web_search |
Web search | web_search.enabled=true |
We are a powerful All-in-One MCP Server. With just one configuration, you can provide complete Agent capabilities to your AI platform:
- โ File Operations: Read, write, search, and edit files
- โ Code Execution: Python/Node.js sandbox environment
- โ Web Deployment: One-click frontend deployment with wildcard domain support
- โ Data Processing: Complete Excel/CSV processing capabilities
- โ Image Generation: Mermaid flowcharts, data charts
- โ Smart Search: Knowledge base retrieval, web crawling (optional)
No need to integrate multiple MCP tools - one MCP Server meets all your needs!
We integrate seamlessly with mainstream AI platforms, simple configuration, ready out of the box:
-
Go to Dify Workflow Configuration
- Add MCP Tool node
- Select SSE transport protocol
-
Configure MCP Server Connection
SSE Address: http://your-server:8000/sse -
Set Request Headers (Multi-tenant Isolation)
X-User-ID: {{user_id}} X-Chat-ID: {{conversation_id}} -
Done! Your Dify Agent now has complete file operations, code execution, web deployment capabilities.
-
Go to FastGPT Knowledge Base/App Configuration
- Add External Tool โ MCP
- Select SSE transport method
-
Configure Connection Information
MCP Server URL: http://your-server:8000/sse -
Configure User Identity (Optional, for multi-tenant isolation)
Custom Header: X-User-ID: {{userId}} X-Chat-ID: {{chatId}} -
Enable Tools: All tools are automatically available, no need to configure one by one!
-
Go to Cherry Studio Settings
- Open MCP Servers configuration
- Add new MCP Server
-
Configure Connection
{ "name": "MCP Workspace Server", "transport": "sse", "url": "http://your-server:8000/sse" } -
Set Session Identity (Multi-tenant Support)
- Cherry Studio automatically passes user and session information
- Each session gets an independent workspace
| Traditional Approach | Using Our All-in-One MCP |
|---|---|
| Need to configure 5+ different MCP tools | Just configure 1 MCP Server |
| Each tool requires separate connection and authentication | Configure once, enable all |
| Scattered functionality, hard to manage | Centralized functionality, unified management |
| Inconsistent security policies across tools | Unified security policy, comprehensive protection |
| High maintenance cost for multiple services | Simple maintenance, one service handles all |
After configuration, your AI Agent immediately has:
- ๐ File Operations: Create, read, edit, search files
- ๐ป Code Execution: Run Python/Node.js scripts, real-time debugging
- ๐ Web Development: Create frontend apps and deploy to production with one click
- ๐ Data Processing: Read, edit Excel, generate reports
- ๐จ Image Generation: Create flowcharts, data visualization charts
- ๐ Smart Search: File content search, knowledge base retrieval (if enabled)
One MCP Server = Complete Agent Capability Stack ๐
# Clone the project
git clone <repository-url>
cd mcp-filesystem
# First deployment: build image and start
docker-compose up -d --build
# After code updates, restart to apply
git pull && docker-compose restart
# View logs
docker-compose logs -f
# Rebuild only when dependencies change
docker-compose up -d --build๐ก The image contains the runtime environment; code is mounted via volume. To update, just
git pull && docker-compose restart
โ ๏ธ Important: This project's runtime environment heavily depends on the Docker base image, which includes a complete Python 3.12, Node.js 20 runtime environment, and all system dependencies (such as Tesseract OCR, image processing libraries, etc.). Docker deployment is strongly recommended; local Python execution is not recommended. For local development, ensure all system dependencies are installed.
๐ Detailed Integration Guide: Please refer to the ๐ Integration with AI Platforms section above for complete configuration steps for Dify, FastGPT, and Cherry Studio.
Quick Connection Info:
- SSE Address:
http://your-server:8000/sse - Request Headers (Multi-tenant isolation):
X-User-ID:{{userId}}or fixed user IDX-Chat-ID:{{chatId}}or fixed session ID
Claude Desktop (STDIO Mode):
Edit config file:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%/Claude/claude_desktop_config.json
{
"mcpServers": {
"mcp-workspace": {
"command": "uv",
"args": [
"--directory",
"/path/to/mcp-filesystem",
"run",
"run_server.py",
"/path/to/allowed/dir1",
"/path/to/allowed/dir2"
]
}
}
}โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ AI Platforms (Dify / FastGPT / Cherry Studio) โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ
โ SSE + HTTP POST
โ Headers: X-User-ID, X-Chat-ID
โผ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ MCP Workspace Server (All-in-One) โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ โ Session Management & Identity Recognition โโ
โ โ (user_id + chat_id โ workspace_name) โโ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ โ Virtual Path Translation Layer โโ
โ โ /todo.txt โ /user_data/xxx/todo.txt โโ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ โ Path Security Validation โโ
โ โ PathValidator + Traversal Protection โโ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ โ File Operation Execution โโ
โ โ FileOperations / AdvancedFileOperations โโ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ
โผ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ Physical Filesystem โ
โ user_data/ โ
โ โโโ user1_chat1/ โ
โ โ โโโ todo.txt โ
โ โ โโโ docs/ โ
โ โโโ user1_chat2/ โ
โ โโโ user2_chat1/ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
HTTP endpoints for monitoring, debugging, and operations.
Admin API requires Bearer Token authentication. First configure config.json:
# Copy the example config file
cp config.example.json config.json
# Edit config and set your admin secret
vim config.json{
"admin_token": "your-secret-admin-token-here"
}All Admin API requests must include the Authorization header:
curl -H "Authorization: Bearer your-secret-admin-token-here" \
http://localhost:8000/admin/stats
โ ๏ธ Security Note:config.jsonis added to.gitignore. Do not commit it to version control.
GET /admin/stats
Authorization: Bearer <admin_token>Response Example:
{
"success": true,
"user_data_dir": "/path/to/user_data",
"total_workspaces": 15,
"unique_users": 8,
"total_size_bytes": 1048576,
"total_size_human": "1.00 MB",
"active_sessions": 3
}GET /admin/workspaces
GET /admin/workspaces?user_id=user123
Authorization: Bearer <admin_token>GET /admin/workspace/{workspace_id}
GET /admin/workspace/{workspace_id}/tree?max_depth=5
Authorization: Bearer <admin_token>DELETE /admin/workspace/{workspace_id}?confirm=yes
Authorization: Bearer <admin_token>?confirm=yes parameter is required.
Fetch a workspace tree for a specific user/chat without the admin token.
GET /api/workspace/tree?user_id={user_id}&chat_id={chat_id}&max_depth=5- No
Authorizationheader required - Scope is limited to the workspace derived from
user_id + chat_id - Each directory only returns the 20 most recently modified items (files or subfolders) to keep responses lightweight
config.json/config.example.jsonnow include anexcelblock for max file size, default read rows, supported formats, and formula scanning toggle.- Templates:
excel.templates_filedefaults toexcel_templates/templates.json, with template sources stored inexcel_templates/. Onlytitle/descare exposed to clients;create_excel_from_templatecopies the source and auto-avoids name conflicts. On first use, copytemplates_example.jsonto createtemplates.jsonand configure template paths according to your actual setup. - Environment overrides:
MCP_EXCEL_MAX_ROWS,MCP_EXCEL_MAX_SIZE_MB. - See
docs/EXCEL_TOOLS.mdfor tool arguments and examples.
config.jsonnow includes anmcpblock to settransport(defaultsse),host(default0.0.0.0), andport(default18089).- CLI flags
--transport/--host/--portoverride config values. - Web admin UI:
config.jsonadds anadmin_webblock (enableddefaultfalse,passworddefault123456). When enabled, openhttp://<host>:<port>/admin, enter the password, and browse theuser_datatree with inline previews for text/Markdown/CSV.
Step 1: Create Frontend Project
Tool: fs_write
Arguments: {
"path": "/index.html",
"content": "<!DOCTYPE html>..."
}
Step 2: One-Click Deployment
Tool: preview_frontend
Arguments: {
"entry_file": "index.html"
}
Response:
{
"success": true,
"url": "https://user123_chat456.proxy.your-domain.com/index.html",
"subdomain": "user123_chat456"
}Step 3: Access Deployed Application
- Automatically gets unique subdomain
- Supports HTTPS (if configured)
- No manual port or domain configuration needed
Tool: fs_read
Arguments: {
"path": "/file.txt",
"line_range": "100:150" # Read lines 100-150
}
Tool: fs_read
Arguments: {
"path": ["/file1.txt", "/file2.json", "/data.xlsx"]
}
Tool: fs_search
Arguments: {
"search_type": "content", # glob=by filename, content=by content
"pattern": "function\\s+\\w+\\(",
"context_lines": 2 # Return 2 lines of context around matches
}
Tool: fs_replace
Arguments: {
"path": "/config.py",
"diff": "------- SEARCH\nDEBUG = True\n========\nDEBUG = False\n+++++++ REPLACE"
}
Tool: exec
Arguments: {
"code": "print('Hello, World!')"
}
Tool: exec
Arguments: {
"file": "/script.py",
"args": ["--verbose", "input.txt"]
}
Tool: fs_read
Arguments: {
"path": "/data.xlsx",
"sheet": "Sheet1", # Optional, specify worksheet
"range": "A1:D100" # Optional, specify range
}
Tool: fs_write
Arguments: {
"path": "/output.xlsx",
"content": [
["Name", "Age", "City"],
["Alice", 30, "Beijing"],
["Bob", 25, "Shanghai"]
]
}
Tool: excel_edit
Arguments: {
"path": "/data.xlsx",
"edit_type": "cells",
"sheet": "Sheet1",
"updates": [
{"cell": "A1", "value": "Updated Value"}
]
}
Tool: generate_image
Arguments: {
"mermaid_code": "flowchart TD\nA[Start] --> B[Process] --> C[End]"
}
Or use HTML rendering for complex charts:
Tool: generate_image
Arguments: {
"html_code": "<html><body><h1>Data Visualization</h1>...</body></html>"
}
-
Production Deployment
- Use reverse proxy (Nginx) for HTTPS
- Restrict access by IP or use API key authentication
- Set reasonable rate limits
-
Data Isolation
- Ensure
X-User-IDandX-Chat-IDare generated from trusted sources - Regularly clean up expired session workspaces
- Ensure
-
Admin API Protection
location /admin/ { allow 10.0.0.0/8; deny all; proxy_pass http://localhost:8000; }
| Variable | Description | Default |
|---|---|---|
MCP_WORKSPACES_DIR |
User workspace root directory | project_dir/user_data |
MCP_ALLOWED_DIRS |
Allowed directories list (global mode) | Current working directory |
FASTMCP_PORT |
Server port | 8000 |
Issues and Pull Requests are welcome!