{"adoption": {"forks": 253, "observed_at": "2026-08-28T04:06:30.299671+00:00", "stars": 2248}, "canonical_url": "https://ross.abutalabs.com/products/lanhu-mcp", "card": {"archived": false, "artifact_type": "service", "description": "⚡ 需求分析效率提升 200%！全球首个为 AI 编程时代设计的团队协作 MCP 服务器，自动分析需求自动编写前后端代码，下载切图", "domain": ["large-language-models", "developer-tools", "web-development", "web-design"], "enriched": true, "function": ["mcp", "agent-framework", "image-processing", "developer-tools", "documentation"], "health_score": 100, "homepage": null, "language": "Python", "license": "MIT", "license_family": "permissive", "maturity": "active", "member_repos": ["dsphper/lanhu-mcp"], "name": "dsphper/lanhu-mcp", "platform": ["python", "cross-platform", "cli"], "pushed_at": "2026-08-26T16:45:23+00:00", "repo": "dsphper/lanhu-mcp", "stars": 2248, "tags": ["mcp-server", "lanhu", "design-to-code", "axure", "requirements-analysis", "ai-coding", "fastmcp", "team-collaboration", "design-slice-export", "ai-agents"], "topics": ["ai", "ai-agents", "ai-coding", "ai-tools", "mcp", "mcp-tools", "mcp-service"], "urls": [], "use_cases": ["let Cursor or Claude Code read Lanhu requirement documents and design mockups", "automatically analyze Axure prototypes from a development or testing perspective", "extract design parameters like sizes, spacing, colors, and fonts from Lanhu designs", "download design slices and icons with semantic file naming for AI-generated frontend code", "convert Lanhu design schemas into HTML+CSS reference code", "share requirement analysis and context across a team's AI assistants via a knowledge board"], "what_it_is": "A Model Context Protocol (MCP) server that integrates the Lanhu design collaboration platform with AI coding assistants like Cursor, Claude Code, and Cline. It extracts Axure requirement prototypes, analyzes design specs (dimensions, colors, fonts) into HTML+CSS references, downloads design slices, and provides a shared team knowledge board across AI IDEs.", "when_to_avoid": ["your design team uses Figma, Sketch, or Zeplin instead of Lanhu", "your AI tooling does not support the Model Context Protocol", "you need a standalone design analysis tool without an MCP-capable client"], "when_to_choose": ["your team uses Lanhu for design collaboration and AI coding tools that support MCP", "you want AI assistants to consume requirement docs and design specs directly", "you need automated design-to-code reference generation and asset extraction"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/lanhu-mcp", "repo": "dsphper/lanhu-mcp", "role": "main", "score": 80}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:06:30.299671+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T02:43:56.239006+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "59e674be80d049af84d489623dc3d9612811df5ac352e09a11343aa535fd920b", "fetched_at": "2026-08-28T04:06:30.299671+00:00", "kind": "readme", "missing": false, "url": "https://github.com/dsphper/lanhu-mcp"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:06:30.299671+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T02:43:56.239006+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "59e674be80d049af84d489623dc3d9612811df5ac352e09a11343aa535fd920b", "fetched_at": "2026-08-28T04:06:30.299671+00:00", "kind": "readme", "missing": false, "url": "https://github.com/dsphper/lanhu-mcp"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T02:43:56.239006+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "59e674be80d049af84d489623dc3d9612811df5ac352e09a11343aa535fd920b", "fetched_at": "2026-08-28T04:06:30.299671+00:00", "kind": "readme", "missing": false, "url": "https://github.com/dsphper/lanhu-mcp"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:06:30.299671+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:06:30.299671+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:06:30.299671+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T02:43:56.239006+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "59e674be80d049af84d489623dc3d9612811df5ac352e09a11343aa535fd920b", "fetched_at": "2026-08-28T04:06:30.299671+00:00", "kind": "readme", "missing": false, "url": "https://github.com/dsphper/lanhu-mcp"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:06:30.299671+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:06:30.299671+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T02:43:56.239006+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "59e674be80d049af84d489623dc3d9612811df5ac352e09a11343aa535fd920b", "fetched_at": "2026-08-28T04:06:30.299671+00:00", "kind": "readme", "missing": false, "url": "https://github.com/dsphper/lanhu-mcp"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:06:30.299671+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:06:30.299671+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:06:30.299671+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T02:43:56.239006+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "59e674be80d049af84d489623dc3d9612811df5ac352e09a11343aa535fd920b", "fetched_at": "2026-08-28T04:06:30.299671+00:00", "kind": "readme", "missing": false, "url": "https://github.com/dsphper/lanhu-mcp"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:06:30.299671+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:06:30.299671+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T02:43:56.239006+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "59e674be80d049af84d489623dc3d9612811df5ac352e09a11343aa535fd920b", "fetched_at": "2026-08-28T04:06:30.299671+00:00", "kind": "readme", "missing": false, "url": "https://github.com/dsphper/lanhu-mcp"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T02:43:56.239006+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "59e674be80d049af84d489623dc3d9612811df5ac352e09a11343aa535fd920b", "fetched_at": "2026-08-28T04:06:30.299671+00:00", "kind": "readme", "missing": false, "url": "https://github.com/dsphper/lanhu-mcp"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T02:43:56.239006+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "59e674be80d049af84d489623dc3d9612811df5ac352e09a11343aa535fd920b", "fetched_at": "2026-08-28T04:06:30.299671+00:00", "kind": "readme", "missing": false, "url": "https://github.com/dsphper/lanhu-mcp"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T02:43:56.239006+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "59e674be80d049af84d489623dc3d9612811df5ac352e09a11343aa535fd920b", "fetched_at": "2026-08-28T04:06:30.299671+00:00", "kind": "readme", "missing": false, "url": "https://github.com/dsphper/lanhu-mcp"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 99, "longevity": 18, "rhythm": 92}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 259, "days_push": 7, "days_rel": 58, "gap_med": 14, "n_releases_24m": 8}, "score": 80, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}