Lanhu MCP Server
Connects AI assistants to Lanhu design collaboration platform for analyzing Axure prototypes, downloading UI designs, and enabling team knowledge sharing through a collaborative message board that breaks AI IDE silos.
README
<div align="center">
ðš Lanhu MCP Server
è®©ææ AI å©æå ±äº«å¢éç¥è¯ïŒæç Ž AI IDE å€å²
English | ç®äœäžæ
å¿«éåŒå§ ⢠åèœç¹æ§ â¢ äœ¿çšææ¡£ â¢ èŽ¡ç®æå
</div>
ð 项ç®äº®ç¹
äžäžªåèœåŒºå€§ç Model Context Protocol (MCP) æå¡åšïŒäžäžº AI çŒçšæ¶ä»£è®Ÿè®¡ïŒ
ð¥ æ žå¿åæ°ïŒ
- ð æºèœéæ±åæïŒèªåšæå Axure ååïŒäžç§åææš¡åŒïŒåŒå/æµè¯/æ¢çŽ¢ïŒïŒåé¶æ®µé¶éæŒå·¥äœæµ
- ð¬ å¢éçèšæ¿ïŒæç Ž AI IDE å€å²ïŒè®©ææ AI å©æå ±äº«ç¥è¯åºåäžäžæ
- ðš UIè®Ÿè®¡æ¯æïŒèªåšäžèœœè®Ÿè®¡çš¿ïŒæºèœæåååŸïŒè¯ä¹ååœå
- â¡ æ§èœäŒåïŒåºäºçæ¬å·çæºèœçŒåïŒå¢éæŽæ°ïŒå¹¶åå€ç
ð¯ è§£å³çç¹ïŒ
- â æ§äžçïŒæ¯äžªåŒåè ç AI ç¬ç«å·¥äœïŒéå€åæéæ±ïŒæ æ³å ±äº«ç»éª
- â æ°äžçïŒææ AI è¿æ¥åäžç¥è¯äžæ¢ïŒéæ±åæäžæ¬¡ãå šåå€çšïŒèž©åç»éªæ°žä¹ ä¿å
ð ç®åœ
- æ žå¿ç¹æ§
- å¿«éåŒå§
- å¢éçèšæ¿ïŒçªç Ž AI åäœçæåäžå ¬é
- äœ¿çšæå
- å¯çšå·¥å ·å衚
- ç³»ç»æ¶æ
- 项ç®ç»æ
- é«çº§é 眮
- æ§èœææ
- åžžè§é®é¢
- å®å šè¯Žæ
- èŽ¡ç®æå
- 讞å¯è¯
- èŽè°¢
- èç³»æ¹åŒ
- 路线åŸ
âš æ žå¿ç¹æ§
ð éæ±ææ¡£åæ
- æºèœææ¡£æåïŒèªåšäžèœœåè§£æ Axure ååçææé¡µé¢ãèµæºå亀äº
- äžç§åææš¡åŒïŒ
- ð§ åŒåè§è§ïŒè¯Šç»å段è§åãäžå¡é»èŸãå šå±æµçšåŸ
- 𧪠æµè¯è§è§ïŒæµè¯åºæ¯ãçšäŸã蟹çåŒãæ ¡éªè§å
- ð å¿«éæ¢çŽ¢ïŒæ žå¿åèœæŠè§ãæš¡åäŸèµãè¯å®¡èŠç¹
- åé¶æ®µå·¥äœæµïŒå šå±æ«æ â åç»åæ â ååéªè¯ â çæäº€ä»ç©
- é¶éæŒä¿è¯ïŒåºäº TODO 驱åšçç³»ç»ååææµçš
ðš UIè®Ÿè®¡æ¯æ
- 讟计皿æ¥çïŒæ¹éäžèœœåå±ç€º UI 讟计åŸ
- ååŸæåïŒèªåšè¯å«å富åºè®Ÿè®¡ååŸãåŸæ èµæº
- æºèœåœåïŒåºäºåŸå±è·¯åŸèªåšçæè¯ä¹åæä»¶å
ð¬ å¢éåäœçèšæ¿ - æç Ž AI IDE å€å²
ð æ žå¿åæ°ïŒè®©æ¯äžªåŒåè ç AI 婿éœèœå ±äº«å¢éç¥è¯åäžäžæ
é®é¢èæ¯ïŒ
- æ¯äžªåŒåè ç AI IDEïŒCursorãWindsurfïŒæ¯ç¬ç«çïŒæ æ³å ±äº«äžäžæ
- A åŒåéå°çåïŒB åŒåç AI äžç¥é
- éæ±åæç»ææ æ³äŒ éç»æµè¯ååŠç AI
- å¢éç¥è¯ç¢çååšå䞪è倩çªå£ïŒæ æ³æ²æ·
åæ°è§£å³æ¹æ¡ïŒ
- ð ç»äžç¥è¯åºïŒææ AI å©æè¿æ¥åäžäžª MCP æå¡åšïŒå ±äº«çèšæ¿æ°æ®
- ð§ äžäžæäŒ éïŒåŒå AI åæçéæ±ïŒæµè¯ AI å¯ä»¥çŽæ¥æ¥è¯¢äœ¿çš
- ð¡ ç¥è¯æ²æ·ïŒåç¹ãç»éªãæäœ³å®è·µä»¥"ç¥è¯åº"ç±»åæ°žä¹ ä¿å
- ð ä»»å¡åäœïŒéè¿"ä»»å¡"ç±»åçèšïŒè®© AI åž®å¿æ¥è¯¢ä»£ç ãæ°æ®åº
- ðš @æéæºå¶ïŒæ¯æé£ä¹Šéç¥ïŒæé AI åäœäžäººå·¥æ²é
- ð¥ åäœè¿œèžªïŒèªåšè®°åœè°ç AI 访é®è¿åªäºææ¡£ïŒå¢ééæ
â¡ æ§èœäŒå
- æºèœçŒåïŒåºäºææ¡£çæ¬å·çæ°žä¹ çŒåæºå¶
- å¢éæŽæ°ïŒåªäžèœœåæŽçèµæº
- å¹¶åå€çïŒæ¯ææ¹é页颿ªåŸåèµæºäžèœœ
ð å¿«éåŒå§
ð¡ å°çœçšæ·ïŒ çŽæ¥å¯¹ AI 诎 "åž®æå éå¹¶å®è£ https://github.com/dsphper/lanhu-mcp 项ç®"ïŒAI äŒåŒå¯Œäœ å®ææææ¥éª€ïŒ
æ¹åŒäžïŒè®© AI åž®äœ å®è£ ïŒæšèïŒ
çŽæ¥åš Cursor äžå¯¹ AI 诎ïŒ
"åž®æå
éå¹¶å®è£
https://github.com/dsphper/lanhu-mcp 项ç®"
AI äŒèªåšå®æïŒå éé¡¹ç® â å®è£ äŸèµ â åŒå¯Œè·å Cookie â é 眮并å¯åšæå¡
ð åèææ¡£ïŒAI å®è£ æå ⢠Cookie è·åæçš
æ¹åŒäºïŒæåšå®è£
2.1 Docker éšçœ²ïŒæšèïŒ
äŒç¹ïŒç¯å¢é犻ãäžé®éšçœ²ãæäºç®¡ç
# 1. å
é项ç®
git clone https://github.com/dsphper/lanhu-mcp.git
cd lanhu-mcp
# 2. é
眮ç¯å¢ïŒäŒåŒå¯Œäœ èŸå
¥ CookieïŒ
bash setup-env.sh # Linux/Mac
# æ
setup-env.bat # Windows
# 3. å¯åšæå¡
docker-compose up -d
ð¡
setup-env.shäŒäº€äºåŒåŒå¯Œäœ è·åå¹¶é çœ®èæ¹ CookieïŒèªåšçæ.envæä»¶
ð è¯Šç»ææ¡£ïŒDocker éšçœ²æå
2.2 æºç è¿è¡
åçœ®èŠæ±ïŒPython 3.10+
# 1. å
é项ç®
git clone https://github.com/dsphper/lanhu-mcp.git
cd lanhu-mcp
# 2. äžé®å®è£
ïŒæšèïŒäŒåŒå¯Œäœ é
眮 CookieïŒ
bash easy-install.sh # Linux/Mac
# æ
easy-install.bat # Windows
ð¡
easy-install.shäŒèªåšå®è£ äŸèµãåŒå¯Œè·å Cookie å¹¶é 眮ç¯å¢
<details> <summary>æè æåšå®è£ ïŒäžæšèïŒ</summary>
# å®è£
äŸèµ
pip install -r requirements.txt
playwright install chromium
# æåšé
眮ïŒè§äžæ¹"é
眮"éšåïŒ
</details>
é çœ®ïŒæºç è¿è¡éèŠïŒ
- è®Ÿçœ®èæ¹ CookieïŒå¿ éïŒ
export LANHU_COOKIE="your_lanhu_cookie_here"
ð¡ è·å CookieïŒç»åœèæ¹çœé¡µçïŒæåŒæµè§åšåŒåè å·¥å ·ïŒä»è¯·æ±å€Žäžå€å¶ Cookie
- é 眮é£ä¹ŠæºåšäººïŒå¯éïŒ
æ¹åŒäžïŒç¯å¢åéïŒæšèïŒæ¯æ DockerïŒ
export FEISHU_WEBHOOK_URL="https://open.feishu.cn/open-apis/bot/v2/hook/your-webhook-url"
æ¹åŒäºïŒä¿®æ¹ä»£ç
åš lanhu_mcp_server.py äžä¿®æ¹ïŒ
DEFAULT_FEISHU_WEBHOOK = "https://open.feishu.cn/open-apis/bot/v2/hook/your-webhook-url"
- é çœ®çšæ·ä¿¡æ¯æ å°ïŒå¯éïŒ
æŽæ° FEISHU_USER_ID_MAP åå
žä»¥æ¯æ @æéåèœã
- å ¶ä»ç¯å¢åéïŒå¯éïŒ
# æå¡åšé
眮
export SERVER_HOST="0.0.0.0" # æå¡åšçå¬å°å
export SERVER_PORT=8000 # æå¡åšç«¯å£
# æ°æ®ååš
export DATA_DIR="./data" # æ°æ®ååšç®åœ
# æ§èœè°äŒ
export HTTP_TIMEOUT=30 # HTTP请æ±è¶
æ¶æ¶éŽïŒç§ïŒ
export VIEWPORT_WIDTH=1920 # æµè§åšè§å£å®œåºŠ
export VIEWPORT_HEIGHT=1080 # æµè§åšè§å£é«åºŠ
# è°è¯é项
export DEBUG="false" # è°è¯æš¡åŒïŒtrue/falseïŒ
ð 宿Žç¯å¢åé诎æè¯·åè
config.example.envæä»¶
è¿è¡æå¡
æºç è¿è¡ïŒ
python lanhu_mcp_server.py
Docker è¿è¡ïŒ
docker-compose up -d # å¯åš
docker-compose logs -f # æ¥çæ¥å¿
docker-compose down # 忢
æå¡åšå°åš http://localhost:8000/mcp å¯åš
è¿æ¥å° AI 客æ·ç«¯
åšæ¯æ MCP ç AI 客æ·ç«¯ïŒåŠ Claude DesktopãCursorïŒäžé 眮ïŒ
Cursor é 眮瀺äŸïŒ
{
"mcpServers": {
"lanhu": {
"url": "http://localhost:8000/mcp?role=å端&name=åŒ äž"
}
}
}
ð URL åæ°è¯ŽæïŒ
role: çšæ·è§è²ïŒå端/å端/æµè¯/产åçïŒname: çšæ·å§åïŒçšäºåäœè¿œèžªå @æéïŒ
ð¯ å¢éçèšæ¿ïŒçªç Ž AI åäœçæåäžå ¬é
䞺ä»ä¹éèŠå¢éçèšæ¿ïŒ
åš AI çŒçšæ¶ä»£ïŒæ¯äžªåŒåè éœæèªå·±ç AI 婿ïŒCursorãWindsurfãClaude DesktopïŒãäœè¿åžŠæ¥äºäžäžªäž¥éçé®é¢ïŒ
ð€ çç¹åºæ¯ïŒ
âââââââââââââââââââââââââââââââââââââââââââââââ
â å端å°çç AIïŒ â
â "æå·²ç»åæå®ç»åœæ¥å£çéæ±ïŒåæ®µæ ¡éªè§å â
â éœåŸæž
æ¥äºïŒåŒå§å代ç ..." â
âââââââââââââââââââââââââââââââââââââââââââââââ
â äžäžææå±
âââââââââââââââââââââââââââââââââââââââââââââââ
â æµè¯å°æç AIïŒ â
â "ä»ä¹ïŒç»åœæ¥å£ïŒè®©æéæ°çäžééæ±ææ¡£... â
â è¿äºå段è§åæ¯ä»ä¹ææïŒèŸ¹çåŒæä¹æµïŒ" â
âââââââââââââââââââââââââââââââââââââââââââââââ
æ¯äžª AI éœåšéå€å·¥äœïŒæ æ³å€çšå ¶ä» AI çåæææïŒ
å¢éçèšæ¿åŠäœè§£å³ïŒ
讟计ç念ïŒè®©ææ AI å©æè¿æ¥åäžäžª"倧è"
âââââââââââââââââââââââââââââââ
â Lanhu MCP Server â
â (ç»äžç¥è¯äžæ¢) â
â â
â ð éæ±åæç»æ â
â ð åŒåèž©åè®°åœ â
â ð æµè¯çšäŸæš¡æ¿ â
â ð¡ ææ¯å³çææ¡£ â
ââââââââââââ¬âââââââââââââââââââ
â
ââââââââââââââŒâââââââââââââ
â â â
ââââââŒââââ âââââŒâââââ ââââŒââââââ
âå端 AI â âå端 AI â âæµè¯ AI â
â(å°ç) â â(å°åŒ ) â â(å°æ) â
ââââââââââ ââââââââââ ââââââââââ
Cursor Windsurf Claude
æ žå¿äœ¿çšåºæ¯
åºæ¯ 1ïŒéæ±åæç»æå ±äº«
å端 AIïŒå°çïŒåæå®éæ±åïŒ
@æµè¯å°æ @å端å°åŒ æå·²ç»åæå®"çšæ·ç»åœ"éæ±ïŒå
³é®ä¿¡æ¯ïŒ
- ææºå·å¿
å¡«ïŒ11äœæ°å
- å¯ç 6-20äœïŒå¿
é¡»å
å«åæ¯+æ°å
- éªè¯ç 4äœçº¯æ°åïŒ5åéææ
- é误3次éå®30åé
[æ¶æ¯ç±»åïŒknowledge]
æµè¯ AIïŒå°æïŒæ¥è¯¢æ¶ïŒ
AI: æ¥è¯¢ææå
³äº"ç»åœ"çç¥è¯åºæ¶æ¯
â ç«å³è·åå°ç AI çåæç»æïŒæ ééæ°çéæ±ïŒ
åºæ¯ 2ïŒåŒåèž©åè®°åœ
å端 AIïŒå°çïŒéå°åïŒ
ãç¥è¯åºãRedisè¿æ¥è¶
æ¶é®é¢å·²è§£å³
é®é¢ïŒç产ç¯å¢ Redis é¢ç¹è¶
æ¶
åå ïŒè¿æ¥æ± é
眮äžåœïŒmaxIdle 讟眮è¿å°
è§£å³ïŒè°æŽäžº maxTotal=20, maxIdle=10
[æ¶æ¯ç±»åïŒknowledge]
å ¶ä»åŒå AI éå°çžåé®é¢ïŒ
AI: æçŽ¢"Redis è¶
æ¶"çžå
³çç¥è¯åº
â æŸå°è§£å³æ¹æ¡ïŒé¿å
éå€èž©åïŒ
åºæ¯ 3ïŒè·šè§è²ä»»å¡åäœ
产å AI åèµ·æ¥è¯¢ä»»å¡ïŒ
@å端å°ç è¯·åž®ææ¥äžäžæ°æ®åºäž user 衚æå€å°æ¡æµè¯æ°æ®ïŒ
[æ¶æ¯ç±»åïŒtask] // â ïž å®å
šéå¶ïŒåªèœæ¥è¯¢ïŒäžèœä¿®æ¹
å端 AIïŒå°çïŒçå°éç¥ïŒ
AI: æäºº @æäºïŒæ¥ç诊æ
â æ§è¡ SELECT COUNT(*) FROM user WHERE status='test'
â åå€çèšïŒå
±æ 1234 æ¡æµè¯æ°æ®
åºæ¯ 4ïŒçާæ¥é®é¢å¹¿æ
è¿ç»Ž AI åç°ç产é®é¢ïŒ
ðš 玧æ¥ïŒç产ç¯å¢æ¯ä»æ¥å£åŒåžžïŒè¯·ç«å³ææ¥ïŒ
æ¶éŽïŒ2025-01-15 14:30
ç°è±¡ïŒæ¯ä»æåçä» 99% éè³ 60%
圱åïŒçºŠ 200 ç¬è®¢åå圱å
@ææäºº
[æ¶æ¯ç±»åïŒurgent]
â èªåšåéé£ä¹Šéç¥ç»ææäºº
æ¶æ¯ç±»å讟计
| ç±»å | çšé | æçŽ¢çç¥ | çåœåšæ |
|---|---|---|---|
| ð¢ normal | æ®ééç¥ | ææ¶éŽè¡°å | 7倩ååœæ¡£ |
| ð task | æ¥è¯¢ä»»å¡ïŒå®å šéå¶ïŒåªè¯»ïŒ | 宿ååœæ¡£ | ä»»å¡çåœåšæ |
| â question | éèŠåççé®é¢ | æªåç眮顶 | è§£çååœæ¡£ |
| ðš urgent | 玧æ¥éç¥ | åŒºå¶æšé | 24å°æ¶åé级 |
| ð¡ knowledge | ç¥è¯åºïŒæ žå¿ïŒ | æ°žä¹ å¯æçŽ¢ | æ°žä¹ ä¿å |
å®å šæºå¶
ä»»å¡ç±»åïŒtaskïŒçå®å šéå¶ïŒ
â
å
è®žçæ¥è¯¢æäœïŒ
- æ¥è¯¢ä»£ç äœçœ®ã代ç é»èŸ
- æ¥è¯¢æ°æ®åºè¡šç»æãæ°æ®
- æ¥è¯¢æµè¯æ¹æ³ãèŠçç
- æ¥è¯¢ TODOãæ³šé
â çŠæ¢çå±é©æäœïŒ
- ä¿®æ¹ä»£ç
- å 逿件
- æ§è¡åœä»€
- æäº€ä»£ç
æçŽ¢åè¿æ»€
æºèœæçŽ¢ïŒé²æ¢äžäžææº¢åºïŒïŒ
# åºæ¯ 1ïŒæ¥è¯¢æææµè¯çžå
³çç¥è¯åº
lanhu_say_list(
url='all', # å
šå±æçŽ¢
filter_type='knowledge',
search_regex='æµè¯|test|åå
æµè¯',
limit=20
)
# åºæ¯ 2ïŒæ¥è¯¢æäžªé¡¹ç®ççŽ§æ¥æ¶æ¯
lanhu_say_list(
url='项ç®URL',
filter_type='urgent',
limit=10
)
# åºæ¯ 3ïŒæ¥æŸæªè§£å³çé®é¢
lanhu_say_list(
url='all',
filter_type='question',
search_regex='åŸ
è§£å³|pending'
)
åäœè 远螪
èªåšè®°åœå¢éæå访é®åå²ïŒ
lanhu_get_members(url='项ç®URL')
è¿åç»æïŒ
{
"collaborators": [
{
"name": "å°ç",
"role": "å端",
"first_seen": "2025-01-10 09:00:00",
"last_seen": "2025-01-15 16:30:00"
},
{
"name": "å°æ",
"role": "æµè¯",
"first_seen": "2025-01-12 10:00:00",
"last_seen": "2025-01-15 14:00:00"
}
]
}
ð¡ çšéïŒ
- äºè§£åªäºåäºç AI çè¿è¿äžªéæ±
- åç°æœåšçåäœäŒäŒŽ
- å¢ééæå
é£ä¹Šéç¥éæ
æé AI åäœäžäººå·¥æ²éïŒ
# AI èªåšåéé£ä¹Šéç¥ïŒåœ @æäººæ¶ïŒ
lanhu_say(
url='项ç®URL',
summary='éèŠäœ åž®å¿review代ç ',
content='ç»åœæš¡åçå¯ç å å¯é»èŸïŒéº»çŠçäžäž',
mentions=['å°ç', 'å°åŒ '] # å¿
é¡»æ¯çå®å§å
)
# é£ä¹ŠçŸ€æ¶å°ïŒ
ââââââââââââââââââââââââââââââââââââ
â ð¢ èæ¹åäœéç¥ â
â â
â ð€ ååžè
ïŒå°æïŒæµè¯ïŒ â
â ðš æéïŒ@å°ç @å°åŒ â
â ð·ïž ç±»åïŒnormal â
â ð 项ç®ïŒçšæ·äžå¿æ¹ç â
â ð ææ¡£ïŒç»åœæ³šåæš¡å â
â â
â ð å
å®¹ïŒ â
â ç»åœæš¡åçå¯ç å å¯é»èŸïŒéº»çŠçäžäž â
â â
â ð æ¥çéæ±ææ¡£ â
ââââââââââââââââââââââââââââââââââââ
ææ¯äŒå¿
- é¶åŠä¹ ææ¬ïŒAI èªåšå€çïŒåŒåè åªéèªç¶å¯¹è¯
- 宿¶åæ¥ïŒææ AI å©æè¿æ¥åäžæ°æ®æº
- å šå±æçŽ¢ïŒè·šé¡¹ç®æ¥è¯¢ç¥è¯åº
- çæ¬å ³èïŒçèšèªåšå ³èææ¡£çæ¬å·
- å æ°æ®å®æŽïŒèªåšè®°åœé¡¹ç®ãææ¡£ãäœè ç10䞪æ ååæ®µ
- æºèœè¿æ»€ïŒæ¯ææ£åæçŽ¢ãç±»åçéãæ°ééå¶ïŒé²æ¢ token 溢åºïŒ
ð äœ¿çšæå
éæ±ææ¡£åæå·¥äœæµ
1. è·å页é¢å衚
请垮æççè¿äžªéæ±ææ¡£ïŒ
https://lanhuapp.com/web/#/item/project/product?tid=xxx&pid=xxx&docId=xxx
2. AI èªåšæ§è¡åé¶æ®µåæ
- â STAGE 1: å šå±ææ¬æ«æïŒå»ºç«æŽäœè®€ç¥
- â STAGE 2: åç»è¯Šç»åæïŒæ ¹æ®éæ©çæš¡åŒïŒ
- â STAGE 3: ååéªè¯ïŒç¡®ä¿é¶éæŒ
- â STAGE 4: çæäº€ä»ææ¡£ïŒéæ±ææ¡£/æµè¯è®¡å/è¯å®¡PPTïŒ
3. è·å亀ä»ç©
- åŒåè§è§ïŒè¯Šç»éæ±ææ¡£ + å šå±äžå¡æµçšåŸ
- æµè¯è§è§ïŒæµè¯è®¡å + æµè¯çšäŸæž å + åæ®µæ ¡éªè¡š
- å¿«éæ¢çŽ¢ïŒè¯å®¡ææ¡£ + æš¡åäŸèµåŸ + 讚论èŠç¹
UI 讟计皿æ¥ç
请垮æççè¿äžªè®Ÿè®¡çš¿ïŒ
https://lanhuapp.com/web/#/item/project/stage?tid=xxx&pid=xxx
ååŸäžèœœ
åž®æäžèœœ"éŠé¡µè®Ÿè®¡"çææååŸ
AI äŒèªåšïŒ
- æ£æµé¡¹ç®ç±»åïŒReact/Vue/Flutter çïŒ
- éæ©åéçèŸåºç®åœ
- çæè¯ä¹åæä»¶å
- æ¹éäžèœœååŸ
å¢éçèš
ååžçèšïŒ
@åŒ äž @æå è¿äžªç»åœé¡µé¢çå¯ç æ ¡éªè§åéèŠç¡®è®€äžäž
æ¥ççèšïŒ
æ¥çææ @æçæ¶æ¯
çéæ¥è¯¢ïŒ
æ¥çææå
³äº"æµè¯"çç¥è¯åºç±»åçèš
ð ïž å¯çšå·¥å ·å衚
| å·¥å ·åç§° | åèœæè¿° | 䜿çšåºæ¯ |
|---|---|---|
lanhu_resolve_invite_link |
è§£æéè¯·éŸæ¥ | çšæ·æäŸåäº«éŸæ¥æ¶ |
lanhu_get_pages |
è·ååå页é¢å衚 | åæéæ±ææ¡£åå¿ è°çš |
lanhu_get_ai_analyze_page_result |
åæåå页é¢å 容 | æåéæ±ç»è |
lanhu_get_designs |
è·åUI讟计åŸå衚 | æ¥ç讟计皿åå¿ è°çš |
lanhu_get_ai_analyze_design_result |
åæUIè®Ÿè®¡åŸ | æ¥ç讟计皿 |
lanhu_get_design_slices |
è·åååŸä¿¡æ¯ | äžèœœåŸæ ãçŽ æ |
lanhu_say |
ååžçèš | å¢éåäœã@æé |
lanhu_say_list |
æ¥ççèšå衚 | æ¥è¯¢å岿¶æ¯ |
lanhu_say_detail |
æ¥ççèšè¯Šæ | æ¥ç宿Žå 容 |
lanhu_say_edit |
çŒèŸçèš | ä¿®æ¹å·²ååžæ¶æ¯ |
lanhu_say_delete |
å é€çèš | ç§»é€æ¶æ¯ |
lanhu_get_members |
æ¥çåäœè | æ¥çå¢éæå |
ðïž ç³»ç»æ¶æ
âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ
â AI 客æ·ç«¯å± â
â ââââââââââââ ââââââââââââ ââââââââââââ ââââââââââââ â
â â Cursor â â Windsurf â â Claude â â ... â â
â ââââââ¬ââââââ ââââââ¬ââââââ ââââââ¬ââââââ ââââââ¬ââââââ â
â â â â â â
â âââââââââââââââŽâââââââââââââââŽââââââââââââââ â
âââââââââââââââââââââââââââââ¬ââââââââââââââââââââââââââââââââââââââ
â MCP Protocol (HTTP)
â
âââââââââââââââââââââââââââââŒââââââââââââââââââââââââââââââââââââââ
â Lanhu MCP Server â
â â
â ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ â
â â FastMCP æå¡æ¡æ¶ â â
â â ââââââââââââ ââââââââââââ âââââââââââââââââââââ â â
â â â Tool API â â Resource â â Context Provider â â â
â â ââââââ¬ââââââ ââââââ¬ââââââ âââââââââââ¬ââââââââââ â â
â âââââââââŒââââââââââââââŒâââââââââââââââââââŒââââââââââââââ â
â â â â â
â âââââââââŒââââââââââââââŒâââââââââââââââââââŒââââââââââââââ â
â â æ žå¿äžå¡é»èŸå± â â
â â â â
â â âââââââââââââââââââ ââââââââââââââââââââââââââââ â â
â â â éæ±ææ¡£åæ â â å¢éåäœçèšæ¿ â â â
â â â â â â â â
â â â â¢ é¡µé¢æå â â â¢ æ¶æ¯ååšç®¡ç â â â
â â â ⢠å
å®¹åæ â â ⢠类ååç±»(5ç§) â â â
â â â ⢠æºèœçŒå â â ⢠@æéåèœ â â â
â â â ⢠äžç§æš¡åŒ â â ⢠æçŽ¢çé â â â
â â ââââââââââ¬âââââââââ ââââââââââââ¬ââââââââââââââââ â â
â â â â â â
â â ââââââââââŒâââââââââââ âââââââââŒâââââââââââââââ â â
â â â UIè®Ÿè®¡æ¯æ â â åäœè
远螪 â â â
â â â â â â â â
â â â ⢠讟计åŸäžèœœ â â ⢠访é®è®°åœ â â â
â â â ⢠ååŸæå â â ⢠å¢ééæ â â â
â â â ⢠æºèœåœå â â ⢠å
æ°æ®å
³è â â â
â â âââââââââââââââââââââ ââââââââââââââââââââââââ â â
â ââââââââââââââââââââââââââââââââââââââââââââââââââââââââ â
â â
â ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ â
â â æ°æ®ååšå± â â
â â âââââââââââââââ âââââââââââââââ ââââââââââââââââ â â
â â â çèšæ°æ® â â èµæºçŒå â â æªåŸçŒå â â â
â â â (JSON) â â (Files) â â (PNG) â â â
â â âââââââââââââââ âââââââââââââââ ââââââââââââââââ â â
â ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ â
ââââââââââââââââââ¬ââââââââââââââââââââââ¬âââââââââââââââââââââââââ
â â
â â é£ä¹Šéç¥
â âŒ
â âââââââââââââââââââ
â â Feishu Webhook â
â âââââââââââââââââââ
â
â HTTP/JSON API
âŒ
âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ
â èæ¹å¹³å° API â
â ââââââââââââââââ ââââââââââââââââ ââââââââââââââââââââââââ â
â â ææ¡£å
æ°æ® â â Axureèµæº â â UI讟计åŸ&ååŸ â â
â ââââââââââââââââ ââââââââââââââââ ââââââââââââââââââââââââ â
âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ
æ°æ®æµåŸ
çšæ·è¯·æ± â AI客æ·ç«¯ â MCPåè®®
â
Toolè°çš
â
âââââââââââŽââââââââââ
â â
æ£æ¥çŒå æåå
æ°æ®
â â
åœäžïŒ å
³èçæ¬å·
â â
æ¯/åŠ è®°åœåäœè
â â
ââæ¯âè¿åçŒå â
â â
ââåŠâè°çšèæ¹API ââââ
â
äžèœœèµæº
â
å€ç蜬æ¢
â
ä¿åçŒå
â
è¿åç»æ
â
AI客æ·ç«¯å±ç€º
ð 项ç®ç»æ
lanhu-mcp-server/
âââ lanhu_mcp_server.py # äž»æå¡åšæä»¶ïŒ3800+ è¡ïŒ
âââ requirements.txt # Python äŸèµ
âââ Dockerfile # Docker éå
âââ docker-compose.yml # Docker Compose é
眮
âââ config.example.env # é
眮æä»¶ç€ºäŸ
âââ quickstart.sh # Linux/Mac å¿«éå¯åšèæ¬
âââ quickstart.bat # Windows å¿«éå¯åšèæ¬
âââ .gitignore # Git å¿œç¥æä»¶
âââ LICENSE # MIT 讞å¯è¯
âââ README.md # äžæææ¡£ïŒæ¬æä»¶ïŒ
âââ README_EN.md # è±æææ¡£
âââ CONTRIBUTING.md # èŽ¡ç®æå
âââ CHANGELOG.md # æŽæ°æ¥å¿
âââ data/ # æ°æ®ååšç®åœïŒèªåšå建ïŒ
â âââ messages/ # çèšæ°æ®ïŒJSONæä»¶ïŒ
â â âââ {project_id}.json # æ¯äžªé¡¹ç®äžäžªæä»¶
â âââ axure_extract_*/ # Axure èµæºçŒå
â â âââ *.html # 页é¢HTML
â â âââ data/ # Axureæ°æ®æä»¶
â â âââ resources/ # CSS/JSèµæº
â â âââ images/ # åŸçèµæº
â â âââ .lanhu_cache.json # çŒåå
æ°æ®
â âââ lanhu_designs/ # 讟计皿çŒå
â âââ {project_id}/ # æé¡¹ç®åç±»
âââ logs/ # æ¥å¿æä»¶ïŒèªåšå建ïŒ
âââ *.log # è¿è¡æ¥å¿
ð§ é«çº§é 眮
èªå®ä¹è§è²æ å°
åšä»£ç äžä¿®æ¹ ROLE_MAPPING_RULES ä»¥æ¯ææŽå€è§è²ïŒ
ROLE_MAPPING_RULES = [
(["å端", "backend", "server"], "å端"),
(["å端", "frontend", "web"], "å端"),
# æ·»å æŽå€è§å...
]
çŒåæ§å¶
çŒåç®åœç±ç¯å¢åé DATA_DIR æ§å¶ïŒ
export DATA_DIR="/path/to/cache"
é£ä¹Šéç¥å®å¶
åš send_feishu_notification() åœæ°äžå®å¶æ¶æ¯æ ŒåŒåæ ·åŒã
ð€ AI 婿éæ
æ¬é¡¹ç®äžäžº AI å©æè®Ÿè®¡ïŒå 眮"äºç"ïŒErGouïŒå©æäººæ ŒïŒ
- ð¯ æºèœååæïŒèªåšè¯å«ææ¡£ç±»ååæäœ³åææš¡åŒ
- ð TODO驱åšïŒåºäºä»»å¡æž åçç³»ç»åå·¥äœæµ
- ð£ïž äžæäº€äºïŒå奜çäžæå¯¹è¯äœéª
- âš äž»åšæå¡ïŒæ éæåšæäœïŒAI èªåšå®æå šæµçš
ð æ§èœææ
- â¡ é¡µé¢æªåŸïŒ~2ç§/页ïŒåžŠçŒåïŒ
- ðŸ èµæºäžèœœïŒæ¯ææç¹ç»äŒ åå¢éæŽæ°
- ð çŒååœäžïŒåºäºçæ¬å·çæ°žä¹ çŒå
- ðŠ æ¹éå€çïŒæ¯æå¹¶åäžèœœååæ
ð åžžè§é®é¢
<details> <summary><b>Q: Cookie è¿ææä¹åïŒ</b></summary>
A: éæ°ç»åœèæ¹çœé¡µçïŒè·åæ°ç Cookie å¹¶æŽæ°ç¯å¢åéæé 眮æä»¶ã </details>
<details> <summary><b>Q: æªåŸå€±èŽ¥ææŸç€ºç©ºçœïŒ</b></summary>
A: ç¡®ä¿ç³»ç»å·²å®è£ Playwright æµè§åšïŒ
playwright install chromium
</details>
<details> <summary><b>Q: é£ä¹Šéç¥åé倱莥ïŒ</b></summary>
A: æ£æ¥ïŒ
- Webhook URL æ¯åŠæ£ç¡®
- é£ä¹Šæºåšäººæ¯åŠå·²æ·»å å°çŸ€ç»
- çšæ· ID æ å°æ¯åŠæ£ç¡®é 眮 </details>
<details> <summary><b>Q: åŠäœæž ççŒåïŒ</b></summary>
A: å é€ data/ ç®åœäžç对åºçŒåæä»¶å³å¯ãç³»ç»äŒèªåšéæ°äžèœœã
</details>
ð å®å šè¯Žæ
- â ïž Cookie å®å šïŒè¯·å¿å°å«æ Cookie çé 眮æä»¶æäº€å°å ¬åŒä»åº
- ð è®¿é®æ§å¶ïŒå»ºè®®åšå çœç¯å¢éšçœ²æé 眮é²ç«å¢è§å
- ð æ°æ®éç§ïŒçèšæ°æ®ååšåšæ¬å°ïŒè¯·åŠ¥åä¿ç®¡
ð€ èŽ¡ç®æå
欢è¿èŽ¡ç®ä»£ç ïŒè¯·éµåŸªä»¥äžæ¥éª€ïŒ
- Fork æ¬ä»åº
- åå»ºç¹æ§åæ¯ (
git checkout -b feature/AmazingFeature) - æäº€æŽæ¹ (
git commit -m 'Add some AmazingFeature') - æšéå°åæ¯ (
git push origin feature/AmazingFeature) - åŒå¯ Pull Request
åŒåæå
# å®è£
åŒåäŸèµ
pip install -r requirements.txt
# è¿è¡æµè¯
python -m pytest tests/
# ä»£ç æ ŒåŒå
black lanhu_mcp_server.py
ð 讞å¯è¯
æ¬é¡¹ç®éçš MIT 讞å¯è¯ - æ¥ç LICENSE æä»¶äºè§£è¯Šæ ã
ð èŽè°¢
åŒæºé¡¹ç®
- FastMCP - äŒç§ç MCP æå¡å𿡿¶
- Playwright - å¯é çæµè§åšèªåšåå·¥å ·
- BeautifulSoup - HTML è§£æå©åš
- HTTPx - ç°ä»£åçåŒæ¥ HTTP 客æ·ç«¯
æå¡å¹³å°
莡ç®è
æè°¢ææäžºè¿äžªé¡¹ç®ååºèŽ¡ç®çåŒåè ïŒ
<!-- ALL-CONTRIBUTORS-LIST:START --> <!-- è¿éå°èªåšçæèŽ¡ç®è å衚 --> <!-- ALL-CONTRIBUTORS-LIST:END -->
ç¹å«æè°¢
- æææäº€ Issue å PR ç莡ç®è
- ææåšç产ç¯å¢äœ¿çšå¹¶æäŸåéŠçå¢é
- ææåž®å©æ¹è¿ææ¡£çæå
ð® èç³»æ¹åŒ
- æäº€ Issue: GitHub Issues
- é®ä»¶: dsphper@gmail.com
ðºïž 路线åŸ
- [ ] æ¯ææŽå€è®Ÿè®¡å¹³å°ïŒFigmaãSketchïŒ
- [ ] Web 管ççé¢
- [ ] æŽå€åæç»ŽåºŠïŒåå端工æ¶äŒ°ç®ãææ¯æ æšèïŒ
- [ ] æ¯æäŒäžçº§æé管ç
- [ ] API ææ¡£èªåšçæ
- [ ] åœé 忝æ
<p align="center"> åŠæè¿äžªé¡¹ç®å¯¹äœ æåž®å©ïŒè¯·ç»å®äžäžª âïž </p>
<p align="center"> Made with â€ïž by the Lanhu MCP Team </p>
Star History
â ïž å 莣声æ
æ¬é¡¹ç®ïŒLanhu MCP ServerïŒæ¯äžäžªç¬¬äžæ¹åŒæºé¡¹ç®ïŒç±ç€ŸåºåŒåè ç¬ç«åŒåå绎æ€ïŒå¹¶éèæ¹ïŒLanhuïŒå®æ¹äº§åã
éèŠè¯ŽæïŒ
- æ¬é¡¹ç®äžèæ¹å ¬åžæ ä»»äœå®æ¹å ³èæåäœå ³ç³»
- æ¬é¡¹ç®éè¿å ¬åŒççœé¡µæ¥å£äžèæ¹å¹³å°äº€äºïŒäžæ¶åä»»äœæªææè®¿é®
- äœ¿çšæ¬é¡¹ç®éèŠæšæ¥æåæ³çèæ¹èŽŠå·åè®¿é®æé
- 请éµå®èæ¹å¹³å°çæå¡æ¡æ¬Ÿåäœ¿çšæ¿ç
- æ¬é¡¹ç®ä» äŸåŠä¹ åç 究䜿çšïŒäœ¿çšè éèªè¡æ¿æ 䜿çšé£é©
- åŒåè äžå¯¹å äœ¿çšæ¬é¡¹ç®å¯ŒèŽçä»»äœæ°æ®äž¢å€±ã莊å·é®é¢æå ¶ä»æå€±æ¿æ 莣任
æ°æ®åéç§ïŒ
- æ¬é¡¹ç®åšæ¬å°å€çåçŒåæ°æ®ïŒäžäŒåç¬¬äžæ¹æå¡åšäŒ èŸæšçæ°æ®
- æšçèæ¹ Cookie åé¡¹ç®æ°æ®ä» ååšåšæšçæ¬å°ç¯å¢äž
- 请劥åä¿ç®¡æšçåè¯ä¿¡æ¯ïŒäžèŠå享ç»ä»äºº
åŒæºåè®®ïŒ
- æ¬é¡¹ç®éçš MIT åŒæºåè®®ïŒæ"åæ ·"æäŸïŒäžæäŸä»»äœåœ¢åŒçä¿è¯
- è¯Šè§ LICENSE æä»¶
åŠæä»»äœçé®æå»ºè®®ïŒæ¬¢è¿éè¿ GitHub Issues äžæä»¬äº€æµã
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
E2B
Using MCP to run code via e2b.