@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 CHANGED
@@ -46,16 +46,14 @@ npm install @meetbot/mcp
46
46
  npm install -g @meetbot/mcp
47
47
  ```
48
48
 
49
- ### 2. Configure the MCP Server
49
+ ### 2. Authentication
50
50
 
51
- Configure the Meet.bot API client with your authentication token:
51
+ Authentication is **not** a tool—it is connection-based:
52
52
 
53
- ```typescript
54
- // Configure with bearer token
55
- await configure_meetbot({
56
- authToken: "your_bearer_token_here"
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 6 tools for AI assistants:
260
+ The server exposes 8 tools for AI assistants:
242
261
 
243
- 1. **`configure_meetbot`** - Configure API connection
244
- 2. **`get_scheduling_pages`** - List all scheduling pages
245
- 3. **`get_page_info`** - Get page details
246
- 4. **`get_available_slots`** - Find available time slots
247
- 5. **`book_meeting`** - Book a meeting
248
- 6. **`health_check`** - Verify API connectivity using /v1/pages endpoint
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 6 tools properly exposed
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
- The MCP server supports Bearer Token authentication:
402
+ Auth is connection-based, not a tool:
380
403
 
381
- 1. **Bearer Token**: Use `authToken` for API key authentication
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 merge request
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**: [GitLab Issues](https://gitlab.com/meetbot/meetbot-mcp/-/issues)
450
- - **Discussions**: [GitLab Discussions](https://gitlab.com/meetbot/meetbot-mcp/-/issues)
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: Use configure_meetbot tool with your API token`);
16
+ console.log(`\nAuthentication: Send Authorization: Bearer <token> header when connecting`);
17
17
  });
18
18
  // Graceful shutdown
19
19
  process.on('SIGINT', () => {
@@ -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,kEAAkE,CAAC,CAAC;IAClF,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"}
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"}
@@ -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: Use configure_meetbot tool with your API token`);
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,kEAAkE,CAAC,CAAC;IAClF,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"}
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;;IAYxD,OAAO,CAAC,iBAAiB;IAgOzB;;OAEG;IACH,SAAS,IAAI,OAAO,CAAC,WAAW;CA0JjC"}
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"}