Spark-MCP 服务器端
使用说明(简明操作指南)
-
项目简介
- Spark-MCP 服务器是一套基于 MCP(Model Context Protocol)的后端服务,用于向 LLM 客户端暴露本地日历、天气、联系人等资源,并注册多种“工具”供 LLM 调用,以实现外部功能的扩展性。同时提供可渲染的 Prompt 模板,支持与 LLM 的交互对话场景。
- 服务器通过 JSON-RPC 形式与客户端通信,支持多种传输方式,并实现会话管理与能力声明,便于扩展与安全控制。
-
主要功能点
- 资源与数据托管:将日历、天气、联系人等本地/远端资源以 MCP 资源的形式暴露给客户端,便于通过统一接口访问。
- 工具注册与执行:注册天气、日历、日程等工具,LLM 可以通过 MCP 调用这些工具获取外部能力。
- Prompt 模板渲染:定义和渲染 Prompt 模板,定制化 LLM 的对话模式与上下文提供方式。
- 会话与能力声明:服务器端管理会话、能力声明,灵活扩展不同客户端能力。
- 多传输协议:示例实现了 SSE(Server-Sent Events)传输(/sse 路径),并具备 WebSocket/StdIO 等扩展潜力。
- 配置化启动与热更新:通过 mcp-config.yaml 配置服务器端口、数据源、工具参数等,支持环境变量覆盖。
-
安装步骤
- 通过 Go 工具安装 MCP 服务器端二进制(推荐):
- go install github.com/jovandeginste/spark-personal-assistant/cmd/mcp@latest
- 在项目根目录创建并填写 mcp-config.yaml(示例默认配置,详见仓库 README 的 MCP 服务器部分):
- 端口配置、各数据源 API 地址、以及可选的 token、日历、联系人等数据源的访问设置。
- 将所需的本地资源与工具依赖准备好(如日历、天气数据源、ICS、VCF、Markdown 文件等)。
- 通过 Go 工具安装 MCP 服务器端二进制(推荐):
-
服务器配置(与 MCP 客户端通信前提)
- MCP 服务器属于 MCP 客户端对等通信对象,客户端需要知道启动服务器的命令与参数以建立连接。以下为配置要点的描述(非代码表示):
- server_name(服务器名称):spark-mcp-server
- command(启动命令):mcp
- args(启动参数):可选为空数组;实际部署时,请将运行环境配置为在当前工作目录有 mcp-config.yaml 配置文件,服务器将读取端口、数据源、工具设置等信息。
- 备注:在本仓库中,MCP 服务器是通过内部实现实现的 SSE 服务端点(/sse)来提供 MCP 服务,默认通过 mcp-config.yaml 加载配置。因此客户端并不需要特定的命令行参数来传递配置,而是通过服务器启动后提供的接口进行交互。
- MCP 服务器属于 MCP 客户端对等通信对象,客户端需要知道启动服务器的命令与参数以建立连接。以下为配置要点的描述(非代码表示):
-
基本使用方法(步骤化)
- 第一步:准备配置
- 在项目根目录放置 mcp-config.yaml,按照需求配置端口、数据源、Token、日历/天气等工具参数。
- 第二步:启动服务器
- 使用系统环境或终端执行安装后的 mcp 二进制文件,确保当前目录有 mcp-config.yaml。
- 第三步:客户端连接
- MCP 客户端通过 JSON-RPC 调用连接到服务器,发送读取资源、调用工具、获取 Prompt 等请求,服务器响应相应结果。
- 第四步:扩展与维护
- 按需添加/注册新的工具、扩充资源,调整 mcp-config.yaml 配置,服务器将自动暴露新的能力给 LLM 客户端。
- 第一步:准备配置
-
运行与扩展注意事项
- 服务器在代码中使用了 SSE 传输(/sse),也具备进一步扩展为 WebSocket 的潜力。
- 资源与工具的注册是动态的,可在启动阶段通过注册函数将新工具暴露给 MCP 客户端。
- 配置与安全:建议在生产环境中通过环境变量覆盖敏感信息(如 API Key、Token 等),并对不同客户端进行能力声明与访问控制。