UNPKG

@chinchillaenterprises/mcp-upwork

Version:

Modular Upwork MCP server for job search and proposal management via Upwork API

48 lines (42 loc) 1.44 kB
import { Tool } from "@modelcontextprotocol/sdk/types.js"; import { PurchaseConnectsArgsSchema } from "../../schemas/upwork.js"; import { UpworkClient } from "../../services/upwork-client.js"; export const purchaseConnectsToolDefinition: Tool = { name: "upwork_purchase_connects", description: "Purchase additional connects", inputSchema: { type: "object", properties: { quantity: { type: "number", minimum: 10, maximum: 200, description: "Number of connects to purchase (increments of 10)" } }, required: ["quantity"] } }; export async function purchaseConnectsHandler(args: unknown, upworkClient: UpworkClient) { const validatedArgs = PurchaseConnectsArgsSchema.parse(args); try { const purchaseData = { quantity: validatedArgs.quantity }; const response = await upworkClient.getClient().post('/profiles/v1/contractors/me/connects/purchase', purchaseData); return { content: [ { type: "text", text: JSON.stringify({ success: true, purchase: response.data, message: `Successfully purchased ${validatedArgs.quantity} connects` }, null, 2) } ] }; } catch (error) { throw upworkClient.handleError(error); } } export const purchaseConnectsTool = { definition: purchaseConnectsToolDefinition, handler: purchaseConnectsHandler, schema: PurchaseConnectsArgsSchema };