SpacetimeDB MCP服务器

一个基于Rust的MCP服务器,将SpacetimeDB HTTP API暴露为MCP工具,允许LLM查询数据库、调用reducers、执行SQL和管理身份。

  • by craigeous
  • Rust
  • 本地部署
  • 2 星标
  • 更新于
在 GitHub 查看 Craigeous/spacetimedb-mcp-rs

使用说明

时空数据库mcp-rs

基于Rust的 主控程序 服务器,将SpacetimeDB HTTP API公开为MCP工具,允许LLM查询数据库、调用还原器、执行SQL和管理标识。

特性

6个类别的15个工具:

类别 工具
认证 login
健康 ping
身份 create_identity, verify_identity, list_identity_databases
数据库 get_database, delete_database, get_database_names, add_database_name, set_database_names, resolve_database_identity, get_database_schema, get_database_logs
SQL execute_sql
减速器 call_reducer
能源 get_energy_balance

认证

服务器支持三种身份验证方法,按顺序检查:

  1. 静态令牌 (SPACETIMEDB_TOKEN env-var)——用于CI/CD无头使用
  2. 已保存令牌 (~/.spacetimedb/mcp_token.json)--过期时自动刷新
  3. 浏览器登录 --呼叫 login 通过SpacetimeAuth OIDC(GitHub、谷歌、Discord、Twitch、Kick或魔术链接)进行身份验证的工具

如果没有可用的令牌,服务器将在未经身份验证的情况下启动。使用 login 该工具用于触发基于浏览器的OIDC登录,从而为未来的会话保存令牌。

先决条件

  • 正在运行的SpacetimeDB实例(或使用 https://testnet.spacetimedb.com)
  • (可选)用于经过身份验证的操作的SpacetimeDB身份验证令牌

设置

1.安装

从下载预构建的二进制文件 发布,或从源代码构建:

cargo install --git https://github.com/Craigeous/spacetimedb-mcp-rs

2.配置您的MCP客户端

克劳德代码

claude mcp add spacetimedb -- env SPACETIMEDB_URL=https://testnet.spacetimedb.com /path/to/spacetimedb-mcp-rs

或者使用身份验证令牌:

claude mcp add spacetimedb -- env SPACETIMEDB_URL=https://testnet.spacetimedb.com SPACETIMEDB_TOKEN=your_token_here /path/to/spacetimedb-mcp-rs

克劳德桌面版

添加到您的Claude桌面配置(~/Library/Application Support/Claude/claude_desktop_config.json):

{
  "mcpServers": {
    "spacetimedb": {
      "command": "/path/to/spacetimedb-mcp-rs",
      "env": {
        "SPACETIMEDB_URL": "https://testnet.spacetimedb.com",
        "SPACETIMEDB_TOKEN": "your_token_here"
      }
    }
  }
}

3.验证

问克劳德: “使用ping工具检查SpacetimeDB连接”

环境变量

变量 必填 描述
SPACETIMEDB_URL 是 SpacetimeDB实例的基本URL
SPACETIMEDB_TOKEN 否 静态JWT身份验证令牌--完全跳过OIDC
SPACETIMEDB_CLIENT_ID 无 OIDC客户端ID(默认:内置)
SPACETIMEDB_AUTH_URL 无 OIDC授权URL(默认值: https://auth.spacetimedb.com/oidc)

使用提示

  • 从...开始 ping 验证连接
  • 使用 login 如果未配置令牌,则通过浏览器进行身份验证
  • 使用 get_database_schema 在查询之前探索数据库的表和reducer
  • 使用 execute_sql 用于对SpacetimeDB表进行读取查询(SELECT)
  • 使用 call_reducer 调用修改数据的存储过程
  • 数据库参数接受人类可读的名称或十六进制标识字符串
  • 使用 create_identity 为经过身份验证的操作获取新的身份和令牌

调试日志

RUST_LOG=debug SPACETIMEDB_URL=https://testnet.spacetimedb.com cargo run 2>debug.log

日志被写入stderr,这样它们就不会干扰MCP stdio传输。

许可证

麻省理工学院