get_proposal_templates
Access pre-built proposal templates to create professional business proposals quickly. Use these starting points to draft customized proposals for various client needs and project types.
Instructions
Lists proposal templates which are used as starting points to create new proposals
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Input Schema (JSON Schema)
{
"properties": {},
"type": "object"
}
Implementation Reference
- Full tool implementation including the handler (execute function) that fetches proposal templates from '/favorites/proposals' API endpoint, validates with schema, and returns JSON string.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:5-16 (schema)Zod schemas defining the structure of proposal templates and the array of them, used for output validation in the tool handler.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(); export const proposalTemplatesSchema = z.array(proposalTemplateSchema);
- src/tools/register.ts:37-39 (registration)Registration function that adds the getProposalTemplatesTool (imported on line 4 and included in tools array on line 27) to the MCP 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:4-4 (registration)Import statement for the getProposalTemplatesTool.import { getProposalTemplatesTool } from './favorites/get-proposal-templates.js';
- src/tools/register.ts:27-27 (registration)Inclusion of getProposalTemplatesTool in the tools array passed to registration.getProposalTemplatesTool,