lanhu-mcp
Lanhu MCP Server
Ein Model Context Protocol (MCP)-Server für die Design-Kollaborationsplattform Lanhu (蓝湖).
Ermöglicht LLMs und KI-Code-Assistenten, Design-Zeichenflächen direkt zu inspizieren, pixelgenaue CSS-Eigenschaften und Ebenenhierarchien zu extrahieren und exportierbare Assets herunterzuladen – mit null Vision-Token-Overhead.
💡 Warum Lanhu MCP?
Bei der Umsetzung von UI-Designs mit KI-Code-Assistenten (Claude, Cursor, Copilot, Antigravity usw.) führt das Übergeben von Screenshots häufig zu:
Hohen Token-Kosten für Vision-Modelle
Ungenauer Positionierung, geratenen Abständen und ungefähren Farben
Halluzinierten Schriftgrößen und Zeilenhöhen
Der Unfähigkeit, SVG- und Bild-Assets automatisch zu extrahieren und herunterzuladen
Lanhu MCP Server parst Lanhus strukturierte Design-Spezifikationen direkt in typisierte Datenbäume:
⚡ Null Vision-Token-Overhead: Reine JSON-Strukturdaten statt großer, schwerer Screenshots.
📐 Pixelgenaue Genauigkeit: Exakte Ebenen-Grenzen (
x,y,width,height), Farben (HEX/RGBA), Typografie (fontSize,fontWeight,fontFamily,lineHeight), Eckenradius, Flächenfüllungen, Rahmen und Schatten.🎨 Intelligente Asset-Extraktion: Erkennt Slice-Assets automatisch, stellt direkte CDN-Download-Links bereit und unterstützt die verlustfreie Konvertierung in moderne Formate WebP oder SVG.
🔄 Robuste Authentifizierung: Persistente Sitzungsverwaltung mit automatisiertem, automatisiertem Token-Refresh über Playwright.
Related MCP server: Lanhu MCP Server
✨ Hauptfunktionen
Team & Projekt-Erkundung: Teams, Workspace-Design-Dateien und Projekte abrufen und nahtlos durchsuchen.
Zeichenflächen-Prüfung: Zeichenflächen (
screens) auflisten, Thumbnails anzeigen und Screens nach dem Namen durchsuchen.Detaillierte Ebenen-Annotationen: Rekursiv den vollständigen Ebenenbaum mit vollständigen CSS-/UI-Style-Attributen abrufen.
Asset-Pipeline: SVG-Vektoren und Bitmap-Bilder direkt in den lokalen Arbeitsbereich herunterladen.
Automatische Sitzungs-Wächterin: Ein headlessly laufendes Playwright-Skript hält die Lanhu-Sitzung im Hintergrund aktiv, ohne wiederholte manuelle Anmeldungen zu benötigen.
📋 Anforderungen
Python:
>= 3.10Paketmanager: uv (dringend empfehlenswert)
MCP-Client: Cursor, Claude Desktop, Claude Code, Antigravity, Windsurf, Cline, Codex, VS Code oder ein anderes MCP-kompatibles Werkzeug.
🚀 Schnellstart
1. Mit uvx ausführen (keine Installation erforderlich)
Du kannst lanhu MCP-Server direkt mit lanhu-mcp ausführen, ohne das Repository zu klonen:
uvx --from git+https://github.com/xinayida/lanhu-mcp.git lanhu-mcp2. Aus dem Quellcode ausführen
# Clone the repository
git clone https://github.com/xinayida/lanhu-mcp.git
cd lanhu-mcp
# Sync environment and dependencies
uv sync
# Run the server (stdio mode)
uv run lanhu-mcp🔐 Authentifizierung
Lanhu MCP verbindet sich über Browser-Session-Cookies mit lanhuapp.com. Es liest aus ~/.lanhu/cookie (Dateiberechtigung 0600).
Methode 1: Automatische Anmeldung & Aktualisierung (empfohlen)
Führe das bereitgestellte Playwright-Skript aus:
uv run scripts/refresh_cookie.pyBereits angemeldet: Grenzt die Sitzung headless prüft, das Token erneuert und in
~/.lanhu/cookieschreibt.Sitzung abgelaufen: Öffnet automatisch ein Chrome-Fenster für die einmalige Anmeldung (SMS-Code oder Passwort). Nach der Authentifizierung wird die Sitzung gespeichert und der Browser geschlossen.
Hinweis für gesteuerte Aufgaben (Scheduled Task): In Cron-Jobs mit
--headless-onlylaufen lassen, um das Cookie regelmäßig zu erneuern, ohne Fenster zu öffnen:uv run scripts/refresh_cookie.py --headless-only
Methode 2: Dynamisch über Chat-Tool setzen
Rufe das MCP-Tool direkt in deinem KI-Chat auf:
lanhu_set_cookie(cookie="session=...; user_token=...")So erhältst du das Cookie manuell:
Öffne lanhuapp in Chrome und öffne DevTools (
F12).Gehe zum Network-Tab und klicke auf eine beliebige Anfrage an
lanhuapp.com.Kopiere unter Request Headers den vollständigen
Cookie-String, dersessionunduser_tokenenthält.
Methode 3: Umgebungsvariable
Erstelle .env im Projektverzeichnis und setze also LANHU_COOKIE:
cp .env.example .env
# Edit .env and set LANHU_COOKIE=session=...; user_token=...🛠️ MCP-Client-Konfiguration
Füge lanhu-mcp zu deinem liebsten MCP-Client hinzu:
Gehe zu Cursor-Settings -> MCP -> New MCP Server hinzufügen:
Name:
`lanhu`Typ:
`command`Command:
uvx --from git+https://github.com/xinayida/lanhu-mcp.git lanhu-mcp
Oder konfiguriere über ~/.cursor/mcp.json:
{
"mcpServers": {
"lanhu": {
"command": "uvx",
"args": ["--from", "git+https://github.com/xinayida/lanhu-mcp.git", "lanhu-mcp"]
}
}
}Füge zu deiner claude_desktop_config.json hinzu (macOS: ~/Library/Application Support/Claude/claude_desktop_config.json):
{
"mcpServers": {
"lanhu": {
"command": "uvx",
"args": ["--from", "git+https://github.com/xinayida/lanhu-mcp.git", "lanhu-mcp"]
}
}
}Nutze die Claude Code CLI:
claude mcp add lanhu uvx --from git+https://github.com/xinayida/lanhu-mcp.git lanhu-mcpFüge das in Sachen Antigravity-Konfiguration oder settings.json ein:
{
"mcpServers": {
"lanhu": {
"command": "uvx",
"args": ["--from", "git+https://github.com/xinayida/lanhu-mcp.git", "lanhu-mcp"]
}
}
}Füge zu ~/.codeium/windsurf/mcp_config.json hinzu:
{
"mcpServers": {
"lanhu": {
"command": "uvx",
"args": ["--from", "git+https://github.com/xinayida/lanhu-mcp.git", "lanhu-mcp"]
}
}
}Füge zu deiner cline_mcp_settings.json hinzu:
{
"mcpServers": {
"lanhu": {
"command": "uvx",
"args": ["--from", "git+https://github.com/xinayida/lanhu-mcp.git", "lanhu-mcp"],
"disabled": false,
"autoApprove": []
}
}
}Füge über den Codex CLI ein:
codex mcp add lanhu uvx "--from" "git+https://github.com/xinayida/lanhu-mcp.git" "lanhu-mcp"Oder bearbeite ~/.codex/config.toml:
[mcp_servers.lanhu]
command = "uvx"
args = ["--from", "git+https://github.com/xinayida/lanhu-mcp.git", "lanhu-mcp"]Füge über die VS Code MCP-Weiterweiterung oder über die Einstellungen hinzu:
{
"mcpServers": {
"lanhu": {
"command": "uvx",
"args": ["--from", "git+https://github.com/xinayida/lanhu-mcp.git", "lanhu-mcp"]
}
}
}🧰 Verfügbare Tools
Werkzeugname | Beschreibung | Wichtige Parameter |
lan_set_cookie | Legt das Cookie |
|
lanhu_get_teams | Ruft die Liste deiner Teams ab (dient auch als Health-Check der Authentifizierung) | (keine) |
lanhu_get_projekte | Ruft Designprojekte direkt im angegebenen Team ab |
|
lanhu_search_projekte | Durchsucht Projekte im Team nach einem Schlüsselwort |
|
lanhu_get_screens | Listet alle Bilder/Bilder ( |
|
lanhu__search_images | Durchsucht Screens nach Begriff |
|
lanhu_get_annotations | Core-Tool: Ruft den vollständigen Ebenenbaum, CSS-Styles, Typografie & Assets |
|
lanhu_get_assets | Ruft exportierbare Bild-/Icon-Assets mit Download-URLs ab |
|
lanhu_download_asset | Lädt Asset auf die lokale Platte (unterstützt WebP lossless / SVG / PNG) |
|
🧭 Typischer KI-Pair-Programming-Workflow
Wenn du deinen KI-Agenten bittest, eine UI aus Lanhu zu implementieren:
User: "Please implement the checkout screen from our Lanhu project and download necessary icons."Der Agent führt danach die folgende Kette selbstständig aus:
graph LR
A[1. lanhu_get_teams] --> B[2. lanhu_get_projects]
B --> C[3. lanhu_get_screens]
C --> D[4. lanhu_get_annotations]
D --> E[5. Generate Code CSS/HTML/React/Flutter]
D --> F[6. lanhu_download_asset]Beispielhafter Tool-Aufruf
# 1. Fetch team list
teams = lanhu_get_teams()
team_id = teams[0]["id"]
# 2. Get project list
projects = lanhu_get_projects(team_id=team_id)
project_id = projects[0]["id"]
# 3. Get artboards list
screens = lanhu_get_screens(project_id=project_id, team_id=team_id)
image_id = screens[0]["id"]
# 4. Extract full annotations
annotations = lanhu_get_annotations(
project_id=project_id,
image_id=image_id,
team_id=team_id
)
# 5. Download icons/slices
assets = lanhu_get_assets(project_id=project_id, image_id=image_id, team_id=team_id)
lanhu_download_asset(
asset_id=assets[0]["id"],
asset_name=assets[0]["name"],
download_url=assets[0]["download_url"],
format="webp" # or "svg"
)📦 Annotation-Datenstruktur
Ein Aufruf von lanhu_get_annotations` ergibt ein strukturiertes JSON:
{
"id": "651234567890abcdef",
"name": "Checkout Page",
"width": 375.0,
"height": 812.0,
"thumbnail_url": "https://...",
"layers": [
{
"id": "layer_01",
"name": "Submit Button",
"type": "rect",
"bounds": { "x": 16.0, "y": 740.0, "width": 343.0, "height": 48.0 },
"border_radius": 8.0,
"opacity": 1.0,
"visible": true,
"fills": [
{ "type": "color", "color": "#0066FF", "opacity": 1.0 }
],
"shadows": [
{ "x": 0.0, "y": 4.0, "blur": 12.0, "spread": 0.0, "color": "#0066FF33" }
],
"children": [
{
"id": "layer_02",
"name": "Button Label",
"type": "text",
"text": "Confirm & Pay",
"bounds": { "x": 140.0, "y": 754.0, "width": 95.0, "height": 20.0 },
"font": {
"size": 16.0,
"weight": "600",
"family": "PingFang SC",
"line_height": 20.0,
"letter_spacing": 0.0,
"color": "#FFFFFF",
"text_align": "center"
}
}
]
}
],
"assets": [
{
"id": "asset_01:svg",
"name": "icon_cart",
"format": "svg",
"download_url": "https://..."
}
]
}⚙️ Umgebungsvariablen
Variable | Standardwert | Beschreibung |
| (leer) | Fallback wenn kein Cookie in |
|
| Verzeichnis, in dem heruntergeladenene Assets gespeichert werden |
|
| Timeout für HTTP-Requests an die API in Sekunden |
|
| Log-Level ( |
⚠️ Haftungsausschluss
Dieses Projekt ist ein unabhängiges Open-Source-Werkzeug, das für Bildungs-, Test- und KI-Produktivitätsforschungszwecke entwickelt wurde. Es interagiert mit Lanhu über reverse-engineered Webschnittstellen. Bei der Nutzung dieses Tools müssen die Nutzungsbedingungen von Lanhu eingehalten werden. Die Autoren sind nicht verantwortlich für Missbrauch.
📄 Lizenz
Dieses Projekt ist unter der MIT-Lizenz lizenziert.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceProvides AI coding agents with access to Figma design data through the Figma API. Enables accurate one-shot implementation of designs in any framework by translating Figma files into simplified layout and styling information.81MIT
- AlicenseAqualityAmaintenanceEnables AI to directly read and analyze Lanhu design drafts and requirement documents to generate HTML, CSS, and structural analyses. It allows users to extract design slices and process prototype pages directly within AI clients.3849105MIT
- AlicenseNot gradedqualityAmaintenanceConverts Lanhu design URLs into AI-ready implementation context including HTML+CSS (Tailwind), image downloads, design tokens, and guidance.12733MIT
- AlicenseNot gradedqualityDmaintenanceEnables coding agents like Cursor to access Figma design data, fetch layout and styling information, and implement designs in any framework.57,771MIT
Related MCP Connectors
UI design from prompts, screenshots, and URLs for AI coding agents and theme tokens.
A design-style library for AI agents: search real styles, fetch a ready-to-apply design spec.
Turn any live website into brand colors, fonts, design tokens, SVGs, Lottie and paste-ready code.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/xinayida/lanhu-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server