get_proposal_templates
Access proposal templates to create new proposals quickly using Offorte Proposal Software. Start with pre-built formats for efficient proposal development.
Instructions
Lists proposal templates which are used as starting points to create new proposals
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Implementation Reference
- The main handler implementation for the 'get_proposal_templates' tool. It fetches proposal templates from the '/favorites/proposals' endpoint, validates the response using proposalTemplatesSchema, and returns the stringified data.export const getProposalTemplatesTool: Tool<undefined, typeof parameters> = { name: 'get_proposal_templates', description: `Lists proposal templates which are used as starting points to create new proposals`, parameters, annotations: { title: 'Get Proposal Templates', openWorldHint: true, }, async execute() { const result = await get('/favorites/proposals'); const parsed = proposalTemplatesSchema.safeParse(result); if (!parsed.success) { throwApiInvalidResponseError(parsed.error); } return JSON.stringify(parsed.data); }, };
- src/schemas/favorites.ts:16-16 (schema)The Zod schema used for validating the output of get_proposal_templates, which is an array of proposalTemplateSchema objects.export const proposalTemplatesSchema = z.array(proposalTemplateSchema);
- src/tools/register.ts:37-39 (registration)The registration function that adds all tools, including getProposalTemplatesTool (imported at line 4 and included in the tools array at line 27), to the FastMCP server.export function registerTools({ server }: { server: FastMCP }) { (tools as unknown as FastMCPTool<Record<string, unknown>, ToolParameters>[]).map(initialContextGuard).forEach((tool) => server.addTool(tool)); }
- src/tools/register.ts:27-27 (registration)Inclusion of getProposalTemplatesTool in the tools array for registration.getProposalTemplatesTool,
- src/schemas/favorites.ts:5-14 (schema)The detailed Zod schema for individual proposal templates, used in proposalTemplatesSchema.export const proposalTemplateSchema = z .object({ automations_set_id: optionalId, custom_fields: z.array(customFieldSchema).optional(), design_template_id: optionalId, id: z.number(), name: z.string(), text_template_id: optionalId, }) .passthrough();