Skip to main content
Glama

createCompany

Add new companies to Teamwork by providing details like name, address, email, and tags for organization and management.

Instructions

Create a new company. This tool allows you to create a company. The request requires a companyRequest object with various properties like addressOne, emailOne, name, and tags.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
companyRequestYes
optionsNoAdditional options for the request

Implementation Reference

  • Handler function that executes the createCompany tool: extracts companyData from input, validates name, calls teamworkService.createCompany, returns formatted result or error response.
    export async function handleCreateCompany(input: any) { logger.info('Calling teamworkService.createCompany()'); try { const companyData = input.companyRequest; if (!companyData || !companyData.name) { throw new Error("Company name is required"); } const result = await teamworkService.createCompany(companyData); logger.info(`Company created successfully with name: ${companyData.name}`); return { content: [{ type: "text", text: JSON.stringify(result, null, 2) }] }; } catch (error: any) { return createErrorResponse(error, 'Creating company'); } }
  • Tool definition with name, description, detailed inputSchema for companyRequest (name required, optional fields like address, email, etc.), and annotations.
    export const createCompanyDefinition = { name: "createCompany", description: "Create a new company. This tool allows you to create a company. The request requires a companyRequest object with various properties like addressOne, emailOne, name, and tags.", inputSchema: { type: 'object', properties: { companyRequest: { type: 'object', properties: { addressOne: { type: 'string', description: 'First line of address' }, addressTwo: { type: 'string', description: 'Second line of address' }, city: { type: 'string', description: 'City' }, company: { type: 'object', properties: { name: { type: 'string', description: 'Company name' } }, required: ['name'] }, countryCode: { type: 'string', description: 'Country code' }, emailOne: { type: 'string', description: 'First email address' }, emailTwo: { type: 'string', description: 'Second email address' }, fax: { type: 'string', description: 'Fax number' }, name: { type: 'string', description: 'Company name' }, phone: { type: 'string', description: 'Phone number' }, state: { type: 'string', description: 'State' }, tags: { type: 'array', items: { type: 'string' }, description: 'List of tags' }, website: { type: 'string', description: 'Website URL' }, zip: { type: 'string', description: 'ZIP/Postal code' } }, required: ['name'] }, options: { type: 'object', properties: {}, description: 'Additional options for the request' } }, required: ['companyRequest'] }, annotations: { title: "Create Company", readOnlyHint: false, destructiveHint: false, openWorldHint: false } };
  • Registration of createCompany tool in the toolPairs array, pairing the definition with its handler function.
    { definition: createCompany, handler: handleCreateCompany },
  • Helper service function that performs the actual API POST to 'companies.json' to create the company using the API client.
    export const createCompany = async (companyData: any) => { try { logger.info(`Creating new company with name: ${companyData.name}`); const api = ensureApiClient(); const response = await api.post('companies.json', companyData); logger.info(`Successfully created company. Response status: ${response.status}`); return response.data; } catch (error: any) { logger.error(`Error creating company: ${error.message}`); throw new Error(`Failed to create company: ${error.message}`); } };

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/Vizioz/Teamwork-MCP'

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