AppKit MCP 服务器实现

使用说明(简明要点,便于快速上手):

  • 项目简介 AppKit 的 MCP 服务器实现是一组基于 Model Context Protocol 的后端服务,专门为 LLM 客户端提供可管理的资源、工具以及可渲染的 Prompt 模板等上下文信息。它将 MCP 服务器嵌入到一个 Reflex 应用中,通过统一的 JSON-RPC 接口与客户端通信,并支持多种传输协议,便于在不同环境中接入和扩展。

  • 主要功能点

    • MCP 服务器集合:在同一个应用中暴露多个 MCP 服务端,例如用户、图表、BPMN、图像生成等,统一对外暴露接口,方便 LLM 客户端远程访问。
    • 资源与工具管理:服务器端提供对资源、工具及提示模板等上下文信息的托管、查询与执行能力,允许 LLM 客户端按需访问。
    • Prompts 定义与渲染:支持定义和渲染提示模板,便于 LLM 进行自定义对话和工作流。
    • JSON-RPC 通信模型:服务端遵循 MCP 的请求/响应模式,通过 JSON-RPC 与客户端进行请求处理与通知推送。
    • 会话与能力声明:实现会话生命周期管理、能力声明,以及对多模型、用户权限和多租户场景的支持。
    • 多传输协议支持:提供 SSE、WebSocket 与流式传输等多种传输协议,确保与不同客户端的对接兼容性。
    • 集成与部署:与 Reflex 框架、PostgreSQL/Alembic、以及相关的身份与安全组件整合,便于在生产环境中使用。
  • 安装步骤

    1. 克隆仓库并进入项目目录。
    2. 安装依赖并同步工作区组件(按项目提供的脚本执行,如 uv、pip、或其它工作流工具)。
    3. 按项目文档配置环境变量与数据库(如果需要本地开发数据库)。
    4. 启动 Reflex 应用服务器(示例命令通常为 uv run reflex,即启动 Reflex 应用服务)。
    5. MCP 服务默认挂载在 /mcp 路径下的各子服务端,例如 /mcp/user、/mcp/charts、/mcp/bpmn、/mcp/image 等,具体端点请参考应用日志与路由注册情况。
  • 服务器配置(MCP 客户端使用的启动信息) 以 MCP 客户端连接为目标,提供如下示例配置(JSON 格式,描述每个 MCP 服务器的启动信息): { "servers": [ { "name": "user", "command": "uv", "args": ["run", "reflex", "run"] }, { "name": "charts", "command": "uv", "args": ["run", "reflex", "run"] }, { "name": "bpmn", "command": "uv", "args": ["run", "reflex", "run"] }, { "name": "image", "command": "uv", "args": ["run", "reflex", "run"] } ] } 说明:以上配置用于 MCP 客户端在启动时自动连接到各 MCP 服务器。具体启动命令及参数要根据运行环境调整(例如使用的进程管理工具、容器化配置等),客户端并不需要理解服务器内部实现细节,只需要知道服务器名称、启动命令及参数即可与 MCP 服务建立连接。

  • 基本使用方法

    • 启动后,客户端可以通过统一的接口请求资源、调用工具、获取并渲染 Prompts。
    • 服务器端负责维护会话、能力声明和资源/工具的访问策略,确保多租户与权限控制的可用性。
    • 通过不同传输协议(如 SSE、WebSocket)实现实时通知和流式响应,提升与 LLM 客户端的交互效率。
  • 重要提示

    • MCP 客户端配置关注点在于服务器名称、启动命令以及参数,实际的 API 细节和数据格式在服务器实现端完成,客户端不需要关心内部实现细节。
    • 如需在生产环境部署,请参考仓库中的部署文档、数据库迁移和日志配置等,确保服务稳定和安全性。
  • 运行与调试

    • 在本地开发环境中,按 Quick Start 的步骤启动并访问应用。
    • 日志会显示挂载的 MCP 服务端及其传输方式,便于排错与监控。
    • 如果需要扩展新的 MCP 服务端模块,只需实现对应的服务端逻辑并在应用中注册即可。

服务器信息