TLTan LeBackend & automation · CalgaryLet’s talk
← All systemsCustomer service · Ticket Shine

MCP server and daily AI order routines

A read-only MCP server in C#/.NET exposes order and case data to AI agents. Daily routines read ~50 customer emails, look up the order through MCP and pre-draft a reply for Operations to approve. Human in the loop, far fewer manual lookups.

$0added monthly cost
~50customer emails pre-drafted daily
3read-only tools exposed

The problem

Order data lived in Azure SQL behind a legacy Microsoft Access front end. Answering a support question — which orders are delayed, what happened to a given order — meant navigating the database by hand. The goal was to let AI assistants answer those questions without building a custom API and without any path to write to production.

What I built

  • Microsoft Data API builder as an MCP server, containerised and deployed onto an Azure App Service plan the business already paid for. One JSON config file, one Dockerfile.
  • Three read-only tools — describe entities, read records, aggregate records — over four database views that form a reporting schema.
  • Claude and ChatGPT connect over HTTPS, with IP allowlists per vendor.
  • Daily routines that read the morning’s customer emails, look up each order through MCP and pre-draft a reply that Operations approves before it is sent.

Decisions that mattered

  • Read-only is enforced in configuration, with every write operation disabled — not left to code review.
  • Schema validation before deploy keeps the views and the config in step.
  • Descriptions are prompts. Tool and entity descriptions such as “Never guess: if no rows are returned, say so” noticeably improved answer quality.

What broke, and the fix

Eight small issues ate the deployment time: where the config file had to live, the container port, role-based health checks failing, and very different IP requirements between vendors — a single range for Anthropic, 138 CIDR blocks for OpenAI, handled with a script.

Outcome

Support answers order questions in seconds without opening Access. App Service memory went from about 55% to 63%; the added monthly cost is $0. Build time: two hours, plus one evening of troubleshooting.

Contact · Let’s talk

Have a system that should run itself by now?

Tell me what people still do by hand every morning, or what breaks when nobody is watching. I'll map the shortest path to a job that just runs.

Project brief