Skip to main content
Glama
aarondotdev

tracking-requests-mcp

by aarondotdev

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
ENABLE_WRITESNoSet to 'true' to enable write tools (label_create, label_webhook_retry). Default is unset/false.
DATABASE_URL_DEVYesPostgreSQL connection string for the dev database (required for dev environment)
DATABASE_URL_PRODNoPostgreSQL connection string for the prod database (optional)
N8N_FEDEX_TRACKING_REQUEST_WEBHOOK_URL_DEVNoWebhook URL for n8n FedEx label creation in dev stage (needed for write tools in dev stage)
N8N_FEDEX_TRACKING_REQUEST_WEBHOOK_URL_PRODNoWebhook URL for n8n FedEx label creation in prod stage (needed for write tools in prod stage)

Capabilities

Features and capabilities supported by this server

CapabilityDetails
tools
{
  "listChanged": true
}
resources
{
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
db_queryA

Run a READ-ONLY SQL query (SELECT/WITH/EXPLAIN/SHOW only; single statement) against the tracking-requests DB. Escape hatch for anything the curated tools don't cover. Params are passed as $1,$2,… bind values.

commodity_lookupA

Look up commodities by any business identifier (sku, htsCode, shopifyProductId, bpProductId, or a title/parent-name substring). ERP-synced rows are source='erp'; app-created rows are source='manual' (no shopify_product_id). Soft-deleted rows (removed_at) are excluded unless includeRemoved. Attaches app-owned manual prices.

contacts_needing_fixesA

List shipping contacts that currently warrant a system status flag (No Phone, No Postal Code, Address Line 1 > 35, Address Line 2 > 35) — i.e. contacts whose details will break FedEx label/invoice creation. Read-only counterpart of the backfill-contact-status script; flags are recomputed live.

tracking_requests_listA

List tracking requests with triage filters. missingTrackingOnly:true surfaces requests with no tracking_number yet (the n8n label webhook is fire-and-forget, so a stuck request shows here). Soft-deleted rows excluded unless includeDeleted.

tracking_request_overviewA

360° rollup for ONE tracking request by id, transactionId (FedEx), or batchId (uuid). Returns a plain summary (tracking number, ready flag, from/to, contents, boxes) and a files list (shipping label PDF, and commercial invoice PDF for international) with open links, plus the raw request, content lines with resolved commodity, party JSON snapshots, and derived flags. allReady is true once every box has its tracking number and PDFs. A batchId that matches several requests returns them all — use this after creating a label to show the summary and files.

schema_checkB

Introspect the live DB and report any tables/columns the tools DEPEND ON that are missing (the breakage side of drift). ok:true means the contract holds.

coverage_reportA

Diff the live schema against the committed baseline snapshot. ADDED tables/columns = candidate tools/params; REMOVED = breakage. Run npm run snapshot to acknowledge.

label_optionsA

List the ship-from / ship-to / (importer, international only) parties the user can pick, BY NAME, from the same sources as the app form — so nobody needs to know IDs. Returns each option's id, display name, disambiguating context (country for contacts, city/state for stores), any contact flags, and sole when it's the only choice. Show the names to the user, then pass the chosen option's id to label_preflight / label_create. Call this before creating a label when you don't already have the party IDs.

label_preflightA

Validate a proposed FedEx shipment with ZERO side effects: party resolution + contact system flags (these break FedEx invoices), per-line commodity checks (exists, not soft-deleted, valid 10-digit HTS, required construction/type/fabric), unit-value suggestions (manual price, then commodity_prices), the international declared-value limit (CN $680 / else 5000 RMB live) with a projected total, and env wiring. Custom (off-catalog) lines are checked for their own required fields and get no unit-value suggestion (there is no catalog key to look up). Run this first.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription
referenceData model, integrations, footguns, canonical keys.

Latest Blog Posts

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/aarondotdev/fedex-label-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server