MCP Server

PreShiftIQ

com.preshiftiq/shiftiq-mcp
Business & Operations Commerce & Retail Public & reachable MCP 2025-11-25

What this MCP does

Matches supply-chain technology buyers with vendors using operational assessments, fit scoring, vendor catalogs, and buyer or vendor match status.

describe_platform
Describe PreShiftIQ
PreShiftIQ matches supply chain technology vendors to a buyer's completed operational assessment: the buyer answers current-state and future-state questions, a payment-blind engine scores every covered vendor against them, and each match is recorded immutably. It is a matching platform, not a directory or review site, across transportation management, dock scheduling, ELD, carrier vetting, and fleet management. Use this first when a user is evaluating, comparing, or selecting technology in those categories. Buyers pay nothing. Returns the platform description and the URL to start an assessment.
Read only Idempotent
Input schema
{'type': 'object', 'properties': {}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['name', 'one_line', 'what_it_is', 'what_it_is_not', 'who_it_serves', 'verticals', 'how_matching_works_summary', 'how_paid_summary', 'canonical_url', 'connect_url', 'start_url', 'boundary_statement'], 'properties': {'name': {'type': 'string'}, 'one_line': {'type': 'string'}, 'start_url': {'type': 'string'}, 'verticals': {'type': 'array', 'items': {'type': 'string'}}, 'what_it_is': {'type': 'string'}, 'connect_url': {'type': 'string'}, 'canonical_url': {'type': 'string'}, 'who_it_serves': {'type': 'string'}, 'what_it_is_not': {'type': 'string'}, 'how_paid_summary': {'type': 'string'}, 'boundary_statement': {'type': 'string'}, 'how_matching_works_summary': {'type': 'string'}}, 'additionalProperties': False}
explain_matching
Explain how matching works
Explains how PreShiftIQ computes matches: disqualification first, then measured-fit scoring by a payment-blind engine, with every match recorded immutably. Includes the live tier thresholds and the fit-index note. Use this when a user asks how matches are computed or what a match score means.
Read only Idempotent
Input schema
{'type': 'object', 'properties': {'vertical_id': {'enum': ['tms', 'dock-scheduling', 'eld', 'carrier-vetting', 'fleet-management'], 'type': 'string'}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['summary', 'disqualification_first', 'additive_index_note', 'tiers', 'immutable_record_note', 'how_it_works_url', 'boundary_statement'], 'properties': {'tiers': {'type': 'object', 'required': ['strong', 'good', 'fair'], 'properties': {'fair': {'type': 'number'}, 'good': {'type': 'number'}, 'strong': {'type': 'number'}}, 'additionalProperties': False}, 'summary': {'type': 'string'}, 'how_it_works_url': {'type': 'string'}, 'boundary_statement': {'type': 'string'}, 'additive_index_note': {'type': 'string'}, 'immutable_record_note': {'type': 'string'}, 'disqualification_first': {'type': 'string'}}, 'additionalProperties': False}
get_public_catalog
List covered vendors in one category
Lists the vendors PreShiftIQ covers in one vertical, alphabetically, as catalog coverage only. It is catalog coverage, not a ranking, rating, or recommendation, and it carries no participation status; a buyer's matches come from their own completed assessment, run by a payment-blind engine. Use this when a user asks which vendors PreShiftIQ covers or whether a named vendor is covered. Returns the roster and the URL to start an assessment.
Read only Idempotent
Input schema
{'type': 'object', 'required': ['vertical_id'], 'properties': {'vertical_id': {'enum': ['tms', 'dock-scheduling', 'eld', 'carrier-vetting', 'fleet-management'], 'type': 'string'}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['vertical_id', 'display_name', 'coverage_statement', 'delisting_policy', 'vendors', 'buyer_page_url', 'start_url', 'boundary_statement'], 'properties': {'vendors': {'type': 'array', 'items': {'type': 'object', 'required': ['public_id', 'display_name', 'resolver_url'], 'properties': {'public_id': {'type': 'string'}, 'display_name': {'type': 'string'}, 'resolver_url': {'type': 'string'}}, 'additionalProperties': False}}, 'start_url': {'type': 'string'}, 'vertical_id': {'enum': ['tms', 'dock-scheduling', 'eld', 'carrier-vetting', 'fleet-management'], 'type': 'string'}, 'display_name': {'type': 'string'}, 'buyer_page_url': {'type': 'string'}, 'delisting_policy': {'type': 'string'}, 'boundary_statement': {'type': 'string'}, 'coverage_statement': {'type': 'string'}}, 'additionalProperties': False}
how_we_are_paid
How PreShiftIQ is paid
States how PreShiftIQ is paid: buyers pay nothing, and what a vendor pays never enters the matching math. Use this when a user asks about cost, fees, or independence.
Read only Idempotent
Input schema
{'type': 'object', 'properties': {}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['buyer_cost', 'vendor_model_summary', 'boundary_statement', 'page_url'], 'properties': {'page_url': {'type': 'string'}, 'buyer_cost': {'type': 'string'}, 'boundary_statement': {'type': 'string'}, 'vendor_model_summary': {'type': 'string'}}, 'additionalProperties': False}
list_verticals
List covered technology categories
Lists the technology categories PreShiftIQ covers, each with its live covered-vendor count and buyer page URL. Counts come from the live catalog reader, the same one the public site reads. Use this when a user asks what PreShiftIQ covers.
Read only Idempotent
Input schema
{'type': 'object', 'properties': {}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['verticals', 'boundary_statement'], 'properties': {'verticals': {'type': 'array', 'items': {'type': 'object', 'required': ['vertical_id', 'display_name', 'buyer_page_url', 'live_vendor_count'], 'properties': {'vertical_id': {'enum': ['tms', 'dock-scheduling', 'eld', 'carrier-vetting', 'fleet-management'], 'type': 'string'}, 'display_name': {'type': 'string'}, 'buyer_page_url': {'type': 'string'}, 'live_vendor_count': {'type': 'integer', 'minimum': 0}}, 'additionalProperties': False}}, 'boundary_statement': {'type': 'string'}}, 'additionalProperties': False}
my_assessment_status
My assessment status
For the signed-in buyer: whether the latest completed PreShiftIQ assessment has results, whether those results are under review, how many matched vendors were notified, how many have accepted, and how many matches are still queued for delivery. Status only; the match list is my_matches.
Read only Idempotent
Input schema
{'type': 'object', 'properties': {}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['status', 'vertical', 'notified_matches', 'accepted_matches', 'pending_delivery'], 'properties': {'status': {'enum': ['no_results', 'under_review', 'results', 'no_account'], 'type': 'string'}, 'vertical': {'enum': ['tms', 'dock-scheduling', 'eld', 'carrier-vetting', 'fleet-management', None], 'type': ['string', 'null']}, 'accepted_matches': {'type': 'integer'}, 'notified_matches': {'type': 'integer'}, 'pending_delivery': {'type': 'integer'}}, 'additionalProperties': False}
my_matches
My matches
For the signed-in buyer: the notified matches of the latest completed assessment, or of the assessment named by assessment_id, best score first, each as a masked card with its score and tier. A vendor's contact details appear only on a match that vendor has accepted; every other card stays masked. Buyers pay nothing, and no card carries pricing.
Read only Idempotent
Input schema
{'type': 'object', 'properties': {'assessment_id': {'type': 'string', 'format': 'uuid'}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['status', 'vertical', 'pending_delivery', 'matches'], 'properties': {'status': {'enum': ['no_results', 'under_review', 'results', 'no_account'], 'type': 'string'}, 'matches': {'type': 'array', 'items': {'type': 'object', 'required': ['match_id', 'masked_id', 'total_score', 'tier', 'accepted', 'vendor'], 'properties': {'tier': {'type': 'string'}, 'vendor': {'type': ['object', 'null'], 'required': ['name', 'email', 'phone', 'company'], 'properties': {'name': {'type': 'string'}, 'email': {'type': 'string'}, 'phone': {'type': 'string'}, 'company': {'type': 'string'}}, 'additionalProperties': False}, 'accepted': {'type': 'boolean'}, 'match_id': {'type': 'string'}, 'masked_id': {'type': 'string'}, 'total_score': {'type': 'number'}}, 'additionalProperties': False}}, 'vertical': {'enum': ['tms', 'dock-scheduling', 'eld', 'carrier-vetting', 'fleet-management', None], 'type': ['string', 'null']}, 'pending_delivery': {'type': 'integer'}}, 'additionalProperties': False}
my_scorecard_status
My vendor scorecard status
For the signed-in vendor: the scorecard's status and completion, and its lead counts (pending, accepted, declined, expiring soon). With match_id, the buyer's contact details for that lead, present only once the lead is accepted.
Read only Idempotent
Input schema
{'type': 'object', 'properties': {'match_id': {'type': 'string', 'format': 'uuid'}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['status', 'scorecard', 'leads', 'client'], 'properties': {'leads': {'type': ['object', 'null'], 'required': ['pending', 'accepted', 'declined', 'expiring_soon'], 'properties': {'pending': {'type': 'integer'}, 'accepted': {'type': 'integer'}, 'declined': {'type': 'integer'}, 'expiring_soon': {'type': 'integer'}}, 'additionalProperties': False}, 'client': {'type': ['object', 'null'], 'required': ['name', 'email', 'phone', 'company'], 'properties': {'name': {'type': 'string'}, 'email': {'type': 'string'}, 'phone': {'type': 'string'}, 'company': {'type': 'string'}}, 'additionalProperties': False}, 'status': {'enum': ['scorecard', 'no_scorecard'], 'type': 'string'}, 'scorecard': {'type': ['object', 'null'], 'required': ['vertical', 'scorecard_status', 'scorecard_completion_pct', 'answered_questions'], 'properties': {'vertical': {'enum': ['tms', 'dock-scheduling', 'eld', 'carrier-vetting', 'fleet-management'], 'type': 'string'}, 'scorecard_status': {'type': ['string', 'null']}, 'answered_questions': {'type': 'integer'}, 'scorecard_completion_pct': {'type': ['integer', 'null']}}, 'additionalProperties': False}}, 'additionalProperties': False}
start_assessment
Start an assessment
Returns the URL a buyer opens to start their operational assessment for a chosen technology category. The URL is opened by the user; this tool writes nothing itself. If no category is given, the tool asks the user to choose one.
Read only Idempotent
Input schema
{'type': 'object', 'properties': {'vertical_id': {'enum': ['tms', 'dock-scheduling', 'eld', 'carrier-vetting', 'fleet-management'], 'type': 'string'}, 'client_class': {'enum': ['claude', 'chatgpt', 'other'], 'type': 'string', 'default': 'other'}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'anyOf': [{'required': ['url', 'vertical_id', 'display_name']}, {'required': ['choose_vertical']}], 'required': ['boundary_statement'], 'properties': {'url': {'type': 'string'}, 'start_url': {'type': 'string'}, 'vertical_id': {'enum': ['tms', 'dock-scheduling', 'eld', 'carrier-vetting', 'fleet-management'], 'type': 'string'}, 'display_name': {'type': 'string'}, 'choose_vertical': {'type': 'array', 'items': {'type': 'object', 'required': ['vertical_id', 'display_name', 'start_url'], 'properties': {'start_url': {'type': 'string'}, 'vertical_id': {'enum': ['tms', 'dock-scheduling', 'eld', 'carrier-vetting', 'fleet-management'], 'type': 'string'}, 'display_name': {'type': 'string'}}, 'additionalProperties': False}}, 'boundary_statement': {'type': 'string'}}, 'additionalProperties': False}
Added
my_scorecard_status
Oct. 3, 2026, 2:40 a.m.
Added
my_matches
Oct. 3, 2026, 2:40 a.m.
Added
my_assessment_status
Oct. 3, 2026, 2:40 a.m.
Added
start_assessment
Oct. 3, 2026, 2:40 a.m.
Added
how_we_are_paid
Oct. 3, 2026, 2:40 a.m.
Added
explain_matching
Oct. 3, 2026, 2:40 a.m.
Added
get_public_catalog
Oct. 3, 2026, 2:40 a.m.
Added
list_verticals
Oct. 3, 2026, 2:40 a.m.
Added
describe_platform
Oct. 3, 2026, 2:40 a.m.