Support Ticket Validator

Support Ticket Validator

Validates support ticket data by checking required fields and returning a structured completeness status.

Category
Visit Server

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:

  • status
  • is_complete
  • checked_fields
  • present_fields
  • missing_fields
  • source_label
  • errors

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 of missing_required_input, invalid_input_type, empty_input, out_of_scope, internal_error
  • message: human-readable error summary
  • field: 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

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.

Official
Featured
TypeScript
Magic Component Platform (MCP)

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.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

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.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

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.

Official
Featured
TypeScript
Kagi MCP Server

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.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

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.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured