forked from farhoodlabs/paperclip
feat(mcp): add approval creation tool
Co-Authored-By: Paperclip <noreply@paperclip.ing>
This commit is contained in:
@@ -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",
|
||||
|
||||
Reference in New Issue
Block a user