Skip to main content
Glama

Trackkr.app - Parcel log for apartments

Server Details

Trackkr MCP Server is a lightweight, lockerless multi-tenant parcel management engine that allows AI assistants to autonomously log incoming packages via OCR label text parsing, manage unit and tenant directories, and securely orchestrate package releases using digital pickup signatures over Firestore and Google Cloud infrastructure.

If you are the author of this connector, you can claim ownership by verifying the domain or GitHub account it belongs to. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Last Tested
Transport
Streamable HTTP · MCP 2024-11-05
URL

TDQS

A3.6/5.0

Scored across 3 tools

Disambiguation5/5

Each tool maps to a distinct action on the parcel resource: reading the pending ledger, creating a parcel log entry, and transitioning a parcel to picked-up. There is no overlap in trigger intent, so an agent can select correctly without hesitation.

Naming Consistency4/5

All three follow a verb_object snake_case pattern (get_, log_, release_), which is predictable and readable. The trailing qualifier '_with_signature' on one name is a minor stylistic deviation from the otherwise clean pattern.

Tool Count4/5

Three tools is on the lean side but each covers a genuinely distinct phase of the parcel workflow and none feels redundant. It is slightly under-scoped rather than bloated.

Completeness4/5

The core lifecycle is covered: log incoming, view pending/aging, and release with signature. Gaps exist for direct lookup by tracking number, correction/undo of a mis-logged parcel, and any unit/resident management, but the primary apartment parcel workflow functions end to end.

Available Tools

3 tools
get_pending_parcelsBInspect

Fetches the current ledger of uncollected packages, highlights aging stats (5+ days), enriches each with occupant contact preferences and notification/telemetry history, and returns structured JSON context.

ParametersJSON Schema
NameRequiredDescriptionDefault
businessIdNoOptional tenant businessId filter. When provided, scans only that property.
maxResultsNoMaximum number of pending parcels to return (1-500, default 200).
emitTelemetryNoWhen true, emits a STALE_3_DAYS event to parcel_telemetry for newly stale parcels.
thresholdDaysNoMinimum age in days for a Pending parcel to be highlighted in the aging report (1-365, default 5).

TDQS

B3.2/5.0
Behavior3/5

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

With no annotations, the description carries the full burden. It does add useful behavior: aging highlighting at a threshold, enrichment with occupant contact preferences and notification/telemetry history, and a structured JSON return. However, it omits a notable side effect — emitTelemetry defaults to true and writes STALE_3_DAYS events to parcel_telemetry — as well as any permission or volume considerations.

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?

A single dense sentence that front-loads the core action and then the enrichments. Every clause carries information, though the sentence is long enough that the aging/enrichment clauses run together.

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 parameterless-required read tool with a fully documented schema and no output schema, the description is nearly sufficient: it names the source data, the aging logic, the enrichment, and the return format. Only the telemetry side effect and the meaning of the return payload's structure are left unaddressed.

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 100%, so the four parameters are already fully documented and the baseline is 3. The description's '(5+ days)' loosely corroborates the thresholdDays default and 'notification/telemetry history' hints at emitTelemetry, but adds no syntax, units, or interaction detail beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description gives a specific verb (fetches) and resource (ledger of uncollected packages) plus the transformations applied (aging highlights, enrichment). It does not explicitly contrast with log_incoming_parcel or release_parcel_with_signature, but the read-only listing nature is unambiguous, so an agent can place it without opening a schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use guidance, no exclusions, and no mention of the sibling tools that write parcels. The operational scenario is only weakly implied by 'current ledger of uncollected packages', which falls short of the explicit routing the 4-5 band requires.

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

log_incoming_parcelAInspect

Accepts parsed text from Google Cloud Vision OCR label scans and/or a trusted Firebase Storage photoUrl, cross-references internal Firestore unit listings, enforces a 4-hour idempotent lock on (trackingNumber + unitId), and schedules automated email alerts via SendGrid.

ParametersJSON Schema
NameRequiredDescriptionDefault
qtyNoNumber of parcels in this delivery (integer between 1 and 99).
actorNoAudit identity of the caller or AI agent triggering the mutation.
notesNoOptional staff or carrier notes (maximum 1,999 characters).
unitIdNoOptional explicit Firestore unit document ID under businesses/{businessId}/units/{unitId}. If omitted, resolved deterministically from rawOcrText.
photoUrlNoPublic HTTPS Firebase Cloud Storage URL of the package photo (must be hosted on firebasestorage.googleapis.com, storage.googleapis.com, or *.firebasestorage.app). Embedded in the resident notification email.
businessIdYesTenant business identifier (must match the authenticated property businessId, 1-128 alphanumeric/dash/underscore chars).
occupantIdNoOptional explicit occupant ID within the matched unit. If omitted, resolved deterministically from rawOcrText.
rawOcrTextNoRaw OCR text extracted from a shipping label or envelope (up to 10,000 characters). Used to extract tracking numbers and match unit/occupant. At least one of rawOcrText, photoUrl, or unitId is required.
typeOfMailNoPackage category: "letter" | "envelope" | "small box" | "big box" | "furniture/appliances" | "other".small box
dateReceivedNoOptional ISO date received in YYYY-MM-DD format (defaults to current UTC date).
timeReceivedNoOptional time received string (e.g. "2:30 PM", defaults to current UTC time).
pickupMessageNoOptional custom pickup location instruction included in the resident notification email (maximum 100 characters).
trackingNumberNoOptional explicit carrier tracking number (UPS 1Z..., Amazon TBA..., USPS, or FedEx). Paired with unitId for 4-hour idempotent deduplication.
idempotencyModeNoBehavior when the same (trackingNumber + unitId) was already logged within the last 4 hours: "merge" increments qty on the existing pending parcel; "reject" returns REJECTED_DUPLICATE without modifying.merge

TDQS

A3.7/5.0
Behavior4/5

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

With no annotations, the description carries full burden and does disclose meaningful side effects: automated SendGrid email alerts, a 4-hour idempotent lock keyed on trackingNumber+unitId, and Firestore cross-referencing. It omits auth/permission expectations and does not say what a successful or failed response looks like, keeping it short of a 5.

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?

It is a single front-loaded sentence with no filler, starting with the primary input and progressing through the pipeline. It is dense but every clause carries information; the main cost is that the density makes the central 'log this parcel' action slightly implicit.

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 14-parameter mutation with 100% schema coverage and no output schema, the description covers inputs, key side effects, and idempotency behavior adequately. The remaining gap is the absence of any indication of return values or failure modes, which matters given no output schema exists.

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 100%, so the baseline is 3. The description reinforces the meaning of the deduplication key (trackingNumber + unitId) and the OCR/photo inputs, but adds little beyond what the well-annotated schema already documents for the 14 parameters.

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 names a concrete action chain (accepts OCR text/photoUrl, cross-references Firestore unit listings, enforces an idempotent lock, schedules email alerts), and the verb+resource combination makes it distinguishable from the read-oriented siblings get_pending_parcels and release_parcel_with_signature.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It describes the internal pipeline but gives no explicit when-to-use guidance or routing against siblings such as get_pending_parcels or release_parcel_with_signature. The only usage constraint ('at least one of rawOcrText, photoUrl, or unitId') lives in the schema, not the description.

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

release_parcel_with_signatureBInspect

Updates parcel state to Picked Up, records the pickup timestamp and recipient name, securely saves the digital signature PNG layout to Firebase Storage, and emits a PARCEL_RELEASED telemetry event.

ParametersJSON Schema
NameRequiredDescriptionDefault
actorNoAudit identity of the staff user or AI agent releasing the parcel.
parcelIdYesFirestore parcel document ID under businesses/{businessId}/parcels/{parcelId}.
businessIdYesTenant business identifier owning the parcel (1-128 alphanumeric/dash/underscore chars).
pickedUpByYesFull name of the resident or authorized person who signed for and collected the parcel (1-120 characters).
datePickedUpNoOptional pickup date in YYYY-MM-DD format (defaults to current UTC date).
releaseNotesNoOptional audit note recorded in PARCEL_RELEASED telemetry (maximum 500 characters).
signatureUrlNoTrusted HTTPS Firebase Cloud Storage URL of the captured recipient signature PNG. Either signatureUrl or signatureBase64 must be supplied.
timePickedUpNoOptional pickup time string (e.g. "4:15 PM", defaults to current UTC time).
signatureBase64NoBase64-encoded PNG signature image (up to 2MB decoded). Automatically uploaded to businesses/{businessId}/signatures/{parcelId}.png when signatureUrl is omitted.

TDQS

B3.4/5.0
Behavior4/5

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

With no annotations, the description carries the full behavioral burden and does well on side effects: it discloses a state mutation, an audit record, an external Firebase Storage write, and telemetry emission. It omits permissions/auth requirements, idempotency and failure behavior, which keeps it short of a 5.

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?

A single front-loaded sentence that leads with the primary state change and then chains the secondary effects in order. No filler or repetition, though the run-on structure would scan better as a short effect list.

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 9-parameter mutation with a nested actor object, no annotations and no output schema, the description explains the write flow but leaves out preconditions (required current parcel state), authorization expectations and error/conflict behavior. Return values need not be covered since no output schema exists.

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 100%, including the mutually-exclusive signatureUrl/signatureBase64 pair and format constraints, so the schema does the heavy lifting. The description mentions the recipient name, timestamp and signature artifact conceptually but adds no syntax or format detail beyond what is already documented.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb+resource and enumerates the concrete effects: parcel state moves to Picked Up, timestamp and recipient are recorded, the signature PNG is stored, and a PARCEL_RELEASED event is emitted. This is clearly distinguishable from the intake and listing siblings by lifecycle stage, though it never names an alternative to differentiate explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use framing: nothing says which prior parcel state this release requires, when to prefer signatureUrl over signatureBase64 workflow-wise, or why an agent would call this rather than log_incoming_parcel. The reader can only infer usage from the effects described.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 3 tool updates
    • First observedget_pending_parcels
    • First observedlog_incoming_parcel
    • First observedrelease_parcel_with_signature

Related MCP Servers

  • A
    license
    Not graded
    quality
    B
    maintenance
    Perplexity for social: ask what competitors are running across social and get answers grounded in real ad and creative data, not guesses.
    2
    Apache 2.0
  • A
    license
    A
    quality
    C
    maintenance
    Enables brand visibility monitoring across major AI platforms like ChatGPT, Claude, Gemini, and Perplexity. It allows users to track visibility scores, analyze competitor data, and receive actionable insights to improve AI-generated brand recommendations.
    16
    11 npm
    1
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Browse IndustryLens's published competitive-intelligence reports and head-to-head competitor comparisons from any AI agent — real, source-backed data.
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources