Support Ticket Validator
Validates support ticket data by checking required fields and returning a structured completeness status.
README
Support Ticket Validator
Support Ticket Validator checks whether supplied support ticket data contains required fields and returns a structured completeness status.
Boundary
This app is read-only, stateless, deterministic, and has no external side effects. It does not authenticate users, call external APIs, use OAuth, store data, update support systems, reply to customers, approve refunds, close tickets, assign responsibility, or provide open-ended support strategy.
Developer Mode testing, production deployment, and formal submission are outside the current gate and have not been performed.
Technology
- Cloudflare Workers
- TypeScript
- npm
- wrangler
Project Structure
support-ticket-validator/
├── package.json
├── package-lock.json
├── tsconfig.json
├── wrangler.jsonc
├── README.md
├── src/
│ ├── html.d.ts
│ ├── index.ts
│ ├── schemas.ts
│ ├── tool.ts
│ └── pages/
│ ├── home.html
│ ├── privacy.html
│ ├── terms.html
│ └── support.html
└── scripts/
└── test-mcp-local.mjs
Install
npm install
Local Development
npm run dev
The local Worker defaults to:
http://127.0.0.1:8787
Checks
TypeScript:
npm run typecheck
GET /:
curl http://127.0.0.1:8787/
GET /health:
curl http://127.0.0.1:8787/health
Local MCP regression:
npm run test:mcp:local
To run the regression against another local URL:
BASE_URL=http://127.0.0.1:8787 npm run test:mcp:local
URLs
- Website URL:
https://support-ticket-validator.sidcraigau.workers.dev - MCP URL:
https://support-ticket-validator.sidcraigau.workers.dev/mcp - Privacy URL:
https://support-ticket-validator.sidcraigau.workers.dev/privacy - Terms URL:
https://support-ticket-validator.sidcraigau.workers.dev/terms - Support URL:
https://support-ticket-validator.sidcraigau.workers.dev/support
MCP Tool
- Tool name:
validate_support_ticket_completeness - Tool title:
Validate Support Ticket Completeness
Input fields:
ticket: support ticket fields keyed by field name.required_fields: field names that should be present and non-empty.source_label: optional source label.request_intent: optional intent text used only for runtime boundary checks.
Output fields:
statusis_completechecked_fieldspresent_fieldsmissing_fieldssource_labelerrors
Schema / Runtime Boundary
The JSON Schema layer declares top-level shape, allowed fields, and basic JSON types. It intentionally does not set minProperties, minItems, or string minLength, because empty tickets, empty required field lists, blank field names, and empty business values must reach the Tool Runtime and return the unified Error Contract.
Runtime type validation handles non-object arguments, missing required inputs, non-object tickets, array or null tickets, non-array required_fields, non-string required_fields items, and invalid optional string fields.
Business validation handles empty ticket data, empty normalized required field lists, duplicate and whitespace field names, empty values, and out-of-scope request intents.
Error Contract
All success, incomplete, and error responses use the same outputSchema. Error records contain:
code: one ofmissing_required_input,invalid_input_type,empty_input,out_of_scope,internal_errormessage: human-readable error summaryfield: input field related to the error, or an empty string for general errors
Prohibited Capabilities
This project does not include customer replies, refund approval, refund rejection, ticket closure, ticket status updates, classification, extraction from unstructured messages, CRM or support platform integration, database access, OAuth, login, AI model calls, external APIs, emails, or external writes.
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.