@upstash/mcp-server 0.2.2-rc.1 → 0.2.3-rc.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +285 -116
- package/dist/index.js +758 -210
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,32 +1,47 @@
|
|
|
1
1
|
# Upstash MCP Server
|
|
2
2
|
|
|
3
|
-
[](https://cursor.com/en/install-mcp?name=upstash&config=eyJjb21tYW5kIjoibnB4IiwiYXJncyI6WyIteSIsIkB1cHN0YXNoL21jcC1zZXJ2ZXJAbGF0ZXN0IiwiLS1lbWFpbCIsIllPVVJfRU1BSUwiLCItLWFwaS1rZXkiLCJZT1VSX0FQSV9LRVkiXX0
|
|
3
|
+
[](https://cursor.com/en/install-mcp?name=upstash&config=eyJjb21tYW5kIjoibnB4IiwiYXJncyI6WyIteSIsIkB1cHN0YXNoL21jcC1zZXJ2ZXJAbGF0ZXN0IiwiLS1lbWFpbCIsIllPVVJfRU1BSUwiLCItLWFwaS1rZXkiLCJZT1VSX0FQSV9LRVkiXX0%3D)
|
|
4
|
+
[<img alt="Install in VS Code" src="https://img.shields.io/badge/Install%20in%20VS%20Code-0098FF?style=for-the-badge&logo=visualstudiocode&logoColor=white">](https://insiders.vscode.dev/redirect/mcp/install?name=upstash&inputs=%5B%7B%22id%22%3A%22email%22%2C%22type%22%3A%22promptString%22%2C%22description%22%3A%22Upstash%20email%22%7D%2C%7B%22id%22%3A%22apiKey%22%2C%22type%22%3A%22promptString%22%2C%22description%22%3A%22Upstash%20API%20key%22%2C%22password%22%3Atrue%7D%5D&config=%7B%22command%22%3A%22npx%22%2C%22args%22%3A%5B%22-y%22%2C%22%40upstash%2Fmcp-server%40latest%22%2C%22--email%22%2C%22%24%7Binput%3Aemail%7D%22%2C%22--api-key%22%2C%22%24%7Binput%3AapiKey%7D%22%5D%7D)
|
|
4
5
|
|
|
5
|
-
|
|
6
|
-
[<img alt="Install in VS Code (npx)" src="https://img.shields.io/badge/Install%20in%20VS%20Code-0098FF?style=for-the-badge&logo=visualstudiocode&logoColor=white">](https://insiders.vscode.dev/redirect?url=vscode%3Amcp%2Finstall%3F%7B%22name%22%3A%22upstash-mcp%22%2C%22command%22%3A%22npx%22%2C%22args%22%3A%5B%22-y%22%2C%22%40upstash%2Fmcp-server%40latest%22%2C%22--email%22%2C%22YOUR_EMAIL%22%2C%22--api-key%22%2C%22YOUR_API_KEY%22%5D%7D)
|
|
6
|
+
The Upstash MCP server lets your agent manage and debug your Upstash resources directly, across **Redis**, **QStash**, **Workflow**, and **[Upstash Box](https://upstash.com/docs/box/overall/quickstart)**.
|
|
7
7
|
|
|
8
|
-
[!
|
|
8
|
+
> [!TIP]
|
|
9
|
+
> For most workflows, prefer installing the [Upstash Skill](https://upstash.com/docs/agent-resources/skills) and letting your agent drive [`@upstash/cli`](https://upstash.com/docs/agent-resources/cli) over running the MCP server.
|
|
9
10
|
|
|
10
|
-
|
|
11
|
+
## Quickstart
|
|
11
12
|
|
|
12
|
-
|
|
13
|
+
You'll need your Upstash account email and an API key — create one at [Upstash Console → Account → API Keys](https://console.upstash.com/account/api).
|
|
13
14
|
|
|
14
|
-
-
|
|
15
|
-
- "List my databases"
|
|
16
|
-
- "List keys starting with "user:" in users-db"
|
|
17
|
-
- "Create a backup"
|
|
18
|
-
- "Give me the spikes in throughput during the last 7 days"
|
|
15
|
+
The Upstash MCP server works with any MCP-compatible client. If your client isn't listed below, check its documentation for how to add a stdio MCP server, then point it at the base command:
|
|
19
16
|
|
|
20
|
-
|
|
17
|
+
```bash
|
|
18
|
+
npx -y @upstash/mcp-server@latest --email YOUR_EMAIL --api-key YOUR_API_KEY
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
> [!NOTE]
|
|
22
|
+
> Readonly API keys are supported. When the server starts with one, it automatically disables every tool that would modify state (creating databases, deleting backups, retrying workflows, etc.). Your agent can still read and query your account, but it cannot make changes.
|
|
23
|
+
|
|
24
|
+
<details>
|
|
25
|
+
<summary><b>Claude Code</b></summary>
|
|
26
|
+
|
|
27
|
+
Run this command in your terminal. See the [Claude Code MCP docs](https://docs.anthropic.com/en/docs/claude-code/mcp) for more info.
|
|
28
|
+
|
|
29
|
+
```sh
|
|
30
|
+
claude mcp add --scope user upstash -- npx -y @upstash/mcp-server@latest --email YOUR_EMAIL --api-key YOUR_API_KEY
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
</details>
|
|
34
|
+
|
|
35
|
+
<details>
|
|
36
|
+
<summary><b>Cursor</b></summary>
|
|
21
37
|
|
|
22
|
-
|
|
38
|
+
Go to `Settings` → `Cursor Settings` → `MCP` → `Add new global MCP server`.
|
|
23
39
|
|
|
24
|
-
|
|
40
|
+
Pasting the following configuration into your Cursor `~/.cursor/mcp.json` file is the recommended approach. You may also install in a specific project by creating `.cursor/mcp.json` in your project folder. See the [Cursor MCP docs](https://docs.cursor.com/context/model-context-protocol) for more info.
|
|
25
41
|
|
|
26
|
-
-
|
|
27
|
-
- **API Key**: Get it from [Upstash Console → Account → API Keys](https://console.upstash.com/account/api)
|
|
42
|
+
Since Cursor 1.0, you can click the install button below for instant one-click installation. Replace `YOUR_EMAIL` and `YOUR_API_KEY` with your real values before confirming.
|
|
28
43
|
|
|
29
|
-
|
|
44
|
+
[](https://cursor.com/en/install-mcp?name=upstash&config=eyJjb21tYW5kIjoibnB4IiwiYXJncyI6WyIteSIsIkB1cHN0YXNoL21jcC1zZXJ2ZXJAbGF0ZXN0IiwiLS1lbWFpbCIsIllPVVJfRU1BSUwiLCItLWFwaS1rZXkiLCJZT1VSX0FQSV9LRVkiXX0%3D)
|
|
30
45
|
|
|
31
46
|
```json
|
|
32
47
|
{
|
|
@@ -46,175 +61,329 @@ Add this to your MCP client configuration:
|
|
|
46
61
|
}
|
|
47
62
|
```
|
|
48
63
|
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
Start your MCP server with the `http` transport:
|
|
64
|
+
</details>
|
|
52
65
|
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
```
|
|
66
|
+
<details>
|
|
67
|
+
<summary><b>Windsurf</b></summary>
|
|
56
68
|
|
|
57
|
-
|
|
69
|
+
Add this to your Windsurf MCP config file at `~/.codeium/windsurf/mcp_config.json`. See the [Windsurf MCP docs](https://docs.windsurf.com/windsurf/cascade/mcp) for more info.
|
|
58
70
|
|
|
59
71
|
```json
|
|
60
72
|
{
|
|
61
73
|
"mcpServers": {
|
|
62
74
|
"upstash": {
|
|
63
|
-
"
|
|
75
|
+
"command": "npx",
|
|
76
|
+
"args": [
|
|
77
|
+
"-y",
|
|
78
|
+
"@upstash/mcp-server@latest",
|
|
79
|
+
"--email",
|
|
80
|
+
"YOUR_EMAIL",
|
|
81
|
+
"--api-key",
|
|
82
|
+
"YOUR_API_KEY"
|
|
83
|
+
]
|
|
64
84
|
}
|
|
65
85
|
}
|
|
66
86
|
}
|
|
67
87
|
```
|
|
68
88
|
|
|
89
|
+
</details>
|
|
90
|
+
|
|
69
91
|
<details>
|
|
70
|
-
<summary><
|
|
92
|
+
<summary><b>OpenCode</b></summary>
|
|
71
93
|
|
|
72
|
-
|
|
94
|
+
Add this to your OpenCode configuration file (`~/.config/opencode/opencode.json` or a project-level `opencode.json`). See the [OpenCode MCP docs](https://opencode.ai/docs/mcp-servers) for more info.
|
|
73
95
|
|
|
74
|
-
|
|
96
|
+
```json
|
|
97
|
+
{
|
|
98
|
+
"mcp": {
|
|
99
|
+
"upstash": {
|
|
100
|
+
"type": "local",
|
|
101
|
+
"command": [
|
|
102
|
+
"npx",
|
|
103
|
+
"-y",
|
|
104
|
+
"@upstash/mcp-server@latest",
|
|
105
|
+
"--email",
|
|
106
|
+
"YOUR_EMAIL",
|
|
107
|
+
"--api-key",
|
|
108
|
+
"YOUR_API_KEY"
|
|
109
|
+
],
|
|
110
|
+
"enabled": true
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
```
|
|
75
115
|
|
|
76
|
-
|
|
77
|
-
FROM node:18-alpine
|
|
116
|
+
</details>
|
|
78
117
|
|
|
79
|
-
|
|
118
|
+
<details>
|
|
119
|
+
<summary><b>OpenAI Codex</b></summary>
|
|
120
|
+
|
|
121
|
+
See the [OpenAI Codex MCP docs](https://developers.openai.com/codex/mcp) for more info.
|
|
80
122
|
|
|
81
|
-
|
|
82
|
-
RUN npm install -g @upstash/mcp-server
|
|
123
|
+
**Using the CLI**
|
|
83
124
|
|
|
84
|
-
|
|
85
|
-
|
|
125
|
+
```sh
|
|
126
|
+
codex mcp add upstash -- npx -y @upstash/mcp-server@latest --email YOUR_EMAIL --api-key YOUR_API_KEY
|
|
127
|
+
```
|
|
86
128
|
|
|
87
|
-
|
|
88
|
-
CMD ["upstash-mcp-server"]
|
|
89
|
-
```
|
|
129
|
+
**Manual configuration**
|
|
90
130
|
|
|
91
|
-
|
|
131
|
+
Add this to your Codex config file (`~/.codex/config.toml` or `.codex/config.toml`):
|
|
132
|
+
|
|
133
|
+
```toml
|
|
134
|
+
[mcp_servers.upstash]
|
|
135
|
+
command = "npx"
|
|
136
|
+
args = ["-y", "@upstash/mcp-server@latest", "--email", "YOUR_EMAIL", "--api-key", "YOUR_API_KEY"]
|
|
137
|
+
startup_timeout_sec = 20
|
|
138
|
+
```
|
|
92
139
|
|
|
93
|
-
|
|
140
|
+
> [!NOTE]
|
|
141
|
+
> If you see startup timeout errors, increase `startup_timeout_sec` to `40`.
|
|
94
142
|
|
|
95
|
-
|
|
96
|
-
docker build -t upstash-mcp .
|
|
97
|
-
```
|
|
143
|
+
</details>
|
|
98
144
|
|
|
99
|
-
|
|
145
|
+
<details>
|
|
146
|
+
<summary><b>VS Code</b></summary>
|
|
100
147
|
|
|
101
|
-
|
|
148
|
+
Click to install — VS Code will prompt for your email and API key (stored in its secret storage):
|
|
102
149
|
|
|
103
|
-
|
|
150
|
+
[<img alt="Install in VS Code" src="https://img.shields.io/badge/Install%20in%20VS%20Code-0098FF?style=for-the-badge&logo=visualstudiocode&logoColor=white" />](https://insiders.vscode.dev/redirect/mcp/install?name=upstash&inputs=%5B%7B%22id%22%3A%22email%22%2C%22type%22%3A%22promptString%22%2C%22description%22%3A%22Upstash%20email%22%7D%2C%7B%22id%22%3A%22apiKey%22%2C%22type%22%3A%22promptString%22%2C%22description%22%3A%22Upstash%20API%20key%22%2C%22password%22%3Atrue%7D%5D&config=%7B%22command%22%3A%22npx%22%2C%22args%22%3A%5B%22-y%22%2C%22%40upstash%2Fmcp-server%40latest%22%2C%22--email%22%2C%22%24%7Binput%3Aemail%7D%22%2C%22--api-key%22%2C%22%24%7Binput%3AapiKey%7D%22%5D%7D)
|
|
151
|
+
[<img alt="Install in VS Code Insiders" src="https://img.shields.io/badge/Install%20in%20VS%20Code%20Insiders-24bfa5?style=for-the-badge&logo=visualstudiocode&logoColor=white" />](https://insiders.vscode.dev/redirect/mcp/install?name=upstash&inputs=%5B%7B%22id%22%3A%22email%22%2C%22type%22%3A%22promptString%22%2C%22description%22%3A%22Upstash%20email%22%7D%2C%7B%22id%22%3A%22apiKey%22%2C%22type%22%3A%22promptString%22%2C%22description%22%3A%22Upstash%20API%20key%22%2C%22password%22%3Atrue%7D%5D&config=%7B%22command%22%3A%22npx%22%2C%22args%22%3A%5B%22-y%22%2C%22%40upstash%2Fmcp-server%40latest%22%2C%22--email%22%2C%22%24%7Binput%3Aemail%7D%22%2C%22--api-key%22%2C%22%24%7Binput%3AapiKey%7D%22%5D%7D&quality=insiders)
|
|
104
152
|
|
|
105
|
-
|
|
106
|
-
{
|
|
107
|
-
"mcpServers": {
|
|
108
|
-
"upstash": {
|
|
109
|
-
"command": "docker",
|
|
110
|
-
"args": [
|
|
111
|
-
"run",
|
|
112
|
-
"-i",
|
|
113
|
-
"--rm",
|
|
114
|
-
"-e",
|
|
115
|
-
"UPSTASH_EMAIL=YOUR_EMAIL",
|
|
116
|
-
"-e",
|
|
117
|
-
"UPSTASH_API_KEY=YOUR_API_KEY",
|
|
118
|
-
"upstash-mcp"
|
|
119
|
-
]
|
|
120
|
-
}
|
|
121
|
-
}
|
|
122
|
-
}
|
|
123
|
-
```
|
|
153
|
+
Or add this to `.vscode/mcp.json` (or your user `mcp.servers` setting). Using `inputs` with `promptString` means your API key is prompted once and kept in VS Code's secret storage instead of sitting in the config file. See the [VS Code MCP docs](https://code.visualstudio.com/docs/copilot/chat/mcp-servers) for more info.
|
|
124
154
|
|
|
125
|
-
|
|
155
|
+
```json
|
|
156
|
+
{
|
|
157
|
+
"inputs": [
|
|
158
|
+
{ "type": "promptString", "id": "email", "description": "Upstash email" },
|
|
159
|
+
{ "type": "promptString", "id": "apiKey", "description": "Upstash API key", "password": true }
|
|
160
|
+
],
|
|
161
|
+
"servers": {
|
|
162
|
+
"upstash": {
|
|
163
|
+
"type": "stdio",
|
|
164
|
+
"command": "npx",
|
|
165
|
+
"args": [
|
|
166
|
+
"-y",
|
|
167
|
+
"@upstash/mcp-server@latest",
|
|
168
|
+
"--email",
|
|
169
|
+
"${input:email}",
|
|
170
|
+
"--api-key",
|
|
171
|
+
"${input:apiKey}"
|
|
172
|
+
]
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
```
|
|
126
177
|
|
|
127
178
|
</details>
|
|
128
179
|
|
|
129
|
-
|
|
180
|
+
<details>
|
|
181
|
+
<summary><b>Google Antigravity</b></summary>
|
|
130
182
|
|
|
131
|
-
|
|
132
|
-
- [Upstash API key](https://upstash.com/docs/devops/developer-api) - You can create one from [here](https://console.upstash.com/account/api).
|
|
183
|
+
Add this to your Antigravity MCP config. See the [Antigravity MCP docs](https://antigravity.google/docs/mcp) for more info.
|
|
133
184
|
|
|
134
|
-
|
|
185
|
+
```json
|
|
186
|
+
{
|
|
187
|
+
"mcpServers": {
|
|
188
|
+
"upstash": {
|
|
189
|
+
"command": "npx",
|
|
190
|
+
"args": [
|
|
191
|
+
"-y",
|
|
192
|
+
"@upstash/mcp-server@latest",
|
|
193
|
+
"--email",
|
|
194
|
+
"YOUR_EMAIL",
|
|
195
|
+
"--api-key",
|
|
196
|
+
"YOUR_API_KEY"
|
|
197
|
+
]
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
```
|
|
135
202
|
|
|
136
|
-
|
|
203
|
+
</details>
|
|
137
204
|
|
|
138
|
-
|
|
205
|
+
<details>
|
|
206
|
+
<summary><b>Claude Desktop</b></summary>
|
|
139
207
|
|
|
140
|
-
|
|
208
|
+
Open Claude Desktop's developer settings and edit `claude_desktop_config.json`. See the [Claude Desktop MCP docs](https://modelcontextprotocol.io/quickstart/user) for more info.
|
|
141
209
|
|
|
142
|
-
|
|
210
|
+
```json
|
|
211
|
+
{
|
|
212
|
+
"mcpServers": {
|
|
213
|
+
"upstash": {
|
|
214
|
+
"command": "npx",
|
|
215
|
+
"args": [
|
|
216
|
+
"-y",
|
|
217
|
+
"@upstash/mcp-server@latest",
|
|
218
|
+
"--email",
|
|
219
|
+
"YOUR_EMAIL",
|
|
220
|
+
"--api-key",
|
|
221
|
+
"YOUR_API_KEY"
|
|
222
|
+
]
|
|
223
|
+
}
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
```
|
|
143
227
|
|
|
144
|
-
|
|
228
|
+
</details>
|
|
145
229
|
|
|
146
|
-
|
|
230
|
+
<details>
|
|
231
|
+
<summary><b>Gemini CLI</b></summary>
|
|
147
232
|
|
|
148
|
-
|
|
233
|
+
Open the Gemini CLI settings file at `~/.gemini/settings.json` and add Upstash to `mcpServers`. See [Gemini CLI Configuration](https://google-gemini.github.io/gemini-cli/docs/tools/mcp-server.html) for details.
|
|
149
234
|
|
|
150
|
-
|
|
235
|
+
```json
|
|
236
|
+
{
|
|
237
|
+
"mcpServers": {
|
|
238
|
+
"upstash": {
|
|
239
|
+
"command": "npx",
|
|
240
|
+
"args": [
|
|
241
|
+
"-y",
|
|
242
|
+
"@upstash/mcp-server@latest",
|
|
243
|
+
"--email",
|
|
244
|
+
"YOUR_EMAIL",
|
|
245
|
+
"--api-key",
|
|
246
|
+
"YOUR_API_KEY"
|
|
247
|
+
]
|
|
248
|
+
}
|
|
249
|
+
}
|
|
250
|
+
}
|
|
251
|
+
```
|
|
252
|
+
|
|
253
|
+
</details>
|
|
254
|
+
|
|
255
|
+
## Example prompts
|
|
151
256
|
|
|
152
257
|
### Redis
|
|
153
258
|
|
|
154
|
-
-
|
|
155
|
-
-
|
|
156
|
-
-
|
|
157
|
-
-
|
|
158
|
-
-
|
|
159
|
-
- `redis_database_list_backups`
|
|
160
|
-
- `redis_database_list_databases`
|
|
161
|
-
- `redis_database_reset_password`
|
|
162
|
-
- `redis_database_restore_backup`
|
|
163
|
-
- `redis_database_run_multiple_redis_commands`
|
|
164
|
-
- `redis_database_run_single_redis_command`
|
|
165
|
-
- `redis_database_set_daily_backup`
|
|
166
|
-
- `redis_database_update_regions`
|
|
167
|
-
- `redis_database_get_usage_last_5_days`
|
|
168
|
-
- `redis_database_get_stats`
|
|
259
|
+
- _"Create a new Redis database in us-east-1"_
|
|
260
|
+
- _"List my databases sorted by memory usage"_
|
|
261
|
+
- _"Update the user schema by pulling from Redis"_
|
|
262
|
+
- _"Create a backup of this db, then clear it"_
|
|
263
|
+
- _"Show me throughput spikes during the last 7 days"_
|
|
169
264
|
|
|
170
|
-
|
|
265
|
+
### QStash & Workflow
|
|
171
266
|
|
|
172
|
-
|
|
267
|
+
- _"Check the QStash logs and figure out why my webhook keeps failing"_
|
|
268
|
+
- _"Find failed workflow runs for user `@admin` today"_
|
|
269
|
+
- _"Retry the failed workflow run that started 2 hours ago"_
|
|
270
|
+
- _"Summarize what's in the DLQ right now, grouped by error type"_
|
|
271
|
+
- _"Pause the schedules that are throwing errors"_
|
|
173
272
|
|
|
174
|
-
|
|
175
|
-
pnpm install
|
|
176
|
-
pnpm run watch
|
|
177
|
-
```
|
|
273
|
+
### Upstash Box
|
|
178
274
|
|
|
179
|
-
|
|
275
|
+
- _"Spin up a Box, clone this repo, and run the tests"_
|
|
276
|
+
- _"Snapshot this Box and create 5 copies from it, assign each one a GitHub issue"_
|
|
277
|
+
- _"My Box keeps failing to start, check the logs and tell me what's wrong"_
|
|
180
278
|
|
|
181
|
-
|
|
279
|
+
## Upstash Box API key (optional)
|
|
182
280
|
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
281
|
+
For the MCP to interact with [Upstash Box](https://upstash.com/docs/box/overall/quickstart), the agent needs your Box API key. By default you have to paste it into the chat (or keep it in a `.env`) every time the agent runs a Box tool. To avoid this, you can wire the key into the MCP setup itself so the server picks it up automatically on startup.
|
|
282
|
+
|
|
283
|
+
You can pass it in two ways.
|
|
284
|
+
|
|
285
|
+
**CLI flag**
|
|
286
|
+
|
|
287
|
+
```json
|
|
288
|
+
{
|
|
289
|
+
"mcpServers": {
|
|
290
|
+
"upstash": {
|
|
291
|
+
"command": "npx",
|
|
292
|
+
"args": [
|
|
293
|
+
"-y",
|
|
294
|
+
"@upstash/mcp-server@latest",
|
|
295
|
+
"--email",
|
|
296
|
+
"YOUR_EMAIL",
|
|
297
|
+
"--api-key",
|
|
298
|
+
"YOUR_API_KEY",
|
|
299
|
+
"--box-api-key",
|
|
300
|
+
"YOUR_BOX_API_KEY"
|
|
301
|
+
]
|
|
302
|
+
}
|
|
303
|
+
}
|
|
304
|
+
}
|
|
186
305
|
```
|
|
187
306
|
|
|
188
|
-
|
|
307
|
+
**Environment variable**
|
|
308
|
+
|
|
309
|
+
```json
|
|
310
|
+
{
|
|
311
|
+
"mcpServers": {
|
|
312
|
+
"upstash": {
|
|
313
|
+
"command": "npx",
|
|
314
|
+
"args": [
|
|
315
|
+
"-y",
|
|
316
|
+
"@upstash/mcp-server@latest",
|
|
317
|
+
"--email",
|
|
318
|
+
"YOUR_EMAIL",
|
|
319
|
+
"--api-key",
|
|
320
|
+
"YOUR_API_KEY"
|
|
321
|
+
],
|
|
322
|
+
"env": {
|
|
323
|
+
"UPSTASH_BOX_API_KEY": "YOUR_BOX_API_KEY"
|
|
324
|
+
}
|
|
325
|
+
}
|
|
326
|
+
}
|
|
327
|
+
}
|
|
328
|
+
```
|
|
189
329
|
|
|
190
|
-
|
|
330
|
+
## Debugging
|
|
191
331
|
|
|
192
|
-
|
|
332
|
+
If the server is misbehaving or a tool keeps failing, enable verbose logging with the `--debug` flag:
|
|
193
333
|
|
|
194
334
|
```json
|
|
195
335
|
{
|
|
196
336
|
"mcpServers": {
|
|
197
337
|
"upstash": {
|
|
198
|
-
"command": "
|
|
338
|
+
"command": "npx",
|
|
199
339
|
"args": [
|
|
200
|
-
"
|
|
201
|
-
"
|
|
340
|
+
"-y",
|
|
341
|
+
"@upstash/mcp-server@latest",
|
|
202
342
|
"--email",
|
|
203
|
-
"
|
|
343
|
+
"YOUR_EMAIL",
|
|
204
344
|
"--api-key",
|
|
205
|
-
"
|
|
345
|
+
"YOUR_API_KEY",
|
|
346
|
+
"--debug"
|
|
206
347
|
]
|
|
207
348
|
}
|
|
208
349
|
}
|
|
209
350
|
}
|
|
210
351
|
```
|
|
211
352
|
|
|
212
|
-
|
|
353
|
+
Every internal event is then written to **stderr**, which your MCP client surfaces in its own log viewer. Share the relevant snippet when reporting an issue on [GitHub](https://github.com/upstash/mcp/issues).
|
|
354
|
+
|
|
355
|
+
## Telemetry
|
|
356
|
+
|
|
357
|
+
The server sends anonymous diagnostic info to Upstash with each request: the MCP server SDK version, your runtime version (Node, Bun, etc.), and basic platform info (OS and architecture). **No account data, tool arguments, or results are collected.** To opt out, add `--disable-telemetry` to the args.
|
|
213
358
|
|
|
214
|
-
|
|
359
|
+
## Development
|
|
360
|
+
|
|
361
|
+
Clone the project and run:
|
|
362
|
+
|
|
363
|
+
```bash
|
|
364
|
+
bun i
|
|
365
|
+
bun run watch
|
|
366
|
+
```
|
|
367
|
+
|
|
368
|
+
This continuously builds the project and watches for changes.
|
|
369
|
+
|
|
370
|
+
For testing, create a `.env` file in the project root:
|
|
371
|
+
|
|
372
|
+
```bash
|
|
373
|
+
UPSTASH_EMAIL=<UPSTASH_EMAIL>
|
|
374
|
+
UPSTASH_API_KEY=<UPSTASH_API_KEY>
|
|
375
|
+
# Optional, for Box tools:
|
|
376
|
+
UPSTASH_BOX_API_KEY=<UPSTASH_BOX_API_KEY>
|
|
377
|
+
```
|
|
378
|
+
|
|
379
|
+
To install the local MCP server into Claude Code:
|
|
380
|
+
|
|
381
|
+
```bash
|
|
382
|
+
claude mcp add --transport stdio upstash -- bun --watch dist/index.js --debug
|
|
383
|
+
```
|
|
215
384
|
|
|
216
|
-
To
|
|
385
|
+
To tail logs from the MCP server in real time:
|
|
217
386
|
|
|
218
387
|
```bash
|
|
219
|
-
|
|
388
|
+
bun run logs
|
|
220
389
|
```
|