Skip to main content
Glama

HappyFox MCP by usefulapi

Edit a contact

happyfox_update_contact
Destructive

Edit an existing contact's name, email or contact custom fields (c-cf-). Phone numbers are edited via happyfox_create_contact with the phone id. HappyFox: POST /api/1.1/json/user//.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
nameNoNew name.
emailNoNew email address.
contact_idYesThe contact id.
custom_fieldsNoCustom field values keyed "c-cf-<id>". Contact fields. Values: text = string, number = number, dropdown = choice id, multiple choice = array of choice ids, date = yyyy-mm-dd.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedInput schema / $schema
      Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
  2. First observed

TDQS

A3.9/5.0
Behavior3/5

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

destructiveHint=true already tells the agent this mutates existing data, so the bar is lower. The description adds the useful routing note about phone numbers, but says nothing about whether omitted fields are left intact or cleared, nor about permissions or error behavior for an update that overwrites contact data.

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?

Two front-loaded sentences with no filler, and the field scope leads before the exception. The trailing API endpoint reference ('POST /api/1.1/json/user/<id>/') is slightly more implementation detail than most agents need.

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 mutation tool with a nested custom_fields object and no output schema, the description covers what is editable, the key format for custom fields, and the phone-number carve-out. It leaves partial-vs-full update semantics unstated, which is a meaningful gap for an overwrite operation.

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

Parameters3/5

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

Schema description coverage is 100%, so every parameter is already documented, including the 'c-cf-<id>' key format and value typing rules. The description restates the custom-field key convention rather than adding new meaning, which lands at the baseline 3.

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?

Specific verb ('Edit') plus resource ('an existing contact') and an explicit field scope (name, email, custom fields) that separates it from the create path. It also preempts confusion with the sibling happyfox_create_contact by stating where phone-number edits belong.

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?

Gives clear routing guidance: phone numbers are edited via happyfox_create_contact with the phone id, which is effectively a 'when not to use this tool' rule. It does not state broader preconditions (e.g. that the contact must exist, permissions needed), so it stops short of full when/when-not coverage.

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.