Skip to main content
Glama
answerlink

MCP Workspace Server

by answerlink

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-ID

X-Chat-ID

工䜜目圕

user123

chat456

user_data/user123_chat456/

user123

(空)

user_data/user123/

(空)

chat456

user_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

抓取眑页并返回 Markdown

web_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

-
security - not tested
F
license - not found
-
quality - not tested

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/answerlink/MCP-Workspace-Server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server