Skip to main content
Glama
xuanji86

FastBound MCP

by xuanji86

Dispose (create + commit)

dispose

Record and commit a firearm disposition—sale, FFL transfer, or other—in a single step, with dry-run preview by default and confirm to execute.

Instructions

Record a disposition and commit it in one step (sale, FFL transfer, etc.). Items reference firearms already in inventory by GUID. For FFL transfers set requestType=Regular and otherTransfereeEmails; FastBound may auto-create the receiving FFL's acquisition (reported back via headers). Commits a regulated record: dry-run by default, pass confirm:true. Write.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
dateYesDisposition date (ISO, required) — when the firearm left the premises.
noteNo
otsnNo
ttsnNo
typeNoDisposition type label. See list_smartlists DisposeType.
itemsYesInventory items being disposed.
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.
contactNoInline new recipient contact (alternative to contactId).
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.
contactIdNoExisting recipient/buyer contact GUID.
requestTypeYesDisposition request type. Use Regular for sales/FFL transfers.
generateTTSNNoHave FastBound generate the TTSN.
invoiceNumberNo
contactExternalIdNo
purchaseOrderNumberNo
otherTransfereeEmailsNoRecipient FFL user emails for an FFL transfer; FastBound notifies them and may auto-create their acquisition.
shipmentTrackingNumberNo

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

A4.5/5.0
Behavior5/5

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

Annotations only provide destructiveHint=false, so the description carries the behavioral burden. It clearly discloses that this commits a regulated record, that confirm:true is required to execute (otherwise a dry-run), and that FastBound may auto-create the receiving FFL's acquisition, reported via headers. The final 'Write.' reinforces the mutating nature without contradicting destructiveHint.

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?

Four short sentences pack in purpose, prerequisite, FFL-specific behavior, and commit semantics with almost no fluff. 'Write.' is slightly redundant with 'Commits a regulated record', but it is not harmful and keeps the mutation warning prominent.

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 complex write tool with 18 parameters, nested contact objects, and no output schema, the description covers the essential behavioral contract: one-step create+commit, dry-run default, FFL auto-acquisition side effect. It could add a bit more about response shape or when to split into pending/commit workflows, but the schema covers the remaining parameter details.

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 61% schema coverage, the description compensates by explaining the critical parameters: items.id as inventory GUIDs, requestType=Regular and otherTransfereeEmails for FFL transfers, and confirm:true to turn the dry run into a real commit. It does not cover all 18 parameters, but it targets the ones most essential to correct invocation.

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?

Description says 'Record a disposition and commit it in one step', naming a specific verb, resource, and the create+commit combination that differentiates it from sibling tools like create_pending_disposition and commit_disposition. It also gives concrete examples (sale, FFL transfer) that clarify scope.

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?

Provides clear context: immediate one-step disposition, items must already exist in inventory by GUID, and FFL transfers require requestType=Regular plus otherTransfereeEmails. It does not explicitly state when not to use it or name alternatives, so it stops short of a 5.

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