Skip to main content
Glama
xuanji86

FastBound MCP

by xuanji86

Update contact

update_contact
Idempotent

Edit an existing contact's contact details or compliance status, preserving any fields you don't specify. Preview the merged result first, then confirm to apply changes.

Instructions

Edit fields on an existing contact. Read-merge-write so unspecified fields keep their current values (including the required status). Dry-run by default (preview shows the merged body); pass confirm:true. Write.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
idYesFastBound GUID of the contact to edit.
faxNo
soteinNo
statusNoCompliance status. Merged from the existing contact if omitted.
suffixNo
accountNoWhich configured FastBound account to use for this one call — an alias or account number (see list_accounts). Omit to use the active account.
confirmNoSet true to actually execute. Omit or false returns a DRY RUN preview that sends nothing.
lastNameNoFor individual contacts.
sotClassNo
auditUserNoEmail recorded as X-AuditUser for the ATF audit trail. Overrides FASTBOUND_AUDIT_USER for this call. Must be an active user on the account.
fflNumberNoFFL number, e.g. 1-23-456-78-9A-12345 (for FFL contacts).
firstNameNoFor individual contacts.
lookupFFLNoIf true, FastBound auto-fills FFL details from the number.
tradeNameNo
externalIdNo
fflExpiresNoFFL expiration date (ISO).
isArchivedNo
middleNameNo
statusNoteNo
licenseNameNo
phoneNumberNo
premiseCityNo
businessTypeNo
emailAddressNo
premiseStateNo2-letter state code.
premiseCountyNo
premiseCountryNo
premiseZipCodeNo
premiseAddress1No
premiseAddress2No
organizationNameNoFor organization contacts.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changedv0.2.0
    • addedInput schema / properties / account
      Added value: +{
      +  "description": "Which configured FastBound account to use for this one call — an alias or account number (see list_accounts). Omit to use the active account.",
      +  "type": "string"
      +}
  2. First observedv0.1.0

TDQS

A3.9/5.0
Behavior4/5

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

Goes beyond the idempotent/non-destructive annotations by revealing the read-merge-write behavior, that unspecified fields are preserved, and that the tool is dry-run by default with confirm:true required to write. This is materially useful and prevents accidental writes; only minor details like missing-contact handling are left undisclosed.

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 sentences pack the essential semantics (merge, dry-run, confirm) with no filler. The trailing 'Write.' is slightly redundant after 'pass confirm:true' but is a deliberate safety emphasis, so the structure remains efficient.

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?

The description covers the most important invocation details — read-merge-write and the confirm gate — but with 31 parameters, low schema coverage, and no output schema, it omits contact-type field groups, response/preview shape, and error behavior. It is adequate for safe invocation but not fully complete for this complexity.

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 schema description coverage at only 39%, the description needed to compensate by explaining or grouping many parameters, but it only highlights confirm and the merge semantics. Most of the 31 parameters (fax, sotein, suffix, tradeName, etc.) remain undocumented in both schema and description, and the core 'fields' are not enumerated.

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?

Opens with a specific verb and resource — 'Edit fields on an existing contact' — which clearly separates it from creation and merging tools in the sibling list. 'Read-merge-write' further specifies the style of update, so the tool's role is unambiguous.

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?

Clearly frames when an update on an existing contact is appropriate and emphasizes the dry-run default versus confirm execution. It does not explicitly name an alternative like create_contact for new contacts, but the 'existing contact' wording gives enough context to route correctly.

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