@meetbot/mcp 1.2.3 → 1.2.5

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/package.json CHANGED
@@ -1,15 +1,15 @@
1
1
  {
2
2
  "name": "@meetbot/mcp",
3
- "version": "1.2.3",
3
+ "version": "1.2.5",
4
4
  "description": "Model Context Protocol (MCP) server for Meet.bot booking page API",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
7
7
  "types": "dist/index.d.ts",
8
- "bin": {
9
- "meetbot-mcp": "dist/cli.js",
10
- "meetbot-mcp-http": "dist/cli-http.js",
11
- "meetbot-mcp-streamable": "dist/cli-streamable.js"
12
- },
8
+ "bin": {
9
+ "meetbot-mcp": "dist/cli.js",
10
+ "meetbot-mcp-http": "dist/cli-http.js",
11
+ "meetbot-mcp-streamable": "dist/cli-streamable.js"
12
+ },
13
13
  "scripts": {
14
14
  "build": "tsc",
15
15
  "dev": "tsc --watch",
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=meetbot-client.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"meetbot-client.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/meetbot-client.test.ts"],"names":[],"mappings":""}
@@ -1,172 +0,0 @@
1
- import { MeetbotClient } from '../meetbot-client';
2
- // Mock axios
3
- jest.mock('axios');
4
- const mockAxios = require('axios');
5
- describe('MeetbotClient', () => {
6
- let client;
7
- const mockConfig = {
8
- authToken: 'test-token',
9
- };
10
- beforeEach(() => {
11
- jest.clearAllMocks();
12
- mockAxios.create.mockReturnValue({
13
- get: jest.fn(),
14
- post: jest.fn(),
15
- interceptors: {
16
- request: { use: jest.fn() },
17
- response: { use: jest.fn() },
18
- },
19
- });
20
- });
21
- describe('constructor', () => {
22
- it('should create client with valid config', () => {
23
- expect(() => new MeetbotClient(mockConfig)).not.toThrow();
24
- });
25
- it('should create axios instance with correct baseURL', () => {
26
- new MeetbotClient(mockConfig);
27
- expect(mockAxios.create).toHaveBeenCalledWith(expect.objectContaining({
28
- baseURL: 'https://meet.bot',
29
- timeout: 30000,
30
- }));
31
- });
32
- });
33
- describe('getPages', () => {
34
- beforeEach(() => {
35
- client = new MeetbotClient(mockConfig);
36
- });
37
- it('should call correct endpoint', async () => {
38
- const mockResponse = { data: { email: 'test@example.com', pages: [] } };
39
- const mockGet = jest.fn().mockResolvedValue(mockResponse);
40
- mockAxios.create.mockReturnValue({
41
- get: mockGet,
42
- post: jest.fn(),
43
- interceptors: {
44
- request: { use: jest.fn() },
45
- response: { use: jest.fn() },
46
- },
47
- });
48
- client = new MeetbotClient(mockConfig);
49
- await client.getPages();
50
- expect(mockGet).toHaveBeenCalledWith('/v1/pages');
51
- });
52
- });
53
- describe('getPageInfo', () => {
54
- beforeEach(() => {
55
- client = new MeetbotClient(mockConfig);
56
- });
57
- it('should validate params before making request', () => {
58
- const invalidParams = { page: 'not-a-url' };
59
- expect(() => client.getPageInfo(invalidParams)).rejects.toThrow();
60
- });
61
- it('should call correct endpoint with params', async () => {
62
- const mockResponse = {
63
- data: {
64
- title: 'Test Page',
65
- duration: 30,
66
- url: 'https://meet.bot/user/30min',
67
- owner_name: 'John Doe',
68
- max_days_into_the_future: 30,
69
- },
70
- };
71
- const mockGet = jest.fn().mockResolvedValue(mockResponse);
72
- mockAxios.create.mockReturnValue({
73
- get: mockGet,
74
- post: jest.fn(),
75
- interceptors: {
76
- request: { use: jest.fn() },
77
- response: { use: jest.fn() },
78
- },
79
- });
80
- client = new MeetbotClient(mockConfig);
81
- const params = { page: 'https://meet.bot/user/30min' };
82
- await client.getPageInfo(params);
83
- expect(mockGet).toHaveBeenCalledWith('/v1/info', { params });
84
- });
85
- });
86
- describe('getSlots', () => {
87
- beforeEach(() => {
88
- client = new MeetbotClient(mockConfig);
89
- });
90
- it('should validate params before making request', () => {
91
- const invalidParams = { page: 'not-a-url' };
92
- expect(() => client.getSlots(invalidParams)).rejects.toThrow();
93
- });
94
- it('should call correct endpoint with params', async () => {
95
- const mockResponse = {
96
- data: {
97
- count: 1,
98
- duration: 30,
99
- slots: [{ start: '2025-01-15T14:00:00Z' }],
100
- },
101
- };
102
- const mockGet = jest.fn().mockResolvedValue(mockResponse);
103
- mockAxios.create.mockReturnValue({
104
- get: mockGet,
105
- post: jest.fn(),
106
- interceptors: {
107
- request: { use: jest.fn() },
108
- response: { use: jest.fn() },
109
- },
110
- });
111
- client = new MeetbotClient(mockConfig);
112
- const params = { page: 'https://meet.bot/user/30min' };
113
- await client.getSlots(params);
114
- expect(mockGet).toHaveBeenCalledWith('/v1/slots', { params });
115
- });
116
- });
117
- describe('bookSlot', () => {
118
- beforeEach(() => {
119
- client = new MeetbotClient(mockConfig);
120
- });
121
- it('should validate request before making API call', () => {
122
- const invalidRequest = {
123
- page: 'not-a-url',
124
- guest_email: 'test@example.com',
125
- guest_name: 'Test User',
126
- start: '2025-01-15T14:00:00Z'
127
- };
128
- expect(() => client.bookSlot(invalidRequest)).rejects.toThrow();
129
- });
130
- it('should call correct endpoint with request body', async () => {
131
- const mockResponse = {
132
- data: {
133
- success: true,
134
- page: 'https://meet.bot/user/30min',
135
- guest_email: 'guest@example.com',
136
- guest_name: 'Jane Doe',
137
- start: '2025-01-15T14:00:00Z',
138
- ical_uid: 'abc123',
139
- },
140
- };
141
- const mockPost = jest.fn().mockResolvedValue(mockResponse);
142
- mockAxios.create.mockReturnValue({
143
- get: jest.fn(),
144
- post: mockPost,
145
- interceptors: {
146
- request: { use: jest.fn() },
147
- response: { use: jest.fn() },
148
- },
149
- });
150
- client = new MeetbotClient(mockConfig);
151
- const request = {
152
- page: 'https://meet.bot/user/30min',
153
- guest_email: 'guest@example.com',
154
- guest_name: 'Jane Doe',
155
- start: '2025-01-15T14:00:00Z',
156
- };
157
- await client.bookSlot(request);
158
- expect(mockPost).toHaveBeenCalledWith('/v1/book', request);
159
- });
160
- });
161
- describe('getConfig', () => {
162
- beforeEach(() => {
163
- client = new MeetbotClient(mockConfig);
164
- });
165
- it('should return a copy of the configuration', () => {
166
- const config = client.getConfig();
167
- expect(config).toEqual(mockConfig);
168
- expect(config).not.toBe(mockConfig); // Should be a copy, not reference
169
- });
170
- });
171
- });
172
- //# sourceMappingURL=meetbot-client.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"meetbot-client.test.js","sourceRoot":"","sources":["../../src/__tests__/meetbot-client.test.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=types.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/types.test.ts"],"names":[],"mappings":""}
@@ -1,109 +0,0 @@
1
- import { BookSlotSchema, PageInfoSchema, GetSlotsParamsSchema, MeetbotConfigSchema, } from '../schemas';
2
- describe('Meet.bot API Schemas', () => {
3
- describe('BookSlotSchema', () => {
4
- it('should validate a valid BookSlot', () => {
5
- const validBookSlot = {
6
- success: true,
7
- page: 'https://meet.bot/user/30min',
8
- guest_email: 'guest@example.com',
9
- guest_name: 'Jane Doe',
10
- notes: 'Meeting notes',
11
- start: '2025-01-15T14:00:00Z',
12
- ical_uid: 'abc123',
13
- };
14
- const result = BookSlotSchema.safeParse(validBookSlot);
15
- expect(result.success).toBe(true);
16
- });
17
- it('should reject invalid email', () => {
18
- const invalidBookSlot = {
19
- success: true,
20
- page: 'https://meet.bot/user/30min',
21
- guest_email: 'invalid-email',
22
- guest_name: 'Jane Doe',
23
- start: '2025-01-15T14:00:00Z',
24
- ical_uid: 'abc123',
25
- };
26
- const result = BookSlotSchema.safeParse(invalidBookSlot);
27
- expect(result.success).toBe(false);
28
- });
29
- });
30
- describe('PageInfoSchema', () => {
31
- it('should validate a valid PageInfo', () => {
32
- const validPageInfo = {
33
- title: '30 Minute Meeting',
34
- duration: 30,
35
- url: 'https://meet.bot/user/30min',
36
- owner_name: 'John Doe',
37
- max_days_into_the_future: 30,
38
- };
39
- const result = PageInfoSchema.safeParse(validPageInfo);
40
- expect(result.success).toBe(true);
41
- });
42
- it('should reject negative duration', () => {
43
- const invalidPageInfo = {
44
- title: '30 Minute Meeting',
45
- duration: -30,
46
- url: 'https://meet.bot/user/30min',
47
- owner_name: 'John Doe',
48
- max_days_into_the_future: 30,
49
- };
50
- const result = PageInfoSchema.safeParse(invalidPageInfo);
51
- expect(result.success).toBe(false);
52
- });
53
- });
54
- describe('MeetbotConfigSchema', () => {
55
- it('should validate valid config with baseUrl only', () => {
56
- const validConfig = {
57
- baseUrl: 'https://api.meet.bot',
58
- };
59
- const result = MeetbotConfigSchema.safeParse(validConfig);
60
- expect(result.success).toBe(true);
61
- });
62
- it('should validate valid config with all fields', () => {
63
- const validConfig = {
64
- baseUrl: 'https://api.meet.bot',
65
- authToken: 'token123',
66
- sessionId: 'session123',
67
- };
68
- const result = MeetbotConfigSchema.safeParse(validConfig);
69
- expect(result.success).toBe(true);
70
- });
71
- it('should accept valid authToken', () => {
72
- const validConfig = {
73
- authToken: 'valid-token-123',
74
- };
75
- const result = MeetbotConfigSchema.safeParse(validConfig);
76
- expect(result.success).toBe(true);
77
- });
78
- });
79
- describe('GetSlotsParamsSchema', () => {
80
- it('should validate valid params', () => {
81
- const validParams = {
82
- page: 'https://meet.bot/user/30min',
83
- count: 10,
84
- start: '2025-01-01',
85
- end: '2025-01-31',
86
- timezone: 'America/New_York',
87
- booking_link: true,
88
- };
89
- const result = GetSlotsParamsSchema.safeParse(validParams);
90
- expect(result.success).toBe(true);
91
- });
92
- it('should validate minimal params', () => {
93
- const minimalParams = {
94
- page: 'https://meet.bot/user/30min',
95
- };
96
- const result = GetSlotsParamsSchema.safeParse(minimalParams);
97
- expect(result.success).toBe(true);
98
- });
99
- it('should reject invalid date format', () => {
100
- const invalidParams = {
101
- page: 'https://meet.bot/user/30min',
102
- start: '2025/01/01',
103
- };
104
- const result = GetSlotsParamsSchema.safeParse(invalidParams);
105
- expect(result.success).toBe(false);
106
- });
107
- });
108
- });
109
- //# sourceMappingURL=types.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.test.js","sourceRoot":"","sources":["../../src/__tests__/types.test.ts"],"names":[],"mappings":"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"}