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

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