Skip to main content
Glama
create-proposal.ts1.32 kB
import { type Tool } from 'fastmcp'; import { z } from 'zod'; import { post } from '../../utils/requests.js'; import { createProposalSchema } from '../../schemas/proposals.js'; import { throwApiInvalidResponseError } from '../../utils/errors.js'; const parameters = z.object({ account_user_id: z.number().optional(), contact_id: z.number(), contact_people: z.array(z.number()), design_template_id: z.number(), name: z.string(), proposal_template_id: z.number(), text_template_id: z.number(), custom_fields: z.array(z.object({ name: z.string(), value: z.string() })).optional(), // automations_set_id: z.number().optional(), // content: proposalContentSchema.optional(), // directory_id: z.number().optional(), // tags: z.array(z.union([z.string(), z.object({ id: z.number(), name: z.string() })])).optional(), }); export const createProposalTool: Tool<typeof parameters._type, typeof parameters> = { name: 'create_proposal', description: 'Create a new proposal', parameters, annotations: { title: 'Create Proposal', openWorldHint: true, }, async execute(params) { const result = await post('/proposals/', params); const parsed = createProposalSchema.safeParse(result); if (!parsed.success) { throwApiInvalidResponseError(parsed.error); } return JSON.stringify(parsed.data); }, };

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/offorte/offorte-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server