UI文档离线服务

为MUI、USWDS和Angular Material提供离线优先的UI文档服务,支持本地缓存、结构化检索和API管理。

  • by Chris39704
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 Chris39704/ui_mcp

使用说明

UI知识服务

MUI、USWDS和Angular Material的离线第一UI文档服务。

它提供了什么

  • 磁盘上的本地工件缓存加上带FTS搜索的SQLite目录
  • 首先进行结构化组件检索,其次进行矢量样式回退
  • 目录驱动的官方来源,每个组件有多种文档类型
  • 节、API项和辅助功能说明的结构化解析
  • 重新验证刷新行为时失效
  • 本地FastAPI管理员API
  • 为助手安装MCP工具

发展

uv sync --extra dev
uv run ui-knowledge-service serve --host 127.0.0.1 --port 8000

MCP over stdio

直接通过stdio运行MCP服务器:

uv run --no-sync ui-knowledge-service stdio

或者使用专用的stdio入口点:

uv run --no-sync ui-knowledge-service-mcp

MCP客户端配置示例:

{
  "command": "uv",
  "args": ["run", "--directory", "/Users/chrisfarabaugh/Documents/workspace/ai_ui_skills", "--no-sync", "ui-knowledge-service-mcp"],
  "env": {
    "UIKS_DATA_DIR": "/Users/chrisfarabaugh/Documents/workspace/ai_ui_skills/.data/ui_knowledge_service"
  }
}

预热起动机缓存

uv run ui-knowledge-service prewarm

审核源目录

获取、规范化和验证配置的官方源代码:

uv run ui-knowledge-service audit-catalog --library mui --snapshot-dir ./tmp/catalog-audit

与存储的基线进行比较,如果检测到漂移,则失败:

uv run ui-knowledge-service audit-catalog --library mui --compare-to-baseline --fail-on-drift

生成一份严重性排名的维护报告,并撰写Markdown摘要:

uv run ui-knowledge-service audit-catalog --library mui --compare-to-baseline --markdown-report ./tmp/catalog-maintenance.md

仅当维护报告包含警告或错误时,才失败CI:

uv run ui-knowledge-service audit-catalog --library mui --compare-to-baseline --fail-on-severity warn

在持久化JSON和Markdown报告工件后,将当前审计安全地提升到基线:

uv run ui-knowledge-service promote-baseline --library mui --max-allowed-severity warn

当您已经查看了阻止建议时,强制促销:

uv run ui-knowledge-service promote-baseline --library mui --force

将当前审核作为新的基线:

uv run ui-knowledge-service audit-catalog --library mui --write-baseline

该服务将其工作数据存储在 .data/ui_knowledge_service 默认情况下。

将问题转化为指导

当客户需要可操作的答案而不是原始文档时,使用高级解析器:

curl "http://127.0.0.1:8000/resolve?query=button%20props%20variant&library=mui&component_hint=button"

HTTP端点

  • GET /health
  • GET /sources
  • GET /catalog/audit
  • GET /catalog/audit/diff
  • GET /catalog/audit/report
  • POST /catalog/audit/promote
  • GET /search?query=button&library=mui
  • GET /resolve?query=button%20props%20variant&library=mui&component_hint=button
  • GET /documents/{library}/{component}
  • GET /bundles/{library}/{component}
  • GET /status/{library}/{component}
  • GET /refresh/status
  • POST /catalog/audit/baseline
  • POST /refresh

MCP工具

  • get_component_doc
  • get_component_bundle
  • search_component_docs
  • resolve_component_query
  • audit_catalog
  • compare_catalog_to_baseline
  • get_catalog_maintenance_report
  • promote_catalog_baseline
  • get_component_examples
  • get_component_status

本地npm包装器

一个本地的、可发布的npm包装器位于 包装器/npm。目前,它默认通过以下方式在本地运行签出的仓库 uv run --directory ... ui-knowledge-service-mcp。当移出回购进行发布时,它会回落到 uvx --from ui-knowledge-service ui-knowledge-service-mcp.