An open API service indexing awesome lists of open source software.

https://github.com/planetscale/cli

The CLI for PlanetScale Database
https://github.com/planetscale/cli

database go mysql mysql-client planetscale

Last synced: 18 days ago
JSON representation

The CLI for PlanetScale Database

Awesome Lists containing this project

README

          

# PlanetScale CLI [![Build status](https://badge.buildkite.com/cf225eb6ccc163b365267fd8172a6e5bd9baa7c8fcdd10c77c.svg?branch=main)](https://buildkite.com/planetscale/cli)

PlanetScale is more than a database and our CLI is more than a jumble of commands. The `pscale` command line tool brings branches, deploy requests, and other PlanetScale concepts to your fingertips.

![PlanetScale CLI](https://user-images.githubusercontent.com/6104/191803574-be63da54-d255-4f5a-ab2d-2b49cdf7eb12.png)

## Installation

#### macOS

`pscale` is available via a Homebrew Tap, and as downloadable binary from the [releases](https://github.com/planetscale/cli/releases/latest) page:

```
brew install planetscale/tap/pscale
```
Optional: `pscale` requires a MySQL 8 Client in your PATH for certain commands. You can install it by running:

```
brew install mysql-client@8.4
```

To upgrade to the latest version:

```
brew upgrade pscale
```

#### Linux

`pscale` is available as downloadable binaries from the [releases](https://github.com/planetscale/cli/releases/latest) page. Download the .deb or .rpm from the [releases](https://github.com/planetscale/cli/releases/latest) page and install with `sudo dpkg -i` and `sudo rpm -i` respectively.

Arch: [`pscale-cli-bin`](https://aur.archlinux.org/packages/pscale-cli-bin)

#### Windows

`pscale` is available via [scoop](https://scoop.sh/), and as a downloadable binary from the [releases](https://github.com/planetscale/cli/releases/latest) page:

```
scoop bucket add pscale https://github.com/planetscale/scoop-bucket.git
scoop install pscale mysql
```

To upgrade to the latest version:

```
scoop update pscale
```

#### Manually

Download the pre-compiled binaries from the [releases](https://github.com/planetscale/cli/releases/latest) page and copy to the desired location.

Alternatively, you can install [bin](https://github.com/marcosnils/bin) which works on all `macOS`, `Windows`, and `Linux` platforms:

```
bin install https://github.com/planetscale/cli
```

To upgrade to the latest version

```
bin upgrade pscale
```

#### Container images

We provide ready to use Docker container images. To pull the latest image:

```
docker pull planetscale/pscale:latest
```

To pull a specific version:

```
docker pull planetscale/pscale:v0.63.0
```

If you like to have a shell alias that runs the latest version of pscale from docker whenever you type `pscale`:

```
mkdir -p $HOME/.config/planetscale
alias pscale="docker run -e HOME=/tmp -v $HOME/.config/planetscale:/tmp/.config/planetscale --user $(id -u):$(id -g) --rm -it -p 3306:3306/tcp planetscale/pscale:latest"
```

If you need a more advanced example that works with service tokens and differentiates between commands that need a pseudo terminal or non-interactive mode, [have a look at this shell function](https://github.com/jonico/pscale-cli-helper-scripts/blob/main/.pscale/cli-helper-scripts/use-pscale-docker-image.sh).

## MCP Server Integration

The PlanetScale CLI includes a Model Context Protocol (MCP) server that provides AI tools direct access to your PlanetScale databases. This allows AI assistants to list organizations, databases, branches, and run SQL queries with proper authentication.

### Setting up MCP in AI tools

#### Claude Desktop

To enable the PlanetScale MCP server in Claude Desktop:

```
pscale mcp install --target claude
```

#### Cursor Editor

To enable the PlanetScale MCP server in Cursor:

```
pscale mcp install --target cursor
```

#### Manual Setup for Other AI Tools

For AI tools that support custom MCP servers but don't have automated installation through the CLI, you can manually configure them:

1. Find your tool's MCP configuration file
2. Add the following configuration:

```json
{
"mcpServers": {
"planetscale": {
"command": "pscale",
"args": ["mcp", "server"]
}
}
}
```

3. Restart your AI tool to apply the changes

Verify the tool recognizes the PlanetScale MCP server by asking it to list your databases or perform other PlanetScale operations.

Once configured, these AI tools will be able to use PlanetScale-specific context to help you work with your databases. The MCP server provides the following capabilities:
- List organizations
- List databases
- List branches
- List keyspaces
- List tables
- Get table schemas
- Run read-only SQL queries

## GitHub Actions Usage
Use the [setup-pscale-action](https://github.com/planetscale/setup-pscale-action) to install and use `pscale` in GitHub Actions.

```yaml
- name: Setup pscale
uses: planetscale/setup-pscale-action@v1
- name: Use pscale
env:
PLANETSCALE_SERVICE_TOKEN_ID: ${{ secrets.PLANETSCALE_SERVICE_TOKEN_ID }}
PLANETSCALE_SERVICE_TOKEN: ${{ secrets.PLANETSCALE_SERVICE_TOKEN }}
run: |
pscale deploy-request list my-db --org my-org
```

## Local Development

To run a command:
```
go run cmd/pscale/main.go
```

Alternatively, you can build `pscale`:
```
go build cmd/pscale/main.go
```

And then use the `pscale` binary built in `cmd/pscale/` for testing:
```
./cmd/pscale/pscale
```

## Documentation

Please checkout our Documentation page: [planetscale.com/docs](https://planetscale.com/docs/reference/planetscale-cli)