mcpField
G
ghost-database

ghost-database

github.com/timescale数据与数据库1.9k61 次安装6 天前更新
代码仓库

关于 ghost-database

Ghost 是面向 Agent 工作流的托管 PostgreSQL 服务,可通过 CLI 或 MCP 创建、查询和管理数据库。数据库分叉与共享快照支持安全实验和数据交接。

主要功能

  1. 01创建和查询 PostgreSQL 数据库
  2. 02快速分叉数据库进行实验
  3. 03分享数据库快照
  4. 04检查数据库结构
  5. 05启用 MCP 只读模式

适用场景

  1. 01为 Agent 工作流提供持久存储
  2. 02在分叉副本上测试迁移
  3. 03分享示例数据或问题复现
  4. 04限制 Agent 的数据库操作权限

MCP 相关

Ghost MCP 服务向 Agent 提供数据库生命周期管理工具,包括创建、分叉、查询、检查、恢复和删除。只读模式可限制查询并阻止破坏性工具。

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/timescale/pg-aiguide --skill ghost-database

安装后在 Claude Code 中输入/ghost-database确认已加载。

详细介绍

Ghost 数据库管理

Ghost 是一项专为 Agent 设计的托管 PostgreSQL 服务。你的账户按 Space 组织,每个 Space 中有不限数量的按需数据库和分支,共享一个计算时长池(执行查询时按 15 分钟为单位计费)。免费套餐:每月 100 小时,1TB 存储空间。

需要持续运行时,可将任意数据库升级为专用实例——独立计费、始终在线的数据库。

其他功能:

  • **CLI 和 MCP 原生支持:**可通过终端或任何兼容 MCP 的 Agent 创建和查询数据库
  • **即时分支:**数秒内创建完整数据库副本,安全地进行实验
  • **可分享的快照:**通过 URL 分享数据库快照——任何拥有链接的人都可以在自己的 Space 中创建副本
  • MCP 只读模式:ghost config set read_only true 会将所有 MCP 工具锁定为只读——SQL 查询以只读模式执行,破坏性工具(ghost_delete、ghost_password、ghost_rename)将被禁用

网站:https://ghost.build

安装

提供多种安装方式。如果不确定,请使用第一种。

安装脚本(macOS/Linux/WSL)
curl -fsSL https://install.ghost.build | sh
安装脚本(Windows PowerShell)
irm https://install.ghost.build/install.ps1 | iex
Debian/Ubuntu
curl -s https://packagecloud.io/install/repositories/timescale/ghost/script.deb.sh | sudo os=any dist=any bash
sudo apt-get install ghost
Red Hat/Fedora
curl -s https://packagecloud.io/install/repositories/timescale/ghost/script.rpm.sh | sudo os=rpm_any dist=rpm_any bash
sudo yum install ghost

快速入门

CLI

ghost login                     # Authenticate with GitHub
ghost create                    # Create a new database (returns an ID, e.g. abc123)
ghost list                      # List all databases with their IDs
ghost connect <name-or-id>              # Get connection string

MCP

ghost_login()                   // Authenticate with GitHub
ghost_create({ name: "my-db" }) // → returns { id: "abc123", ... }
ghost_list()                    // List all databases with their IDs
ghost_connect({ name_or_id: "abc123" }) // Get connection string

核心工作流

创建和查询数据库

CLI

# Create a database (returns an ID like abc123)
ghost create my-app-db

# Run SQL directly
ghost sql abc123 "CREATE TABLE users (id BIGINT GENERATED ALWAYS AS IDENTITY PRIMARY KEY, email TEXT NOT NULL UNIQUE, created_at TIMESTAMPTZ NOT NULL DEFAULT now())"

# Query it
ghost sql abc123 "SELECT * FROM users"

# Open interactive psql session
ghost psql abc123

MCP

ghost_create({ name: "my-app-db" })
// → returns { id: "abc123", ... }

ghost_sql({ name_or_id: "abc123", query: "CREATE TABLE users (id BIGINT GENERATED ALWAYS AS IDENTITY PRIMARY KEY, email TEXT NOT NULL UNIQUE, created_at TIMESTAMPTZ NOT NULL DEFAULT now())" })

ghost_sql({ name_or_id: "abc123", query: "SELECT * FROM users" })
创建分支以安全地进行实验

创建分支可在数秒内生成数据库的完整副本——架构和数据均保持一致。使用分支测试迁移、尝试架构变更,或让 Agent 在不影响工作数据库的情况下进行探索。你可以将专用实例分支为按需实例——这有助于在生产环境副本上进行测试,而无需为始终在线的计算资源付费。

如需了解使用分支进行迁移测试的完整工作流——包括迁移前后的验证查询和回滚计划——请参阅 postgres-database-migration 技能。

CLI

# Fork a database (returns the fork's ID, e.g. def456)
ghost fork abc123 my-app-db-experiment

# Test changes on the fork
ghost sql my-app-db-experiment "ALTER TABLE users ADD COLUMN role TEXT NOT NULL DEFAULT 'user'"

# If it worked: apply to original
ghost sql abc123 "ALTER TABLE users ADD COLUMN role TEXT NOT NULL DEFAULT 'user'"

# If it failed: delete the fork, original is untouched
ghost delete my-app-db-experiment --confirm

MCP

ghost_fork({ name_or_id: "abc123", name: "my-app-db-experiment" })
// → returns { id: "def456", ... }

ghost_sql({ name_or_id: "def456", query: "ALTER TABLE users ADD COLUMN role TEXT NOT NULL DEFAULT 'user'" })

// If it worked: apply to original
ghost_sql({ name_or_id: "abc123", query: "ALTER TABLE users ADD COLUMN role TEXT NOT NULL DEFAULT 'user'" })

// If it failed: delete the fork, original is untouched
ghost_delete({ name_or_id: "def456" })
自动暂停与恢复

数据库在闲置 30 天后会自动暂停,以节省计算时长。存储的数据会保留。需要时可恢复已暂停的数据库:

CLI

ghost resume abc123 --wait

MCP

ghost_resume({ name_or_id: "abc123" })
检查架构

CLI

ghost schema abc123

MCP

ghost_schema({ name_or_id: "abc123" })

返回针对大模型优化的架构表示,其中包含所有表、列、索引和约束。

分享数据库

分享会创建一个快照,任何人都可以用它创建自己的副本——无需访问你的 Space。适合分享示例数据集、问题复现环境或初始数据库。

Agent 也可以通过分享数据库来传递数据库资源:Agent 可以分享数据库作为输出(向接收方提供 URL,以便对方创建自己的副本),也可以将分享令牌作为输入,从预填充数据的数据库开始工作。

CLI

# Share a database (returns a share URL)
ghost share abc123

# Share with an expiry
ghost share abc123 --expires 24h

# Recipient creates their own database from the share token
ghost create --from-share <token>

# Manage shares
ghost share list abc123
ghost share revoke <token>

MCP

ghost_share({ name_or_id: "abc123" })
// → returns { share_token: "...", url: "..." }

ghost_share({ name_or_id: "abc123", expires: "24h" })

// Recipient creates their own database from the share token
ghost_create({ from_share: "<token>" })

// Manage shares
ghost_share_list()
ghost_share_revoke({ share_token: "<token>" })

CLI 命令参考

如需查看完整的命令和标志列表,请运行:

ghost --help
ghost <command> --help   # e.g. ghost create --help

MCP 集成

Ghost MCP 服务让 Agent 无需人工干预即可全面管理数据库生命周期,包括创建、分支、查询、检查、恢复和删除数据库。

安装 MCP 服务
ghost mcp install 

支持:Claude Code、Cursor、Windsurf、Codex、Gemini、VS Code、Kiro。

MCP 只读模式

如需为 Agent 提供安全的只读访问权限,请在启动 MCP 服务前启用只读模式:

ghost config set read_only true

这会将所有 MCP 工具锁定为只读:ghost_sql 以只读模式执行查询,破坏性工具(ghost_delete、ghost_password、ghost_rename)将被完全禁用。

何时使用 Ghost

适用场景:

  • 为 Agent 工作流提供持久化的 Postgres 存储
  • 为每个 Agent,甚至每次 Agent 执行,分配专用数据库
  • 无需担心成本,随意创建和销毁数据库
  • 通过数据库分叉安全地进行实验和迁移测试
  • 设置严格的支出上限,费用可预测(计算时长按 15 分钟为单位计费)

不适用场景:

  • 需要 Web 控制面板(Ghost 仅支持 CLI/MCP)
  • 需要非 Postgres 数据库

评论

支持 Markdown