@meetbot/mcp 1.2.7 → 1.3.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 +53 -21
- package/dist/cli-http.js +1 -1
- package/dist/cli-http.js.map +1 -1
- package/dist/cli-streamable.js +1 -1
- package/dist/cli-streamable.js.map +1 -1
- package/dist/mcp-server-streamable.d.ts +3 -0
- package/dist/mcp-server-streamable.d.ts.map +1 -1
- package/dist/mcp-server-streamable.js +462 -50
- package/dist/mcp-server-streamable.js.map +1 -1
- package/dist/mcp-server.d.ts +3 -1
- package/dist/mcp-server.d.ts.map +1 -1
- package/dist/mcp-server.js +141 -47
- package/dist/mcp-server.js.map +1 -1
- package/dist/meetbot-client.d.ts +13 -1
- package/dist/meetbot-client.d.ts.map +1 -1
- package/dist/meetbot-client.js +28 -1
- package/dist/meetbot-client.js.map +1 -1
- package/dist/schemas.d.ts +61 -0
- package/dist/schemas.d.ts.map +1 -1
- package/dist/schemas.js +21 -0
- package/dist/schemas.js.map +1 -1
- package/dist/types.d.ts +21 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +4 -4
package/README.md
CHANGED
|
@@ -46,16 +46,14 @@ npm install @meetbot/mcp
|
|
|
46
46
|
npm install -g @meetbot/mcp
|
|
47
47
|
```
|
|
48
48
|
|
|
49
|
-
### 2.
|
|
49
|
+
### 2. Authentication
|
|
50
50
|
|
|
51
|
-
|
|
51
|
+
Authentication is **not** a tool—it is connection-based:
|
|
52
52
|
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
});
|
|
58
|
-
```
|
|
53
|
+
- **HTTP/SSE (remote, e.g. https://mcp.meet.bot)**: Send `Authorization: Bearer <your_api_token>` in the request headers when connecting. The server uses this token for all API calls in that session.
|
|
54
|
+
- **Stdio (local)**: Set the `MEETBOT_AUTH_TOKEN` environment variable when starting the server (e.g. `MEETBOT_AUTH_TOKEN=your_token npx @meetbot/mcp`).
|
|
55
|
+
|
|
56
|
+
There is no `configure_meetbot` or similar tool; the AI uses the tools below and auth is handled by the connection.
|
|
59
57
|
|
|
60
58
|
### 3. Use the Available Tools
|
|
61
59
|
|
|
@@ -106,6 +104,27 @@ await health_check();
|
|
|
106
104
|
// Verifies API connectivity using the /v1/pages endpoint
|
|
107
105
|
```
|
|
108
106
|
|
|
107
|
+
#### Webhooks
|
|
108
|
+
|
|
109
|
+
Get notified the moment a meeting is booked, rescheduled, or cancelled. Meet.bot POSTs a JWT-signed (HS256) JSON payload — the same contract as the partner webhook — to your URL for each event (`booking_received`, `booking_rescheduled`, `booking_cancelled`).
|
|
110
|
+
|
|
111
|
+
```typescript
|
|
112
|
+
// List your webhooks
|
|
113
|
+
await list_webhooks();
|
|
114
|
+
|
|
115
|
+
// Create (omit id) or update (pass id) a webhook
|
|
116
|
+
await set_webhook({
|
|
117
|
+
webhook_url: "https://your-app.example.com/meetbot-hook",
|
|
118
|
+
description: "CRM sync",
|
|
119
|
+
coverage: "all", // or "selected" with pages: [<page id>, ...]
|
|
120
|
+
scope: "self" // team admins can use "team" to also receive teammates' bookings
|
|
121
|
+
});
|
|
122
|
+
// Returns the webhook including the shared secret used to verify the signature.
|
|
123
|
+
|
|
124
|
+
// Delete a webhook
|
|
125
|
+
await delete_webhook({ id: 123 });
|
|
126
|
+
```
|
|
127
|
+
|
|
109
128
|
## Deployment Options
|
|
110
129
|
|
|
111
130
|
The MCP server can be run in two modes:
|
|
@@ -238,21 +257,25 @@ This MCP server can be integrated with AI assistants like Claude, ChatGPT, and o
|
|
|
238
257
|
|
|
239
258
|
#### Available MCP Tools
|
|
240
259
|
|
|
241
|
-
The server exposes
|
|
260
|
+
The server exposes 8 tools for AI assistants:
|
|
242
261
|
|
|
243
|
-
1. **`
|
|
244
|
-
2. **`
|
|
245
|
-
3. **`
|
|
246
|
-
4. **`
|
|
247
|
-
5. **`
|
|
248
|
-
6. **`
|
|
262
|
+
1. **`get_scheduling_pages`** - List all scheduling pages
|
|
263
|
+
2. **`get_page_info`** - Get page details
|
|
264
|
+
3. **`get_available_slots`** - Find available time slots
|
|
265
|
+
4. **`book_meeting`** - Book a meeting
|
|
266
|
+
5. **`health_check`** - Verify API connectivity using /v1/pages endpoint
|
|
267
|
+
6. **`list_webhooks`** - List your outbound booking webhooks
|
|
268
|
+
7. **`set_webhook`** - Create or update a webhook (booking_received / booking_rescheduled / booking_cancelled)
|
|
269
|
+
8. **`delete_webhook`** - Delete a webhook
|
|
270
|
+
|
|
271
|
+
Authentication is provided by the connection (Bearer token in HTTP header for remote, or `MEETBOT_AUTH_TOKEN` for local stdio)—there is no separate configure tool.
|
|
249
272
|
|
|
250
273
|
### Testing and Validation
|
|
251
274
|
|
|
252
275
|
The package has been thoroughly tested and validated:
|
|
253
276
|
|
|
254
277
|
✅ **MCP Protocol Compliance**: Full JSON-RPC 2.0 support
|
|
255
|
-
✅ **Tool Discovery**: All
|
|
278
|
+
✅ **Tool Discovery**: All 5 tools properly exposed
|
|
256
279
|
✅ **Error Handling**: Graceful error responses
|
|
257
280
|
✅ **Type Safety**: Complete TypeScript support
|
|
258
281
|
✅ **Schema Validation**: Input validation with Zod
|
|
@@ -376,9 +399,10 @@ meetbot-mcp
|
|
|
376
399
|
|
|
377
400
|
### Authentication
|
|
378
401
|
|
|
379
|
-
|
|
402
|
+
Auth is connection-based, not a tool:
|
|
380
403
|
|
|
381
|
-
|
|
404
|
+
- **HTTP/SSE**: Send `Authorization: Bearer <token>` in request headers when connecting to the MCP server.
|
|
405
|
+
- **Stdio**: Set `MEETBOT_AUTH_TOKEN` when running the server (e.g. `MEETBOT_AUTH_TOKEN=your_token meetbot-mcp`).
|
|
382
406
|
|
|
383
407
|
## Development
|
|
384
408
|
|
|
@@ -437,7 +461,7 @@ The MCP server provides detailed error messages for common issues:
|
|
|
437
461
|
2. Create a feature branch
|
|
438
462
|
3. Make your changes
|
|
439
463
|
4. Add tests for new functionality
|
|
440
|
-
5. Submit a
|
|
464
|
+
5. Submit a pull request
|
|
441
465
|
|
|
442
466
|
## License
|
|
443
467
|
|
|
@@ -446,11 +470,19 @@ MIT License - see [LICENSE](LICENSE) file for details.
|
|
|
446
470
|
## Support
|
|
447
471
|
|
|
448
472
|
- **Documentation**: [https://docs.meet.bot](https://docs.meet.bot)
|
|
449
|
-
- **Issues**: [
|
|
450
|
-
- **Discussions**: [
|
|
473
|
+
- **Issues**: [GitHub Issues](https://github.com/poolside-ventures/meetbot-mcp/issues)
|
|
474
|
+
- **Discussions**: [GitHub Discussions](https://github.com/poolside-ventures/meetbot-mcp/discussions)
|
|
451
475
|
|
|
452
476
|
## Changelog
|
|
453
477
|
|
|
478
|
+
### 1.2.10
|
|
479
|
+
- **Fix (stdio startup crash)**: the stdio server (`npx @meetbot/mcp`) declared a tools handler without advertising the `tools` capability, so the MCP SDK threw "Server does not support tools" and the process exited on launch. Now declares `capabilities.tools`; the server boots and answers `initialize` + `tools/list` (no token needed for introspection).
|
|
480
|
+
|
|
481
|
+
### 1.2.9
|
|
482
|
+
- **Server card**: Added `/.well-known/mcp/server-card.json` for discovery and manual metadata (tools, prompts, authentication)
|
|
483
|
+
- **Smithery quality**: Tool annotations (`audience`, `priority`), richer parameter descriptions, and prompts capability for quality scoring
|
|
484
|
+
- **Prompts (skills)**: Six MCP prompts for Smithery and clients: `schedule_meeting`, `check_availability`, `book_for_guest`, `share_booking_link`, `list_my_pages`, `suggest_times` with full `prompts/list` and `prompts/get` support
|
|
485
|
+
|
|
454
486
|
### 1.2.7
|
|
455
487
|
- **Example Config Update**: Removed obsolete `MEETBOT_BASE_URL` from example configuration (base URL is hardcoded to https://meet.bot)
|
|
456
488
|
|
package/dist/cli-http.js
CHANGED
|
@@ -13,7 +13,7 @@ async function main() {
|
|
|
13
13
|
console.log(` GET / → MCP server-to-client SSE stream`);
|
|
14
14
|
console.log(` DELETE / → Terminate session`);
|
|
15
15
|
console.log(` GET /health → Health check`);
|
|
16
|
-
console.log(`\nAuthentication:
|
|
16
|
+
console.log(`\nAuthentication: Send Authorization: Bearer <token> header when connecting`);
|
|
17
17
|
});
|
|
18
18
|
// Graceful shutdown
|
|
19
19
|
process.on('SIGINT', () => {
|
package/dist/cli-http.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli-http.js","sourceRoot":"","sources":["../src/cli-http.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,MAAM,CAAC;AACpC,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAElE,MAAM,IAAI,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,MAAM,EAAE,EAAE,CAAC,CAAC;AAEzD,KAAK,UAAU,IAAI;IACjB,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;IAC7C,MAAM,GAAG,GAAG,SAAS,CAAC,SAAS,EAAE,CAAC;IAElC,MAAM,UAAU,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;IAErC,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE;QAC3B,OAAO,CAAC,GAAG,CAAC,yDAAyD,IAAI,EAAE,CAAC,CAAC;QAC7E,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;QAC5B,OAAO,CAAC,GAAG,CAAC,iDAAiD,CAAC,CAAC;QAC/D,OAAO,CAAC,GAAG,CAAC,mDAAmD,CAAC,CAAC;QACjE,OAAO,CAAC,GAAG,CAAC,qCAAqC,CAAC,CAAC;QACnD,OAAO,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAC;QAC9C,OAAO,CAAC,GAAG,CAAC,
|
|
1
|
+
{"version":3,"file":"cli-http.js","sourceRoot":"","sources":["../src/cli-http.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,MAAM,CAAC;AACpC,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAElE,MAAM,IAAI,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,MAAM,EAAE,EAAE,CAAC,CAAC;AAEzD,KAAK,UAAU,IAAI;IACjB,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;IAC7C,MAAM,GAAG,GAAG,SAAS,CAAC,SAAS,EAAE,CAAC;IAElC,MAAM,UAAU,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;IAErC,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE;QAC3B,OAAO,CAAC,GAAG,CAAC,yDAAyD,IAAI,EAAE,CAAC,CAAC;QAC7E,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;QAC5B,OAAO,CAAC,GAAG,CAAC,iDAAiD,CAAC,CAAC;QAC/D,OAAO,CAAC,GAAG,CAAC,mDAAmD,CAAC,CAAC;QACjE,OAAO,CAAC,GAAG,CAAC,qCAAqC,CAAC,CAAC;QACnD,OAAO,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAC;QAC9C,OAAO,CAAC,GAAG,CAAC,6EAA6E,CAAC,CAAC;IAC7F,CAAC,CAAC,CAAC;IAEH,oBAAoB;IACpB,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE;QACxB,OAAO,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAC;QAC7C,UAAU,CAAC,KAAK,CAAC,GAAG,EAAE;YACpB,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;YAC7B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE;QACzB,OAAO,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAC;QAC7C,UAAU,CAAC,KAAK,CAAC,GAAG,EAAE;YACpB,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;YAC7B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;IACrB,OAAO,CAAC,KAAK,CAAC,6BAA6B,EAAE,KAAK,CAAC,CAAC;IACpD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
|
package/dist/cli-streamable.js
CHANGED
|
@@ -11,7 +11,7 @@ async function main() {
|
|
|
11
11
|
console.log(` GET / → MCP server-to-client SSE stream`);
|
|
12
12
|
console.log(` DELETE / → Terminate session`);
|
|
13
13
|
console.log(` GET /health → Health check`);
|
|
14
|
-
console.log(`\nAuthentication:
|
|
14
|
+
console.log(`\nAuthentication: Send Authorization: Bearer <token> header when connecting`);
|
|
15
15
|
});
|
|
16
16
|
// Graceful shutdown
|
|
17
17
|
process.on('SIGINT', () => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli-streamable.js","sourceRoot":"","sources":["../src/cli-streamable.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAElE,MAAM,IAAI,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,MAAM,EAAE,EAAE,CAAC,CAAC;AAEzD,KAAK,UAAU,IAAI;IACjB,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;IAC7C,MAAM,GAAG,GAAG,SAAS,CAAC,SAAS,EAAE,CAAC;IAElC,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE;QACnC,OAAO,CAAC,GAAG,CAAC,yDAAyD,IAAI,EAAE,CAAC,CAAC;QAC7E,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;QAC5B,OAAO,CAAC,GAAG,CAAC,iDAAiD,CAAC,CAAC;QAC/D,OAAO,CAAC,GAAG,CAAC,mDAAmD,CAAC,CAAC;QACjE,OAAO,CAAC,GAAG,CAAC,qCAAqC,CAAC,CAAC;QACnD,OAAO,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAC;QAC9C,OAAO,CAAC,GAAG,CAAC,
|
|
1
|
+
{"version":3,"file":"cli-streamable.js","sourceRoot":"","sources":["../src/cli-streamable.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAElE,MAAM,IAAI,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,MAAM,EAAE,EAAE,CAAC,CAAC;AAEzD,KAAK,UAAU,IAAI;IACjB,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;IAC7C,MAAM,GAAG,GAAG,SAAS,CAAC,SAAS,EAAE,CAAC;IAElC,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE;QACnC,OAAO,CAAC,GAAG,CAAC,yDAAyD,IAAI,EAAE,CAAC,CAAC;QAC7E,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;QAC5B,OAAO,CAAC,GAAG,CAAC,iDAAiD,CAAC,CAAC;QAC/D,OAAO,CAAC,GAAG,CAAC,mDAAmD,CAAC,CAAC;QACjE,OAAO,CAAC,GAAG,CAAC,qCAAqC,CAAC,CAAC;QACnD,OAAO,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAC;QAC9C,OAAO,CAAC,GAAG,CAAC,6EAA6E,CAAC,CAAC;IAC7F,CAAC,CAAC,CAAC;IAEH,oBAAoB;IACpB,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE;QACxB,OAAO,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAC;QAC7C,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE;YAChB,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;YAC7B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE;QACzB,OAAO,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAC;QAC7C,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE;YAChB,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;YAC7B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;IACrB,OAAO,CAAC,KAAK,CAAC,6BAA6B,EAAE,KAAK,CAAC,CAAC;IACpD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
|
|
@@ -7,7 +7,10 @@ export declare class MeetbotMCPStreamable {
|
|
|
7
7
|
private transports;
|
|
8
8
|
private clients;
|
|
9
9
|
constructor();
|
|
10
|
+
/** Tool annotations for MCP/Smithery quality: audience, priority, lastModified per spec */
|
|
11
|
+
private static readonly TOOL_ANNOTATIONS;
|
|
10
12
|
private setupToolHandlers;
|
|
13
|
+
private setupPromptHandlers;
|
|
11
14
|
/**
|
|
12
15
|
* Create Express app with MCP endpoints
|
|
13
16
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp-server-streamable.d.ts","sourceRoot":"","sources":["../src/mcp-server-streamable.ts"],"names":[],"mappings":"AAAA,OAAO,OAA4C,MAAM,SAAS,CAAC;AASnE;;GAEG;AACH,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,MAAM,CAAY;IAC1B,OAAO,CAAC,UAAU,CAAyD;IAC3E,OAAO,CAAC,OAAO,CAAyC;;
|
|
1
|
+
{"version":3,"file":"mcp-server-streamable.d.ts","sourceRoot":"","sources":["../src/mcp-server-streamable.ts"],"names":[],"mappings":"AAAA,OAAO,OAA4C,MAAM,SAAS,CAAC;AASnE;;GAEG;AACH,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,MAAM,CAAY;IAC1B,OAAO,CAAC,UAAU,CAAyD;IAC3E,OAAO,CAAC,OAAO,CAAyC;;IAaxD,2FAA2F;IAC3F,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAItC;IAEF,OAAO,CAAC,iBAAiB;IA0SzB,OAAO,CAAC,mBAAmB;IAkJ3B;;OAEG;IACH,SAAS,IAAI,OAAO,CAAC,WAAW;CAgWjC"}
|