@dashtray/mcp-server 1.0.0 → 1.0.1
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 +11 -39
- package/dist/index.js +12 -0
- package/package.json +8 -13
package/README.md
CHANGED
|
@@ -21,15 +21,6 @@ npm install @dashtray/mcp-server
|
|
|
21
21
|
npx @dashtray/mcp-server
|
|
22
22
|
```
|
|
23
23
|
|
|
24
|
-
### Option 2: From source
|
|
25
|
-
|
|
26
|
-
```bash
|
|
27
|
-
git clone https://github.com/bhupeshpr25/dashtray.git
|
|
28
|
-
cd dashtray/packages/mcp-server
|
|
29
|
-
npm install
|
|
30
|
-
npm run build
|
|
31
|
-
```
|
|
32
|
-
|
|
33
24
|
## Setup
|
|
34
25
|
|
|
35
26
|
### 1. Get Your API Key
|
|
@@ -38,7 +29,7 @@ npm run build
|
|
|
38
29
|
2. Go to **Settings → Integrations → API Keys**
|
|
39
30
|
3. Tap **Generate New Key**
|
|
40
31
|
4. Give it a name (e.g., "Claude Desktop")
|
|
41
|
-
5. **Copy the full key** (starts with `sk_test_`
|
|
32
|
+
5. **Copy the full key** (starts with `sk_test_`)
|
|
42
33
|
6. Save it securely - you won't see it again
|
|
43
34
|
|
|
44
35
|
### 2. Set Environment Variables
|
|
@@ -70,24 +61,6 @@ Edit `~/Library/Application Support/Claude/claude_desktop_config.json` (macOS) o
|
|
|
70
61
|
}
|
|
71
62
|
}
|
|
72
63
|
```
|
|
73
|
-
|
|
74
|
-
Or if installed from source, point `command` at `node` with the built path:
|
|
75
|
-
|
|
76
|
-
```json
|
|
77
|
-
{
|
|
78
|
-
"mcpServers": {
|
|
79
|
-
"dashtray": {
|
|
80
|
-
"command": "node",
|
|
81
|
-
"args": ["/path/to/dashtray/packages/mcp-server/dist/index.js"],
|
|
82
|
-
"env": {
|
|
83
|
-
"DASHTRAY_API_KEY": "sk_test_your_key_here",
|
|
84
|
-
"DASHTRAY_API_ENDPOINT": "https://api.dashtray.app"
|
|
85
|
-
}
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
```
|
|
90
|
-
|
|
91
64
|
Then restart Claude Desktop.
|
|
92
65
|
|
|
93
66
|
#### Cline
|
|
@@ -132,8 +105,8 @@ const server = spawn("node", ["/path/to/dashtray/packages/mcp-server/dist/index.
|
|
|
132
105
|
```typescript
|
|
133
106
|
// The send_notification tool accepts:
|
|
134
107
|
{
|
|
135
|
-
"title": "Build Passed", // Required: notification title (max
|
|
136
|
-
"body": "Production build #42 completed in 3m 21s" // Required: details (max
|
|
108
|
+
"title": "Build Passed", // Required: notification title (max 200 chars)
|
|
109
|
+
"body": "Production build #42 completed in 3m 21s" // Required: details (max 500 chars)
|
|
137
110
|
}
|
|
138
111
|
```
|
|
139
112
|
|
|
@@ -172,8 +145,8 @@ Body: Dataset processed. 1.2M records. Anomalies: 3. Report: https://...
|
|
|
172
145
|
**Inputs:**
|
|
173
146
|
| Field | Type | Required | Max Length | Notes |
|
|
174
147
|
|-------|------|----------|-----------|-------|
|
|
175
|
-
| `title` | string | Yes |
|
|
176
|
-
| `body` | string | Yes |
|
|
148
|
+
| `title` | string | Yes | 200 | Notification title. Auto-prefixed with "MCP - " |
|
|
149
|
+
| `body` | string | Yes | 500 | Notification details/body |
|
|
177
150
|
|
|
178
151
|
**Outputs:**
|
|
179
152
|
```json
|
|
@@ -186,7 +159,7 @@ Body: Dataset processed. 1.2M records. Anomalies: 3. Report: https://...
|
|
|
186
159
|
**Errors:**
|
|
187
160
|
- `DASHTRAY_API_KEY not set` - Missing environment variable
|
|
188
161
|
- `Invalid input: title is required` - Missing or empty title
|
|
189
|
-
- `Invalid input: body must be
|
|
162
|
+
- `Invalid input: body must be 500 chars or less` - Body too long
|
|
190
163
|
- `API error: 401 Unauthorized` - Invalid API key
|
|
191
164
|
- `API error: 429 Too Many Requests` - Rate limit exceeded
|
|
192
165
|
- `API error: 500 Internal Server Error` - Server error
|
|
@@ -200,10 +173,9 @@ Body: Dataset processed. 1.2M records. Anomalies: 3. Report: https://...
|
|
|
200
173
|
| `DASHTRAY_API_KEY` | Yes | - | API key from Dashtray app |
|
|
201
174
|
| `DASHTRAY_API_ENDPOINT` | No | https://api.dashtray.app | Dashtray API URL (self-hosted or cloud) |
|
|
202
175
|
|
|
203
|
-
### API Key
|
|
176
|
+
### API Key Format
|
|
204
177
|
|
|
205
|
-
|
|
206
|
-
- `sk_live_*` - Live key (production, subject to rate limits)
|
|
178
|
+
All keys are generated with the `sk_test_` prefix followed by 48 hex characters, regardless of plan.
|
|
207
179
|
|
|
208
180
|
## Rate Limiting
|
|
209
181
|
|
|
@@ -211,8 +183,8 @@ Notifications are rate-limited per-plan:
|
|
|
211
183
|
|
|
212
184
|
| Plan | Limit | Window |
|
|
213
185
|
|------|-------|--------|
|
|
214
|
-
| Starter | 100/min | 1
|
|
215
|
-
| Pro | 1000/min | 1
|
|
186
|
+
| Starter | 100/min | Fixed 1-minute window |
|
|
187
|
+
| Pro | 1000/min | Fixed 1-minute window |
|
|
216
188
|
|
|
217
189
|
When rate limit is exceeded, the API returns `429 Too Many Requests`.
|
|
218
190
|
|
|
@@ -293,7 +265,7 @@ Then send a test request (requires MCP client like Claude Desktop).
|
|
|
293
265
|
## Support
|
|
294
266
|
|
|
295
267
|
- **Dashtray App Issues:** Settings → Help & Support
|
|
296
|
-
- **MCP Server Issues:**
|
|
268
|
+
- **MCP Server Issues:** support@dashtray.app
|
|
297
269
|
- **API Questions:** See [API Reference](https://docs.dashtray.app/api-reference/overview)
|
|
298
270
|
|
|
299
271
|
## License
|
package/dist/index.js
CHANGED
|
@@ -39,6 +39,11 @@ const NotificationSchema = z.object({
|
|
|
39
39
|
.string()
|
|
40
40
|
.min(1, "Body is required")
|
|
41
41
|
.max(500, "Body must be 500 chars or less"),
|
|
42
|
+
source: z
|
|
43
|
+
.string()
|
|
44
|
+
.min(1)
|
|
45
|
+
.max(40, "Source must be 40 chars or less")
|
|
46
|
+
.optional(),
|
|
42
47
|
});
|
|
43
48
|
/**
|
|
44
49
|
* Get API credentials from environment
|
|
@@ -67,6 +72,7 @@ async function sendNotification(notification, apiKey, endpoint) {
|
|
|
67
72
|
body: JSON.stringify({
|
|
68
73
|
title: notification.title,
|
|
69
74
|
body: notification.body,
|
|
75
|
+
source: notification.source,
|
|
70
76
|
}),
|
|
71
77
|
});
|
|
72
78
|
if (!response.ok) {
|
|
@@ -128,6 +134,12 @@ async function main() {
|
|
|
128
134
|
"E2E tests failed on 3 files. See logs for details.",
|
|
129
135
|
],
|
|
130
136
|
},
|
|
137
|
+
source: {
|
|
138
|
+
type: "string",
|
|
139
|
+
description: "Name of the app/integration that sent this (max 40 chars, e.g. 'OpenCode', 'CI'). " +
|
|
140
|
+
"Notifications with the same source are grouped under one alert named 'MCP - <source>' in the app. " +
|
|
141
|
+
"Omit to group on the generic 'MCP & API' alert.",
|
|
142
|
+
},
|
|
131
143
|
},
|
|
132
144
|
required: ["title", "body"],
|
|
133
145
|
},
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dashtray/mcp-server",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.1",
|
|
4
4
|
"description": "Dashtray MCP Server - send notifications to your phone via MCP agents",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -18,6 +18,12 @@
|
|
|
18
18
|
"dist",
|
|
19
19
|
"README.md"
|
|
20
20
|
],
|
|
21
|
+
"scripts": {
|
|
22
|
+
"build": "tsc",
|
|
23
|
+
"dev": "node dist/index.js",
|
|
24
|
+
"watch": "tsc --watch",
|
|
25
|
+
"prepublishOnly": "npm run build"
|
|
26
|
+
},
|
|
21
27
|
"keywords": [
|
|
22
28
|
"mcp",
|
|
23
29
|
"model-context-protocol",
|
|
@@ -27,16 +33,10 @@
|
|
|
27
33
|
],
|
|
28
34
|
"author": "Dashtray",
|
|
29
35
|
"license": "MIT",
|
|
30
|
-
"repository": {
|
|
31
|
-
"type": "git",
|
|
32
|
-
"url": "git+https://github.com/bhupeshpr25/dashtray.git",
|
|
33
|
-
"directory": "packages/mcp-server"
|
|
34
|
-
},
|
|
35
36
|
"homepage": "https://dashtray.app",
|
|
36
|
-
"bugs": "https://github.com/bhupeshpr25/dashtray/issues",
|
|
37
37
|
"dependencies": {
|
|
38
38
|
"@modelcontextprotocol/sdk": "^1.0.0",
|
|
39
|
-
"zod": "
|
|
39
|
+
"zod": "catalog:"
|
|
40
40
|
},
|
|
41
41
|
"devDependencies": {
|
|
42
42
|
"@types/node": "^24.3.0",
|
|
@@ -44,10 +44,5 @@
|
|
|
44
44
|
},
|
|
45
45
|
"engines": {
|
|
46
46
|
"node": ">=18.0.0"
|
|
47
|
-
},
|
|
48
|
-
"scripts": {
|
|
49
|
-
"build": "tsc",
|
|
50
|
-
"dev": "node dist/index.js",
|
|
51
|
-
"watch": "tsc --watch"
|
|
52
47
|
}
|
|
53
48
|
}
|