如何用 spacetime mcp 把 SpacetimeDB 数据库暴露给 MCP 客户端

发布时间:2026/9/13 11:22:35

如何用 spacetime mcp 把 SpacetimeDB 数据库暴露给 MCP 客户端 如何用 spacetime mcp 把 SpacetimeDB 数据库暴露给 MCP 客户端【免费下载链接】SpacetimeDBDevelopment at the speed of light项目地址: https://gitcode.com/GitHub_Trending/sp/SpacetimeDB当你有一个正在运行的 SpacetimeDB 数据库希望让支持 MCP 的 Agent 或编辑器比如 Claude Desktop、Claude Code、Codex直接操作它——列出数据库、读取 schema、执行 SQL、调用 reducer——而不用再走 shell 命令时spacetime mcp就是这个桥梁。它在本地以 stdio 方式启动一个 MCP 服务把客户端的请求转发到 SpacetimeDB 主机或单个数据库工具调用返回 JSON 结果。本文适用的前提数据库和主机已经存在你本地装有spacetimeCLI。需要特别注意文档明确标注 MCP 支持是不稳定功能Unstable Featurespacetime mcp命令可能存在破坏性变更且某些已发布的 CLI 中可能还没有这个子命令必要时需要从仓库源码构建见 codex-plugin/README.md。准备条件确认 CLI 里有 mcp 子命令在配置任何客户端之前先确认你的spacetimeCLI 包含该命令spacetime help mcp根据 CLI Referencespacetime mcp的用法是spacetime mcp [OPTIONS] [database]可用选项只有两个-s,--server SERVER— 指定承载数据库的服务器取值可以是 nickname、host name 或 URL--anonymous— 使用匿名身份执行而不是你保存的登录身份。关于身份spacetime mcp默认使用你已保存的 SpacetimeDB 身份即spacetime login登录后的身份除非传入--anonymous。后续所有工具调用都以这个身份运行权限边界见文末。选择暴露范围整个主机还是单个数据库MCP 服务有两种形态启动命令直接决定形态也决定客户端工具调用的参数形状# 主机级host-wide不指定数据库服务整个 SpacetimeDB 主机 spacetime mcp --server local # 数据库级database-scoped只服务 my-database 这一个库 spacetime mcp my-database --server localmy-database是文档中的示例值替换为你自己的数据库名。两种形态的区别主机级每个数据类工具都必须带database参数值为数据库名或 identity并且额外暴露list_databases工具数据库级数据库在启动命令里已经固定数据类工具不再需要database参数list_databases也不可用。除了位置参数数据库名还可以来自环境变量SPACETIMEDB_DB_NAME省略命令行参数时服务会回退到该环境变量的值。把服务暴露给 MCP 客户端MCP 客户端通常通过 stdio 启动 MCP 服务器进程所以核心就是让客户端去执行spacetime mcp。codex-plugin/README.md 给出了 Claude Desktop / Claude Code 这类客户端的配置形态顶层mcpServers键{ mcpServers: { spacetimedb: { command: spacetime, args: [mcp] } } }这对应主机级服务代理在每次调用里指定数据库。如果要固定到单个数据库把参数改成{ mcpServers: { spacetimedb: { command: spacetime, args: [mcp, my-database] } } }或者保持args不变在运行环境里设置SPACETIMEDB_DB_NAME环境变量。Codex 插件注册 MCP 服务器用的是同一条命令无需额外配置其形状为{ spacetimedb: { command: spacetime, args: [mcp] } }如果你的客户端不经过 stdio 桥接而是能直接发送 MCP JSON-RPC 请求SpacetimeDB 主机本身就暴露了 HTTP 端点可选路径见 MCP ReferencePOST /v1/mcp POST /v1/database/name-or-identity/mcpPOST /v1/mcp是主机级每次数据工具调用都要带database参数POST /v1/database/name-or-identity/mcp固定到单个数据库数据工具调用省略database。认证使用与其他 SpacetimeDB HTTP API 调用相同的 bearer token省略认证则使用匿名身份。验证连接并调用工具不要假设工具已经就绪skills/mcp/SKILL.md 建议先读 MCP 客户端的工具列表tools/list再构造工具调用。这些工具是被动出现的没有任何提示连接成功后会以spacetimedb.list_databases、spacetimedb.get_schema、spacetimedb.sql、spacetimedb.call、spacetimedb.ping的形式出现。工具完全缺失则说明 MCP 服务器没有连上此时应回退到spacetimeCLI。工具全集来自 MCP Reference工具主机级参数数据库级参数说明list_databases无不可用列出你的身份在该主机上拥有的数据库ping可选message可选message健康检查回显可选消息get_schemadatabase无以 JSON 返回 schema包含类型、表、reducerssqldatabase、sql、可选confirmedsql、可选confirmed执行 SQL以 JSON 返回行confirmed为真时等待持久化确认的读calldatabase、reducer、可选argsreducer、可选args调用 reducerargs是按位置排列的 JSON 数组最简验证路径是调用ping它会回显你传入的可选message确认链路通畅。之后按 skills/mcp/SKILL.md 展示的巡检顺序操作主机级示例文档原样给出list_databases {} get_schema { database: mydb } sql { database: mydb, sql: SELECT * FROM message } call { database: mydb, reducer: send_message, args: [hello] }注意list_databases只列出你自己拥有的数据库匿名身份下结果为空不知道数据库名时从它开始查。数据库级形态下同样的调用去掉database字段{ sql: SELECT * FROM message }调用无参数的 reducer 时省略args或传空数组带参数时按 reducer 参数顺序传值。需要等待持久化确认的读时给sql传confirmed: true。身份与权限边界这些规则在文档中明确列出直接决定了你通过 MCP 能做什么Reducer 是正常写入路径。通过call修改应用状态reducer 事务性地执行要么整体提交、要么整体回滚。sql工具可以读公共表SQL 写入需要拥有该数据库。写入优先走 reducer让授权与校验留在模块逻辑里。私有表不能通过 MCP SQL 读取。get_schema仍会显示私有表的声明所以sql报no such table不一定是模块里没有这张表也可能是当前身份读不到它。常见错误与排查MCP Reference 给出了四个典型报错的含义错误含义database argument must be a string服务是主机级而工具调用漏掉了database或传了非字符串值unknown tool: list_databases服务是数据库级list_databases不可用x not found当前身份下该主机没有名为x的数据库或该处需要 identity 却传了名字no such table: x表对当前身份是私有的、模块中不存在或调用打到了错误的数据库工具失败不会导致传输层断开而是作为 MCP 响应体内的结果返回结果带isError: true错误信息以文本形式给出。文档的建议是在换工具形态或换database值重试之前先读取错误文本。限制MCP 支持目前是不稳定功能参数和工具形态可能随版本发生破坏性变更spacetime mcp在某些已发布 CLI 中可能还不存在codex-plugin/README.md 的说明是如果命令缺失MCP 服务器无法启动需要时可从本仓库构建 CLIMCP 工具只能操作已经存在的数据库不能替代 CLI 完成脚手架、编译模块、发布或生成 bindings 等步骤。命令细节以 CLI Reference 的spacetime mcp一节和 MCP Reference 为准。【免费下载链接】SpacetimeDBDevelopment at the speed of light项目地址: https://gitcode.com/GitHub_Trending/sp/SpacetimeDB创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
延伸阅读

更多相关文章

2026/9/13 11:17:34

高质量外链建设与SEO优化实战指南

1. 站外SEO的本质与外链价值解析外链建设是站外SEO最核心的工作内容,但很多从业者对其理解仍停留在"数量为王"的初级阶段。实际上,Google的PageRank算法早已从单纯计算外链数量,发展为评估链接来源的权威性、相关性和自然度。一个来…

2026/9/13 12:12:36

DiffSynth-Studio:AI图像与视频生成、低显存训练的完整路径

DiffSynth-Studio:AI图像与视频生成、低显存训练的完整路径 【免费下载链接】DiffSynth-Studio Enjoy the magic of Diffusion models! 项目地址: https://gitcode.com/GitHub_Trending/dif/DiffSynth-Studio DiffSynth-Studio 是魔搭社区团队开发的开源扩散…

2026/9/13 12:12:36

光热电站储热容量配置优化与经济性分析

1. 光热电站储热容量配置的背景与挑战光热发电技术(CSP)作为可再生能源领域的重要分支,近年来在全球范围内获得了快速发展。与传统光伏发电不同,光热电站通过聚光系统将太阳能转化为热能,再通过热力循环发电&#xff0…

2026/9/13 12:07:36

音乐与科技融合:跨文化传播的创新实践

1. 项目背景与核心价值解析"以乐为桥 以爱为炬 向世界讲好中国故事"这一主题蕴含着文化传播的深层逻辑。音乐作为人类共通的语言,具有跨越国界的天然优势。研究表明,大脑对音乐旋律的处理不依赖特定语言中枢,这使得音乐能直接触发情…

2026/9/13 0:01:16

拯救者Y7000黑屏故障排查与维修实战指南

1. 项目概述:一台黑屏的拯救者Y7000,到底卡在哪一步? 联想拯救者Y7000系列笔记本,从2018年第一代搭载i5-8300H开始,到后来的i7-9750H、i7-10750H、i5-11400H,再到2023年款的R7-7840HS,它始终是学…

2026/9/13 0:01:16

拯救者Y7000黑屏故障排查与维修实战指南

1. 项目概述:一台黑屏的拯救者Y7000,到底卡在哪一步? 联想拯救者Y7000系列笔记本,从2018年第一代搭载i5-8300H开始,到后来的i7-9750H、i7-10750H、i5-11400H,再到2023年款的R7-7840HS,它始终是学…

2026/9/12 6:29:36

USB Type-C PCB布局分区设计:电源、高速信号与PD协议全攻略

做硬件这行,Type-C接口算是典型的“看着简单,做起来全坑”的东西。光引脚就24个,高低速信号、电源、控制线全部塞在一个小小的连接器里,如果PCB布局不做规划,打样回来基本就是“插上没反应”、“高速掉线”、“静电一打…

2026/9/12 14:32:17

系统编程学习原型如何补齐稳定性边界

系统编程学习原型如何补齐稳定性边界预算有限时&#xff0c;我先优化明显多余的复制&#xff0c;而不是猜测性地换容器。用借用传递只读数据通常就能减少分配&#xff1a; fn parse(line: &str) -> Result<Item, Error> { /* ... */ }用基准确认热点确实在分配&am…

2026/9/13 11:18:28

雨花区哪家财务公司代理记账比较好?

在雨花区&#xff0c;企业处理财税事务常常面临诸多挑战&#xff0c;选择一家靠谱的财务公司至关重要。湖南巨勤财务管理咨询有限公司就是本地正规实体财税服务机构&#xff0c;深耕本地工商财税行业多年&#xff0c;熟悉当地工商局、税务局最新政策与申报流程。主营公司注册、…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
咨询二维码