@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 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
+ [![npm version](https://badge.fury.io/js/%40vybit%2Fmcp-server.svg)](https://www.npmjs.com/package/@vybit/mcp-server)
6
+ [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](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"}