Element MCP Server

使用说明(Markdown 格式)

  • 项目简介

    • Element MCP Server 是一个用 .NET 8 构建的 MCP 服务器,旨在向大语言模型(LLM)客户端提供标准化的上下文信息和功能。它托管资源、注册并执行工具、定义并渲染提示模板,底层通过 JSON-RPC 与客户端进行通信,并支持 STDIO 传输,以及后续扩展的传输方式。
  • 主要功能点

    • 资源与数据
      • 将组件、基础、模式和模板等文档数据从本地 JSON 文件加载,提供查询与搜索能力。
      • 支持动态数据 enrichment:从 Availity Storybook 索引获取最新的组件信息,并自动为组件补充 GitHub 链接、导入示例等元数据。
    • 工具(Tools)
      • 提供一组 MCP 工具,用于查询组件、基础、模式、模板以及跨类别的搜索等功能。
      • 工具对外暴露方式通过 [McpServerTool] 注解,返回结构化的 JSON 数据。
    • 提供的传输
      • 以 STDIO 形式与 MCP 客户端通信,利用 JSON-RPC 请求/响应模型进行对话。
    • 构建与运行
      • 使用 .NET 8 构建,作为一个独立后端服务运行,可作为 Claude、Copilot 等 MCP 客户端的后端上下文服务。
  • 安装步骤

    • 安装 .NET 8 SDK(或更高版本) 与相关运行环境。
    • 获取源码后,在 src 目录中编译并运行:
      • dotnet build
      • dotnet run
    • 也可将其注册为全局 .NET Tool(如 ElementMcpServer),并通过工具命令启动(具体命令在 README 中有示例)。
  • 服务器配置(客户端使用信息)

    • MCP 客户端需要的最小启动信息包括服务器名称、启动命令和参数。下方示例按仓库信息给出准确配置注释,不包含实际代码块,仅作为配置参考:
    • 示例 JSON(请直接粘贴到 MCP 客户端的配置中): { "server": "element", "command": "dotnet", "args": ["tool","run","ElementMcpServer"] } 说明:
    • server 字段为 MCP 客户端识别的服务器名称,示例中为 element。
    • command 字段为启动服务器所需的执行命令,在本仓库的用法中,Element MCP Server 作为一个 .NET 工具运行,因此使用 dotnet。
    • args 字段为启动参数,元信息来自 README 的运行方式(使用 tool run 方式启动 ElementMcpServer)。
    • 通过该配置,MCP 客户端可以连接到服务器并发起 JSON-RPC 请求。
  • 基本使用方法

    • 启动后,服务器通过 STDIO 接收 JSON-RPC 请求,LLM 客户端可调用各类工具(如 ListComponents、GetComponent、Search 等),以及查询组件、基础、模式、模板等数据。
    • 通过数据 enrichment 功能,组件条目会包含 GitHub 链接、导入示例、Storybook 入口等扩展信息,提升对话的上下文质量。
  • 开发与运维要点

    • 数据来源
      • 本地 element-data.json 提供初始数据,StorybookService 会从 Availity 的 Storybook 索引动态获取数据并补充。
    • 启动顺序
      • 数据服务(ElementDataService)在应用启动时进行数据加载及 enrichment,DataEnrichmentService 为后台任务,确保在 MCP 服务正式处理请求前就绪。
    • 调试
      • 日志默认输出到 stderr,MCP 协议消息通过 stdout。

服务器信息