feat(mcp): add approval creation tool

Co-Authored-By: Paperclip <noreply@paperclip.ing>
This commit is contained in:
dotta 2026-04-06 21:25:58 -05:00
parent 8cdba3ce18
commit f1bb175584

View file

@ -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",