Spacelift Intent MCP Server
使用说明(Markdown 版)
-
项目简介
- Spacelift Intent MCP 服务器是一套具备资源托管、工具注册与执行、以及提示模板渲染能力的后端服务,旨在为大型语言模型客户端提供可扩展、可安全管理的上下文与功能。
-
主要功能点
- 资源管理:持久化和管理云资源的状态与依赖关系,支持创建、更新、读取、导入、删除、刷新等全生命周期操作。
- 工具注册与执行:提供一组基础设施相关的 MCP 工具,LLM 可以调用外部功能(如 Provider 描述、资源创建、数据源读取等),工具执行结果以 JSON-RPC 风格的响应形式返回。
- 提示模板与交互:提供可定制的 Prompt 模板渲染,使 LLM 在对话中能够以可控方式获取信息与执行动作。
- 会话与能力声明:维护会话状态、服务器能力信息,便于后续向前兼容性扩展。
- 状态持久化:使用 SQLite 数据库保存状态、依赖、操作日志等,确保跨会话的一致性与可追溯性。
- 传输与集成:核心实现采用 stdio 传输(与 MCP Host 的标准集成最常见场景),并具备后续扩展为 SSE/WebSocket 的能力。
-
安装步骤
-
- 构建二进制
- 使用 Go 语言环境,将仓库源码编译为独立执行文件。
-
- 运行前准备
- 确保有一个可写的本地数据库目录用于状态持久化,以及临时目录放置 provider 二进制及执行缓存。
-
- 运行
- 将生成的二进制在标准输入/输出模式下启动,服务器将通过 MCP 的 stdio 传输与客户端通信。
-
- 依赖配置
- 如需在生产环境中持久化状态,请按照仓库提供的使用示例,将数据库目录通过环境变量或配置路径暴露给服务,确保 state.db 等文件持久化。
-
- 运行状态与日志
- 启动后,监控日志输出以确认 MCP 会话建立以及工具注册情况,确保资源与工具均可被客户端调用。
-
-
服务器配置(MCP 客户端配置信息)
- 配置示例(JSON,用于 MCP Host 连接该服务器时提供给客户端的启动信息;该示例聚焦于启动二进制与参数,具体环境可按需要调整):
- server name: spacelift-intent
- command: spacelift-intent
- args: [](若以本地二进制直接运行可为空;如使用 Docker 运行,请将对应容器执行命令放入 args 中)
- 说明:MCP 客户端需要在其配置中包含以上信息,用于与本 MCP 服务器建立连接。在容器化或本地二进制模式下,可以按 README 提供的示例进行配置,确保数据库目录和临时目录正确映射与设置。
-
基本使用方法
- 启动前准备
- 备份和准备好本地 SQLite 数据库目录用于持久化状态,确保 TMP_DIR 指定的临时目录存在。
- 与 MCP Host 连接
- 在 MCP Host(如 VSCode/Claude/Claude Code 等)中添加一个 MCP 服务器条目,名称为 spacelift-intent,对应的命令为 spacelift-intent(或通过 Docker 启动容器的方式),并配置必要的环境变量。
- 调用与调试
- 通过 MCP 客户端调用工具(如 provider-search、lifecycle-resources-create、state-get 等)进行资源管理与查询,服务器将返回标准的 JSON-RPC 结果或通知信息。
- 运行与调试要点
- 确认数据库目录可写、提供者插件下载缓存目录可写、以及提供商二进制缓存目录有效。
- 观察日志输出以排查连接、工具注册或资源操作中的错误。
- 启动前准备
-
注意事项
- 该实现基于 SQLite 进行状态持久化,删除/清理状态目录会丢失当前会话中的资源状态,请谨慎操作。
- provider/OpenTofu 等组件需要网络访问以下载和缓存 provider 二进制文件,确保网络联通与访问权限。