MCP Workspace Server
English | äžæ
ð åªéäžäžª 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/../../.. â è¢«é»æ¢
å®å šæºå¶ïŒ
- è·¯åŸè§£æïŒäœ¿çš
Path.resolve()è§£æææ..å笊å·éŸæ¥ - èŸ¹çæ£æ¥ïŒéªè¯è§£æåçè·¯åŸæ¯åŠåšå 讞èåŽå
- åéä¿æ€ïŒå³äœ¿è·¯åŸè¢«è§£æïŒä»å¿
é¡»åš
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.comuser789_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
-
è¿å ¥ Dify å·¥äœæµé 眮
- æ·»å MCP Tool èç¹
- éæ© SSE äŒ èŸåè®®
-
é 眮 MCP Server è¿æ¥
SSE å°å: http://your-server:8000/sse -
讟眮请æ±å€ŽïŒå€ç§æ·é犻ïŒ
X-User-ID: {{user_id}} X-Chat-ID: {{conversation_id}} -
å®æïŒ ç°åšäœ ç Dify Agent æ¥æå®æŽçæä»¶æäœãä»£ç æ§è¡ãWeb éšçœ²çèœåã
FastGPT
-
è¿å ¥ FastGPT ç¥è¯åº/åºçšé 眮
- æ·»å å€éšå·¥å · â MCP
- äŒ èŸæ¹åŒéæ© SSE
-
é çœ®è¿æ¥ä¿¡æ¯
MCP Server URL: http://your-server:8000/sse -
é çœ®çšæ·æ è¯ïŒå¯éïŒçšäºå€ç§æ·é犻ïŒ
èªå®ä¹ Header: X-User-ID: {{userId}} X-Chat-ID: {{chatId}} -
å¯çšå·¥å ·ïŒææå·¥å ·èªåšå¯çšïŒæ éé䞪é 眮ïŒ
Cherry Studio
-
è¿å ¥ Cherry Studio 讟眮
- æåŒ MCP Servers é 眮
- æ·»å æ°ç MCP Server
-
é çœ®è¿æ¥
{ "name": "MCP Workspace Server", "transport": "sse", "url": "http://your-server:8000/sse" } -
讟眮äŒè¯æ è¯ïŒå€ç§æ·æ¯æïŒ
- 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}}æåºå®çšæ·IDX-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>"
}
ð å®å šæäœ³å®è·µ
-
ç产ç¯å¢éšçœ²
- 䜿çšåå代çïŒNginxïŒå€ç HTTPS
- éå¶è®¿é® IP æäœ¿çš API å¯é¥è®€è¯
- 讟眮åçç请æ±é¢çéå¶
-
æ°æ®é犻
- ç¡®ä¿
X-User-IDåX-Chat-IDç±å¯ä¿¡æ¥æºçæ - å®ææž çè¿æçäŒè¯å·¥äœç®åœ
- ç¡®ä¿
-
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 |
ð 讞å¯è¯
ð€ 莡ç®
æ¬¢è¿æäº€ Issue å Pull RequestïŒ