@@ -103,54 +103,60 @@ export const POST = withRouteHandler(
103103 withMcpAuth (
104104 'write' ,
105105 'deploy.mcp'
106- ) ( async ( request : NextRequest , { userId, userName, userEmail, workspaceId, requestId } ) => {
107- try {
108- const rawBody = await readMcpJsonBodyWithLimit ( request )
109- const parsedBody = createWorkflowMcpServerBodySchema . safeParse ( rawBody )
106+ ) (
107+ async (
108+ request : NextRequest ,
109+ { userId, userName, userEmail, workspaceId, requestId, permission }
110+ ) => {
111+ try {
112+ const rawBody = await readMcpJsonBodyWithLimit ( request )
113+ const parsedBody = createWorkflowMcpServerBodySchema . safeParse ( rawBody )
114+
115+ if ( ! parsedBody . success ) {
116+ return createMcpErrorResponse ( parsedBody . error , 'Invalid request format' , 400 )
117+ }
110118
111- if ( ! parsedBody . success ) {
112- return createMcpErrorResponse ( parsedBody . error , 'Invalid request format' , 400 )
113- }
119+ const body = parsedBody . data
114120
115- const body = parsedBody . data
116-
117- logger . info ( `[${ requestId } ] Creating workflow MCP server:` , {
118- name : body . name ,
119- workspaceId,
120- workflowIds : body . workflowIds ,
121- } )
122-
123- const result = await performCreateWorkflowMcpServer ( {
124- workspaceId,
125- userId,
126- actorName : userName ,
127- actorEmail : userEmail ,
128- name : body . name ,
129- description : body . description ,
130- isPublic : body . isPublic ,
131- workflowIds : body . workflowIds ,
132- } )
133- if ( ! result . success || ! result . server ) {
134- return createMcpErrorResponse (
135- new Error ( result . error || 'Failed to create workflow MCP server' ) ,
136- result . error || 'Failed to create workflow MCP server' ,
137- mcpOrchestrationStatus ( result . errorCode )
138- )
139- }
121+ logger . info ( `[${ requestId } ] Creating workflow MCP server:` , {
122+ name : body . name ,
123+ workspaceId,
124+ workflowIds : body . workflowIds ,
125+ } )
140126
141- const { server } = result
142- const addedTools = result . addedTools || [ ]
127+ const result = await performCreateWorkflowMcpServer ( {
128+ workspaceId,
129+ userId,
130+ actorName : userName ,
131+ actorEmail : userEmail ,
132+ name : body . name ,
133+ description : body . description ,
134+ isPublic : body . isPublic ,
135+ allowVisibilityChange : permission === 'admin' ,
136+ workflowIds : body . workflowIds ,
137+ } )
138+ if ( ! result . success || ! result . server ) {
139+ return createMcpErrorResponse (
140+ new Error ( result . error || 'Failed to create workflow MCP server' ) ,
141+ result . error || 'Failed to create workflow MCP server' ,
142+ mcpOrchestrationStatus ( result . errorCode )
143+ )
144+ }
143145
144- logger . info (
145- `[${ requestId } ] Successfully created workflow MCP server: ${ body . name } (ID: ${ server . id } )`
146- )
146+ const { server } = result
147+ const addedTools = result . addedTools || [ ]
147148
148- return createMcpSuccessResponse ( { server, addedTools } , 201 )
149- } catch ( error ) {
150- const bodyErrorResponse = mcpBodyReadErrorResponse ( error , request )
151- if ( bodyErrorResponse ) return bodyErrorResponse
152- logger . error ( `[${ requestId } ] Error creating workflow MCP server:` , error )
153- return createMcpErrorResponse ( toError ( error ) , 'Failed to create workflow MCP server' , 500 )
149+ logger . info (
150+ `[${ requestId } ] Successfully created workflow MCP server: ${ body . name } (ID: ${ server . id } )`
151+ )
152+
153+ return createMcpSuccessResponse ( { server, addedTools } , 201 )
154+ } catch ( error ) {
155+ const bodyErrorResponse = mcpBodyReadErrorResponse ( error , request )
156+ if ( bodyErrorResponse ) return bodyErrorResponse
157+ logger . error ( `[${ requestId } ] Error creating workflow MCP server:` , error )
158+ return createMcpErrorResponse ( toError ( error ) , 'Failed to create workflow MCP server' , 500 )
159+ }
154160 }
155- } )
161+ )
156162)
0 commit comments