APPointme MCP 服务端实现

  • 项目简介
    • 该仓库在 mcp-server 目录下实现了一个 MCP 服务器端,使用 Model Context Protocol(MCP)SDK 提供资源管理、工具注册与执行、以及 Prompt 渲染等核心能力,供 LLM 客户端在对话中获取上下文并调用外部功能。
  • 主要功能点
    • MCP 服务器核心:通过 MCP SDK 启动服务器、注册工具并对外提供 JSON-RPC 风格的调用接口。
    • 工具注册与执行:实现 list_event_types、get_free_slots、book_appointment、search_users 等工具,处理输入参数、调用外部后端 API,返回结构化文本内容或错误信息。
    • 资源与数据访问:通过后端 API 与数据库交互获取事件、用户、日历等数据,为 LLM 提供数据上下文。
    • Prompts/模板能力:服务器端具备渲染与提供提示/模板能力,便于 LLM 与后端进行协作。
    • 多传输协议支持:可在 STDIO 模式下运行,也可通过 SSE/HTTP 传输实现网络化 MCP 通信。
    • 会话与能力声明:实现服务器初始化、能力声明及会话管理,确保客户端在会话中获得一致的上下文服务能力。
  • 安装与运行
    • 依赖与构建:在 mcp-server 目录下,通过项目自带的构建配置安装依赖(如 vitest 配置用于测试,实际运行需构建输出)。
    • 运行模式:
      • STDIO 模式(默认):直接使用标准输入/输出进行 MCP 消息传输。
      • HTTP/SSE 模式(推荐用于生产):设置 TRANSPORT 为 sse,启动一个 HTTP 服务,监听端口并在 /mcp 路径处理 MCP 请求。
    • 启动示例(简述,不包含具体命令行参数细节,给出操作思路):
      • 选择传输模式:若希望通过 HTTP/SSE 进行通信,配置并启动服务器监听端口;若仅在进程间通信,可使用 STDIO。
      • 启动后,客户端可通过 MCP 标准的请求格式向服务器读取资源、调用工具、获取 prompts 等。
  • 服务器配置与客户端配接
    • MCP 客户端需要的配置(JSON,示意性说明,不提供具体代码): { "serverName": "appoint-me-mcp", "command": "node", "args": ["path/to/启动脚本/index.js", "--transport=sse", "--port=3000"] }
    • 注释:该配置用于 MCP 客户端在启动阶段连接到 MCP 服务器的启动命令和参数,便于自动化部署和对接。
  • 基本使用方法
    • 连接:通过 JSON-RPC 规范向 MCP 服务器发送请求,包含读取资源、执行工具、获取 Prompts 等操作。
    • 工具使用:LLM 通过 tool 调用机制执行 list_event_types、get_free_slots、book_appointment、search_users 等功能,获取结构化文本或错误信息。
    • 安全与会话:服务器端负责会话管理与能力声明,确保多轮对话中的上下文隔离与权限控制。
    • 部署与扩展:服务器具备可扩展性,便于新增资源类型、工具与 Prompt 模板,配合后端数据源完成更丰富的上下文服务。

服务器信息