Skip to main content
Glama
offorte

Offorte Proposal Software

Official

create_contact

Add new contacts (organizations or individuals) to Offorte Proposal Software by entering details like name, address, and contact information.

Instructions

Create a new contact (organisation or person/individual)

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
typeYes
nameYes
streetNo
zipcodeNo
cityNo
stateNo
countryNo
phoneNo
emailNo
internetNo
linkedinNo
facebookNo
twitterNo
instagramNo
coc_numberNo
vat_numberNo
tagsNo
firstnameNo
lastnameNo
salutationNo
mobileNo

Implementation Reference

  • Full tool definition including the execute handler function that parses input schema, makes POST request to '/contacts/' endpoint, and returns the result as JSON string.
    export const createContactTool: Tool<typeof parameters._type, typeof parameters> = {
    	name: 'create_contact',
    	description: 'Create a new contact (organisation or person/individual)',
    	parameters,
    	annotations: {
    		title: 'Create Contact',
    		openWorldHint: true,
    	},
    	async execute(params) {
    		const parsed = contactCreateSchema.safeParse(params);
    
    		if (!parsed.success) {
    			throwApiInvalidResponseError(parsed.error);
    		}
    
    		const result = await post('/contacts/', parsed.data);
    		return JSON.stringify(result);
    	},
    };
  • Zod schema defining the input parameters for creating a contact, referenced by the tool.
    export const contactCreateSchema = z
    	.object({
    		type: contactType,
    		name: z.string(),
    		street: z.string().optional(),
    		zipcode: z.string().optional(),
    		city: z.string().optional(),
    		state: z.string().optional(),
    		country: z.string().optional(),
    		phone: z.string().optional(),
    		email: z.string().optional(),
    		internet: z.string().optional(),
    		linkedin: z.string().optional(),
    		facebook: z.string().optional(),
    		twitter: z.string().optional(),
    		instagram: z.string().optional(),
    		coc_number: z.string().optional(),
    		vat_number: z.string().optional(),
    		tags: tagsSchema.optional(),
    		firstname: z.string().optional(),
    		lastname: z.string().optional(),
    		salutation: z.string().optional(),
    		mobile: z.string().optional(),
    	})
    	.passthrough();
  • Registration of all tools including createContactTool into the MCP server via registerTools function.
    const tools = [
    	getInitialContextTool,
    	getAccountUsersTool,
    	getAutomationSetsTool,
    	getContactDetailsTool,
    	getDesignTemplatesTool,
    	getEmailTemplatesTool,
    	getProposalDirectoriesTool,
    	getProposalTemplatesTool,
    	getTextTemplatesTool,
    	searchContactOrganisationsTool,
    	searchContactPeopleTool,
    	searchProposalsTool,
    	createContactTool,
    	createProposalTool,
    	sendProposalTool,
    ];
    
    export function registerTools({ server }: { server: FastMCP }) {
    	(tools as unknown as FastMCPTool<Record<string, unknown>, ToolParameters>[]).map(initialContextGuard).forEach((tool) => server.addTool(tool));
    }
  • Import of the createContactTool for registration.
    import { createContactTool } from './contacts/create-contact.js';

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