Skip to main content
Glama
xuanji86

FastBound MCP

by xuanji86

Create contact

create_contact

Add an FFL, organization, or individual contact with premise address details to your FastBound account. Writes the contact directly, making it available for acquisition and disposition records.

Instructions

Create a contact (FFL, organization, or individual). Provide fflNumber for an FFL, organizationName for an org, or first/last name for an individual, plus premise address fields. Executes directly (a contact is not an A&D record). If FastBound matches an existing contact it is reported via headers. Write.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
faxNo
soteinNo
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.
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).
middleNameNo
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.8/5.0
Behavior4/5

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

Annotations only provide destructiveHint=false, so the description carries most of the behavioral burden. It discloses that this is a write operation, executes directly outside A&D records, and that existing-contact matches are reported via headers. It does not cover authentication, error behavior, or response body contents, but the main behavioral caveats are present.

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?

The description is compact, front-loaded, and easy to parse. The trailing 'Write.' is redundant since 'Create' already implies mutation, but it is brief enough not to significantly hurt clarity.

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?

For a tool with 26 optional parameters, no output schema, and low schema coverage, the description gives a usable selection rule but leaves many parameters and the exact response shape unexplained. The duplicate-match header note is useful, but an agent would still need more information to handle advanced or edge cases confidently.

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 only 35%, and the description partially compensates by mapping fflNumber, organizationName, and first/last name to their contact types and pointing to premise address fields. However, most of the 26 parameters (fax, sotein, businessType, suffix, etc.) remain unexplained, so the description does not fully cover the parameter semantics gap.

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?

The description opens with a specific verb and resource ('Create a contact') and immediately enumerates the three supported subtypes (FFL, organization, individual). The clarifying statement that a contact is not an A&D record also helps distinguish this from acquisition/disposition-related tools.

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?

It gives clear context for when to create a contact and which fields to provide for each type. However, it does not explicitly contrast with update_contact, merge_contacts, or the various attach_*_contact tools, and it never states when not to use it.

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