@meetbot/mcp 1.0.2 → 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/LICENSE +1 -1
- package/README.md +138 -35
- package/dist/__tests__/meetbot-client.test.d.ts +2 -0
- package/dist/__tests__/meetbot-client.test.d.ts.map +1 -0
- package/dist/__tests__/{meetbot-client.test 2.js → meetbot-client.test.js} +2 -7
- package/dist/__tests__/meetbot-client.test.js.map +1 -0
- package/dist/__tests__/types.test.js +6 -6
- package/dist/__tests__/types.test.js.map +1 -1
- package/dist/cli-http.d.ts +3 -0
- package/dist/cli-http.d.ts.map +1 -0
- package/dist/cli-http.js +50 -0
- package/dist/cli-http.js.map +1 -0
- package/dist/cli.js +4 -4
- package/dist/cli.js.map +1 -1
- package/dist/index.d.ts +3 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -3
- package/dist/index.js.map +1 -1
- package/dist/mcp-server-http.d.ts +26 -0
- package/dist/mcp-server-http.d.ts.map +1 -0
- package/dist/mcp-server-http.js +350 -0
- package/dist/mcp-server-http.js.map +1 -0
- package/dist/mcp-server.d.ts +1 -1
- package/dist/mcp-server.d.ts.map +1 -1
- package/dist/mcp-server.js +14 -18
- package/dist/mcp-server.js.map +1 -1
- package/dist/meetbot-client.d.ts +1 -1
- package/dist/meetbot-client.d.ts.map +1 -1
- package/dist/meetbot-client.js +16 -9
- package/dist/meetbot-client.js.map +1 -1
- package/dist/schemas.d.ts +1 -4
- package/dist/schemas.d.ts.map +1 -1
- package/dist/schemas.js +1 -2
- package/dist/schemas.js.map +1 -1
- package/dist/types.d.ts +1 -2
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +1 -1
- package/package.json +64 -62
- package/dist/__tests__/meetbot-client.test 2.d.ts +0 -2
- package/dist/__tests__/meetbot-client.test 2.d.ts.map +0 -1
- package/dist/__tests__/meetbot-client.test 2.js.map +0 -1
- package/dist/cli 2.d.ts +0 -3
- package/dist/cli 2.d.ts.map +0 -1
- package/dist/cli 2.js +0 -32
- package/dist/cli 2.js.map +0 -1
- package/dist/index 2.d.ts +0 -10
- package/dist/index 2.d.ts.map +0 -1
- package/dist/index 2.js +0 -26
- package/dist/index 2.js.map +0 -1
- package/dist/schemas 2.d.ts +0 -213
- package/dist/schemas 2.d.ts.map +0 -1
- package/dist/schemas 2.js +0 -70
- package/dist/schemas 2.js.map +0 -1
- package/dist/types 2.d.ts +0 -68
- package/dist/types 2.d.ts.map +0 -1
- package/dist/types 2.js +0 -7
- package/dist/types 2.js.map +0 -1
package/LICENSE
CHANGED
package/README.md
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
#
|
|
1
|
+
# Meet.bot MCP (Model Context Protocol)
|
|
2
2
|
|
|
3
|
-
A Model Context Protocol (MCP) server for the
|
|
3
|
+
A Model Context Protocol (MCP) server for the Meet.bot Booking Page API, enabling AI assistants to interact with scheduling and booking functionality.
|
|
4
4
|
|
|
5
5
|
## Features
|
|
6
6
|
|
|
7
|
-
- **Complete API Coverage**: Implements all endpoints from the
|
|
7
|
+
- **Complete API Coverage**: Implements all endpoints from the Meet.bot Booking Page API v1
|
|
8
8
|
- **Type Safety**: Full TypeScript support with comprehensive type definitions
|
|
9
9
|
- **Runtime Validation**: Zod schemas for input validation and data integrity
|
|
10
|
-
- **Authentication Support**: Bearer token
|
|
10
|
+
- **Authentication Support**: Bearer token authentication
|
|
11
11
|
- **Error Handling**: Robust error handling with detailed error messages
|
|
12
|
-
- **Health Checks**: Built-in health monitoring
|
|
12
|
+
- **Health Checks**: Built-in health monitoring using the /v1/pages endpoint
|
|
13
13
|
- **MCP Protocol Compliance**: Full Model Context Protocol server implementation
|
|
14
14
|
- **Production Ready**: Thoroughly tested and validated for production use
|
|
15
15
|
|
|
@@ -33,15 +33,13 @@ npm install -g @meetbot/mcp
|
|
|
33
33
|
|
|
34
34
|
### 2. Configure the MCP Server
|
|
35
35
|
|
|
36
|
-
|
|
36
|
+
Configure the Meet.bot API client with your authentication token:
|
|
37
37
|
|
|
38
38
|
```typescript
|
|
39
39
|
// Configure with bearer token
|
|
40
40
|
await configure_meetbot({
|
|
41
|
-
baseUrl: "https://api.meet.bot",
|
|
42
41
|
authToken: "your_bearer_token_here"
|
|
43
42
|
});
|
|
44
|
-
|
|
45
43
|
```
|
|
46
44
|
|
|
47
45
|
### 3. Use the Available Tools
|
|
@@ -90,7 +88,95 @@ await book_meeting({
|
|
|
90
88
|
#### Health Check
|
|
91
89
|
```typescript
|
|
92
90
|
await health_check();
|
|
93
|
-
// Verifies API connectivity
|
|
91
|
+
// Verifies API connectivity using the /v1/pages endpoint
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
## Deployment Options
|
|
95
|
+
|
|
96
|
+
The MCP server can be run in two modes:
|
|
97
|
+
|
|
98
|
+
### 1. Local Mode (Stdio Transport)
|
|
99
|
+
|
|
100
|
+
For local integration with AI assistants like Claude Desktop. Uses stdio transport for communication.
|
|
101
|
+
|
|
102
|
+
```bash
|
|
103
|
+
# Run locally
|
|
104
|
+
npx @meetbot/mcp
|
|
105
|
+
|
|
106
|
+
# Or with environment variable
|
|
107
|
+
MEETBOT_AUTH_TOKEN="your_token" npx @meetbot/mcp
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
### 2. HTTP Mode (SSE Transport)
|
|
111
|
+
|
|
112
|
+
For remote deployment with HTTP/SSE transport. This allows the MCP server to be accessed over the network.
|
|
113
|
+
|
|
114
|
+
#### Running the HTTP Server
|
|
115
|
+
|
|
116
|
+
```bash
|
|
117
|
+
# Build and start the HTTP server
|
|
118
|
+
npm run build
|
|
119
|
+
npm run start:http
|
|
120
|
+
|
|
121
|
+
# Or with custom port
|
|
122
|
+
PORT=8080 npm run start:http
|
|
123
|
+
|
|
124
|
+
# Or run directly with npx
|
|
125
|
+
npx meetbot-mcp-http
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
#### Server Endpoints
|
|
129
|
+
|
|
130
|
+
- **SSE Endpoint**: `GET /sse` - Establishes an SSE connection for MCP communication
|
|
131
|
+
- **Messages Endpoint**: `POST /messages?sessionId=<id>` - Receives client messages
|
|
132
|
+
- **Health Check**: `GET /health` - Server health status
|
|
133
|
+
|
|
134
|
+
#### Authentication
|
|
135
|
+
|
|
136
|
+
All requests require a Bearer token in the Authorization header:
|
|
137
|
+
|
|
138
|
+
```bash
|
|
139
|
+
Authorization: Bearer <your-meetbot-api-token>
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
The same token is used to authenticate with the Meet.bot API.
|
|
143
|
+
|
|
144
|
+
#### Testing the HTTP Server
|
|
145
|
+
|
|
146
|
+
```bash
|
|
147
|
+
# Health check (should fail without auth)
|
|
148
|
+
curl http://localhost:3000/health
|
|
149
|
+
|
|
150
|
+
# Health check with authentication
|
|
151
|
+
curl -H "Authorization: Bearer YOUR_TOKEN" http://localhost:3000/health
|
|
152
|
+
|
|
153
|
+
# Connect to SSE endpoint
|
|
154
|
+
curl -N -H "Authorization: Bearer YOUR_TOKEN" http://localhost:3000/sse
|
|
155
|
+
|
|
156
|
+
# Or use the test script
|
|
157
|
+
./test-http-server.sh YOUR_TOKEN
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
#### Deployment
|
|
161
|
+
|
|
162
|
+
The HTTP server can be deployed to:
|
|
163
|
+
|
|
164
|
+
- **Railway**: `railway up`
|
|
165
|
+
- **Fly.io**: `fly launch && fly deploy`
|
|
166
|
+
- **Google Cloud Run**: Container-based deployment
|
|
167
|
+
- **AWS App Runner**: Container-based deployment
|
|
168
|
+
- **Any VPS**: Run with Node.js directly
|
|
169
|
+
|
|
170
|
+
Example Dockerfile:
|
|
171
|
+
|
|
172
|
+
```dockerfile
|
|
173
|
+
FROM node:18-alpine
|
|
174
|
+
WORKDIR /app
|
|
175
|
+
COPY package*.json ./
|
|
176
|
+
RUN npm ci --only=production
|
|
177
|
+
COPY dist ./dist
|
|
178
|
+
EXPOSE 3000
|
|
179
|
+
CMD ["node", "dist/cli-http.js"]
|
|
94
180
|
```
|
|
95
181
|
|
|
96
182
|
## MCP Integration
|
|
@@ -108,7 +194,6 @@ This MCP server can be integrated with AI assistants like Claude, ChatGPT, and o
|
|
|
108
194
|
"command": "npx",
|
|
109
195
|
"args": ["@meetbot/mcp"],
|
|
110
196
|
"env": {
|
|
111
|
-
"MEETBOT_BASE_URL": "https://api.meet.bot",
|
|
112
197
|
"MEETBOT_AUTH_TOKEN": "your_bearer_token_here"
|
|
113
198
|
}
|
|
114
199
|
}
|
|
@@ -125,17 +210,17 @@ The server exposes 6 tools for AI assistants:
|
|
|
125
210
|
3. **`get_page_info`** - Get page details
|
|
126
211
|
4. **`get_available_slots`** - Find available time slots
|
|
127
212
|
5. **`book_meeting`** - Book a meeting
|
|
128
|
-
6. **`health_check`** - Verify API connectivity
|
|
213
|
+
6. **`health_check`** - Verify API connectivity using /v1/pages endpoint
|
|
129
214
|
|
|
130
215
|
### Testing and Validation
|
|
131
216
|
|
|
132
217
|
The package has been thoroughly tested and validated:
|
|
133
218
|
|
|
134
|
-
✅ **MCP Protocol Compliance**: Full JSON-RPC 2.0 support
|
|
135
|
-
✅ **Tool Discovery**: All 6 tools properly exposed
|
|
136
|
-
✅ **Error Handling**: Graceful error responses
|
|
137
|
-
✅ **Type Safety**: Complete TypeScript support
|
|
138
|
-
✅ **Schema Validation**: Input validation with Zod
|
|
219
|
+
✅ **MCP Protocol Compliance**: Full JSON-RPC 2.0 support
|
|
220
|
+
✅ **Tool Discovery**: All 6 tools properly exposed
|
|
221
|
+
✅ **Error Handling**: Graceful error responses
|
|
222
|
+
✅ **Type Safety**: Complete TypeScript support
|
|
223
|
+
✅ **Schema Validation**: Input validation with Zod
|
|
139
224
|
✅ **Production Ready**: Tested with real MCP clients
|
|
140
225
|
|
|
141
226
|
### Package Statistics
|
|
@@ -156,7 +241,6 @@ import { MeetbotClient, MeetbotMCPServer } from '@meetbot/mcp';
|
|
|
156
241
|
|
|
157
242
|
// Use as a direct API client
|
|
158
243
|
const client = new MeetbotClient({
|
|
159
|
-
baseUrl: 'https://api.meet.bot',
|
|
160
244
|
authToken: 'your_token'
|
|
161
245
|
});
|
|
162
246
|
|
|
@@ -186,7 +270,6 @@ The core API client for direct integration:
|
|
|
186
270
|
import { MeetbotClient } from '@meetbot/mcp';
|
|
187
271
|
|
|
188
272
|
const client = new MeetbotClient({
|
|
189
|
-
baseUrl: 'https://api.meet.bot',
|
|
190
273
|
authToken: 'your_token'
|
|
191
274
|
});
|
|
192
275
|
|
|
@@ -250,9 +333,10 @@ interface Slots {
|
|
|
250
333
|
You can configure the MCP server using environment variables:
|
|
251
334
|
|
|
252
335
|
```bash
|
|
253
|
-
export MEETBOT_BASE_URL="https://api.meet.bot"
|
|
254
336
|
export MEETBOT_AUTH_TOKEN="your_bearer_token"
|
|
255
|
-
|
|
337
|
+
|
|
338
|
+
# Then run the server
|
|
339
|
+
meetbot-mcp
|
|
256
340
|
```
|
|
257
341
|
|
|
258
342
|
### Authentication
|
|
@@ -263,15 +347,6 @@ The MCP server supports Bearer Token authentication:
|
|
|
263
347
|
|
|
264
348
|
## Development
|
|
265
349
|
|
|
266
|
-
### Building from Source
|
|
267
|
-
|
|
268
|
-
```bash
|
|
269
|
-
git clone https://gitlab.com/meetbot/meetbot-mcp.git
|
|
270
|
-
cd meetbot-mcp
|
|
271
|
-
npm install
|
|
272
|
-
npm run build
|
|
273
|
-
```
|
|
274
|
-
|
|
275
350
|
### Running Tests
|
|
276
351
|
|
|
277
352
|
```bash
|
|
@@ -306,7 +381,6 @@ npx @meetbot/mcp
|
|
|
306
381
|
You can configure the server using environment variables:
|
|
307
382
|
|
|
308
383
|
```bash
|
|
309
|
-
export MEETBOT_BASE_URL="https://api.meet.bot"
|
|
310
384
|
export MEETBOT_AUTH_TOKEN="your_bearer_token"
|
|
311
385
|
|
|
312
386
|
# Then run the server
|
|
@@ -318,8 +392,8 @@ meetbot-mcp
|
|
|
318
392
|
The MCP server provides detailed error messages for common issues:
|
|
319
393
|
|
|
320
394
|
- **Configuration Errors**: Missing or invalid configuration parameters
|
|
321
|
-
- **Authentication Errors**: Invalid tokens
|
|
322
|
-
- **API Errors**: Detailed error messages from the
|
|
395
|
+
- **Authentication Errors**: Invalid tokens
|
|
396
|
+
- **API Errors**: Detailed error messages from the Meet.bot API
|
|
323
397
|
- **Validation Errors**: Input validation failures with specific field errors
|
|
324
398
|
|
|
325
399
|
## Contributing
|
|
@@ -342,16 +416,45 @@ MIT License - see [LICENSE](LICENSE) file for details.
|
|
|
342
416
|
|
|
343
417
|
## Changelog
|
|
344
418
|
|
|
419
|
+
### 1.1.0
|
|
420
|
+
- **HTTP/SSE Transport**: Added HTTP server with SSE transport for remote deployment
|
|
421
|
+
- **Bearer Token Authentication**: Implemented authentication for HTTP endpoints
|
|
422
|
+
- **Multi-mode Support**: Can run as local stdio server or remote HTTP server
|
|
423
|
+
- **Deployment Ready**: Added Dockerfile and deployment configurations for Railway, Fly.io, etc.
|
|
424
|
+
- **Health Check Endpoint**: Added `/health` endpoint for monitoring
|
|
425
|
+
- **Session Management**: Proper session handling with transport cleanup
|
|
426
|
+
- **Production Ready**: Complete HTTP implementation with authentication and error handling
|
|
427
|
+
|
|
428
|
+
### 1.0.4
|
|
429
|
+
- **Fixed Health Check**: Now uses the real `/v1/pages` endpoint instead of a fake health endpoint
|
|
430
|
+
- **Updated Documentation**: Clarified health check implementation details
|
|
431
|
+
- **Improved Reliability**: Health check now properly validates API connectivity
|
|
432
|
+
|
|
433
|
+
### 1.0.3
|
|
434
|
+
- **Simplified Configuration**: Removed baseUrl requirement - now hardcoded to https://meet.bot
|
|
435
|
+
- **Updated Documentation**: Simplified configuration examples
|
|
436
|
+
- **Improved UX**: Users only need to provide authToken
|
|
437
|
+
|
|
438
|
+
### 1.0.2
|
|
439
|
+
- **Fixed Authentication**: Removed unsupported sessionId parameter
|
|
440
|
+
- **Corrected API URL**: Updated from api.meet.bot to meet.bot
|
|
441
|
+
- **Updated Documentation**: Accurate authentication examples
|
|
442
|
+
|
|
443
|
+
### 1.0.1
|
|
444
|
+
- **Enhanced Documentation**: Comprehensive README with usage examples
|
|
445
|
+
- **MCP Integration Guide**: Added AI assistant configuration examples
|
|
446
|
+
- **Testing Results**: Added validation and testing information
|
|
447
|
+
|
|
345
448
|
### 1.0.0
|
|
346
|
-
- **Initial release** - Production-ready MCP server for
|
|
347
|
-
- **Complete API coverage** - All
|
|
449
|
+
- **Initial release** - Production-ready MCP server for Meet.bot API
|
|
450
|
+
- **Complete API coverage** - All Meet.bot Booking Page API v1 endpoints
|
|
348
451
|
- **TypeScript support** - Full type safety with comprehensive definitions
|
|
349
452
|
- **Runtime validation** - Zod schemas for input validation and data integrity
|
|
350
453
|
- **MCP server implementation** - Full Model Context Protocol compliance
|
|
351
454
|
- **CLI tool** - Command-line interface for running the MCP server
|
|
352
455
|
- **Error handling** - Robust error handling with detailed messages
|
|
353
456
|
- **Authentication** - Support for bearer token authentication
|
|
354
|
-
- **Health checks** - Built-in API connectivity monitoring
|
|
457
|
+
- **Health checks** - Built-in API connectivity monitoring using /v1/pages endpoint
|
|
355
458
|
- **Testing** - Comprehensive test suite with 21 passing tests
|
|
356
459
|
- **Documentation** - Complete API documentation and usage examples
|
|
357
460
|
- **Functional Testing** - Verified with real MCP client requests
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"meetbot-client.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/meetbot-client.test.ts"],"names":[],"mappings":""}
|
|
@@ -7,7 +7,6 @@ const mockAxios = require('axios');
|
|
|
7
7
|
describe('MeetbotClient', () => {
|
|
8
8
|
let client;
|
|
9
9
|
const mockConfig = {
|
|
10
|
-
baseUrl: 'https://api.meet.bot',
|
|
11
10
|
authToken: 'test-token',
|
|
12
11
|
};
|
|
13
12
|
beforeEach(() => {
|
|
@@ -25,14 +24,10 @@ describe('MeetbotClient', () => {
|
|
|
25
24
|
it('should create client with valid config', () => {
|
|
26
25
|
expect(() => new meetbot_client_1.MeetbotClient(mockConfig)).not.toThrow();
|
|
27
26
|
});
|
|
28
|
-
it('should reject invalid baseUrl', () => {
|
|
29
|
-
const invalidConfig = { ...mockConfig, baseUrl: 'not-a-url' };
|
|
30
|
-
expect(() => new meetbot_client_1.MeetbotClient(invalidConfig)).toThrow();
|
|
31
|
-
});
|
|
32
27
|
it('should create axios instance with correct baseURL', () => {
|
|
33
28
|
new meetbot_client_1.MeetbotClient(mockConfig);
|
|
34
29
|
expect(mockAxios.create).toHaveBeenCalledWith(expect.objectContaining({
|
|
35
|
-
baseURL: 'https://
|
|
30
|
+
baseURL: 'https://meet.bot',
|
|
36
31
|
timeout: 30000,
|
|
37
32
|
}));
|
|
38
33
|
});
|
|
@@ -176,4 +171,4 @@ describe('MeetbotClient', () => {
|
|
|
176
171
|
});
|
|
177
172
|
});
|
|
178
173
|
});
|
|
179
|
-
//# sourceMappingURL=meetbot-client.test
|
|
174
|
+
//# sourceMappingURL=meetbot-client.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"meetbot-client.test.js","sourceRoot":"","sources":["../../src/__tests__/meetbot-client.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
const schemas_1 = require("../schemas");
|
|
4
|
-
describe('
|
|
4
|
+
describe('Meet.bot API Schemas', () => {
|
|
5
5
|
describe('BookSlotSchema', () => {
|
|
6
6
|
it('should validate a valid BookSlot', () => {
|
|
7
7
|
const validBookSlot = {
|
|
@@ -70,12 +70,12 @@ describe('Meetbot API Schemas', () => {
|
|
|
70
70
|
const result = schemas_1.MeetbotConfigSchema.safeParse(validConfig);
|
|
71
71
|
expect(result.success).toBe(true);
|
|
72
72
|
});
|
|
73
|
-
it('should
|
|
74
|
-
const
|
|
75
|
-
|
|
73
|
+
it('should accept valid authToken', () => {
|
|
74
|
+
const validConfig = {
|
|
75
|
+
authToken: 'valid-token-123',
|
|
76
76
|
};
|
|
77
|
-
const result = schemas_1.MeetbotConfigSchema.safeParse(
|
|
78
|
-
expect(result.success).toBe(
|
|
77
|
+
const result = schemas_1.MeetbotConfigSchema.safeParse(validConfig);
|
|
78
|
+
expect(result.success).toBe(true);
|
|
79
79
|
});
|
|
80
80
|
});
|
|
81
81
|
describe('GetSlotsParamsSchema', () => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.test.js","sourceRoot":"","sources":["../../src/__tests__/types.test.ts"],"names":[],"mappings":";;AAAA,wCAKoB;AAEpB,QAAQ,CAAC,
|
|
1
|
+
{"version":3,"file":"types.test.js","sourceRoot":"","sources":["../../src/__tests__/types.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli-http.d.ts","sourceRoot":"","sources":["../src/cli-http.ts"],"names":[],"mappings":""}
|
package/dist/cli-http.js
ADDED
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
"use strict";
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
const http_1 = require("http");
|
|
5
|
+
const mcp_server_http_js_1 = require("./mcp-server-http.js");
|
|
6
|
+
const PORT = parseInt(process.env['PORT'] || '3000', 10);
|
|
7
|
+
async function main() {
|
|
8
|
+
const mcpServer = new mcp_server_http_js_1.MeetbotMCPServerHTTP();
|
|
9
|
+
const httpServer = (0, http_1.createServer)(async (req, res) => {
|
|
10
|
+
try {
|
|
11
|
+
await mcpServer.handleRequest(req, res);
|
|
12
|
+
}
|
|
13
|
+
catch (error) {
|
|
14
|
+
console.error('Request handling error:', error);
|
|
15
|
+
if (!res.headersSent) {
|
|
16
|
+
res.writeHead(500, { 'Content-Type': 'application/json' });
|
|
17
|
+
res.end(JSON.stringify({
|
|
18
|
+
error: 'Internal server error',
|
|
19
|
+
message: error instanceof Error ? error.message : 'Unknown error',
|
|
20
|
+
}));
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
});
|
|
24
|
+
httpServer.listen(PORT, () => {
|
|
25
|
+
console.log(`Meet.bot MCP HTTP server listening on port ${PORT}`);
|
|
26
|
+
console.log(`SSE endpoint: http://localhost:${PORT}/sse`);
|
|
27
|
+
console.log(`Health check: http://localhost:${PORT}/health`);
|
|
28
|
+
console.log('\nAuthentication required: Authorization: Bearer <your-token>');
|
|
29
|
+
});
|
|
30
|
+
// Graceful shutdown
|
|
31
|
+
process.on('SIGINT', () => {
|
|
32
|
+
console.log('\nShutting down MCP server...');
|
|
33
|
+
httpServer.close(() => {
|
|
34
|
+
console.log('Server closed');
|
|
35
|
+
process.exit(0);
|
|
36
|
+
});
|
|
37
|
+
});
|
|
38
|
+
process.on('SIGTERM', () => {
|
|
39
|
+
console.log('\nShutting down MCP server...');
|
|
40
|
+
httpServer.close(() => {
|
|
41
|
+
console.log('Server closed');
|
|
42
|
+
process.exit(0);
|
|
43
|
+
});
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
main().catch((error) => {
|
|
47
|
+
console.error('Failed to start MCP server:', error);
|
|
48
|
+
process.exit(1);
|
|
49
|
+
});
|
|
50
|
+
//# sourceMappingURL=cli-http.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli-http.js","sourceRoot":"","sources":["../src/cli-http.ts"],"names":[],"mappings":";;;AAEA,+BAAoC;AACpC,6DAA4D;AAE5D,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,yCAAoB,EAAE,CAAC;IAE7C,MAAM,UAAU,GAAG,IAAA,mBAAY,EAAC,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;QACjD,IAAI,CAAC;YACH,MAAM,SAAS,CAAC,aAAa,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QAC1C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,yBAAyB,EAAE,KAAK,CAAC,CAAC;YAChD,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC;gBACrB,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAC,CAAC;gBAC3D,GAAG,CAAC,GAAG,CACL,IAAI,CAAC,SAAS,CAAC;oBACb,KAAK,EAAE,uBAAuB;oBAC9B,OAAO,EACL,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe;iBAC3D,CAAC,CACH,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE;QAC3B,OAAO,CAAC,GAAG,CAAC,8CAA8C,IAAI,EAAE,CAAC,CAAC;QAClE,OAAO,CAAC,GAAG,CAAC,kCAAkC,IAAI,MAAM,CAAC,CAAC;QAC1D,OAAO,CAAC,GAAG,CAAC,kCAAkC,IAAI,SAAS,CAAC,CAAC;QAC7D,OAAO,CAAC,GAAG,CAAC,+DAA+D,CAAC,CAAC;IAC/E,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.js
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
4
|
const mcp_server_js_1 = require("./mcp-server.js");
|
|
5
5
|
/**
|
|
6
|
-
* CLI entry point for the
|
|
6
|
+
* CLI entry point for the Meet.bot MCP server
|
|
7
7
|
*/
|
|
8
8
|
async function main() {
|
|
9
9
|
try {
|
|
@@ -11,17 +11,17 @@ async function main() {
|
|
|
11
11
|
await server.run();
|
|
12
12
|
}
|
|
13
13
|
catch (error) {
|
|
14
|
-
console.error('Failed to start
|
|
14
|
+
console.error('Failed to start Meet.bot MCP server:', error);
|
|
15
15
|
process.exit(1);
|
|
16
16
|
}
|
|
17
17
|
}
|
|
18
18
|
// Handle process termination gracefully
|
|
19
19
|
process.on('SIGINT', () => {
|
|
20
|
-
console.error('
|
|
20
|
+
console.error('Meet.bot MCP server shutting down...');
|
|
21
21
|
process.exit(0);
|
|
22
22
|
});
|
|
23
23
|
process.on('SIGTERM', () => {
|
|
24
|
-
console.error('
|
|
24
|
+
console.error('Meet.bot MCP server shutting down...');
|
|
25
25
|
process.exit(0);
|
|
26
26
|
});
|
|
27
27
|
// Start the server
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";;;AAEA,mDAAmD;AAEnD;;GAEG;AACH,KAAK,UAAU,IAAI;IACjB,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,gCAAgB,EAAE,CAAC;QACtC,MAAM,MAAM,CAAC,GAAG,EAAE,CAAC;IACrB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";;;AAEA,mDAAmD;AAEnD;;GAEG;AACH,KAAK,UAAU,IAAI;IACjB,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,gCAAgB,EAAE,CAAC;QACtC,MAAM,MAAM,CAAC,GAAG,EAAE,CAAC;IACrB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,sCAAsC,EAAE,KAAK,CAAC,CAAC;QAC7D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAED,wCAAwC;AACxC,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE;IACxB,OAAO,CAAC,KAAK,CAAC,sCAAsC,CAAC,CAAC;IACtD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC;AAEH,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE;IACzB,OAAO,CAAC,KAAK,CAAC,sCAAsC,CAAC,CAAC;IACtD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC;AAEH,mBAAmB;AACnB,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;IACrB,OAAO,CAAC,KAAK,CAAC,kBAAkB,EAAE,KAAK,CAAC,CAAC;IACzC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
3
|
-
* Model Context Protocol server for
|
|
2
|
+
* Meet.bot MCP Package
|
|
3
|
+
* Model Context Protocol server for Meet.bot Booking Page API
|
|
4
4
|
*/
|
|
5
5
|
export { MeetbotMCPServer } from './mcp-server.js';
|
|
6
|
+
export { MeetbotMCPServerHTTP } from './mcp-server-http.js';
|
|
6
7
|
export { MeetbotClient } from './meetbot-client.js';
|
|
7
8
|
export type { BookSlot, BookSlotRequest, GetSlotsParams, GetInfoParams, PageInfo, Pages, SchedulingPage, Slots, SlotDetails, MeetbotConfig, ApiError, ApiResponse, } from './types.js';
|
|
8
9
|
export { BookSlotSchema, BookSlotRequestSchema, GetSlotsParamsSchema, GetInfoParamsSchema, PageInfoSchema, PagesSchema, SchedulingPageSchema, SlotsSchema, SlotDetailsSchema, MeetbotConfigSchema, ApiErrorSchema, } from './schemas.js';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAGpD,YAAY,EACV,QAAQ,EACR,eAAe,EACf,cAAc,EACd,aAAa,EACb,QAAQ,EACR,KAAK,EACL,cAAc,EACd,KAAK,EACL,WAAW,EACX,aAAa,EACb,QAAQ,EACR,WAAW,GACZ,MAAM,YAAY,CAAC;AAGpB,OAAO,EACL,cAAc,EACd,qBAAqB,EACrB,oBAAoB,EACpB,mBAAmB,EACnB,cAAc,EACd,WAAW,EACX,oBAAoB,EACpB,WAAW,EACX,iBAAiB,EACjB,mBAAmB,EACnB,cAAc,GACf,MAAM,cAAc,CAAC;AAGtB,YAAY,EACV,iBAAiB,EACjB,iBAAiB,EACjB,uBAAuB,EACvB,cAAc,EACd,cAAc,EACd,wBAAwB,EACxB,uBAAuB,EACvB,sBAAsB,EACtB,sBAAsB,GACvB,MAAM,cAAc,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAGpD,YAAY,EACV,QAAQ,EACR,eAAe,EACf,cAAc,EACd,aAAa,EACb,QAAQ,EACR,KAAK,EACL,cAAc,EACd,KAAK,EACL,WAAW,EACX,aAAa,EACb,QAAQ,EACR,WAAW,GACZ,MAAM,YAAY,CAAC;AAGpB,OAAO,EACL,cAAc,EACd,qBAAqB,EACrB,oBAAoB,EACpB,mBAAmB,EACnB,cAAc,EACd,WAAW,EACX,oBAAoB,EACpB,WAAW,EACX,iBAAiB,EACjB,mBAAmB,EACnB,cAAc,GACf,MAAM,cAAc,CAAC;AAGtB,YAAY,EACV,iBAAiB,EACjB,iBAAiB,EACjB,uBAAuB,EACvB,cAAc,EACd,cAAc,EACd,wBAAwB,EACxB,uBAAuB,EACvB,sBAAsB,EACtB,sBAAsB,GACvB,MAAM,cAAc,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,13 +1,15 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
/**
|
|
3
|
-
*
|
|
4
|
-
* Model Context Protocol server for
|
|
3
|
+
* Meet.bot MCP Package
|
|
4
|
+
* Model Context Protocol server for Meet.bot Booking Page API
|
|
5
5
|
*/
|
|
6
6
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
-
exports.ApiErrorSchema = exports.MeetbotConfigSchema = exports.SlotDetailsSchema = exports.SlotsSchema = exports.SchedulingPageSchema = exports.PagesSchema = exports.PageInfoSchema = exports.GetInfoParamsSchema = exports.GetSlotsParamsSchema = exports.BookSlotRequestSchema = exports.BookSlotSchema = exports.MeetbotClient = exports.MeetbotMCPServer = void 0;
|
|
7
|
+
exports.ApiErrorSchema = exports.MeetbotConfigSchema = exports.SlotDetailsSchema = exports.SlotsSchema = exports.SchedulingPageSchema = exports.PagesSchema = exports.PageInfoSchema = exports.GetInfoParamsSchema = exports.GetSlotsParamsSchema = exports.BookSlotRequestSchema = exports.BookSlotSchema = exports.MeetbotClient = exports.MeetbotMCPServerHTTP = exports.MeetbotMCPServer = void 0;
|
|
8
8
|
// Export main classes
|
|
9
9
|
var mcp_server_js_1 = require("./mcp-server.js");
|
|
10
10
|
Object.defineProperty(exports, "MeetbotMCPServer", { enumerable: true, get: function () { return mcp_server_js_1.MeetbotMCPServer; } });
|
|
11
|
+
var mcp_server_http_js_1 = require("./mcp-server-http.js");
|
|
12
|
+
Object.defineProperty(exports, "MeetbotMCPServerHTTP", { enumerable: true, get: function () { return mcp_server_http_js_1.MeetbotMCPServerHTTP; } });
|
|
11
13
|
var meetbot_client_js_1 = require("./meetbot-client.js");
|
|
12
14
|
Object.defineProperty(exports, "MeetbotClient", { enumerable: true, get: function () { return meetbot_client_js_1.MeetbotClient; } });
|
|
13
15
|
// Export schemas
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH,sBAAsB;AACtB,iDAAmD;AAA1C,iHAAA,gBAAgB,OAAA;AACzB,yDAAoD;AAA3C,kHAAA,aAAa,OAAA;AAkBtB,iBAAiB;AACjB,2CAYsB;AAXpB,4GAAA,cAAc,OAAA;AACd,mHAAA,qBAAqB,OAAA;AACrB,kHAAA,oBAAoB,OAAA;AACpB,iHAAA,mBAAmB,OAAA;AACnB,4GAAA,cAAc,OAAA;AACd,yGAAA,WAAW,OAAA;AACX,kHAAA,oBAAoB,OAAA;AACpB,yGAAA,WAAW,OAAA;AACX,+GAAA,iBAAiB,OAAA;AACjB,iHAAA,mBAAmB,OAAA;AACnB,4GAAA,cAAc,OAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH,sBAAsB;AACtB,iDAAmD;AAA1C,iHAAA,gBAAgB,OAAA;AACzB,2DAA4D;AAAnD,0HAAA,oBAAoB,OAAA;AAC7B,yDAAoD;AAA3C,kHAAA,aAAa,OAAA;AAkBtB,iBAAiB;AACjB,2CAYsB;AAXpB,4GAAA,cAAc,OAAA;AACd,mHAAA,qBAAqB,OAAA;AACrB,kHAAA,oBAAoB,OAAA;AACpB,iHAAA,mBAAmB,OAAA;AACnB,4GAAA,cAAc,OAAA;AACd,yGAAA,WAAW,OAAA;AACX,kHAAA,oBAAoB,OAAA;AACpB,yGAAA,WAAW,OAAA;AACX,+GAAA,iBAAiB,OAAA;AACjB,iHAAA,mBAAmB,OAAA;AACnB,4GAAA,cAAc,OAAA"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { IncomingMessage, ServerResponse } from 'http';
|
|
2
|
+
/**
|
|
3
|
+
* HTTP-based MCP Server for Meet.bot Booking Page API with SSE transport
|
|
4
|
+
*/
|
|
5
|
+
export declare class MeetbotMCPServerHTTP {
|
|
6
|
+
private server;
|
|
7
|
+
private transports;
|
|
8
|
+
private clients;
|
|
9
|
+
constructor();
|
|
10
|
+
private setupToolHandlers;
|
|
11
|
+
private handleConfigureMeetbot;
|
|
12
|
+
private handleGetSchedulingPages;
|
|
13
|
+
private handleGetPageInfo;
|
|
14
|
+
private handleGetAvailableSlots;
|
|
15
|
+
private handleBookMeeting;
|
|
16
|
+
private handleHealthCheck;
|
|
17
|
+
/**
|
|
18
|
+
* Authenticate incoming requests using Bearer token
|
|
19
|
+
*/
|
|
20
|
+
private authenticateRequest;
|
|
21
|
+
/**
|
|
22
|
+
* Handle incoming HTTP requests
|
|
23
|
+
*/
|
|
24
|
+
handleRequest(req: IncomingMessage, res: ServerResponse): Promise<void>;
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=mcp-server-http.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcp-server-http.d.ts","sourceRoot":"","sources":["../src/mcp-server-http.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,MAAM,CAAC;AAEvD;;GAEG;AACH,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,UAAU,CAA8C;IAChE,OAAO,CAAC,OAAO,CAAyC;;IAaxD,OAAO,CAAC,iBAAiB;YAqKX,sBAAsB;YAgBtB,wBAAwB;YAwBxB,iBAAiB;YAkBjB,uBAAuB;YA0BvB,iBAAiB;YAwBjB,iBAAiB;IAoB/B;;OAEG;YACW,mBAAmB;IAkBjC;;OAEG;IACG,aAAa,CACjB,GAAG,EAAE,eAAe,EACpB,GAAG,EAAE,cAAc,GAClB,OAAO,CAAC,IAAI,CAAC;CA+EjB"}
|