@vybit/mcp-server 1.1.0
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 +284 -0
- package/dist/__tests__/mcp-integration.test.d.ts +11 -0
- package/dist/__tests__/mcp-integration.test.d.ts.map +1 -0
- package/dist/__tests__/mcp-integration.test.js +464 -0
- package/dist/__tests__/mcp-integration.test.js.map +1 -0
- package/dist/__tests__/mcp-tools.test.d.ts +11 -0
- package/dist/__tests__/mcp-tools.test.d.ts.map +1 -0
- package/dist/__tests__/mcp-tools.test.js +626 -0
- package/dist/__tests__/mcp-tools.test.js.map +1 -0
- package/dist/index.d.ts +9 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +981 -0
- package/dist/index.js.map +1 -0
- package/package.json +55 -0
package/README.md
ADDED
|
@@ -0,0 +1,284 @@
|
|
|
1
|
+
# @vybit/mcp-server
|
|
2
|
+
|
|
3
|
+
Model Context Protocol (MCP) server for the Vybit Developer API. Enables AI assistants like Claude to interact with your Vybit notifications programmatically.
|
|
4
|
+
|
|
5
|
+
[](https://www.npmjs.com/package/@vybit/mcp-server)
|
|
6
|
+
[](https://opensource.org/licenses/MIT)
|
|
7
|
+
|
|
8
|
+
## What is MCP?
|
|
9
|
+
|
|
10
|
+
[Model Context Protocol (MCP)](https://modelcontextprotocol.io) is an open protocol that standardizes how AI applications integrate with external data sources and tools. Think of it as a universal connector between AI assistants and your services.
|
|
11
|
+
|
|
12
|
+
## Features
|
|
13
|
+
|
|
14
|
+
This MCP server provides AI assistants with **full parity** with the Vybit Developer API:
|
|
15
|
+
|
|
16
|
+
- **Manage Vybits**: Create, read, update, delete, and list owned vybits
|
|
17
|
+
- **Trigger Notifications**: Send notifications with custom messages, images, and links
|
|
18
|
+
- **Discover Public Vybits**: Browse and search public vybits created by others
|
|
19
|
+
- **Manage Subscriptions**: Subscribe to public vybits, view subscriptions, and unsubscribe
|
|
20
|
+
- **Browse Sounds**: Search and explore available notification sounds
|
|
21
|
+
- **View Notification Logs**: See notification history for vybits and subscriptions
|
|
22
|
+
- **Manage Access (Peeps)**: Invite people to private vybits and manage permissions
|
|
23
|
+
- **Monitor Usage**: Check API usage and limits
|
|
24
|
+
|
|
25
|
+
## Installation
|
|
26
|
+
|
|
27
|
+
```bash
|
|
28
|
+
npm install -g @vybit/mcp-server
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
Or install locally in your project:
|
|
32
|
+
|
|
33
|
+
```bash
|
|
34
|
+
npm install @vybit/mcp-server
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
## Setup
|
|
38
|
+
|
|
39
|
+
### 1. Get Your API Key
|
|
40
|
+
|
|
41
|
+
1. Sign up at [developer.vybit.net](https://developer.vybit.net)
|
|
42
|
+
2. Navigate to the Developer API section
|
|
43
|
+
3. Copy your API key
|
|
44
|
+
|
|
45
|
+
### 2. Configure Your MCP Client
|
|
46
|
+
|
|
47
|
+
#### Claude Desktop
|
|
48
|
+
|
|
49
|
+
Add to your Claude Desktop configuration file:
|
|
50
|
+
|
|
51
|
+
**MacOS**: `~/Library/Application Support/Claude/claude_desktop_config.json`
|
|
52
|
+
**Windows**: `%APPDATA%\Claude\claude_desktop_config.json`
|
|
53
|
+
|
|
54
|
+
```json
|
|
55
|
+
{
|
|
56
|
+
"mcpServers": {
|
|
57
|
+
"vybit": {
|
|
58
|
+
"command": "npx",
|
|
59
|
+
"args": ["-y", "@vybit/mcp-server"],
|
|
60
|
+
"env": {
|
|
61
|
+
"VYBIT_API_KEY": "your-api-key-here"
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
For development/testing environments, you can override the API URL:
|
|
69
|
+
|
|
70
|
+
```json
|
|
71
|
+
{
|
|
72
|
+
"mcpServers": {
|
|
73
|
+
"vybit": {
|
|
74
|
+
"command": "npx",
|
|
75
|
+
"args": ["-y", "@vybit/mcp-server"],
|
|
76
|
+
"env": {
|
|
77
|
+
"VYBIT_API_KEY": "your-dev-api-key",
|
|
78
|
+
"VYBIT_API_URL": "https://dev.api.vybit.net/v1"
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
#### Claude Code / Cline
|
|
86
|
+
|
|
87
|
+
Add to `.claude/mcp.json` in your project:
|
|
88
|
+
|
|
89
|
+
```json
|
|
90
|
+
{
|
|
91
|
+
"mcpServers": {
|
|
92
|
+
"vybit": {
|
|
93
|
+
"command": "npx",
|
|
94
|
+
"args": ["-y", "@vybit/mcp-server"],
|
|
95
|
+
"env": {
|
|
96
|
+
"VYBIT_API_KEY": "your-api-key-here"
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
### 3. Restart Your MCP Client
|
|
104
|
+
|
|
105
|
+
After configuration, restart Claude Desktop or your editor to load the server.
|
|
106
|
+
|
|
107
|
+
## Usage
|
|
108
|
+
|
|
109
|
+
Once configured, you can ask your AI assistant to interact with Vybit:
|
|
110
|
+
|
|
111
|
+
### Example Conversations
|
|
112
|
+
|
|
113
|
+
**Manage Your Vybits:**
|
|
114
|
+
```
|
|
115
|
+
You: Show me all my vybits
|
|
116
|
+
Claude: [Lists all your vybits with details]
|
|
117
|
+
|
|
118
|
+
You: Create a vybit called "Server Alert" with an alarm sound for webhooks
|
|
119
|
+
Claude: [Creates the vybit and shows the configuration]
|
|
120
|
+
|
|
121
|
+
You: Trigger my "Server Alert" vybit with message "CPU usage at 95%"
|
|
122
|
+
Claude: [Sends the notification]
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
**Discover and Subscribe:**
|
|
126
|
+
```
|
|
127
|
+
You: What public vybits are available about weather?
|
|
128
|
+
Claude: [Shows public vybits matching "weather"]
|
|
129
|
+
|
|
130
|
+
You: Subscribe me to the "Daily Weather Updates" vybit
|
|
131
|
+
Claude: [Subscribes and shows subscription details]
|
|
132
|
+
|
|
133
|
+
You: What am I subscribed to?
|
|
134
|
+
Claude: [Lists all your subscriptions]
|
|
135
|
+
|
|
136
|
+
You: Unsubscribe me from "Daily Weather Updates"
|
|
137
|
+
Claude: [Unsubscribes successfully]
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
**View Notification History:**
|
|
141
|
+
```
|
|
142
|
+
You: Show me recent notifications for my Server Alert vybit
|
|
143
|
+
Claude: [Lists notification logs for that vybit]
|
|
144
|
+
|
|
145
|
+
You: What notifications have I received from my subscriptions?
|
|
146
|
+
Claude: [Shows logs from subscribed vybits]
|
|
147
|
+
```
|
|
148
|
+
|
|
149
|
+
**Manage Access:**
|
|
150
|
+
```
|
|
151
|
+
You: Invite friend@example.com to my "Family Updates" vybit
|
|
152
|
+
Claude: [Sends invitation to the email]
|
|
153
|
+
|
|
154
|
+
You: Who has access to my "Family Updates" vybit?
|
|
155
|
+
Claude: [Lists all peeps for that vybit]
|
|
156
|
+
```
|
|
157
|
+
|
|
158
|
+
**Browse Sounds and Check Usage:**
|
|
159
|
+
```
|
|
160
|
+
You: What alert sounds are available?
|
|
161
|
+
Claude: [Lists sounds matching "alert"]
|
|
162
|
+
|
|
163
|
+
You: How much of my API quota have I used today?
|
|
164
|
+
Claude: [Shows current usage and limits]
|
|
165
|
+
```
|
|
166
|
+
|
|
167
|
+
## Available Tools
|
|
168
|
+
|
|
169
|
+
The MCP server exposes **26 tools** to AI assistants, providing full parity with the Vybit Developer API:
|
|
170
|
+
|
|
171
|
+
### Vybit Management (6 tools)
|
|
172
|
+
|
|
173
|
+
- `vybit_list` - List owned vybits with search and pagination
|
|
174
|
+
- `vybit_get` - Get details about a specific owned vybit
|
|
175
|
+
- `vybit_create` - Create a new vybit
|
|
176
|
+
- `vybit_update` - Update an existing vybit (name, description, status, etc.)
|
|
177
|
+
- `vybit_delete` - Delete a vybit
|
|
178
|
+
- `vybit_trigger` - Trigger a notification with optional custom content
|
|
179
|
+
|
|
180
|
+
### Public Vybit Discovery (2 tools)
|
|
181
|
+
|
|
182
|
+
- `vybits_browse_public` - Browse and search public vybits available for subscription
|
|
183
|
+
- `vybit_get_public` - Get details about a public vybit by subscription key
|
|
184
|
+
|
|
185
|
+
### Subscription Management (6 tools)
|
|
186
|
+
|
|
187
|
+
- `subscription_create` - Subscribe to a public vybit using its subscription key
|
|
188
|
+
- `subscriptions_list` - List all vybits you are subscribed to (following)
|
|
189
|
+
- `subscription_get` - Get details about a specific subscription
|
|
190
|
+
- `subscription_update` - Update subscription settings (enable/disable, permissions)
|
|
191
|
+
- `subscription_delete` - Unsubscribe from a vybit
|
|
192
|
+
- `subscription_get_public` - Get public vybit details before subscribing
|
|
193
|
+
|
|
194
|
+
### Sound Management (2 tools)
|
|
195
|
+
|
|
196
|
+
- `sounds_list` - List and search available notification sounds
|
|
197
|
+
- `sound_get` - Get details about a specific sound
|
|
198
|
+
|
|
199
|
+
### Notification Logs (4 tools)
|
|
200
|
+
|
|
201
|
+
- `logs_list` - List all notification logs with search and pagination
|
|
202
|
+
- `log_get` - Get details about a specific log entry
|
|
203
|
+
- `vybit_logs` - List notification logs for a specific owned vybit
|
|
204
|
+
- `subscription_logs` - List notification logs for a specific subscription
|
|
205
|
+
|
|
206
|
+
### Access Control / Peeps (5 tools)
|
|
207
|
+
|
|
208
|
+
- `peeps_list` - List all peeps (people you have shared vybits with)
|
|
209
|
+
- `peep_get` - Get details about a specific peep
|
|
210
|
+
- `peep_create` - Invite someone to a private vybit by email
|
|
211
|
+
- `peep_delete` - Remove a peep (revoke access to a vybit)
|
|
212
|
+
- `vybit_peeps_list` - List all peeps for a specific vybit
|
|
213
|
+
|
|
214
|
+
### Monitoring (1 tool)
|
|
215
|
+
|
|
216
|
+
- `meter_get` - Get API usage and limits (daily/monthly counts and caps)
|
|
217
|
+
|
|
218
|
+
## Environment Variables
|
|
219
|
+
|
|
220
|
+
- `VYBIT_API_KEY` (required) - Your Vybit Developer API key
|
|
221
|
+
- `VYBIT_API_URL` (optional) - Custom API base URL (defaults to `https://api.vybit.net/v1`). Use this for development or testing environments, e.g., `https://dev.api.vybit.net/v1`
|
|
222
|
+
|
|
223
|
+
## Development
|
|
224
|
+
|
|
225
|
+
### Run Locally
|
|
226
|
+
|
|
227
|
+
```bash
|
|
228
|
+
# Clone the repo
|
|
229
|
+
git clone https://gitlab.com/flatirontek/vybit-sdk.git
|
|
230
|
+
cd vybit-sdk/packages/mcp-server
|
|
231
|
+
|
|
232
|
+
# Install dependencies
|
|
233
|
+
npm install
|
|
234
|
+
|
|
235
|
+
# Build
|
|
236
|
+
npm run build
|
|
237
|
+
|
|
238
|
+
# Run the server
|
|
239
|
+
VYBIT_API_KEY=your-key node dist/index.js
|
|
240
|
+
```
|
|
241
|
+
|
|
242
|
+
### Testing with MCP Inspector
|
|
243
|
+
|
|
244
|
+
```bash
|
|
245
|
+
# Install MCP Inspector
|
|
246
|
+
npm install -g @modelcontextprotocol/inspector
|
|
247
|
+
|
|
248
|
+
# Run the server with inspector
|
|
249
|
+
VYBIT_API_KEY=your-key npx @modelcontextprotocol/inspector node dist/index.js
|
|
250
|
+
```
|
|
251
|
+
|
|
252
|
+
## Security Best Practices
|
|
253
|
+
|
|
254
|
+
1. **Never commit API keys** - Always use environment variables
|
|
255
|
+
2. **Use separate keys** - Create different API keys for development and production
|
|
256
|
+
3. **Rotate regularly** - Rotate your API keys periodically
|
|
257
|
+
4. **Monitor usage** - Use the `meter_get` tool to track API usage
|
|
258
|
+
|
|
259
|
+
## Compatibility
|
|
260
|
+
|
|
261
|
+
This MCP server works with any MCP-compatible client:
|
|
262
|
+
|
|
263
|
+
- ✅ Claude Desktop
|
|
264
|
+
- ✅ Claude Code
|
|
265
|
+
- ✅ Cline (VS Code extension)
|
|
266
|
+
- ✅ Zed Editor
|
|
267
|
+
- ✅ Continue.dev
|
|
268
|
+
- ✅ Any other MCP-compatible AI tool
|
|
269
|
+
|
|
270
|
+
## Support
|
|
271
|
+
|
|
272
|
+
- **Documentation**: [developer.vybit.net](https://developer.vybit.net)
|
|
273
|
+
- **Issues**: [GitLab Issues](https://gitlab.com/flatirontek/vybit-sdk/-/issues)
|
|
274
|
+
- **Email**: developer@vybit.net
|
|
275
|
+
|
|
276
|
+
## Related Packages
|
|
277
|
+
|
|
278
|
+
- [@vybit/api-sdk](../api) - Developer API SDK (used internally by this MCP server)
|
|
279
|
+
- [@vybit/oauth2-sdk](../oauth2) - OAuth 2.0 SDK for user-facing apps
|
|
280
|
+
- [@vybit/core](../core) - Core utilities and types
|
|
281
|
+
|
|
282
|
+
## License
|
|
283
|
+
|
|
284
|
+
MIT
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MCP Server Integration Tests
|
|
3
|
+
*
|
|
4
|
+
* These tests run against the real Vybit API when VYBIT_API_KEY is provided.
|
|
5
|
+
* They are skipped in CI when no API key is available.
|
|
6
|
+
*
|
|
7
|
+
* To run:
|
|
8
|
+
* VYBIT_API_KEY=your-key npm test -w @vybit/mcp-server
|
|
9
|
+
*/
|
|
10
|
+
export {};
|
|
11
|
+
//# sourceMappingURL=mcp-integration.test.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcp-integration.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/mcp-integration.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG"}
|