MCP Hub
Back to servers

Workspace

A comprehensive all-in-one workspace MCP server that provides secure file system access, sandboxed code execution (Python/Node.js), Excel processing, and one-click web deployment with multi-tenant isolation.

Stars
85
Forks
10
Tools
15
Updated
Jan 6, 2026
Validated
Jan 9, 2026

MCP Workspace Server

English | äž­æ–‡

License

🚀 只需䞀䞪 MCP就胜实现䜠的完敎 Agent 胜力

超越文件系统的 AI 匀发环境 - 让 AI 像 Claude Code 䞀样进行完敎的 Web 匀发、数据倄理和代码执行

💡 栞心价倌无需集成倚䞪 MCP 工具䞀䞪 MCP 服务噚即可提䟛文件操䜜、代码执行、Web 郚眲、数据倄理、囟像生成等完敎的 Agent 胜力。匀箱即甚䞀站匏解决方案。

䞀䞪功胜区倧的 MCP (Model Context Protocol) 服务噚䞍仅提䟛安党的文件系统操䜜曎是䞀䞪完敎的 AI 匀发工䜜空闎。支持代码执行、Web 应甚䞀键郚眲、泛域名访问、Excel 倄理、囟像生成等䌁䞚级胜力。

✹ 䞺什么选择我们

🎯 䞀䞪 MCP完敎 Agent 胜力

䌠统方案需芁集成倚䞪 MCP 工具才胜实现完敎功胜

  • ❌ 文件操䜜 → 需芁䞀䞪 MCP
  • ❌ 代码执行 → 需芁及䞀䞪 MCP
  • ❌ Web 郚眲 → 需芁第䞉䞪 MCP
  • ❌ 数据倄理 → 需芁第四䞪 MCP
  • ❌ 囟像生成 → 需芁第五䞪 MCP
  • 结果配眮倍杂、绎技困隟、功胜分散

我们的方案只需䞀䞪 MCP所有胜力匀箱即甚

  • ✅ 文件操䜜 + 代码执行 + Web 郚眲 + 数据倄理 + 囟像生成
  • ✅ 统䞀配眮䞀次配眮党郚启甚
  • ✅ 统䞀管理䞀䞪服务集䞭管理
  • ✅ 统䞀安党䞀套安党策略党面保技

我们提䟛的是完敎的 AI 匀发工䜜空闎胜力远超䌠统文件系统服务噚

  • 🚀 Web 匀发胜力AI 可以创建完敎的 Web 应甚HTML/CSS/JS并䞀键郚眲到生产环境
  • 🌐 泛域名郚眲支持 *.your-domain.com 泛域名每䞪䌚话自劚获埗独立子域名访问
  • 💻 代码执行内眮 Python 3.12 和 Node.js 20 沙盒环境支持代码实时执行和调试
  • 📊 数据倄理完敎的 Excel/CSV 倄理胜力支持暡板、公匏、栌匏化
  • 🎚 囟像生成支持 Mermaid 流皋囟、数据囟衚、HTML 枲染等倚种囟像生成方匏
  • 🔍 智胜搜玢文件内容搜玢、知识库检玢、眑页抓取等高级胜力
  • 🔐 䌁䞚级安党倚租户隔犻、路埄安党防技、资源限制、沙盒执行

🎁 All-in-One 䌘势

䌠统方案我们的方案
需芁 5+ 䞪 MCP 工具只需 1 䞪 MCP
配眮倍杂需芁逐䞪集成匀箱即甚䞀键配眮
功胜分散隟以统䞀管理功胜集䞭统䞀管理
安党策略䞍统䞀统䞀安党策略
绎技成本高绎技简单

䞀句话总结䞀䞪 MCP 服务噚 = 完敎的 Agent 胜力栈 🚀

💡 兞型䜿甚场景

场景 1AI 驱劚的 Web 匀发

AI 创建完敎的前端应甚 → 䞀键郚眲 → 获埗独立域名访问
䟋劂https://user123_chat456.your-domain.com

场景 2数据分析䞎可视化

读取 Excel → 数据倄理 → 生成囟衚 → 创建报告 → 郚眲展瀺页面

场景 3代码匀发䞎测试

猖写 Python 脚本 → 执行测试 → 修倍 Bug → 郚眲 API 服务

✹ 栞心特性

🔐 倚租户䌚话隔犻

每䞪甚户/䌚话拥有独立的虚拟工䜜空闎完党隔犻互䞍干扰。

工䜜目圕呜名规则

X-User-IDX-Chat-ID工䜜目圕
user123chat456user_data/user123_chat456/
user123(空)user_data/user123/
(空)chat456user_data/chat456/
(空)(空)䜿甚默讀党局暡匏

通过 HTTP 请求倎䌠递身仜标识

  • X-User-ID: 甚户唯䞀标识可选
  • X-Chat-ID: 䌚话唯䞀标识可选

🛡 虚拟路埄系统

LLM 视角完党虚拟化AI 暡型看到的是䞀䞪干净的虚拟文件系统以 / 䞺根目圕。

LLM 看到的路埄          实际物理路埄
─────────────────────────────────────────────────────────
/                    → /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

䌘势

  • ✅ 䞍暎露服务噚真实目圕结构
  • ✅ AI 平台无法获知物理路埄信息
  • ✅ 简化 AI 的文件操䜜指什
  • ✅ 提升安党性和隐私保技

🔒 路埄安党防技

内眮倚层安党机制防止路埄遍历攻击

攻击尝试                              结果
─────────────────────────────────────────────────
/../../../etc/passwd                 ❌ 被阻止
../../../etc/passwd                  ❌ 被阻止  
/foo/../../../etc/passwd             ❌ 被阻止
/foo/bar/../../..                    ❌ 被阻止

安党机制

  1. 路埄解析䜿甚 Path.resolve() 解析所有 .. 和笊号铟接
  2. 蟹界检查验证解析后的路埄是吊圚允讞范囎内
  3. 双重保技即䜿路埄被解析仍必须圚 allowed_dirs 内

📡 SSE 䌠蟓协议

支持 Server-Sent Events (SSE) 䌠蟓适配各类 AI 平台

客户端                                服务噚
   │                                    │
   │──── GET /sse ──────────────────────▶│  建立 SSE 连接
   │◀─── SSE: endpoint=/messages?sid=xxx │  返回消息端点
   │                                    │
   │──── POST /messages?session_id=xxx ─▶│  发送工具调甚
   │◀─── SSE: message (响应) ───────────│  接收结果

🌐 䞀键郚眲䞎泛域名支持

䞀键郚眲 Web 应甚

  • AI 创建的前端项目可通过 preview_frontend 工具䞀键郚眲
  • 自劚生成可访问的 URL支持 HTTPS
  • 支持自定义入口文件和目圕结构

泛域名郚眲生产环境

{
  "preview": {
    "wildcard_domain": "*.proxy.your-domain.com",
    "use_tls": true
  }
}

配眮后每䞪䌚话自劚获埗独立子域名

  • user123_chat456.proxy.your-domain.com
  • user789_chat012.proxy.your-domain.com

䌘势

  • ✅ 无需手劚配眮域名和端口
  • ✅ 自劚隔犻互䞍干扰
  • ✅ 支持 HTTPS生产就绪
  • ✅ 单端口服务简化郚眲

📊 完敎功胜列衚

💻 Web 匀发䞎郚眲

工具功胜亮点
fs_write创建 Web 文件HTML/CSS/JS自劚识别栌匏支持完敎前端项目
preview_frontend䞀键郚眲静态前端支持泛域名自劚生成独立子域名
exec执行 Python/Node.js 代码沙盒环境支持实时调试
generate_image生成囟衚和流皋囟Mermaid、数据可视化、HTML 枲染

📁 文件系统操䜜

工具功胜
fs_read读取文件支持批量、Excel、行范囎
fs_write创建/芆盖文件自劚识别栌匏
fs_ops文件系统操䜜list/mkdir/move/info/delete
fs_replace基于 SEARCH/REPLACE 粟确猖蟑文件
fs_search搜玢文件glob=按文件名content=按内容正则

📊 Excel 数据倄理

工具功胜
fs_read读取 Excel 文件支持 sheet、range 参数
fs_write创建/芆盖 Excel 文件自劚识别栌匏
excel_edit猖蟑 Excel批量曎新单元栌、栌匏化
list_excel_templates列出可甚 Excel 暡板
create_excel_from_template从暡板创建 Excel 文件

🔍 高级胜力可选

工具功胜配眮项
kb_search䌁䞚知识库 glob 搜玢kb.enabled=true
kb_read读取知识库文件返回 Markdownkb.enabled=true
crawl_url抓取眑页并返回 Markdownweb_crawl.enabled=true
web_search联眑搜玢web_search.enabled=true

🔌 侎 AI 平台集成

🎯 䞺什么选择我们䜜䞺䜠的 MCP Server

我们是区倧的 All-in-One MCP Server只需䞀次配眮即可䞺䜠的 AI 平台提䟛完敎的 Agent 胜力

  • ✅ 文件操䜜读写、搜玢、猖蟑文件
  • ✅ 代码执行Python/Node.js 沙盒环境
  • ✅ Web 郚眲䞀键郚眲前端应甚支持泛域名
  • ✅ 数据倄理Excel/CSV 完敎倄理胜力
  • ✅ 囟像生成Mermaid 流皋囟、数据囟衚
  • ✅ 智胜搜玢知识库检玢、眑页抓取可选

无需集成倚䞪 MCP 工具䞀䞪 MCP Server 即可满足所有需求

🚀 支持的 AI 平台

我们䞎䞻流 AI 平台完矎集成配眮简单匀箱即甚

Dify

  1. 进入 Dify 工䜜流配眮

    • 添加 MCP Tool 节点
    • 选择 SSE 䌠蟓协议
  2. 配眮 MCP Server 连接

    SSE 地址: http://your-server:8000/sse
    
  3. 讟眮请求倎倚租户隔犻

    X-User-ID: {{user_id}}
    X-Chat-ID: {{conversation_id}}
    
  4. 完成 现圚䜠的 Dify Agent 拥有完敎的文件操䜜、代码执行、Web 郚眲等胜力。

FastGPT

  1. 进入 FastGPT 知识库/应甚配眮

    • 添加 倖郚工具 → MCP
    • 䌠蟓方匏选择 SSE
  2. 配眮连接信息

    MCP Server URL: http://your-server:8000/sse
    
  3. 配眮甚户标识可选甚于倚租户隔犻

    自定义 Header:
    X-User-ID: {{userId}}
    X-Chat-ID: {{chatId}}
    
  4. 启甚工具所有工具自劚可甚无需逐䞪配眮

Cherry Studio

  1. 进入 Cherry Studio 讟眮

    • 打匀 MCP Servers 配眮
    • 添加新的 MCP Server
  2. 配眮连接

    {
      "name": "MCP Workspace Server",
      "transport": "sse",
      "url": "http://your-server:8000/sse"
    }
    
  3. 讟眮䌚话标识倚租户支持

    • Cherry Studio 䌚自劚䌠递甚户和䌚话信息
    • 每䞪䌚话获埗独立的工䜜空闎

💡 集成䌘势

䌠统方案䜿甚我们的 All-in-One MCP
需芁配眮 5+ 䞪䞍同的 MCP 工具只需配眮 1 䞪 MCP Server
每䞪工具需芁单独连接和讀证䞀次配眮党郚启甚
工具之闎功胜分散隟以统䞀管理功胜集䞭统䞀管理
䞍同工具的安党策略䞍䞀臎统䞀安党策略党面保技
绎技倚䞪服务的成本高绎技简单䞀䞪服务搞定

🎁 匀箱即甚的胜力

配眮完成后䜠的 AI Agent 立即拥有

  • 📝 文件操䜜创建、读取、猖蟑、搜玢文件
  • 💻 代码执行运行 Python/Node.js 脚本实时调试
  • 🌐 Web 匀发创建前端应甚并䞀键郚眲到生产环境
  • 📊 数据倄理读取、猖蟑 Excel生成报告
  • 🎚 囟像生成创建流皋囟、数据可视化囟衚
  • 🔍 智胜搜玢文件内容搜玢、知识库检玢劂启甚

䞀䞪 MCP Server = 完敎的 Agent 胜力栈 🚀

🚀 快速匀始

Docker 郚眲掚荐

# 克隆项目
git clone <repository-url>
cd mcp-filesystem

# 銖次郚眲构建镜像并启劚
docker-compose up -d --build

> 劂果无法䜿甚docker镜像源可以先执行 export DOCKER_BUILDKIT=0

# 曎新代码后重启生效
git pull && docker-compose restart

# 查看日志
docker-compose logs -f

# 仅圓䟝赖变化时需芁重新构建
docker-compose up -d --build

💡 镜像包含运行环境代码通过 volume 挂蜜曎新代码只需 git pull && docker-compose restart

⚠ 重芁诎明本项目运行环境高床䟝赖 Docker 基础镜像包含完敎的 Python 3.12、Node.js 20 运行环境以及所有系统䟝赖劂 Tesseract OCR、囟像倄理库等。区烈建议䜿甚 Docker 方匏郚眲䞍掚荐本地 Python 盎接运行。劂需本地匀发请确保已安装所有系统䟝赖。

快速配眮参考

📖 诊细集成诎明请查看䞊方的 🔌 侎 AI 平台集成 章节包含 Dify、FastGPT、Cherry Studio 的完敎配眮步骀。

快速连接信息

  • SSE 地址: http://your-server:8000/sse
  • 请求倎倚租户隔犻:
    • X-User-ID: {{userId}} 或固定甚户ID
    • X-Chat-ID: {{chatId}} 或固定䌚话ID

Claude DesktopSTDIO 暡匏

猖蟑配眮文件

  • 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 平台 (Dify / FastGPT / Cherry Studio)           │
└─────────────────────────────────────────────────────────────┘
                              │
                              │ SSE + HTTP POST
                              │ Headers: X-User-ID, X-Chat-ID
                              ▌
┌─────────────────────────────────────────────────────────────┐
│              MCP Workspace Server (All-in-One)               │
│  ┌─────────────────────────────────────────────────────┐    │
│  │              䌚话管理 & 身仜识别                       │    │
│  │         (user_id + chat_id → workspace_name)        │    │
│  └─────────────────────────────────────────────────────┘    │
│                              │                               │
│  ┌─────────────────────────────────────────────────────┐    │
│  │              虚拟路埄蜬换层                           │    │
│  │         /todo.txt → /user_data/xxx/todo.txt         │    │
│  └─────────────────────────────────────────────────────┘    │
│                              │                               │
│  ┌─────────────────────────────────────────────────────┐    │
│  │              路埄安党验证                             │    │
│  │         PathValidator + 路埄遍历防技                  │    │
│  └─────────────────────────────────────────────────────┘    │
│                              │                               │
│  ┌─────────────────────────────────────────────────────┐    │
│  │              文件操䜜执行                             │    │
│  │         FileOperations / AdvancedFileOperations      │    │
│  └─────────────────────────────────────────────────────┘    │
└─────────────────────────────────────────────────────────────┘
                              │
                              ▌
┌─────────────────────────────────────────────────────────────┐
│                      物理文件系统                            │
│  user_data/                                                 │
│  ├── user1_chat1/                                           │
│  │   ├── todo.txt                                           │
│  │   └── docs/                                              │
│  ├── user1_chat2/                                           │
│  └── user2_chat1/                                           │
└─────────────────────────────────────────────────────────────┘

🔧 管理员 API

提䟛 HTTP 接口甚于监控、调试和运绎。

🔑 讀证配眮

Admin API 需芁 Bearer Token 讀证。銖先配眮 config.json

# 倍制瀺䟋配眮文件
cp config.example.json config.json

# 猖蟑配眮讟眮䜠的管理员密钥
vim config.json
{
  "admin_token": "your-secret-admin-token-here"
}

所有 Admin API 请求必须携垊 Authorization 倎

curl -H "Authorization: Bearer your-secret-admin-token-here" \
     http://localhost:8000/admin/stats

⚠ 安党提瀺config.json 已添加到 .gitignore请勿将其提亀到版本库。

获取服务噚统计信息

GET /admin/stats
Authorization: Bearer <admin_token>

响应瀺䟋

{
  "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 参数才胜执行删陀。

👀 甚户工䜜空闎 API

䞺甚户提䟛无需管理员 Token 的工䜜空闎目圕树查询。

GET /api/workspace/tree?user_id={user_id}&chat_id={chat_id}&max_depth=5
  • 䞍需芁 Authorization 倎
  • 仅返回对应 user_id + chat_id 组合的工䜜空闎
  • 每䞪目圕层级按最近修改时闎排序仅保留前 20 䞪文件/文件倹其䜙盎接过滀以节省垊宜

🧩 Excel 配眮

  • config.json/config.example.json 新增 excel 段萜甚于讟眮最倧文件倧小、默讀读取行数、支持栌匏䞎公匏检测匀关。
  • 暡板excel.templates_file 默讀指向 excel_templates/templates.json暡板源文件攟圚 excel_templates/对倖只暎露 title/desccreate_excel_from_template 䌚自劚避匀重名。銖次䜿甚时请从 templates_example.json 倍制创建 templates.json并根据实际情况配眮暡板路埄。
  • 环境变量芆盖MCP_EXCEL_MAX_ROWS、MCP_EXCEL_MAX_SIZE_MB。
  • 诊细参数䞎瀺䟋见 docs/EXCEL_TOOLS.md。

⚙ 启劚配眮

  • config.json 䞭新增 mcp 段萜可配眮 transport默讀 sse、host默讀 0.0.0.0、port默讀 18089。
  • CLI 参数 --transport/--host/--port 䌘先级高于配眮文件。
  • Web 管理界面config.json 新增 admin_web 段萜enabled 默讀 falsepassword 默讀 123456。匀启后访问 http://<host>:<port>/admin蟓入密码可查看 user_data 䞋文件树并预览文本/Markdown/CSV。

📖 䜿甚瀺䟋

🚀 Web 匀发完敎流皋

步骀 1创建前端项目

Tool: fs_write
Arguments: {
  "path": "/index.html",
  "content": "<!DOCTYPE html>..."
}

步骀 2䞀键郚眲

Tool: preview_frontend
Arguments: {
  "entry_file": "index.html"
}

返回结果

{
  "success": true,
  "url": "https://user123_chat456.proxy.your-domain.com/index.html",
  "subdomain": "user123_chat456"
}

步骀 3访问郚眲的应甚

  • 自劚获埗独立子域名
  • 支持 HTTPS劂配眮
  • 无需手劚配眮端口和域名

💻 代码执行䞎调试

读取文件支持行范囎

Tool: fs_read
Arguments: {
  "path": "/file.txt",
  "line_range": "100:150"  # 读取第100-150行
}

批量读取文件

Tool: fs_read
Arguments: {
  "path": ["/file1.txt", "/file2.json", "/data.xlsx"]
}

搜玢文件

Tool: fs_search
Arguments: {
  "search_type": "content",  # glob=按文件名, content=按内容
  "pattern": "function\\s+\\w+\\(",
  "context_lines": 2  # 返回匹配行前后2行䞊䞋文
}

粟确猖蟑文件

Tool: fs_replace
Arguments: {
  "path": "/config.py",
  "diff": "------- SEARCH\nDEBUG = True\n========\nDEBUG = False\n+++++++ REPLACE"
}

执行 Python 代码

Tool: exec
Arguments: {
  "code": "print('Hello, World!')"
}

执行 Python 文件

Tool: exec
Arguments: {
  "file": "/script.py",
  "args": ["--verbose", "input.txt"]
}

读取 Excel 文件

Tool: fs_read
Arguments: {
  "path": "/data.xlsx",
  "sheet": "Sheet1",      # 可选指定工䜜衚
  "range": "A1:D100"      # 可选指定读取范囎
}

创建 Excel 文件

Tool: fs_write
Arguments: {
  "path": "/output.xlsx",
  "content": [
    ["Name", "Age", "City"],
    ["Alice", 30, "Beijing"],
    ["Bob", 25, "Shanghai"]
  ]
}

猖蟑 Excel 文件

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[匀始] --> B[倄理] --> C[结束]"
}

或䜿甚 HTML 枲染倍杂囟衚

Tool: generate_image
Arguments: {
  "html_code": "<html><body><h1>数据可视化</h1>...</body></html>"
}

🔐 安党最䜳实践

  1. 生产环境郚眲

    • 䜿甚反向代理Nginx倄理 HTTPS
    • 限制访问 IP 或䜿甚 API 密钥讀证
    • 讟眮合理的请求频率限制
  2. 数据隔犻

    • 确保 X-User-ID 和 X-Chat-ID 由可信来源生成
    • 定期枅理过期的䌚话工䜜目圕
  3. Admin API 保技

    location /admin/ {
        allow 10.0.0.0/8;
        deny all;
        proxy_pass http://localhost:8000;
    }
    

⚙ 环境变量

变量名诎明默讀倌
MCP_WORKSPACES_DIR甚户工䜜空闎根目圕项目目圕/user_data
MCP_ALLOWED_DIRS允讞访问的目圕列衚党局暡匏圓前工䜜目圕
FASTMCP_PORT服务噚端口8000

📄 讞可证

Apache License 2.0

🀝 莡献

欢迎提亀 Issue 和 Pull Request

Reviews

No reviews yet

Sign in to write a review

Workspace — MCP Server | MCP Hub