Skip to main content
Glama

Teamleader Focus MCP by usefulapi

Create a contact

teamleader_create_contact
Destructive

WRITE: create a new contact (person) in Teamleader. Only last_name is required. Returns the new contact's id. Teamleader: contacts.add.

Input Schema

NameRequiredDescriptionDefault
tagsNoTag names.
emailNoPrimary email address.
remarksNo
websiteNo
languageNoLanguage code, e.g. en, nl, fr.
last_nameYes
first_nameNo
telephonesNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare the write profile (readOnlyHint=false, destructiveHint=true, idempotentHint=false, openWorldHint=true), so the 'WRITE:' prefix adds little. The description does contribute real value by stating the return value ('Returns the new contact's id'), but it omits the non-idempotent implication — no duplicate prevention — and any permission or failure context.

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?

Three short, front-loaded clauses: write marker, required field, return value. The 'Teamleader: contacts.add.' line is marginally useful for traceability but is otherwise noise; nothing else is padded.

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

Completeness3/5

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

No output schema exists, and the description usefully discloses that the new contact's id is returned, which covers the return value. However, for a mutation tool with no idempotency and 8 loosely documented parameters, missing guidance on duplicate handling and on relating a contact to a company (via the sibling create_company tool) leaves an agent under-informed.

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

Parameters2/5

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

With 8 parameters and only 38% schema description coverage, the description is expected to compensate for undocumented fields like remarks, website, first_name and telephones. Instead it only repeats that last_name is required, which the schema already enforces via the required array. Nothing is added about field formats or the telephones structure.

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 ('create a new contact (person)') plus the Teamleader API endpoint (contacts.add), which clearly separates it from teamleader_create_company and teamleader_add_note. An agent knows exactly what entity is produced 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 Guidelines3/5

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

Implies usage through the 'WRITE: create' framing and notes that only last_name is required, but never says when to prefer this over sibling tools like teamleader_create_company or when an existing contact should be looked up via teamleader_list_contacts first. Usage is inferable but not guided.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.