FastBound MCP
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| FASTBOUND_API_KEY | Yes | API key from Settings → Account. Basic-auth password. | |
| FASTBOUND_BASE_URL | No | API root override. | https://cloud.fastbound.com |
| FASTBOUND_AUDIT_USER | No | Email recorded as X-AuditUser on writes (ATF audit trail). Must be an active account user. | |
| FASTBOUND_API_VERSION | No | Optional x-api-version header. | |
| FASTBOUND_ALLOW_WRITES | No | Master write switch. When false, every write tool refuses and sends nothing. | false |
| FASTBOUND_ACCOUNT_NUMBER | Yes | Account number (the numeric id in your cloud.fastbound.com URL). Used as the Basic-auth username. |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| get_accountA | Read FastBound account properties and settings (number, name, items in inventory, owner). Useful as a connectivity/credential check. Read-only. |
| list_smartlistsA | Return one of FastBound's reference lists (allowed values). Use this to discover valid caliber/manufacturer/type/condition/location/importer values before creating or editing records. Read-only. |
| list_usersA | List users on the account. Use this to find valid emails for the X-AuditUser header required on write operations. Read-only. |
| search_itemsA | Search the firearm inventory (the A&D book). Filter by serial, manufacturer, model, type, caliber, status, date ranges, TTSN/OTSN, and more. Returns a page of items plus the total record count. Read-only. |
| get_itemA | Retrieve a single firearm record by FastBound GUID id or by your externalId. Read-only. |
| update_itemA | Edit fields on an existing firearm record. Performs a read-merge-write so unspecified fields keep their current values. Dry-run by default (preview shows the merged body); pass confirm:true to apply. Write. |
| set_item_external_idA | Set or change only the externalId of an item (links it to your system's record) without touching other fields. Write. |
| set_item_acquisition_contactA | Set the acquisition (source) contact on an item. Executes directly. Write. |
| delete_itemA | Delete a firearm record. ATF permits deletion only for a Duplicate or Error; a deleteType and an explanatory deleteNote are required and form an immutable audit entry. Dry-run by default; pass confirm:true to delete. Destructive write. |
| undispose_itemA | Reverse a disposition: return a disposed firearm to available inventory. Dry-run by default; pass confirm:true to apply. Write. |
| search_acquisitionsA | Search acquisition records (intake events). Filter by type, PO/invoice/tracking number, supplier contact, item, and manufacturing flag. Read-only. |
| get_acquisitionA | Retrieve a single acquisition by FastBound GUID id or your externalId. Read-only. |
| get_acquisition_itemA | Retrieve a single item within an acquisition. Read-only. |
| acquireA | Record an acquisition and commit it to the A&D book in one step (the recommended intake path). A supplier contact is REQUIRED — provide contactId, contactExternalId, or an inline contact. This commits a regulated record: dry-run by default, pass confirm:true to execute. Write. |
| create_pending_acquisitionA | Create a PENDING (uncommitted) acquisition draft. A supplier contact is REQUIRED (contactId, contactExternalId, or inline contact). Has no ATF effect until committed, so it executes directly (no dry-run). Add items with add_acquisition_items, then finalise with commit_acquisition. Write. |
| add_acquisition_itemsA | Add a single firearm to a pending acquisition. Executes directly (the acquisition is still uncommitted). Write. |
| update_acquisitionA | Edit header fields (type, date, note, PO/invoice/tracking, externalId) on a PENDING acquisition. Read-merge-write so unspecified fields keep their current values. Dry-run by default; pass confirm:true. Write. |
| update_acquisition_itemA | Replace an item within a pending acquisition with corrected firearm data. Supply the full item (PUT replaces it). Dry-run by default; pass confirm:true. Write. |
| attach_acquisition_contactA | Assign an existing supplier contact to a pending acquisition. Executes directly. Write. |
| commit_acquisitionA | Commit a pending acquisition to the A&D book — the point of no return. Dry-run by default; pass confirm:true to commit. Write. |
| delete_acquisitionA | Delete a PENDING (uncommitted) acquisition draft. Dry-run by default; pass confirm:true. Destructive write. |
| delete_acquisition_itemA | Remove an item from a pending acquisition. Dry-run by default; pass confirm:true. Destructive write. |
| search_dispositionsA | Search disposition records (firearms leaving inventory: sales, FFL transfers, theft/loss, destroyed). Filter by type, TTSN/OTSN, PO/invoice/tracking, recipient contact, item. Read-only. |
| get_dispositionA | Retrieve a single disposition by FastBound GUID id or your externalId. Read-only. |
| list_disposition_itemsA | List the items on a disposition. Read-only. |
| list_4473_dispositionsA | List dispositions that have an associated ATF Form 4473. Read-only. |
| disposeA | 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. |
| create_pending_dispositionA | Create a PENDING (uncommitted) disposition draft. No ATF effect until committed, so it executes directly. Add items with add_disposition_items, then finalise with commit_disposition. Write. |
| add_disposition_itemsA | Add inventory items (by GUID, optionally with a price) to a pending disposition. Executes directly. Write. |
| update_dispositionA | Edit header fields on a PENDING disposition (type, date, note, TTSN/OTSN, PO/invoice/tracking, theft-loss/destroyed details). Read-merge-write so unspecified fields keep their values. Dry-run by default; pass confirm:true. Write. |
| edit_disposition_item_priceA | Set the sale price of an item on a pending disposition. Executes directly. Write. |
| attach_disposition_contactA | Assign an existing recipient/buyer contact to a pending disposition. Executes directly. Write. |
| remove_disposition_itemsA | Remove an item from a pending disposition by its inventory item GUID. Dry-run by default; pass confirm:true. Write. |
| commit_dispositionA | Commit a pending disposition to the A&D book — the point of no return. May trigger a Multiple Sale report and, for FFL transfers, auto-create the recipient's acquisition (reported via headers). Dry-run by default; pass confirm:true. Write. |
| lock_dispositionA | Lock a disposition to prevent further edits. Dry-run by default; pass confirm:true. Write. |
| dispose_theft_lossA | Record and commit a theft/loss disposition for inventory items. Provide discovery date and incident numbers. Dry-run by default; pass confirm:true. Write. |
| dispose_destroyedA | Record and commit a destroyed disposition for inventory items. Provide destruction date, description, and witnesses. Dry-run by default; pass confirm:true. Write. |
| dispose_nfaA | Record and commit an NFA disposition for inventory items. Dry-run by default; pass confirm:true. Write. |
| delete_dispositionA | Delete a PENDING (uncommitted) disposition draft. Dry-run by default; pass confirm:true. Destructive write. |
| search_contactsA | Search contacts (individuals, organizations, and FFLs). Filter by name, FFL number, trade name, or organization name. Read-only. |
| get_contactA | Retrieve a single contact by FastBound GUID id or your externalId. Read-only. |
| create_contactA | 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. |
| update_contactA | 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. |
| manage_contact_licensesA | Add, update, or delete a license on a contact. For add provide type+number; for update/delete provide licenseId. Executes directly. Write. |
| merge_contactsA | Merge two duplicate contacts: keep winningContactId, discard losingContactId (its references move to the winner). Dry-run by default; pass confirm:true. Destructive write. |
| download_bound_bookA | Generate and download the A&D bound book export. Requires an auditUser email (recorded by FastBound). Returns the file base64-encoded (large exports are summarised instead). Read. |
| download_4473A | Download a completed ATF Form 4473 PDF by its id. Returns the file base64-encoded. Read. |
| download_attachmentA | Download an attachment file by its id. Returns the file base64-encoded. Read. |
| download_multiple_sale_reportA | Download a Multiple Sale report attachment (ATF Form 3310.4/5300.9) by report id and attachment id. Returns the file base64-encoded. Read. |
| manage_webhooksA | List available webhook event types, get a webhook, or create/update/delete a webhook subscription. action=list_events|get reads; create|update|delete are writes (require FASTBOUND_ALLOW_WRITES). For create provide name, url, and events. |
| bulk_verify_inventoryA | Mark a list of serial numbers as physically verified during a cycle count, optionally updating their location. Write. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/xuanji86/fastbound-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server