2
2
import { Server } from "@modelcontextprotocol/sdk/server/index.js" ;
3
3
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js" ;
4
4
import { VERSION } from "./common/version.js" ;
5
- import { CallToolRequestSchema , ListToolsRequestSchema } from "@modelcontextprotocol/sdk/types.js" ;
6
- import { zodToJsonSchema } from 'zod-to-json-schema' ;
7
- import { createMeeting , CreateMeetingOptionsSchema } from "./operations/meeting.js" ;
5
+ import {
6
+ CallToolRequestSchema ,
7
+ ListToolsRequestSchema ,
8
+ } from "@modelcontextprotocol/sdk/types.js" ;
9
+ import { zodToJsonSchema } from "zod-to-json-schema" ;
10
+ import {
11
+ createMeeting ,
12
+ CreateMeetingOptionsSchema ,
13
+ } from "./operations/meeting.js" ;
8
14
import { z } from "zod" ;
9
15
import { getAccessToken } from "./common/auth.js" ;
10
16
11
17
const server = new Server (
12
- {
13
- name : 'zoom-mcp-server' ,
14
- version : VERSION ,
15
- } , {
18
+ {
19
+ name : "zoom-mcp-server" ,
20
+ version : VERSION ,
21
+ } ,
22
+ {
16
23
capabilities : {
17
- tools : { } ,
24
+ tools : { } ,
18
25
} ,
19
- }
26
+ } ,
20
27
) ;
21
28
22
29
server . setRequestHandler ( ListToolsRequestSchema , async ( ) => {
23
- return {
24
- tools : [
25
- {
26
- name : "create_meeting" ,
27
- description : "Create a meeting" ,
28
- inputSchema : zodToJsonSchema ( CreateMeetingOptionsSchema ) ,
29
- }
30
- ]
31
- }
30
+ return {
31
+ tools : [
32
+ {
33
+ name : "create_meeting" ,
34
+ description : "Create a meeting" ,
35
+ inputSchema : zodToJsonSchema ( CreateMeetingOptionsSchema ) ,
36
+ } ,
37
+ ] ,
38
+ } ;
32
39
} ) ;
33
40
34
41
server . setRequestHandler ( CallToolRequestSchema , async ( request ) => {
35
- try {
36
- if ( ! request . params . arguments ) {
37
- throw new Error ( "No arguments provided" ) ;
38
- }
39
- let token = await getAccessToken ( ) ;
40
- switch ( request . params . name ) {
41
- case "create_meeting" : {
42
- const args = CreateMeetingOptionsSchema . parse ( request . params . arguments ) ;
43
- const result = await createMeeting ( args , token . access_token ) ;
44
- return {
45
- content : [ { type : "text" , text : JSON . stringify ( result , null , 2 ) } ] ,
46
- } ;
47
- }
48
- }
49
-
50
- } catch ( error ) {
51
- if ( error instanceof z . ZodError ) {
52
- throw new Error ( `Invalid input: ${ JSON . stringify ( error . errors ) } ` ) ;
53
- }
54
- throw error ;
42
+ try {
43
+ if ( ! request . params . arguments ) {
44
+ throw new Error ( "No arguments provided" ) ;
55
45
}
46
+ let token = await getAccessToken ( ) ;
47
+ switch ( request . params . name ) {
48
+ case "create_meeting" : {
49
+ const args = CreateMeetingOptionsSchema . parse ( request . params . arguments ) ;
50
+ const result = await createMeeting ( args , token . access_token ) ;
51
+ return {
52
+ content : [ { type : "text" , text : JSON . stringify ( result , null , 2 ) } ] ,
53
+ } ;
54
+ }
55
+ }
56
+ } catch ( error ) {
57
+ if ( error instanceof z . ZodError ) {
58
+ throw new Error ( `Invalid input: ${ JSON . stringify ( error . errors ) } ` ) ;
59
+ }
60
+ throw error ;
61
+ }
56
62
57
- return { } ;
63
+ return { } ;
58
64
} ) ;
59
65
60
66
async function runServer ( ) {
61
- const transport = new StdioServerTransport ( ) ;
62
- await server . connect ( transport ) ;
63
- console . log ( "zoom mcp server running on stdio" )
67
+ const transport = new StdioServerTransport ( ) ;
68
+ await server . connect ( transport ) ;
69
+ console . log ( "zoom mcp server running on stdio" ) ;
64
70
}
65
71
66
72
runServer ( ) . catch ( ( error ) => {
67
- console . error ( "Fatal error in main()" , error ) ;
68
- process . exit ( 1 ) ;
69
- } ) ;
73
+ console . error ( "Fatal error in main()" , error ) ;
74
+ process . exit ( 1 ) ;
75
+ } ) ;
0 commit comments