Skip to main content
Glama
offorte

Offorte Proposal Software

Official

create_proposal

Generate professional proposals by specifying contact details, templates, and custom fields for business documentation.

Instructions

Create a new proposal

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
account_user_idNo
contact_idYes
contact_peopleYes
design_template_idYes
nameYes
proposal_template_idYes
text_template_idYes
custom_fieldsNo

Implementation Reference

  • The main handler implementation for the 'create_proposal' tool, including the execute function that makes a POST request to '/proposals/' with the provided parameters, parses the response using createProposalSchema, and returns the stringified data.
    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);
    	},
    };
  • Input schema (parameters) defining the structure for the create_proposal tool inputs.
    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(),
    });
  • Output schema used to validate the API response from creating a proposal.
    export const createProposalSchema = z.object({
    	id: z.number(),
    	version_id: z.number(),
    });
  • Import of the createProposalTool.
    import { createProposalTool } from './proposals/create-proposal.js';
  • Addition of createProposalTool to the tools array for registration.
    createProposalTool,

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