diff --git a/packages/mcp-server/src/tools.ts b/packages/mcp-server/src/tools.ts index cfed2f66..0945541c 100644 --- a/packages/mcp-server/src/tools.ts +++ b/packages/mcp-server/src/tools.ts @@ -2,6 +2,7 @@ import { z } from "zod"; import { addIssueCommentSchema, checkoutIssueSchema, + createApprovalSchema, createIssueSchema, updateIssueSchema, upsertIssueDocumentSchema, @@ -113,6 +114,10 @@ const approvalDecisionSchema = z.object({ payloadJson: z.string().optional(), }); +const createApprovalToolSchema = z.object({ + companyId: companyIdOptional, +}).merge(createApprovalSchema); + const apiRequestSchema = z.object({ method: z.enum(["GET", "POST", "PUT", "PATCH", "DELETE"]), path: z.string().min(1), @@ -263,6 +268,15 @@ export function createToolDefinitions(client: PaperclipApiClient): ToolDefinitio return client.requestJson("GET", `/companies/${client.resolveCompanyId(companyId)}/approvals${qs}`); }, ), + makeTool( + "paperclipCreateApproval", + "Create a board approval request, optionally linked to one or more issues", + createApprovalToolSchema, + async ({ companyId, ...body }) => + client.requestJson("POST", `/companies/${client.resolveCompanyId(companyId)}/approvals`, { + body, + }), + ), makeTool( "paperclipGetApproval", "Get an approval by id",