Skip to main content
Glama
cotletdev

Contractor Foreman MCP Server

by cotletdev

Create contact

create_contact

Adds customer, employee, contractor, vendor, or misc contacts to the Contractor Foreman Directory and returns the new contact ID.

Instructions

Adds a customer, employee, contractor, vendor or misc contact to the Directory.

Creates a Contractor Foreman Directory record as the Add drawer does. Employees need a first and last name, contractors and vendors a company name, the others a name or a company. The record gets no app access and nobody is invited or emailed. Giving an employee a login stays a step in the app. Returns the new contact_id.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
zipNo
cellNo
cityNo
typeYesWhat kind of contact.
emailNo
phoneNo
stateNo
address1No
address2No
last_nameNo
first_nameNo
company_nameNoRequired for contractors and vendors.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv1.0.1

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes well beyond the annotations (readOnlyHint=false, idempotentHint=false, destructiveHint=false) by disclosing that the created record has no app access, no invitation email is sent, and login provisioning is out of scope. It also states the return value ('Returns the new contact_id'), which matters because no output schema exists.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Five tight sentences, front-loaded with the core action and followed by requirements then side-effect exclusions. 'Creates a Contractor Foreman Directory record as the Add drawer does' slightly restates the opening sentence but it establishes the UI-equivalence context.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a non-idempotent mutation with no output schema, the description covers what is created, what is not created (access/invites), conditional field requirements, and the return value. It does not address duplicate handling despite idempotentHint=false, which is the one remaining gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With only 17% schema coverage across 12 parameters, the description compensates by spelling out the type-conditional requirements: employees need first and last name, contractors and vendors need a company name, others need a name or a company. That is the single most error-prone part of the call. The address/phone/email fields are left unaddressed, but they are self-explanatory.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Adds a ... contact to the Directory') and enumerates exactly which contact types are supported, matching the schema enum. An agent can immediately tell this is the create-side counterpart to get_contact/list_contacts without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explains the operational context ('as the Add drawer does') and, importantly, the boundary conditions: no app access is granted, nobody is invited or emailed, and granting a login remains a separate step in the app. It does not explicitly name alternative tools, which keeps it from a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Deploy Server

Other Tools