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

https://github.com/upstash/mcp-server

Upstash Model Context Server
https://github.com/upstash/mcp-server

Last synced: 4 months ago
JSON representation

Upstash Model Context Server

Awesome Lists containing this project

README

          

# Upstash MCP Server

[![smithery badge](https://smithery.ai/badge/@upstash/mcp-server)](https://smithery.ai/server/@upstash/mcp-server)

Model Context Protocol (MCP) is a [new, standardized protocol](https://modelcontextprotocol.io/introduction) for managing context between large language models (LLMs) and external systems. In this repository, we provide an installer as well as an MCP Server for [Upstash Developer API's](https://upstash.com/docs/devops/developer-api).

This allows you to use any MCP Client to interact with your Upstash account using natural language, e.g.:

- "Create a new Redis database in us-east-1"
- "List my databases"
- "List keys starting with "user:" in users-db"
- "Create a backup"
- "Give me the spikes in throughput during the last 7 days"

# Usage

## Requirements

- Node.js >= v18.0.0
- [Upstash API key](https://upstash.com/docs/devops/developer-api) - You can create one from [here](https://console.upstash.com/account/api).

## How to use locally

### Installing for Claude Desktop

To install Upstash MCP Server for Claude Desktop automatically via [Smithery](https://smithery.ai/server/@upstash/mcp-server) run the following command:

```bash
npx -y @smithery/cli@latest install @upstash/mcp-server --client claude
```

Install without Smithery

```bash
npx @upstash/mcp-server init
```

This will edit your MCP config file and add an entry for Upstash.

### Installing for Cursor

To install Upstash MCP Server for Cursor automatically via [Smithery](https://smithery.ai/server/@upstash/mcp-server) run the following command:

```bash
npx -y @smithery/cli@latest install @upstash/mcp-server --client cursor
```

Install without Smithery

Add the following command to the MCP config in Cursor. For more info, check the [Cursor MCP docs](https://docs.cursor.com/context/model-context-protocol#configuring-mcp-servers).

```bash
npx -y @upstash/mcp-server run
```

### Installing for Windsurf

To install Upstash MCP Server for Windsurf automatically via [Smithery](https://smithery.ai/server/@upstash/mcp-server) run the following command:

```bash
npx -y @smithery/cli@latest install @upstash/mcp-server --client windsurf
```

Install without Smithery

Add the following command to the MCP config in Windsurf. For more info, check out the [Windsurf MCP docs](https://docs.windsurf.com/windsurf/mcp#mcp-config-json).

```bash
npx -y @upstash/mcp-server run
```

### Running with Docker

You can also use the provided Docker image to run the server.

```bash
docker build -t upstash-mcp .

# Run the stdio server, add this command to you MCP config
docker run --rm -i \
-e UPSTASH_EMAIL= \
-e UPSTASH_API_KEY= \
upstash-mcp
```

### Troubleshooting

#### Common Issues

Your mcp client might have trouble finding the right binaries because of the differences between your shell and system `PATH`.

To fix this, you can get the full path of the binaries by running `which npx` or `which docker` in your shell, and replace the `npx` or `docker` command in the MCP config with the full binary path.

#### Node Version Manager

If you are using a node version manager like nvm or fnm, please check [this issue](https://github.com/modelcontextprotocol/servers/issues/64#issuecomment-2530337743). You should change the `node` command in the MCP config to the absolute path of the node binary.

#### Additional Troubleshooting

See the [troubleshooting guide](https://modelcontextprotocol.io/quickstart#troubleshooting) in the MCP documentation. You can also reach out to us at [Discord](https://discord.com/invite/w9SenAtbme).

## Tools

### Redis

- `redis_database_create_backup`
- `redis_database_create_new`
- `redis_database_delete`
- `redis_database_delete_backup`
- `redis_database_get_details`
- `redis_database_list_backups`
- `redis_database_list_databases`
- `redis_database_reset_password`
- `redis_database_restore_backup`
- `redis_database_run_multiple_redis_commands`
- `redis_database_run_single_redis_command`
- `redis_database_set_daily_backup`
- `redis_database_update_regions`
- `redis_database_get_usage_last_5_days`
- `redis_database_get_stats`

## Development

Clone the project and run:

```bash
pnpm install
pnpm run watch
```

This will continuously build the project and watch for changes.

For testing, you can create a `.env` file in the same directory as the project with the following content:

```bash
UPSTASH_EMAIL=
UPSTASH_API_KEY=
```

This will be used for setting the Claude config and running mcp inspector.

### Testing with Claude Desktop

To install the Claude Desktop config for local development, run the following command:

```bash
pnpm run setup
```

This will add an `upstash` entry to your MCP config file that points to the local build of the package.

```json
{
"upstash": {
"command": "node",
"args": ["/dist/index.js", "run", "", ""]
}
}
```

> NOTE: The same issue with node version manager applies here. Please look at the note in the usage section if you are using a node version manager.

You can now use Claude Desktop to run Upstash commands.

To view the logs from the MCP Server in real time, run the following command:

```bash
pnpm run logs
```

### Testing with MCP Inspector

You can also use the MCP Inspector to test the tools.

```bash
pnpm run inspector
```